Compare commits

...
Author SHA1 Message Date
Bram Kragten 539472bd96 POC 2024-01-19 11:03:37 +01:00
Steve RepsherandGitHub 6234f7b7d2 Initialize boolean properties (#19445) 2024-01-18 16:39:33 +01:00
Paul BotteinandGitHub 04f6a01c3d Avoid thermostat card interaction on scroll on touch devices (#19423)
* Avoid thermostat card interaction on scroll on touch devices

* Fix background interaction on safari

* Fix interaction in Safari

* Make listeners private
2024-01-18 14:31:44 +01:00
Steve RepsherandGitHub 9bad3c8101 Lint for unknown tags and turn off unknow attribute check (#19439) 2024-01-18 14:30:59 +01:00
7398c6ab3e Automation nested drag and drop (#19338)
* Add nested drag and drop for actions

* Add nested drag and drop for triggers, conditions and options

* Update src/panels/config/automation/action/types/ha-automation-action-choose.ts

Co-authored-by: Bram Kragten <[email protected]>

* Move object at the root level

* Add support for choose option

* Fix undefined container (e.g else action)

* Add common nested array move function

* Move item at root level for manual automation

* Fix array move

* Don't fallback on body

* migrate blueprint and script

* Add drag and drop to service control

* Use context for reorder mode

* Rename reorder mode functions

* Fix hide menu props

* Fix drag and drop for choose action

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-01-18 14:26:17 +01:00
Steve RepsherandGitHub 4046534fa8 Compress static HTML/XML (#19437) 2024-01-17 17:58:32 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
8f43caee2e Update dependency @types/luxon to v3.4.1 (#19438)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-17 17:57:31 -05:00
karwostsandGitHub 83c5408f8f Minor form localizations (#19434)
* Minor form localizations

* missing imports
2024-01-17 14:40:58 -05:00
karwostsandGitHub 7d4284d409 Custom device_classes for Area Card sensors (#19421)
* Custom device_classes for Area Card sensors

* no sensor DOMAIN_ICONS
2024-01-17 13:22:08 +01:00
Steve RepsherandGitHub 58c4bf081b Fix boolean and nullable attribute bindings (#19432) 2024-01-17 12:45:21 +01:00
d1478567f0 Add title to grid card editor (#19429)
* Add title to grid card editor

* Update src/panels/lovelace/editor/config-elements/hui-grid-card-editor.ts

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-01-17 12:43:25 +01:00
Paulus SchoutsenandGitHub d85c729fa5 Add a download button to history panel (#19428) 2024-01-17 11:47:45 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
c65fadbd8a Update dependency sortablejs to v1.15.2 (#19426)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-16 23:47:21 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
4326007022 Update dependency prettier to v3.2.2 (#19431)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-17 04:41:16 +00:00
Paulus Schoutsen 38b01e9335 Add a download button to history panel 2024-01-16 21:35:07 -05:00
karwostsandGitHub 22625a805d Don't show duplicates in statistics picker (#19422)
* Filter duplicates from ha-statistics-picker

* use repeat
2024-01-16 22:40:27 +01:00
karwostsandGitHub a06c9d0cc6 Localize show_password in auth form (#19300)
* Localize show_password in auth form

* changes from review
2024-01-16 22:39:35 +01:00
Paul BotteinandGitHub 490ed86e86 Add per domain style for tile card image (#19419) 2024-01-16 15:04:18 +01:00
Paul BotteinandGitHub df2514d79f Use new mdi oscillating icon (#19410) 2024-01-16 15:02:27 +01:00
Matthew GroveandGitHub 13a8b10f5c Fix incorrect padding on bottom of empty list (#19414) 2024-01-16 15:02:06 +01:00
Steve RepsherandGitHub bb4f09ad9a Fix missing imports (2 of 2) (#19417) 2024-01-16 15:01:34 +01:00
Bram KragtenandGitHub 1f2683dd56 Restrict adding todo list and calendars to admin users (#19408) 2024-01-16 10:44:28 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
0ba8babd87 Update dependency prettier to v3.2.1 (#19415)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-15 22:00:08 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
65d4d44f06 Update dependency @codemirror/autocomplete to v6.12.0 (#19412)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-15 16:52:48 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Steve Repsher
6f8c366bad Update dependency prettier to v3.2.0 (#19411)
* Update dependency prettier to v3.2.0

* Reformat

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2024-01-15 16:49:22 -05:00
3842e8e3a7 Wrap descriptions in automation list descriptions (#19367)
* Wrapped automation descriptions

* Fix

* Fixes

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-01-15 14:59:46 +00:00
Steve RepsherandGitHub b881a2a88a Fix complex attribute and expressionless property bindings (#19348) 2024-01-15 15:52:48 +01:00
Steve RepsherandGitHub 70fcea0c2b Disable attributes for hass, stateObj, selector, and route properties (#19362)
* Disable attribute for hass properties

* Disable attribute for stateObj properties

* Disable attribute for selector properties

* Disable attribute for route properties

* Switch from Object type to no attribute for same properties
2024-01-15 15:52:10 +01:00
9f26bedf51 Custom device_classes for alert icons in Area Card (#19131)
* Custom device_classes for alerts in Area Card

* small refactor

* drop more-info feature

* Update src/panels/lovelace/editor/config-elements/hui-area-card-editor.ts

Co-authored-by: Bram Kragten <[email protected]>

* localization and css updates

---------

Co-authored-by: Bram Kragten <[email protected]>
2024-01-15 15:51:19 +01:00
Simon LamonandGitHub 2053cf23c2 Replace some paper-items by list-item (#19314)
* system log card

* cloud login

* cloud account

* ha config voice assistants assistants

* ha config person

* ha-device-entities-card

* cloud login

* change --paper-item-icon-color into --state-icon-color

* Apply code review

* Revert "change --paper-item-icon-color into --state-icon-color"

This reverts commit b91ef0017e.

* Remove unneeded mwc-lists
2024-01-15 15:41:05 +01:00
Steve RepsherandGitHub b801441201 Fix property visibility mismatches (1 of 2) (#19376) 2024-01-15 15:40:03 +01:00
AlexandrErohinandGitHub 7209ed055a fix not showing base error bug (#19340) 2024-01-15 14:38:51 +00:00
Joakim PlateandGitHub 894205eff7 Display that entity is disabled in more info (#19378)
* Display that entity is disabled in more info

* Correct formatting
2024-01-15 15:37:59 +01:00
Steve RepsherandGitHub 64b0b64468 Cache Typescript runs for faster checks (#19381) 2024-01-15 15:36:26 +01:00
Steve RepsherandGitHub 920df03cc1 Fix missing imports (1 of 2) (#19363) 2024-01-15 15:34:46 +01:00
karwostsandGitHub 5a91f613ca Remove fire-dom-event from action struct (#19390) 2024-01-15 15:34:19 +01:00
karwostsandGitHub 61eaa07b25 Honor display_precision over duration-type format (#19396) 2024-01-15 15:33:00 +01:00
Cody CandGitHub 62f6766e1b Fix onboarding state exception following restore (#19389)
Fixes #19388
2024-01-15 15:31:37 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
f5994d2ae5 Update vaadinWebComponents monorepo to v24.3.3 (#19403)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-15 14:12:11 +01:00
Yosi LevyandGitHub 7e93367394 RTL stack card fix (#19394) 2024-01-15 13:55:11 +01:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
6256192c0c Bump actions/upload-artifact from 3.1.3 to 4.1.0 (#19401)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-15 09:20:26 +01:00
dependabot[bot]andGitHub 08fb3ced5f Bump actions/cache from 3.3.2 to 3.3.3 (#19400) 2024-01-15 07:56:19 +01:00
karwostsandGitHub 5aa5ce8b5e Fix blank_before_percent (#19397)
* Fix blank_before_percent

* types n stuff
2024-01-14 15:23:42 -05:00
Steve RepsherandGitHub 7c389a6cf0 Fix dependencies labeler (#19391) 2024-01-14 09:32:28 +01:00
renovate[bot]andGitHub f63ba0c20a Update dependency hls.js to v1.5.1 (#19387) 2024-01-13 22:36:10 -05:00
Simon LamonandGitHub 01e80108d7 Fix nightly builds (#19386) 2024-01-13 17:30:47 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
148c0c98d3 Update dependency hls.js to v1.5.0 (#19377)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-13 14:39:08 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
11a9a2f56b Update dependency @lit-labs/virtualizer to v2.0.12 (#19380)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-13 14:38:05 -05:00
Bram Kragten 6cdf1c1689 Bumped version to 20240112.0 2024-01-12 16:25:34 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2cfaa4f261 Update typescript-eslint monorepo to v6.18.1 (#19371)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-12 05:11:37 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
d3b0d03e70 Update dependency lit-analyzer to v2.0.3 (#19369)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-11 23:59:13 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
08b8978ee8 Update dependency ts-lit-plugin to v2.0.2 (#19370)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-11 23:57:25 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Steve Repsher
d2019c2315 Update babel monorepo to v7.23.8 (#19368)
* Update babel monorepo to v7.23.8

* bump @babel/helpers

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2024-01-11 23:52:37 -05:00
Bram KragtenandGitHub 02a7d0e797 Clean up local auth flow, preselect remember me (#19354) 2024-01-11 11:03:32 +01:00
Bram KragtenandGitHub 03751d2581 Load registries in core, wait them to be loaded before generating das… (#19356)
* load registries in core, wait them to be loaded before generating dashboard

* import

* improve

* Split out subscribe functions
2024-01-11 09:48:20 +01:00
Bram KragtenandGitHub b9069b25ad Assist devices: Move logic from column to data (#19359)
* Move logic from column to data

* Type
2024-01-11 09:48:10 +01:00
Paulus SchoutsenandGitHub a136fa687f Add page to list assist devices (#19301)
* Add page to list assist devices

* Translate title too
2024-01-10 15:22:59 +01:00
Bram Kragten de35e89c58 Update ha-config-logs.ts 2024-01-10 15:21:54 +01:00
Bram KragtenandGitHub 85beefec4c Fix logs, dont require advanced mode, allow provider in url and my (#19355)
* Fix logs, dont require advanced mode, allow provider in url and my

* Add params to my link with quick key `m`
2024-01-10 13:50:07 +01:00
renovate[bot]andGitHub 877c9b007b Update dependency open to v10.0.3 (#19351) 2024-01-10 07:33:15 -05:00
Steve RepsherandGitHub adb851a2b4 Fix unclosed HTML tags (#19343)
* Fix unclosed HTML tags

* Add missing import and remove unused class for debug tools

* Remove div from debug page
2024-01-10 10:53:03 +01:00
Steve RepsherandGitHub 6ab5116c34 Fix incompatible number property types (#19349) 2024-01-10 10:49:35 +01:00
Paul BotteinandGitHub a5630a4a7d Use switch for valve in entity row (#19342) 2024-01-09 16:15:33 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
e8c1a34f3b Update typescript-eslint monorepo to v6.18.0 (#19341)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-09 15:20:51 +01:00
Steve RepsherandGitHub 88abeada44 Remove Intl polyfill on connection and consistently resolve time zone (#19326) 2024-01-09 15:06:50 +01:00
Steve RepsherandGitHub 96a41704ea Fix incompatible boolean property types (#19337) 2024-01-09 15:02:15 +01:00
Steve RepsherandGitHub 8583c879f2 Fix invalid directive bindings (#19330) 2024-01-09 15:00:59 +01:00
Steve RepsherandGitHub 3edc77c978 Fix missing element tag definitions (#19329) 2024-01-09 15:00:30 +01:00
dependabot[bot]andGitHub 03a1c21f34 Bump follow-redirects from 1.15.3 to 1.15.4 (#19336) 2024-01-08 21:14:38 -05:00
renovate[bot]andGitHub 80b1a6297b Update dependency @types/luxon to v3.4.0 (#19333) 2024-01-08 20:57:22 -05:00
renovate[bot]andGitHub 056eb888f3 Update dependency @types/chromecast-caf-receiver to v6.0.13 (#19332) 2024-01-08 20:56:32 -05:00
Steve RepsherandGitHub d4ec608123 Fix invalid media queries in calendar and todo editors (#19295) 2024-01-08 15:45:24 +01:00
Steve RepsherandGitHub 2451cf77f9 Fix various missing component imports (#19296) 2024-01-08 15:43:53 +01:00
Simon LamonandGitHub 3b6b77c75b Localize time pattern trigger in automation editor (#19173) 2024-01-08 15:24:37 +01:00
Steve RepsherandGitHub e0f578c135 Start linting with lit-analyzer (#19302) 2024-01-08 14:26:25 +01:00
karwostsandGitHub ec2ae15e3f Cleanup else/default block when deleting all actions (#19298) 2024-01-08 14:10:23 +01:00
Steve RepsherandGitHub f5fc66f47e Better restrict applying dependencies label (#19319) 2024-01-08 14:08:21 +01:00
Steve RepsherandGitHub ae79df8c55 Allow TLA for legacy build and remove static Intl polyfills (#19207) 2024-01-08 14:07:08 +01:00
Paul BotteinandGitHub 104aef3dec Add ha-sortable component (#19294) 2024-01-08 14:02:41 +01:00
dependabot[bot]andGitHub 17e62c10d4 Bump home-assistant/wheels from 2023.10.5 to 2024.01.0 (#19321) 2024-01-08 08:17:13 +01:00
karwostsandGitHub 90965a4f4d Localize statistics datatable string (#19289) 2024-01-06 23:19:44 -05:00
renovate[bot]andGitHub 8960f5fef9 Update dependency @types/luxon to v3.3.8 (#19308) 2024-01-06 20:50:10 -05:00
Yosi LevyandGitHub 783a8242e1 Fix for RTL in Supervisor dashboards (#19290) 2024-01-05 14:56:15 +01:00
Simon LamonandGitHub 7a8f5c0cc9 Replace remaining paper inputs (#19292) 2024-01-05 14:31:58 +01:00
renovate[bot]andGitHub 53be012b34 Update CodeMirror (#19214) 2024-01-04 20:42:11 -05:00
renovate[bot]andGitHub be7b3a56f9 Update dependency core-js to v3.35.0 (#19215) 2024-01-04 20:36:13 -05:00
renovate[bot]andGitHub 554e5b7be5 Update typescript-eslint monorepo to v6.17.0 (#19286) 2024-01-04 19:48:57 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
249c89669e Update dependency systemjs to v6.14.3 (#19282)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-04 13:11:06 -05:00
Bram Kragten fe5431976d Bumped version to 20240104.0 2024-01-04 17:43:37 +01:00
Paul BotteinandGitHub 72dedc7596 Fix thermostat and humidifier card rendering when off (#19281)
* Fix thermostat and humidifier card rendering when off

* Fix action color
2024-01-04 16:18:16 +01:00
Bram KragtenandGitHub 8615b799c6 Fix due date when no time in certain timezones (#19280)
* Fix due date when no time in certain timezones

* Update dialog-todo-item-editor.ts
2024-01-04 14:24:33 +01:00
Bram KragtenandGitHub fd6cae48b7 Remove overflow hidden from profile (#19279) 2024-01-04 13:20:35 +01:00
Bram KragtenandGitHub ecadc06b45 fix valve entities row (#19278) 2024-01-04 11:52:38 +01:00
Franck NijhofandGitHub e5d31d85dd Update getStates to support valves (#19277) 2024-01-04 10:54:20 +01:00
Bram KragtenandGitHub e427ffca5f Fix turning valve on/off (#19269) 2024-01-03 21:27:30 -05:00
Bram KragtenandGitHub 4f05bd9e22 Fix circular progress size + fix bug in assist pipeline debug (#19268) 2024-01-03 21:21:42 -05:00
renovate[bot]andGitHub 0d8c0ac1a0 Update dependency marked to v11.1.1 (#19254) 2024-01-03 17:45:46 -05:00
karwostsandGitHub 3984702d3e Fix select view dialog (#19267)
* Fix select view dialog

* add import
2024-01-03 20:36:59 +01:00
Bram KragtenandGitHub 979085a9de Fix supervisor dev build (#19266) 2024-01-03 20:35:54 +01:00
Bram KragtenandGitHub 7a6fc573c2 Fix version bump script (#19264) 2024-01-03 14:19:30 +00:00
Bram Kragten 6929a9c603 Bumped version to 20240103.0 2024-01-03 14:59:45 +01:00
41bb677ebe Remove tile pointer/ripple/index when it has no action (#19137)
* Remove tile pointer/ripple/index when it has no action

* update

* Apply suggestions from code review

Co-authored-by: Paul Bottein <[email protected]>

---------

Co-authored-by: Paul Bottein <[email protected]>
2024-01-03 14:58:59 +01:00
Bram KragtenandGitHub 8368fb4408 Fix checking todo item that dont support due date (#19262)
* Fix checking todo item that dont support due date

* make cleaner

* Revert "make cleaner"

This reverts commit fa33b33614.

* Update dialog-todo-item-editor.ts

* do check in 1 place
2024-01-03 13:58:36 +00:00
Paul BotteinandGitHub acbb7e0453 Display edit button for climate fan mode feature (#19259) 2024-01-03 14:26:40 +01:00
Bram Kragten 6224cb6994 Bumped version to 20240103.1 2024-01-03 12:28:46 +01:00
Bram KragtenandGitHub 29fefa1d60 Revert conditional rendering of condition (#19257)
* Fix conditionally showing `triggered by`

* revert conditional rendering

* Update add-automation-element-dialog.ts

* Update add-automation-element-dialog.ts
2024-01-03 11:20:11 +00:00
Bram Kragten c7a98fa5a1 Bumped version to 20240103.0 2024-01-03 10:37:59 +01:00
Bram KragtenandGitHub 46565715c9 Calculate used domains on open of action dialog (#19255) 2024-01-03 10:37:30 +01:00
Simon LamonandGitHub 8a8b04ed00 Set default values for required and disabled for labeled slider (#19246)
Set default values
2024-01-02 20:00:19 +01:00
Bram KragtenandGitHub e721481757 Move notification services to main list (#19235) 2024-01-02 19:58:37 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2933d642ed Update dependency @bundle-stats/plugin-webpack-filter to v4.8.4 (#19230)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-02 13:55:44 -05:00
Bram Kragten 7d412a9913 Bumped version to 20240102.0 2024-01-02 18:49:31 +01:00
Bram KragtenandGitHub 5eaa6dafd9 Give todo and calendar edit static header (#19233) 2024-01-02 18:48:34 +01:00
Bram Kragten f994b378f1 Update add-automation-element-dialog.ts 2024-01-02 18:47:39 +01:00
JLoandGitHub 7d6dfaad15 New copy for device trigger in automation editor (#19232)
New copy for device trigger in automation editor: 
"Set of conditions provided by your device. Great way to start."
2024-01-02 17:39:55 +00:00
Josh McCartyandGitHub def2eadc24 Add missing device classes for entity-registry-settings-editor (#19231)
* Add connectivity device class for binary sensors

* Add update device class

* Separate connectivity and update
2024-01-02 17:35:08 +00:00
Bram KragtenandGitHub 53a25dde26 Change format of service description (#19229) 2024-01-02 18:31:18 +01:00
Bram KragtenandGitHub 6f7da16d1d Use brand icons in actions (#19227) 2024-01-02 18:11:34 +01:00
Bram KragtenandGitHub 5ac0360494 Remove references to "service call" from actions (#19226) 2024-01-02 16:08:26 +01:00
karwostsandGitHub 1b6def4875 Localize a device action string (#19203) 2024-01-02 14:07:34 +01:00
Bram KragtenandGitHub 52fcf64cfd Automation editor tweaks (#19225)
* Automation editor tweaks

* fix styling
2024-01-02 13:36:06 +01:00
JLoandGitHub c650e23432 Review on automation editor text (#19223)
- Added `.` to bloc descriptions
- Changed "Other" into "OTher triggers" "Other conditions" and "Other actions"
- Adapted a few descriptions
2024-01-02 11:08:05 +00:00
renovate[bot]andGitHub 428604d91d Update babel monorepo to v7.23.7 (#19220) 2024-01-01 20:15:34 -05:00
Bram Kragten d0c1481f76 Bumped version to 20240101.0 2024-01-01 13:58:47 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
6cc9a99b77 Update dependency terser-webpack-plugin to v5.3.10 (#19211)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-31 13:47:55 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
d25f49b694 Update dependency chai to v5 (#19208)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-31 13:46:23 -05:00
renovate[bot]andGitHub b92d25e28a Update Material Design Icons to v7.4.47 (#19192) 2023-12-30 21:08:13 -05:00
renovate[bot]andGitHub bf5c5bc46f Update dependency open to v10.0.2 (#19206) 2023-12-30 21:06:30 -05:00
renovate[bot]andGitHub e7cc842be4 Update dependency rollup-plugin-visualizer to v5.12.0 (#19204) 2023-12-30 21:05:23 -05:00
Bram KragtenandGitHub cb29d35949 Allow to clear due date (#19201) 2023-12-30 20:21:33 +01:00
Bram KragtenandGitHub fe18f70e51 Only make count field template (#19198) 2023-12-30 18:40:01 +01:00
Bram KragtenandGitHub ee57f26415 Sort domains correctly, scroll to top on back (#19197) 2023-12-30 18:39:21 +01:00
karwostsandGitHub 721ec8e559 Localize some strings in integration panel (#19200) 2023-12-30 18:37:50 +01:00
c584f83071 Fix display of variables tab when automation step not executed (#19186)
Co-authored-by: Bram Kragten <[email protected]>
2023-12-30 17:16:54 +00:00
Erik MontnemeryandGitHub 3c2fed5041 Improve message when an automation step was not executed (#19185)
* Improve message when an automation step was not executed

* Use step instead of node
2023-12-30 18:08:24 +01:00
Erik MontnemeryandGitHub 7e6d974438 Fix iteration index when displaying changed variables (#19184) 2023-12-30 14:08:01 +01:00
Bram KragtenandGitHub c95a30c837 Use username in example on empty automation page (#19189) 2023-12-29 20:45:51 +01:00
Bram KragtenandGitHub cb568d005e dont allow UI editor when templates are used in repeat (#19188) 2023-12-29 17:59:11 +00:00
Bram KragtenandGitHub 442cce1574 Fix play media action not shown (#19187) 2023-12-29 18:56:15 +01:00
Erik MontnemeryandGitHub c25baf25ad Exclude hidden entities from scenes (#19179) 2023-12-29 18:41:10 +01:00
renovate[bot]andGitHub 5e279405c7 Update typescript-eslint monorepo to v6.16.0 (#19174) 2023-12-28 20:32:43 -05:00
Bram Kragten e5707b423f Bumped version to 20231228.0 2023-12-28 15:33:39 +01:00
Bram KragtenandGitHub 7983556f98 Update sortable styling (#19169) 2023-12-28 15:32:49 +01:00
Bram KragtenandGitHub 1916dff57b Keep todo item selected when checked/unchecked (#19168)
* Keep todo item selected when checked/unchecked

* update label when in reoder mode
2023-12-28 15:32:40 +01:00
Bram KragtenandGitHub b11563d618 Small automation editor fixes (#19160) 2023-12-28 15:32:31 +01:00
Bram KragtenandGitHub b180a587bf Address feedback of automation editor (#19167) 2023-12-28 14:18:18 +01:00
Simon LamonandGitHub 5b11e0ce29 Fix self referencing translation (#19159) 2023-12-27 20:26:17 +01:00
Bram KragtenandGitHub d6684c5806 Revert hide automation desc in advanced mode (#19158) 2023-12-27 17:46:17 +01:00
Bram Kragten 1a0e3890f4 Bumped version to 20231227.0 2023-12-27 17:22:34 +01:00
Bram KragtenandGitHub caece9d6ad Add QR code element (#19155)
* Add QR code element

* fixes

* move to workflow

* limit webpack imports
2023-12-27 17:22:09 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
953a3793c4 Update dependency vue to v2.7.16 (#19156)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-27 17:19:27 +01:00
8bfae3b4cf Fix ha-combo-box helper text not displaying text (#19154)
* Fix ha-combo-box helper text

* Update src/components/ha-combo-box.ts

---------

Co-authored-by: Bram Kragten <[email protected]>
2023-12-27 15:22:19 +00:00
Bram KragtenandGitHub 6911685bd0 Only focus search when not in fullscreen dialog (#19153) 2023-12-27 12:45:49 +00:00
Bram KragtenandGitHub 71025eaf4d Fix dialog headers (#19152)
* Fix dialog headers

* increase padding
2023-12-27 13:45:36 +01:00
Bram KragtenandGitHub 3aa612b766 Todo list layout fixes (#19150) 2023-12-27 13:22:36 +01:00
Simon LamonandGitHub a2ffd0ae83 Circular progress improvement in update area (#18983)
* Fixes

* Add aria label again
2023-12-27 11:07:40 +01:00
Simon LamonandGitHub c399da586e Increase battery column width (#19143) 2023-12-27 11:00:48 +01:00
Erik MontnemeryandGitHub d7826e4e6c Show +/- volume buttons for media players which support VOLUME_SET (#19111)
* Show +/- volume buttons for media players which support VOLUME_SET

* Fixup
2023-12-27 11:00:12 +01:00
Yosi LevyandGitHub f5d13c9079 Various RTL fixes (#19134)
* Various RTL fixes

* Various RTL fixes
2023-12-27 10:59:28 +01:00
Paul BotteinandGitHub 01a142790f Add update actions card feature (#19110)
* Add update tile feature

* Fix translations

* Add confirmation dialog

* Remove unused styles

* Fix gallery

* Update wording

* Update src/translations/en.json
2023-12-27 10:55:14 +01:00
df54687de1 Fix trailing energy gaps, refactor chart options (#19117)
* Fix trailing gap on energy graph cards

* Use date methods instead of unix time calculation

* Fix trailing energy gaps, refactor chart options

---------

Co-authored-by: Till Fleisch <[email protected]>
2023-12-27 10:53:16 +01:00
karwostsandGitHub bded31b311 Fix entities sort for hidden/readonly (#19124) 2023-12-27 10:51:36 +01:00
c0ffeeca7andGitHub 67e573aff7 HVAC in demo - fix typo (#19132) 2023-12-27 10:25:30 +01:00
c0ffeeca7andGitHub 6295c4ac76 Add Oxford comma (#19133) 2023-12-27 10:24:57 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
469811847f Lock file maintenance (#19084)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-26 11:53:07 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
8a1aefefca Update vaadinWebComponents monorepo to v24.3.2 (#19141)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-25 15:39:49 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
bea16028a1 Update dependency open to v10.0.1 (#19145)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-25 15:38:06 -05:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
bedb7d1d9e Bump actions/setup-node from 4.0.0 to 4.0.1 (#19140)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4.0.0...v4.0.1)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-25 15:37:25 -05:00
renovate[bot]andGitHub 1a3a20f478 Update dependency element-internals-polyfill to v1.3.10 (#19136) 2023-12-24 23:25:00 -05:00
Bram KragtenandGitHub 68ecb7c219 Store height and width of dialog, autofocus searchbar (#19122) 2023-12-23 00:03:52 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Steve Repsher
61b04a882b Update dependency core-js to v3.34.0 (#18974)
* Update dependency core-js to v3.34.0

* Update Babel setting with package.json version

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2023-12-22 15:41:33 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
f8e621c5b9 Update dependency open to v10 (#19116)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-22 14:16:41 -05:00
Bram Kragten 2f2209682e Update learn more URLs to just "Learn more" 2023-12-22 16:40:20 +01:00
Bram KragtenandGitHub f4f361b51a Add automation picker descriptions (#19121) 2023-12-22 16:35:41 +01:00
Erik MontnemeryandGitHub 55e59f8cb0 Add valve to switch_as_x domains (#19118) 2023-12-22 11:34:09 +01:00
renovate[bot]andGitHub 6d20ed0a22 Update dependency hls.js to v1.4.14 (#19112) 2023-12-21 20:22:36 -05:00
renovate[bot]andGitHub 874f604295 Update typescript-eslint monorepo to v6.15.0 (#19113) 2023-12-21 20:21:23 -05:00
renovate[bot]andGitHub 30d36a11c1 Update dependency eslint-plugin-lit to v1.11.0 (#19103) 2023-12-21 20:19:36 -05:00
Bram KragtenandGitHub 09dcc29175 Add description and due support to todo lists (#19107) 2023-12-21 21:30:24 +01:00
Bram KragtenandGitHub 8f07e6f141 Group add automation elements in dialog (#19086)
* Group add automation elements in dialog

* Add search

* clear filter on close

* Split out services

* group services by integration type

* Update add-automation-element-dialog.ts

* fix typing

* clear filter on back

* Update add-automation-element-dialog.ts

* Fix search

* scroll to top

* Add service descriptions

* fix clipboard

* Move play media, sort services

* use helpers

* move to data

* Move building blocks to a group

* fix search

* Update add-automation-element-dialog.ts

* Update en.json

* fix alignment of single line and multi line items

* use repeat instead of map
2023-12-21 21:01:27 +01:00
Bram KragtenandGitHub 7b6b5724e1 Add descriptions to automation page sections (#19081)
* Add descriptions to automation page sections

* add name key

* Update manual-automation-editor.ts

* hide explanation if there is content

* Update src/translations/en.json

* hide when advanced
2023-12-21 21:01:11 +01:00
QuentameandGitHub 521c0b58c8 Add climate fan mode feature to thermostat & tile cards (#19094)
* climate: Add fan_only exemple

* climate: add fan_mode feature to thermostat & tile cards

* review: update dropdown icon
2023-12-21 15:49:08 +01:00
Bram KragtenandGitHub 53839ab7b1 Update text on empty automation/script/scene pages (#19095) 2023-12-21 15:36:56 +01:00
Chris RobertsandGitHub dcfe9617b3 Make disabled sliders properly visible (#19102)
Followed similar variable usage by ha-*-chip components.

Fixes #19101
2023-12-20 21:26:48 +00:00
Matthias AlphartandGitHub 58eebf2dbd Clear Area picker when "Add new area" was canceled (#19088) 2023-12-20 22:17:31 +01:00
Paul BotteinandGitHub af9b64c6f0 Add option to show current temperature on thermostat card (#19049)
* Fix unit position when no decimal

* Add option to switch between current and target for thermostat card

* Refactor code

* Clean label code

* Rename config name
2023-12-20 14:41:22 +01:00
Paul BotteinandGitHub 2b18ac8d4e Add option to show current humidity on humidifier card (#19079) 2023-12-20 14:12:59 +01:00
karwostsandGitHub 2306234063 Localize date-range-picker (#18945) 2023-12-19 09:25:56 +01:00
renovate[bot]andGitHub 883a9e422e Update dependency eslint to v8.56.0 (#19083) 2023-12-18 21:24:47 -05:00
d77ce721e3 Add possibility to define group id manually for ZHA (#18932)
Co-authored-by: Bram Kragten <[email protected]>
2023-12-18 15:37:57 +01:00
Bram KragtenandGitHub 325ad6f721 Fix step any in number selector (#19077) 2023-12-18 15:24:46 +01:00
Simon LamonandGitHub d762a9365f Automation traces localization (#18862) 2023-12-18 15:06:41 +01:00
Paul BotteinandGitHub ce983f043e Fix empty classmap for thermostat card (#19078) 2023-12-18 14:00:37 +01:00
Bram KragtenandGitHub 45b7ebbe46 Add empty page to automation/script/scene config (#19075) 2023-12-18 13:59:36 +01:00
Paul BotteinandGitHub 3e7fa66790 Add valve entity (#19024)
* Add valve entity

* Update icon based on device class

* Check assumed state first

* Reset mode if entity id changes
2023-12-18 13:53:52 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
ad543dbffb Update dependency webpackbar to v6 (#19076)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-18 12:31:13 +00:00
karwostsandGitHub cdd2c7be9a Fix date-range-picker overflow on energy dashboard small screen (#19026) 2023-12-18 13:20:21 +01:00
ddf6945190 Localize state condition in automation editor (#18864)
Co-authored-by: Bram Kragten <[email protected]>
2023-12-18 13:19:19 +01:00
Simon LamonandGitHub f2745747ba Replace more polymer paper inputs and remove paper-input style attributes (#18929) 2023-12-18 13:05:56 +01:00
Charles GarwoodandGitHub ff9d179c13 Minor tweak to Z-Wave JS Config Dashboard layout (#19032) 2023-12-18 12:56:30 +01:00
karwostsandGitHub e813108c66 Optional boolean service field defaults to false (#19043) 2023-12-18 12:56:01 +01:00
karwostsandGitHub 62d8cdfcf9 Fix missing tooltips in energy-usage-graph (#19031) 2023-12-18 12:52:52 +01:00
karwostsandGitHub 5b9d46e350 Add a safe mode item to the github issue template checkist (#19022) 2023-12-18 12:49:03 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
e5db95b2d2 Update vaadinWebComponents monorepo to v24.3.1 (#19052)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-18 12:08:21 +01:00
karwostsandGitHub a8f7c7c999 Fix hide legend toggle in stats graph editor (#19021) 2023-12-18 11:55:50 +01:00
c0ffeeca7andGitHub 8a423fb775 Assist, no wake word: point docs link to wake word installation proce… (#19040)
Assist, no wake word: point docs link to wake word installation procedure
2023-12-18 11:47:32 +01:00
c0ffeeca7andGitHub 90c3d69af6 No supervisor message: fix typo (#19041) 2023-12-18 11:46:44 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
bcb2d73c5c Update dependency @material/web to v1.1.1 (#19064)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-18 11:44:20 +01:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
8a6cea12e1 Bump github/codeql-action from 2 to 3 (#19072)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-18 09:23:52 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
0056de146a Update dependency @codemirror/view to v6.22.3 (#19063)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-17 19:04:01 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
0bcdbef11e Update dependency eslint-plugin-import to v2.29.1 (#19070)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-17 19:02:58 -05:00
renovate[bot]andGitHub 1b208cb531 Update dependency marked to v11.1.0 (#19054) 2023-12-15 21:12:42 -05:00
renovate[bot]andGitHub 6a975e260c Update dependency @rollup/plugin-json to v6.1.0 (#19057) 2023-12-15 21:10:09 -05:00
renovate[bot]andGitHub 02d2bde269 Update dependency @babel/helper-define-polyfill-provider to v0.4.4 (#19047) 2023-12-15 01:52:14 +00:00
renovate[bot]andGitHub 70cfa7f48a Update babel monorepo to v7.23.6 (#19046) 2023-12-14 20:41:13 -05:00
renovate[bot]andGitHub b7d4b9c21b Update typescript-eslint monorepo to v6.14.0 (#19051) 2023-12-14 20:35:42 -05:00
renovate[bot]andGitHub 673c947c11 Update dependency lit-analyzer to v2.0.2 (#19053) 2023-12-14 20:34:40 -05:00
ArnoandGitHub 2682a55148 Fixing issue #10581 Automation Debug Trace Graph not displaying right in Safari (#19036) 2023-12-14 11:53:53 +01:00
renovate[bot]andGitHub 616f6ddf5f Update dependency @koa/cors to v5 [SECURITY] (#19018) 2023-12-14 02:38:00 +00:00
renovate[bot]andGitHub 29769813bc Update dependency @codemirror/view to v6.22.2 (#19016) 2023-12-14 01:58:39 +00:00
renovate[bot]andGitHub 221c46344a Update dependency rollup-plugin-visualizer to v5.11.0 (#19025) 2023-12-13 20:46:12 -05:00
renovate[bot]andGitHub a33eb25c92 Update dependency prettier to v3.1.1 (#19027) 2023-12-13 20:45:00 -05:00
Simon LamonandGitHub 1dc61320a6 Fix Github Action labeler configuration (#19023) 2023-12-12 20:35:21 +01:00
karwostsandGitHub ad556a43f9 Sort default dashboard area cards by alphabetical order if no order specified (#18989) 2023-12-12 14:25:12 +01:00
renovate[bot]andGitHub 12e6701ffa Update dependency marked to v11.0.1 (#19007) 2023-12-11 20:56:46 -05:00
karwostsandGitHub 7167b66719 Don't leave empty arrays in the service control target (#18986) 2023-12-11 11:19:28 +01:00
dependabot[bot]andGitHub a52ba5fbd1 Bump actions/stale from 8.0.0 to 9.0.0 (#19004) 2023-12-11 08:06:47 +01:00
dependabot[bot]andGitHub 22cf903656 Bump actions/setup-python from 4 to 5 (#19005) 2023-12-11 08:05:40 +01:00
dependabot[bot]andGitHub d77b657036 Bump actions/labeler from 4.3.0 to 5.0.0 (#19003) 2023-12-11 07:46:59 +01:00
renovate[bot]andGitHub 4a3038c12c Update dependency hls.js to v1.4.13 (#18994) 2023-12-10 22:02:24 -05:00
renovate[bot]andGitHub 3ac7cd5d4a Update dependency @codemirror/state to v6.3.3 (#18984) 2023-12-09 20:57:44 -05:00
renovate[bot]andGitHub 58eddd2b42 Update dependency typescript to v5.3.3 (#18993) 2023-12-09 16:44:38 -05:00
renovate[bot]andGitHub d808da68bd Update dependency @lokalise/node-api to v12.1.0 (#18973) 2023-12-08 22:09:23 -05:00
renovate[bot]andGitHub 2ed4d1efa0 Update dependency @braintree/sanitize-url to v7 (#18975) 2023-12-08 22:00:36 -05:00
Paul Bottein fcb9e13a84 Bumped version to 20231208.2 2023-12-08 14:49:04 +01:00
Bram KragtenandGitHub 3ada2f3279 Fix label when there is no target (#18969) 2023-12-08 13:38:01 +00:00
Paul BotteinandGitHub 8d2d45ae4e Add dropdown style to hvac_modes feature (#18963) 2023-12-08 13:43:59 +01:00
c9e6963387 Fix todo url (#18954)
* Fix todo url

* Move searchParams

* Update src/panels/todo/ha-panel-todo.ts

* check if saved entity exists

---------

Co-authored-by: Bram Kragten <[email protected]>
2023-12-08 13:35:57 +01:00
Paul BotteinandGitHub 6d36b0e28c Hide climate mode control on default dashboard if there is only one hvac mode (#18964)
Hide hvac mode on default dashboard if there is only one hvac mode
2023-12-08 10:58:08 +00:00
Paul Bottein 61117bb34f Bumped version to 20231208.1 2023-12-08 10:30:33 +01:00
86a3c32844 Fix area in device picker (#18955)
Co-authored-by: Bram Kragten <[email protected]>
2023-12-08 09:17:40 +00:00
Paul BotteinandGitHub b855b3e103 Format number attribute for media player (#18949) 2023-12-08 10:14:55 +01:00
renovate[bot]andGitHub 80edeebab9 Update dependency chart.js to v4.4.1 (#18957) 2023-12-07 20:38:49 -05:00
renovate[bot]andGitHub f366e287b1 Update typescript-eslint monorepo to v6.13.2 (#18953) 2023-12-07 20:34:08 -05:00
renovate[bot]andGitHub 9ce8684aba Update dependency lint-staged to v15.2.0 (#18930) 2023-12-07 20:32:47 -05:00
renovate[bot]andGitHub caa6ea531c Update dependency @types/luxon to v3.3.7 (#18956) 2023-12-07 20:28:26 -05:00
Paul BotteinandGitHub cca1183ee3 Revert "Remove card features for humidifier and climate on default dashboard" (#18944)
* Revert "Remove card features for humidifier and climate on default dashboard (#18747)"

This reverts commit 2afd2788e2.

* Rename humidifier feature
2023-12-07 16:53:07 +01:00
Paul BotteinandGitHub 0f9c97aea0 Center login content for every screen size (#18943) 2023-12-07 13:45:05 +00:00
Paul BotteinandGitHub 8d08aa8c79 Fix tile card interaction when border width is set to 0 (#18941) 2023-12-07 14:40:23 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
eebcab435d Update dependency rollup-plugin-visualizer to v5.10.0 (#18936)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-07 11:15:26 +01:00
Bram KragtenandGitHub 76d3c6e237 Revert fetching config flow after subscribe for progress (#18939) 2023-12-07 09:31:34 +01:00
karwostsandGitHub a820ca1e90 Fix number selector display for 0 (#18927) 2023-12-06 17:03:44 +01:00
Paul Bottein 39260d172f Bumped version to 20231206.0 2023-12-06 14:23:09 +01:00
Paul BotteinandGitHub e646528b86 Fix empty classmap in state control (#18922)
* Fix empy classmap in state control

* Don't use class map
2023-12-06 14:22:32 +01:00
Bram KragtenandGitHub 86726102fb Fix issues with circular progress (#18920) 2023-12-06 14:21:28 +01:00
Bram KragtenandGitHub 1330558819 Force media player browser dialog re-layout after open animation (#18910) 2023-12-06 14:14:14 +01:00
Paul BotteinandGitHub b4ab0fc10b Reduce sensitivity of the circular slider on touch devices (#18921) 2023-12-06 14:13:19 +01:00
Paul BotteinandGitHub 15becf9ef6 Add ellipsis to thermostat and humidifier card title (#18924) 2023-12-06 13:28:03 +01:00
Paul BotteinandGitHub ef3785ce9f Fix particles over alert in login screen (#18923) 2023-12-06 13:16:47 +01:00
renovate[bot]andGitHub 134e13005d Update dependency eslint-config-prettier to v9.1.0 (#18909) 2023-12-05 18:18:46 -05:00
Bram Kragten dccd9b2541 Bumped version to 20231205.0 2023-12-05 18:07:59 +01:00
de83ad7a7a Reduce circular slider sensitivity when used in card (#18908)
Co-authored-by: Bram Kragten <[email protected]>
2023-12-05 18:06:29 +01:00
Paul BotteinandGitHub 7e55b9e6b8 Add humidifier modes and toggle feature (#18912) 2023-12-05 18:06:03 +01:00
Paul BotteinandGitHub 1b74ca47bf Add target humidity feature (#18913) 2023-12-05 16:42:07 +01:00
Bram KragtenandGitHub c3d4be9ceb wrap config validation (#18914) 2023-12-05 14:32:35 +00:00
karwostsandGitHub b8d0c7f7c7 Consistent sortable cursor (#18897) 2023-12-05 10:45:20 +01:00
karwostsandGitHub 92bce4078f Confirmation dialog for todo clear checked items (#18905) 2023-12-05 10:44:40 +01:00
Bram KragtenandGitHub ff8f0697c2 Fix media control card background image (#18891) 2023-12-05 09:15:04 +01:00
renovate[bot]andGitHub dddba7af00 Update dependency eslint to v8.55.0 (#18904) 2023-12-05 02:19:03 +00:00
karwostsandGitHub 14a49d6664 Copy to clipboard button for service response (#18872) 2023-12-04 14:24:35 +00:00
Bram KragtenandGitHub 22da402d56 Fix border radius for outlined icon button old browsers (#18888) 2023-12-04 15:17:43 +01:00
Bram KragtenandGitHub aa4acc6572 Use resize polyfill from lit virtualizer (#18886) 2023-12-04 08:34:31 -05:00
Simon LamonandGitHub 4d432fba57 Hide battery level and battery icon in tile card (#18826) 2023-12-04 14:26:45 +01:00
97b71c785b Fix use of "" on lock entity more info (use default code) (#18706)
Co-authored-by: Bram Kragten <[email protected]>
2023-12-04 13:23:11 +00:00
Paul BotteinandGitHub 8a93284bb3 Use resize-controller instead of container queries (#18885) 2023-12-04 14:16:10 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Bram Kragten
bb2abe4efc Update dependency marked to v11 (#18860)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Bram Kragten <[email protected]>
2023-12-04 13:11:51 +00:00
Simon LamonandGitHub ccada33caf Accessibility improvements for circular progress indicators (#18506) 2023-12-04 14:06:25 +01:00
ildar170975andGitHub c5f15ee6ba Update ha-chart-base.ts: fix "Tooltip: a long name may overflow" (#18849) 2023-12-04 14:05:02 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
6f240ec681 Update vaadinWebComponents monorepo to v24.2.5 (#18887)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-04 12:59:01 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
fc6aef138d Update dependency fs-extra to v11.2.0 (#18848)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-04 13:57:40 +01:00
Bram Kragten 6d0eb05954 Bumped version to 20231204.0 2023-12-04 12:08:11 +01:00
Bram KragtenandGitHub 96fbbc55e1 Make history split by device class option in history card (#18871) 2023-12-04 12:06:26 +01:00
Bram KragtenandGitHub 7e74502ba3 Add particles to login, move forgot password link (#18868) 2023-12-04 11:34:42 +01:00
Paul BotteinandGitHub b273b31b03 Don't allow yaml dashboard to be in edit mode (#18879) 2023-12-04 10:17:52 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
cf00ac74c6 Update dependency sortablejs to v1.15.1 (#18876)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-04 00:57:31 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
cc702f0fb3 Update dependency @types/luxon to v3.3.6 (#18875)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-04 00:53:54 -05:00
renovate[bot]andGitHub cc6eb5789d Update dependency clean-css to v5.3.3 (#18870) 2023-12-03 11:28:51 -05:00
renovate[bot]andGitHub 669b80a9e1 Update babel monorepo to v7.23.5 (#18865) 2023-12-02 19:41:02 -05:00
karwostsandGitHub 4c4fddee94 Fix for energy cards not refreshing hourly (#18854) 2023-12-02 23:33:04 +01:00
renovate[bot]andGitHub b28a4e6b50 Update fullcalendar monorepo to v6.1.10 (#18859) 2023-12-02 03:26:39 +00:00
renovate[bot]andGitHub bdd6a55a84 Update dependency @codemirror/commands to v6.3.2 (#18857) 2023-12-01 22:16:38 -05:00
renovate[bot]andGitHub d1ebc06994 Update typescript-eslint monorepo to v6.13.1 (#18853) 2023-12-01 22:15:42 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2a150788b4 Update typescript-eslint monorepo to v6.13.0 (#18845)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-30 15:06:07 -05:00
Bram Kragten 72caf72e80 Bumped version to 20231130.0 2023-11-30 17:18:58 +01:00
Bram KragtenandGitHub a6ff1899df Prevent double quick action (#18842) 2023-11-30 16:18:04 +00:00
Paul BotteinandGitHub 6a999597df Rename number feature to number value feature (#18836) 2023-11-30 16:17:54 +00:00
Bram KragtenandGitHub 219fc9e53a Group history by device class (#18841) 2023-11-30 17:17:26 +01:00
Bram KragtenandGitHub 861959ed2d add previous button to login screen (#18837) 2023-11-30 17:06:22 +01:00
Damian SypniewskiandGitHub f7f50294e7 Added hold and double tap actions for tile card (#18345) 2023-11-30 16:03:07 +01:00
Bram Kragten a226333c1e Update area-filter-dialog.ts 2023-11-30 15:16:01 +01:00
75f18aa69b Move disabled items always to the bottom, only change color of text, … (#18814)
* Move disabled items always to the bottom, only change color of text, dont drag disabled items

* Don't allow to drag hidden items

---------

Co-authored-by: Paul Bottein <[email protected]>
2023-11-30 14:37:10 +01:00
Simon LamonandGitHub 60ff4fdc1f Ensure helper type is always localized (#18825)
* Ensure helper type is always localized

* Remove the check
2023-11-30 14:14:13 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
8d14cb0ab7 Update vaadinWebComponents monorepo to v24.2.4 (#18835)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-30 08:12:43 -05:00
Bram KragtenandGitHub 606c809880 Update size of icon on launch screen (#18833) 2023-11-30 12:34:46 +01:00
f1692038f8 Fix developer tools set state for unexisting entity (#18827)
Co-authored-by: Bram Kragten <[email protected]>
2023-11-30 10:59:51 +00:00
Paul BotteinandGitHub 79f5ec0cd5 Fix dashboard crashed when deleting hidden area (#18832) 2023-11-30 10:59:31 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
416a2a080d Update CodeMirror (#18829)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-30 10:58:49 +00:00
Paul BotteinandGitHub 92dc8b1561 Fix map dark mode (#18830) 2023-11-30 11:47:44 +01:00
karwostsandGitHub 07b807adfc Fit map on load (#18819) 2023-11-30 10:49:40 +01:00
Simon LamonandGitHub 843430ef41 Cleanup iron resize event (#18813) 2023-11-29 21:02:57 +01:00
Bram KragtenandGitHub b5b2392dd2 Guard for no person for user (#18812) 2023-11-29 20:59:06 +01:00
karwostsandGitHub bf24740c7b Fix non-hass shouldUpdate regressions (#18810) 2023-11-29 14:28:38 +00:00
Bram Kragten 4ec11c7cf6 Bumped version to 20231129.1 2023-11-29 15:25:35 +01:00
Bram Kragten 8ff36d0ccf Merge branch 'master' into dev 2023-11-29 12:39:58 +01:00
Bram Kragten e7e465df69 Bumped version to 20231129.0 2023-11-29 12:38:24 +01:00
0c042079ed ha-selector-selector implementation (#18421)
Co-authored-by: Bram Kragten <[email protected]>
2023-11-29 11:09:49 +00:00
lunmayandGitHub a5a9bcafa7 Typo fixes: "url" -> "URL" in blueprint (#18808) 2023-11-29 11:48:20 +01:00
Bram KragtenandGitHub 867f625b0a Fix has changed for when hass is not changed (#18778) 2023-11-29 11:20:04 +01:00
3876c67588 Add translation support for script errors (#18786)
Co-authored-by: Bram Kragten <[email protected]>
2023-11-29 11:14:29 +01:00
Paul BotteinandGitHub 93158bb3af Add re-import blueprint (#18807)
* Add re-import blueprint

* Add disabled color to icon
2023-11-29 10:56:52 +01:00
schelvandGitHub 5c47d8652d Add Option For Kelvin Unit To Color Temperature Selector (#18627) 2023-11-29 10:56:44 +01:00
eda0d12867 Dev tools events layout (#18389)
Co-authored-by: Bram Kragten <[email protected]>
2023-11-29 09:51:33 +00:00
Bram KragtenandGitHub 4a53de4466 Lazy load language picker in auth and onboarding (#18806) 2023-11-29 10:50:05 +01:00
karwostsandGitHub e730649a8d Fix condition key function for template shorthand notation (#18107) 2023-11-29 10:46:22 +01:00
Steve RepsherandGitHub 3a94deef69 Fix minifying templates from dependencies (#18795) 2023-11-29 10:35:53 +01:00
Bram KragtenandGitHub c1c186d279 Cleanup event listeners (#18803) 2023-11-29 10:21:12 +01:00
Matthias AlphartandGitHub 7356db919a Default to ltr for reading direction (#18767) 2023-11-29 10:17:31 +01:00
Amit FinkelsteinandGitHub 44157a5df3 Fix map auto-fit (#18801) 2023-11-29 10:16:34 +01:00
Paul BotteinandGitHub 2acd1ff5e8 Refactor and cleanup device picker (#18804) 2023-11-29 10:01:54 +01:00
Bram KragtenandGitHub 150a5571cf Refactor and cleanup entity config page (#18797) 2023-11-29 09:19:53 +01:00
Bram KragtenandGitHub 1eb25f4829 Add import thread credentials to external bus (#18777) 2023-11-29 09:01:33 +01:00
Bram KragtenandGitHub d8d4ecf79f Refactor and clean up of device pages (#18796) 2023-11-29 09:01:11 +01:00
karwostsandGitHub 081bd98e98 Fix map autofit (#18799) 2023-11-29 00:29:52 +01:00
Robert Van GorkomandGitHub 6134f415e9 Fix race condition with picture-elements card custom elements (#18765) 2023-11-28 21:23:06 +00:00
b6a7581eca Augment history panel with Long Term Statistics (#18213)
Co-authored-by: Bram Kragten <[email protected]>
2023-11-28 22:14:05 +01:00
7727f34e8f Add area filter selector for default dashboard (#18779)
Co-authored-by: Bram Kragten <[email protected]>
2023-11-28 21:43:34 +01:00
Amit FinkelsteinandGitHub 9b20e1cf56 Avoid re-rendering map with "sources" (#18635) 2023-11-28 20:30:28 +01:00
Steve RepsherandGitHub b901ecacca Add missing Intl polyfills to modern build (#18794) 2023-11-28 19:28:10 +00:00
Simon LamonandGitHub 7691f7eb05 PolymerElement cleanup (#18793) 2023-11-28 20:25:12 +01:00
Bram KragtenandGitHub 8c0c56b954 Login page feedback (#18791) 2023-11-28 20:21:10 +01:00
karwostsandGitHub d968a20862 More disconnected callback errors (#18792) 2023-11-28 20:19:49 +01:00
9f1cd80a31 Add a Grid/List toggle for Media Browser (#18256)
Co-authored-by: Bram Kragten <[email protected]>
2023-11-28 16:34:34 +00:00
Paul BotteinandGitHub 5a9ccc5ae7 Fix humidifier more info (#18789) 2023-11-28 17:30:39 +01:00
Paul BotteinandGitHub 6d7b0c5626 Fix tile features colors (#18788) 2023-11-28 17:30:23 +01:00
karwostsandGitHub 400b8034e1 missing disconnectedCallback in energy-period-selector (#18790) 2023-11-28 17:27:08 +01:00
Bram KragtenandGitHub 05a22e3271 Keep targets when switching services (#18772) 2023-11-28 14:42:40 +01:00
Bram Kragten c1f76e0565 Update ha-authorize.ts 2023-11-28 13:44:23 +01:00
Simon LamonandGitHub 4582c3ba0a Migrate state cards from Polymer to Lit (#18257) 2023-11-28 13:30:39 +01:00
f4ee734ea3 Use new localize format (#18574)
Co-authored-by: Bram Kragten <[email protected]>
2023-11-28 12:29:41 +00:00
Bram Kragten 2087028c47 Update home.markdown 2023-11-28 13:24:09 +01:00
37a56b250a Add multiple option to text selector (#18785)
* Add multiple option to text selector

* Make multiple optional

* Update src/components/ha-selector/ha-selector-text.ts

Co-authored-by: Bram Kragten <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
2023-11-28 11:28:29 +01:00
Márton BraunandGitHub 71a41be20a Add fit_zones parameter to map card (#18760) 2023-11-28 11:04:43 +01:00
Bram KragtenandGitHub ffb19b31a5 Use subscribe for todo items (#18776) 2023-11-28 08:28:13 +01:00
Bram KragtenandGitHub db68c7faa9 Log errors when downloading lokalise translations (#18781) 2023-11-28 08:21:19 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
07ae958eb0 Update dependency vis-data to v7.1.9 (#18783)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-27 19:16:43 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
b62b5f6575 Update dependency rollup-plugin-visualizer to v5.9.3 (#18782)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-27 19:15:00 -05:00
Bram KragtenandGitHub 2e1fb9df66 Update design of login page (#18770) 2023-11-27 23:06:51 +01:00
Bram Kragten 31c91cea9a Update translations_upload_base 2023-11-27 17:59:13 +01:00
Bram KragtenandGitHub 9dc844ca28 Dont change pipeline if local storage changes (#18773) 2023-11-27 15:42:07 +01:00
02ebc028c8 Add custom card names to the edit card dialog header (#18750)
Co-authored-by: Bram Kragten <[email protected]>
2023-11-27 15:30:39 +01:00
karwostsandGitHub 5d35605b82 Filter energy card updates with shouldUpdate (#18763) 2023-11-27 15:29:15 +01:00
Bram KragtenandGitHub 22e86af5b3 Fix race condition with Data Entry Flow Progress (#18775) 2023-11-27 11:28:49 +01:00
dependabot[bot]andGitHub 8c39ed46a8 Bump dessant/lock-threads from 5.0.0 to 5.0.1 (#18769) 2023-11-27 07:40:59 +01:00
Raman GuptaandGitHub 5965c3fdaa Add alert to zwave_js device info page for custom device config (#18686) 2023-11-26 11:09:02 +01:00
renovate[bot]andGitHub 15a5d2bc38 Update dependency @bundle-stats/plugin-webpack-filter to v4.8.3 (#18761) 2023-11-25 22:22:03 -05:00
Paul BotteinandGitHub 0432cc95fc Allow overriding blueprints (#18718) 2023-11-25 11:49:58 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
6dafaac021 Update dependency @types/sortablejs to v1.15.7 (#18756)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-25 00:03:20 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
d8929c9252 Update dependency @types/mocha to v10.0.6 (#18755)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-25 00:02:42 -05:00
renovate[bot]andGitHub 5fa3a720b3 Update dependency @bundle-stats/plugin-webpack-filter to v4.8.2 (#18752) 2023-11-24 23:34:03 -05:00
renovate[bot]andGitHub 6d3b838b6a Update dependency @types/leaflet-draw to v1.0.11 (#18753) 2023-11-24 23:33:03 -05:00
Bram KragtenandGitHub 58e0179321 Add local login flow (#18717) 2023-11-24 17:22:05 +01:00
Paul BotteinandGitHub eaf7e29b8a Fix thermostat humidifier card size (#18749) 2023-11-24 16:27:01 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
260f1df1b9 Update babel monorepo to v7.23.4 (#18730)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-24 15:58:57 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
a88a4ef82c Update dependency typescript to v5.3.2 (#18736)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-24 15:57:57 +01:00
Steve RepsherandGitHub 075cca5991 Inject polyfills where used (#18719) 2023-11-24 15:57:21 +01:00
Simon LamonandGitHub 1d2dc37f75 Migrate push notification toggle from Polymer to Lit (#18565) 2023-11-24 15:47:09 +01:00
Paul BotteinandGitHub 3da7025d78 Improve search for single character (#18748) 2023-11-24 14:37:59 +00:00
Paul BotteinandGitHub 15b1d8ee14 Move more info control component to state control (#18745) 2023-11-24 14:33:11 +00:00
239d8fa948 Fix card-picker search for single character (#18733)
* Fix card-picker search for single character

* Update src/panels/lovelace/editor/card-editor/hui-card-picker.ts

Co-authored-by: Paul Bottein <[email protected]>

---------

Co-authored-by: Bram Kragten <[email protected]>
Co-authored-by: Paul Bottein <[email protected]>
2023-11-24 15:23:27 +01:00
Bram KragtenandGitHub 1de2e6161d Make thermostat centered in panel or grid view (#18731)
* Make thermostat centered in panel or grid view

* Update hui-humidifier-card.ts
2023-11-24 14:17:06 +01:00
Paul BotteinandGitHub 3e7f008277 Rename tile features to card features (#18732) 2023-11-24 13:36:58 +01:00
G JohanssonandGitHub 31a93d360d Make lock default code a password field (#18722) 2023-11-24 13:11:18 +01:00
Paul BotteinandGitHub 2afd2788e2 Remove card features for humidifier and climate on default dashboard (#18747) 2023-11-24 12:53:41 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
322fa99147 Update dependency @types/tar to v6.1.10 (#18742)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-24 11:13:49 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
c43ad52ff1 Update dependency @types/sortablejs to v1.15.6 (#18741)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-24 12:03:01 +01:00
Paul BotteinandGitHub 6aa9737481 Fix ha control select option size (#18746) 2023-11-24 12:02:44 +01:00
renovate[bot]andGitHub 7d9d6b99d9 Update dependency @types/luxon to v3.3.5 (#18739) 2023-11-24 03:46:28 +00:00
renovate[bot]andGitHub 9c69e6f87c Update dependency @types/mocha to v10.0.5 (#18740) 2023-11-23 22:36:00 -05:00
renovate[bot]andGitHub 0c90021895 Update typescript-eslint monorepo to v6.12.0 (#18734) 2023-11-23 21:59:42 -05:00
Paul BotteinandGitHub 9163b9c124 Add new design to humidifier card (#18711) 2023-11-23 00:37:19 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
61717e1529 Update dependency core-js to v3.33.3 (#18721)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-22 13:38:08 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
168d418c27 Update dependency @bundle-stats/plugin-webpack-filter to v4.8.1 (#18720)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-22 13:36:11 -05:00
Paul BotteinandGitHub c787c920fc Add new design to thermostat card (#18709)
* Add new design for thermostat card

* Add feature to thermostat card

* Fix margin

* Add current

* use big number component

* Add current

* Fix translations

* Add theme and name options

* Reduce margin on small card

* Fix types

* Add hvac mode to default dashboard

* Don't put feature full size

* Full width for features

* Improve design on small screen
2023-11-22 14:42:42 +01:00
Steve RepsherandGitHub 1526209f82 Adjust bundle filenames for stats and debugging (#18677) 2023-11-22 14:11:23 +01:00
Steve RepsherandGitHub cf355c419d Fix Babel runtime helper injections (#18698) 2023-11-22 14:10:28 +01:00
Paul BotteinandGitHub eef024587b Use entity component translations for update entity (#18608) 2023-11-22 12:43:33 +01:00
270d463d02 Add configuration to default dashboard (#18658)
Co-authored-by: Simon Lamon <[email protected]>
2023-11-22 12:40:17 +01:00
renovate[bot]andGitHub 0735705dd3 Update dependency eslint to v8.54.0 (#18707) 2023-11-20 19:21:17 -05:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Franck Nijhof
0a1dbe6d9d Bump dessant/lock-threads from 4.0.1 to 5.0.0 (#18699)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Franck Nijhof <[email protected]>
2023-11-20 08:47:54 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Steve Repsher
15395275ba Update dependency prettier to v3.1.0 (#18675)
* Update dependency prettier to v3.1.0

* Reformat

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2023-11-19 23:31:56 -05:00
6e66ba202f Add a button to delete all refresh tokens (#18680)
Co-authored-by: Bram Kragten <[email protected]>
2023-11-19 13:32:25 +01:00
karwostsandGitHub 5ebe1e0369 Add shortcut from energy dashboard to energy settings (#18596) 2023-11-19 13:31:55 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
860ab7a3ba Lock file maintenance (#18696)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-18 22:50:36 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
d499640304 Update dependency @lezer/highlight to v1.2.0 (#18672)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-18 22:28:46 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
4f3f516767 Update dependency rrule to v2.8.1 (#18648)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-18 21:06:30 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
0996dbf2a1 Update formatjs monorepo (#18684)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-18 21:37:37 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
bc59e52cea Update dependency marked to v10 (#18651)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-18 16:33:31 -05:00
wittypluckandGitHub b8d4e957e2 Add logarithmic scale option to Statistics and History graph cards (#18637) 2023-11-18 17:31:29 +01:00
karwostsandGitHub 8002ec75bc Temporarily filter cleared statistics from devtools table (#18694) 2023-11-18 17:30:48 +01:00
karwostsandGitHub a45eefa742 Add live camera & custom AR to Area card (#18643) 2023-11-18 17:26:21 +01:00
Jan BouwhuisandGitHub a1236924aa Ensure websocket_api error messages shows longer (#18690) 2023-11-17 20:35:08 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
9320e8c1a3 Update Yarn to v4.0.2 (#18687)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-17 11:35:32 -05:00
karwostsandGitHub addcd3a983 Typo in bug_report.yml (#18681)
Update bug_report.yml
2023-11-17 15:53:12 +01:00
Paul BotteinandGitHub e1dc73e992 Fix yaml editor lovelace (#18664) 2023-11-16 18:55:09 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
ba8849ed4d Update typescript-eslint monorepo to v6.11.0 (#18679)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-16 12:48:12 -05:00
Thomas LovénandGitHub 36bca04341 Polyfill ElementInternals for material-web components. Fix #18600 (#18638) 2023-11-16 18:17:41 +01:00
Simon LamonandGitHub fb95de1f73 Add translations for the developer tools statistic issues (#18646) 2023-11-16 18:16:51 +01:00
karwostsandGitHub 3addfc3548 Localization bugfixes in config devices/entities/helpers (#18645) 2023-11-16 18:13:31 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
e2e80d1f49 Update vaadinWebComponents monorepo to v24.2.3 (#18678)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-16 12:03:38 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
a96eba2637 Update dependency @lit-labs/virtualizer to v2.0.11 (#18583)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-16 11:55:24 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
274810b954 Update dependency luxon to v3.4.4 (#18674)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-16 11:40:03 -05:00
Paul BotteinandGitHub 842df983c3 Add new dashboard dialog (#18657)
* Add new dashboard dialog

* Update default dashboard wording
2023-11-16 13:43:55 +01:00
Simon LamonandGitHub 0eeadcd31a Replace paper-input in cast (#18647) 2023-11-16 12:39:54 +01:00
Josh McCartyandGitHub 8d37c5612b Move attribute pre styles to ha-attribute-value component (#18649) 2023-11-16 12:28:45 +01:00
dniklesandGitHub e94461f7fe Update dialog-add-integration.ts (#18615) 2023-11-16 12:18:18 +01:00
Bram KragtenandGitHub f5edee1e91 Add support for warnings in check_config (#18489) 2023-11-16 12:17:14 +01:00
Paul BotteinandGitHub 98cdbb4559 Add minimal UI for climate and water entity without target (#18666) 2023-11-16 12:16:37 +01:00
Paul BotteinandGitHub f3f63d95b5 Restore map filter theme (#18667) 2023-11-16 12:12:17 +01:00
karwostsandGitHub 244340f211 Allow search for integration name in log search (#18668) 2023-11-16 12:08:10 +01:00
Paul BotteinandGitHub 75626431b1 Improve ripple background color for tile card (#18579) 2023-11-16 10:57:24 +01:00
Allen PorterandGitHub 244868348b Delete To-do items in a batched single request (#18662) 2023-11-16 09:52:03 +01:00
renovate[bot]andGitHub a909c6d905 Update formatjs monorepo (#18663) 2023-11-15 20:49:16 -05:00
Michael HansenandGitHub f2efff9d71 Use stt-vad-end event in assist debug panel (#18671)
* Use stt-vad-end event in assist debug panel

* Remove end_suffix
2023-11-15 21:36:49 +00:00
karwostsandGitHub 08a7a10e1c Don't save new automation when save dialog is cancelled (#18655) 2023-11-15 18:03:47 +01:00
Simon LamonandGitHub b35e5abd83 Fix Edit Area dialog doesn't save area (#18659)
secondary action
2023-11-15 18:00:35 +01:00
karwostsandGitHub 291e9fc0a2 Fix onboarding password form (#18665) 2023-11-15 17:58:22 +01:00
Paul BotteinandGitHub de370d6384 Add todo entity_id in URL (#18653) 2023-11-15 11:26:03 +01:00
Paul BotteinandGitHub 1cf928b425 Improve Lovelace types (#18652) 2023-11-15 11:13:49 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
b9c62c34a0 Update dependency lint-staged to v15.1.0 (#18660)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-15 10:49:33 +01:00
renovate[bot]andGitHub 37554213dc Update dependency @bundle-stats/plugin-webpack-filter to v4.8.0 (#18654) 2023-11-14 20:37:44 -05:00
renovate[bot]andGitHub 3845fd2ef9 Update dependency @types/tar to v6.1.9 (#18650) 2023-11-14 20:35:55 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
837b36a430 Update dependency marked to v9.1.6 (#18644)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-13 19:46:13 +01:00
karwostsandGitHub bff09a7a36 Fix login password form (#18619) 2023-11-13 19:45:34 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
a5e5efa526 Update dependency @codemirror/autocomplete to v6.11.0 (#18633)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-12 22:29:54 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1cd5b9ff37 Update babel monorepo to v7.23.3 (#18632)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-12 21:16:45 -05:00
renovate[bot]andGitHub 6a11155dd7 Update dependency vis-data to v7.1.8 (#18625) 2023-11-11 21:09:28 -05:00
renovate[bot]andGitHub 1acb76d2f0 Update dependency @types/leaflet to v1.9.8 (#18622) 2023-11-12 02:07:18 +00:00
renovate[bot]andGitHub 2e8a40efd5 Update dependency @types/ua-parser-js to v0.7.39 (#18616) 2023-11-11 20:58:50 -05:00
renovate[bot]andGitHub 845a0e4e39 Update dependency @types/js-yaml to v4.0.9 (#18621) 2023-11-11 20:56:30 -05:00
Paul BotteinandGitHub 9417f13cc9 Add unit for number tile feature (#18602) 2023-11-10 19:30:07 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
d3f52f3bc0 Update dependency @types/tar to v6.1.8 (#18614)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-10 18:17:57 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
7d0ec00fde Update dependency @types/sortablejs to v1.15.5 (#18613)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-10 13:06:13 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
6dbb5dd4be Update dependency @types/qrcode to v1.5.5 (#18610)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-10 13:05:36 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
f30e7948cb Update dependency @types/luxon to v3.3.4 (#18605)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-10 13:04:49 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
41472d8160 Update dependency @types/serve-handler to v6.1.4 (#18612)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-10 12:43:05 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
e596d32426 Update dependency @types/mocha to v10.0.4 (#18606)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-10 12:41:33 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
89de62812f Update dependency @types/leaflet-draw to v1.0.10 (#18603)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-10 12:39:56 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
3e391fcbe6 Update dependency @types/html-minifier-terser to v7.0.2 (#18601)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-10 12:37:31 -05:00
karwostsandGitHub 708ab2ed69 Localize hide/show password (#18607) 2023-11-10 18:12:36 +01:00
Paul BotteinandGitHub 1d45cb78fe Rename tooltipUnit to unit for slider (#18599) 2023-11-10 18:08:12 +01:00
d3f6ebd1d0 Add unit to temperature tile number button group (#17841)
* Add unit to temperature tile number button group

* Update gallery

* Use blank before unit

* Hide unit if no space

* Fix build

---------

Co-authored-by: Paul Bottein <[email protected]>
2023-11-10 14:22:10 +01:00
21644c70b3 Add number tile feature (#18562)
* hui-number-tile-feature

* Added support for number domain

* Apply suggestions from code review (thanks @piitaya)

Co-authored-by: Paul Bottein <[email protected]>

* Fixed the callback to use the correct service

* fix formatting

---------

Co-authored-by: Paul Bottein <[email protected]>
2023-11-10 08:34:29 +00:00
karwostsandGitHub eb75389cac Localize clear in entity filter (#18598)
Localize  in entity filter
2023-11-10 08:27:36 +01:00
Bram KragtenandGitHub cd4f3a091b Fix add device dialog (#18591) 2023-11-10 08:27:02 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
19c1973ec1 Update dependency @types/chromecast-caf-sender to v1.0.8 (#18597)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-10 03:35:04 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
a8efbe5b06 Update dependency @types/chromecast-caf-receiver to v6.0.12 (#18595)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-10 03:22:14 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
44b5c66c19 Update dependency @types/babel__plugin-transform-runtime to v7.9.5 (#18594)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-09 22:08:58 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
3fa3bba4d8 Update formatjs monorepo (#18592)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-09 22:07:01 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
ab09c821a2 Update typescript-eslint monorepo to v6.10.0 (#18586)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-09 22:05:26 -05:00
18b5215ce6 Only update dev tools yaml editor on entity change or submit (#18575)
Co-authored-by: Simon Lamon <[email protected]>
2023-11-09 18:24:45 +01:00
Bram Kragten 00a311bd63 Bumped version to 20231030.2 2023-11-09 18:23:17 +01:00
tzagimandBram Kragten 749c2ab8ac Fix for RTL (#18509) 2023-11-09 18:22:27 +01:00
Kendell RandBram Kragten d06fdeb265 Fix "ttme" typo on the demo page (#18543) 2023-11-09 18:22:12 +01:00
Simon LamonandBram Kragten 06d76be2c2 Fix refresh in developer state tools (#18532) 2023-11-09 18:21:50 +01:00
David BellandBram Kragten 6728e8d107 Don't display hidden/non-visible calendars on the Calendar panel (#18541) 2023-11-09 18:21:32 +01:00
Kendell RandBram Kragten 533e2bed8a Properly set direction styles (#18483) 2023-11-09 18:20:44 +01:00
karwostsandBram Kragten 310a08f3e6 Fix choose add option (#18493) 2023-11-09 18:19:19 +01:00
Paul BotteinandBram Kragten 0566889a1e Use strict comparison for above condition in conditional card (#18560) 2023-11-09 18:18:37 +01:00
Paul BotteinandGitHub 37b7395986 Migrate chips to Material 3 chips. (#18513) 2023-11-09 17:57:37 +01:00
Bram KragtenandGitHub 4933413140 Fix virtualizer with v2.0.10 (#18584) 2023-11-09 11:53:35 -05:00
Bram KragtenandGitHub 1c16bd5ab2 rollback lit-labs/virtualizer to 2.0.8 (#18580) 2023-11-09 16:26:09 +01:00
Paul BotteinandGitHub 3a926c6f83 Add pointer-events none to slider tooltip (#18577) 2023-11-09 14:57:23 +01:00
7a619ad55a Only update dev tools yaml editor on entity change or submit (#18575)
Co-authored-by: Simon Lamon <[email protected]>
2023-11-09 10:00:24 +01:00
Paul BotteinandGitHub bc21425981 Add tooltip to tile sliders and more info sliders (#18567) 2023-11-08 12:47:55 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
f2505c0798 Update dependency eslint to v8.53.0 (#18558)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-08 11:48:22 +01:00
Steve RepsherandGitHub cee8c756fc Remove dependency esprima (#18564) 2023-11-08 11:24:03 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
396b3aace9 Update dependency @codemirror/view to v6.22.0 (#18553)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-07 18:02:11 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
28dc1e4da9 Update vaadinWebComponents monorepo to v24.2.2 (#18552)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-07 17:59:54 -05:00
Kendell RandGitHub aa0419e783 Minify logos (#18542) 2023-11-07 13:39:38 +01:00
Jan BouwhuisandGitHub fd9c24d05e Add localization to service call exceptions (#18447) 2023-11-07 12:04:53 +01:00
Paul BotteinandGitHub 8bdbe8c6a6 Use strict comparison for above condition in conditional card (#18560) 2023-11-07 12:04:04 +01:00
Steve RepsherandGitHub 39550cefa0 Add some Renovate groups and enable NVM updates (#18559) 2023-11-07 11:53:47 +01:00
David BellandGitHub 589e3b63c7 Don't display hidden/non-visible calendars on the Calendar panel (#18541) 2023-11-06 15:09:54 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
0cc38278b9 Update dependency @lit-labs/virtualizer to v2.0.10 (#18547)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-06 15:56:45 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
aafdf7bed7 Update dependency vis-network to v9.1.9 (#18548)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-06 15:55:24 +01:00
Simon LamonandGitHub a7f6ce3079 Fix refresh in developer state tools (#18532) 2023-11-06 15:53:23 +01:00
karwostsandGitHub 3d03f74d66 Improve template trigger/condition descriptions (#18504) 2023-11-06 10:04:58 +01:00
tzagimandGitHub e09a6a23fc Fix for RTL (#18509) 2023-11-06 10:02:44 +01:00
Kendell RandGitHub 9e4bb6ed0c Fix "ttme" typo on the demo page (#18543) 2023-11-06 10:02:00 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
c45c8ab5c0 Update dependency sinon to v17.0.1 (#18535)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-05 14:16:21 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
5ef6973933 Update dependency marked to v9.1.5 (#18523)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-05 14:14:50 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1df344580a Update dependency eslint-plugin-lit-a11y to v4.1.1 (#18534)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-05 14:13:25 -05:00
renovate[bot]andGitHub 25acc479b9 Update dependency core-js to v3.33.2 (#18515) 2023-11-02 20:54:59 -04:00
renovate[bot]andGitHub c9f051374b Update dependency punycode to v2.3.1 (#18516) 2023-11-02 20:50:03 -04:00
renovate[bot]andGitHub bf5116fc0b Update typescript-eslint monorepo to v6.9.1 (#18518) 2023-11-02 20:47:03 -04:00
renovate[bot]andGitHub edc8cb1d2e Update dependency @rollup/plugin-replace to v5.0.5 (#18505) 2023-11-02 20:42:05 -04:00
Bram KragtenandGitHub a60bb3ae0a Clean up auth flow translation placeholders (#18502) 2023-11-02 21:02:42 +01:00
Paul BotteinandGitHub 784f753f07 Display default action label in action selector (#18398) 2023-11-02 16:10:15 +01:00
Paul BotteinandGitHub e63c7e3763 Add trigger selector for blueprint (#18469) 2023-11-02 16:01:59 +01:00
karwostsandGitHub cfa522068c Localize trigger condition and add list formatting (#18488) 2023-11-01 15:42:43 +01:00
schelvandGitHub 5f2375fe84 feat: Dynamically adjust gradient percentages based on min/max values (#18479) 2023-11-01 15:41:26 +01:00
Kendell RandGitHub a9e34d7590 Stop using ha-markdown on the auth page (#18480) 2023-11-01 15:36:17 +01:00
Paul BotteinandGitHub 463cfb869f Add and and or condition to conditional card (#18409) 2023-11-01 15:28:37 +01:00
Paul BotteinandGitHub acb5a2b283 Add test button to conditional card (#18411) 2023-11-01 15:25:56 +01:00
Bram KragtenandGitHub 08597d6e91 Bump node to v20 (#18497) 2023-11-01 15:22:23 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Steve RepsherBram Kragten
9478485268 Update Yarn to v4 (#18414)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
2023-11-01 10:16:46 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
0af9ec2fff Pin dependencies (#18498)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-01 09:51:15 +00:00
Kendell RandGitHub f6e74de05e Properly set direction styles (#18483) 2023-11-01 10:38:02 +01:00
Bram KragtenandGitHub 8b0373d5c0 Revert bump to @lit/[email protected] (#18496) 2023-11-01 10:35:50 +01:00
Bram Kragten ddca7584ef Bumped version to 20231030.1 2023-11-01 10:21:08 +01:00
karwostsandBram Kragten e6cfe74cac Fix choose add option (#18493) 2023-11-01 10:20:25 +01:00
karwostsandGitHub d4218250af Fix choose add option (#18493) 2023-11-01 09:37:26 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Steve Repsher
78783942be Update dependency @lit-labs/observers to v2.0.2 (#18484)
* Update dependency @lit-labs/observers to v2.0.2

* Resolve @lit/reactive-element to v1

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2023-10-31 14:42:28 -04:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Steve Repsher
17ad8013ca Update dependency @lit-labs/context to v0.5.1 (#18208)
* Update dependency @lit-labs/context to v0.5.1

* Switch to @lit/context and resolve reactive-element to v1

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2023-10-31 13:53:53 -04:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Steve Repsher
f70767f084 Update dependency @lit-labs/motion to v1.0.6 (#18205)
* Update dependency @lit-labs/motion to v1.0.6

* Resolve to lit v2

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2023-10-31 14:31:42 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Steve Repsher
3972394d82 Update dependency @lit-labs/virtualizer to v2.0.9 (#18206)
* Update dependency @lit-labs/virtualizer to v2.0.9

* Resolve to lit v2

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <[email protected]>
2023-10-31 13:22:54 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
5331fb4f5f Update dependency marked to v9.1.3 (#18485)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-31 08:44:18 -04:00
Matthias de BaatandGitHub 16df352ba8 Update ha-dialogs.markdown (#18487) 2023-10-31 12:27:46 +00:00
Bram KragtenandGitHub 3b553a3a4b 20231030.0 (#18478) 2023-10-30 21:45:08 +01:00
Bram Kragten 8e1e75dee1 Bumped version to 20231030.0 2023-10-30 21:44:17 +01:00
Bram KragtenandGitHub d27b4e04a9 Adapt to new todo services (#18477) 2023-10-30 20:32:32 +00:00
36f7b34ac5 Use trigger and condition type translation labels (#18413)
Co-authored-by: Bram Kragten <[email protected]>
2023-10-30 20:54:30 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
c0ff24bf1b Update dependency ua-parser-js to v1.0.37 (#18473)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-30 12:29:17 -04:00
abb5aa348f Allow individual item deletion in To-do list (#18464)
Co-authored-by: Bram Kragten <[email protected]>
2023-10-30 14:21:29 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Bram Kragten
37ab5cbdc3 Update dependency fuse.js to v7 (#18462)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Bram Kragten <[email protected]>
2023-10-30 15:09:12 +01:00
Bram KragtenandGitHub 42be3b331c Fix buttons (#18472) 2023-10-30 13:56:48 +01:00
Paul BotteinandGitHub 71e05f79c2 Update ts-lit-plugin to 2.0.1 (#18471) 2023-10-30 13:40:07 +01:00
karwostsandGitHub c5a0a5bbbf Fix statistics bar chart time axis (#18450) 2023-10-30 13:39:15 +01:00
Bram KragtenandGitHub 3d674cf237 20231027.0 (#18448) 2023-10-27 16:55:37 +02:00
Paul BotteinandGitHub 4e6e924a40 20231026.0 (#18431) 2023-10-26 15:57:36 +02:00
Bram KragtenandGitHub 073ead5828 20231025.1 (#18399) 2023-10-25 13:59:53 +02:00
Bram KragtenandGitHub fdaefadd18 20231025.0 (#18395) 2023-10-25 12:17:22 +02:00
998 changed files with 33394 additions and 23935 deletions
+2 -1
View File
@@ -9,7 +9,7 @@ body:
If you have a feature or enhancement request for the frontend, please [start an discussion][fr] instead of creating an issue.
**Please not not report issues for custom cards.**
**Please do not report issues for custom cards.**
[fr]: https://github.com/home-assistant/frontend/discussions
[releases]: https://github.com/home-assistant/home-assistant/releases
@@ -24,6 +24,7 @@ body:
required: true
- label: I have tried a different browser to see if it is related to my browser.
required: true
- label: I have tried reproducing the issue in [safe mode](https://www.home-assistant.io/blog/2023/11/01/release-202311/#restarting-into-safe-mode) to rule out problems with unsupported custom resources.
- type: markdown
attributes:
value: |
+38 -18
View File
@@ -1,31 +1,51 @@
Build:
- build-scripts/**
- .browserslistrc
- gulpfile.js
- changed-files:
- any-glob-to-any-file:
- build-scripts/**
- .browserslistrc
- gulpfile.js
Cast:
- cast/src/**
- src/cast/**
- changed-files:
- any-glob-to-any-file:
- cast/src/**
- src/cast/**
Demo:
- demo/src/**
- src/fake_data/**
- changed-files:
- any-glob-to-any-file:
- demo/src/**
- src/fake_data/**
Design:
- gallery/src/**
- src/fake_data/**
- changed-files:
- any-glob-to-any-file:
- gallery/src/**
- src/fake_data/**
Dependencies:
- package.json
- renovate.json
- yarn.lock
- .yarn/**
- .yarnrc.yml
- .nvmrc
- any:
- changed-files:
# Match when only these files are changed (i.e. don't match PRs that happen to add or remove packages)
- any-glob-to-all-files:
- package.json
- renovate.json
- yarn.lock
- .yarn/**
- .yarnrc.yml
- .nvmrc
# Dependabot and Renovate branches always match (i.e. compatibility tweaks by members considered minor)
- head-branch:
- "^renovate/"
- "^dependabot/"
GitHub Actions:
- .github/workflows/**
- .github/*.yml
- changed-files:
- any-glob-to-any-file:
- .github/workflows/**
- .github/*.yml
Supervisor:
- hassio/src/**
- changed-files:
- any-glob-to-any-file:
- hassio/src/**
+2 -2
View File
@@ -26,7 +26,7 @@ jobs:
ref: dev
- name: Setup Node
uses: actions/[email protected].0
uses: actions/[email protected].1
with:
node-version-file: ".nvmrc"
cache: yarn
@@ -62,7 +62,7 @@ jobs:
ref: master
- name: Setup Node
uses: actions/[email protected].0
uses: actions/[email protected].1
with:
node-version-file: ".nvmrc"
cache: yarn
+11 -8
View File
@@ -26,7 +26,7 @@ jobs:
- name: Check out files from GitHub
uses: actions/[email protected]
- name: Setup Node
uses: actions/[email protected].0
uses: actions/[email protected].1
with:
node-version-file: ".nvmrc"
cache: yarn
@@ -37,17 +37,20 @@ 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/[email protected].2
uses: actions/[email protected].3
with:
path: |
node_modules/.cache/prettier
node_modules/.cache/eslint
node_modules/.cache/typescript
key: lint-${{ github.sha }}
restore-keys: lint-
- name: Run eslint
run: yarn run lint:eslint --quiet
- name: Run tsc
run: yarn run lint:types
- name: Run lit-analyzer
run: yarn run lint:lit --quiet
- name: Run prettier
run: yarn run lint:prettier
test:
@@ -57,14 +60,14 @@ jobs:
- name: Check out files from GitHub
uses: actions/[email protected]
- name: Setup Node
uses: actions/[email protected].0
uses: actions/[email protected].1
with:
node-version-file: ".nvmrc"
cache: yarn
- name: Install dependencies
run: yarn install --immutable
- name: Build resources
run: ./node_modules/.bin/gulp build-translations build-locale-data
run: ./node_modules/.bin/gulp gen-icons-json build-translations build-locale-data
- name: Run Tests
run: yarn run test
build:
@@ -75,7 +78,7 @@ jobs:
- name: Check out files from GitHub
uses: actions/[email protected]
- name: Setup Node
uses: actions/[email protected].0
uses: actions/[email protected].1
with:
node-version-file: ".nvmrc"
cache: yarn
@@ -86,7 +89,7 @@ jobs:
env:
IS_TEST: "true"
- name: Upload bundle stats
uses: actions/upload-artifact@v3.1.3
uses: actions/upload-artifact@v4.1.0
with:
name: frontend-bundle-stats
path: build/stats/*.json
@@ -99,7 +102,7 @@ jobs:
- name: Check out files from GitHub
uses: actions/[email protected]
- name: Setup Node
uses: actions/[email protected].0
uses: actions/[email protected].1
with:
node-version-file: ".nvmrc"
cache: yarn
@@ -110,7 +113,7 @@ jobs:
env:
IS_TEST: "true"
- name: Upload bundle stats
uses: actions/upload-artifact@v3.1.3
uses: actions/upload-artifact@v4.1.0
with:
name: supervisor-bundle-stats
path: build/stats/*.json
+3 -3
View File
@@ -36,14 +36,14 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
uses: github/codeql-action/autobuild@v3
# ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
@@ -57,4 +57,4 @@ jobs:
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
uses: github/codeql-action/analyze@v3
+2 -2
View File
@@ -27,7 +27,7 @@ jobs:
ref: dev
- name: Setup Node
uses: actions/[email protected].0
uses: actions/[email protected].1
with:
node-version-file: ".nvmrc"
cache: yarn
@@ -63,7 +63,7 @@ jobs:
ref: master
- name: Setup Node
uses: actions/[email protected].0
uses: actions/[email protected].1
with:
node-version-file: ".nvmrc"
cache: yarn
+1 -1
View File
@@ -19,7 +19,7 @@ jobs:
uses: actions/[email protected]
- name: Setup Node
uses: actions/[email protected].0
uses: actions/[email protected].1
with:
node-version-file: ".nvmrc"
cache: yarn
+1 -1
View File
@@ -24,7 +24,7 @@ jobs:
uses: actions/[email protected]
- name: Setup Node
uses: actions/[email protected].0
uses: actions/[email protected].1
with:
node-version-file: ".nvmrc"
cache: yarn
+1 -1
View File
@@ -10,6 +10,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Apply labels
uses: actions/labeler@v4.3.0
uses: actions/labeler@v5.0.0
with:
sync-labels: true
+2 -1
View File
@@ -9,9 +9,10 @@ jobs:
lock:
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@v4.0.1
- uses: dessant/lock-threads@v5.0.1
with:
github-token: ${{ github.token }}
process-only: "issues, prs"
issue-lock-inactive-days: "30"
issue-exclude-created-before: "2020-10-01T00:00:00Z"
issue-lock-reason: ""
+5 -5
View File
@@ -23,12 +23,12 @@ jobs:
uses: actions/[email protected]
- name: Set up Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Setup Node
uses: actions/[email protected].0
uses: actions/[email protected].1
with:
node-version-file: ".nvmrc"
cache: yarn
@@ -42,7 +42,7 @@ jobs:
LOKALISE_TOKEN: ${{ secrets.LOKALISE_TOKEN }}
- name: Bump version
run: script/version_bump.cjs nightly
run: script/version_bump.js nightly
- name: Build nightly Python wheels
run: |
@@ -57,14 +57,14 @@ jobs:
run: tar -czvf translations.tar.gz translations
- name: Upload build artifacts
uses: actions/upload-artifact@v3.1.3
uses: actions/upload-artifact@v4.1.0
with:
name: wheels
path: dist/home_assistant_frontend*.whl
if-no-files-found: error
- name: Upload translations
uses: actions/upload-artifact@v3.1.3
uses: actions/upload-artifact@v4.1.0
with:
name: translations
path: translations.tar.gz
+3 -3
View File
@@ -29,12 +29,12 @@ jobs:
uses: home-assistant/actions/helpers/verify-version@master
- name: Set up Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Setup Node
uses: actions/[email protected].0
uses: actions/[email protected].1
with:
node-version-file: ".nvmrc"
cache: yarn
@@ -74,7 +74,7 @@ jobs:
echo "home-assistant-frontend==$version" > ./requirements.txt
- name: Build wheels
uses: home-assistant/wheels@2023.10.5
uses: home-assistant/wheels@2024.01.0
with:
abi: cp311
tag: musllinux_1_2
+1 -1
View File
@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: 90 days stale policy
uses: actions/stale@v8.0.0
uses: actions/stale@v9.0.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 90
+1 -1
View File
@@ -1 +1 @@
18
lts/iron
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-874
View File
File diff suppressed because one or more lines are too long
+893
View File
File diff suppressed because one or more lines are too long
+5 -7
View File
@@ -1,11 +1,9 @@
compressionLevel: mixed
defaultSemverRangePrefix: ""
enableGlobalCache: false
nodeLinker: node-modules
plugins:
- path: .yarn/plugins/@yarnpkg/plugin-typescript.cjs
spec: "@yarnpkg/plugin-typescript"
- path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
spec: "@yarnpkg/plugin-interactive-tools"
yarnPath: .yarn/releases/yarn-3.6.4.cjs
yarnPath: .yarn/releases/yarn-4.0.2.cjs
@@ -0,0 +1,56 @@
import defineProvider from "@babel/helper-define-polyfill-provider";
// List of polyfill keys with supported browser targets for the functionality
const PolyfillSupport = {
fetch: {
android: 42,
chrome: 42,
edge: 14,
firefox: 39,
ios: 10.3,
opera: 29,
opera_mobile: 29,
safari: 10.1,
samsung: 4.0,
},
proxy: {
android: 49,
chrome: 49,
edge: 12,
firefox: 18,
ios: 10.0,
opera: 36,
opera_mobile: 36,
safari: 10.0,
samsung: 5.0,
},
};
// Map of global variables and/or instance and static properties to the
// corresponding polyfill key and actual module to import
const polyfillMap = {
global: {
Proxy: { key: "proxy", module: "proxy-polyfill" },
fetch: { key: "fetch", module: "unfetch/polyfill" },
},
instance: {},
static: {},
};
// Create plugin using the same factory as for CoreJS
export default defineProvider(
({ createMetaResolver, debug, shouldInjectPolyfill }) => {
const resolvePolyfill = createMetaResolver(polyfillMap);
return {
name: "HA Custom",
polyfills: PolyfillSupport,
usageGlobal(meta, utils) {
const polyfill = resolvePolyfill(meta);
if (polyfill && shouldInjectPolyfill(polyfill.desc.key)) {
debug(polyfill.desc.key);
utils.injectGlobalImport(polyfill.desc.module);
}
},
};
}
);
+36 -19
View File
@@ -1,6 +1,7 @@
const path = require("path");
const env = require("./env.cjs");
const paths = require("./paths.cjs");
const { dependencies } = require("../package.json");
// GitHub base URL to use for production source maps
// Nightly builds use the commit SHA, otherwise assumes there is a tag that matches the version
@@ -12,11 +13,7 @@ module.exports.sourceMapURL = () => {
};
// Files from NPM Packages that should not be imported
// eslint-disable-next-line unused-imports/no-unused-vars
module.exports.ignorePackages = ({ latestBuild }) => [
// Part of yaml.js and only used for !!js functions that we don't use
require.resolve("esprima"),
];
module.exports.ignorePackages = () => [];
// Files from NPM packages that we should replace with empty file
module.exports.emptyPackages = ({ latestBuild, isHassioBuild }) =>
@@ -35,8 +32,6 @@ module.exports.emptyPackages = ({ latestBuild, isHassioBuild }) =>
require.resolve(
path.resolve(paths.polymer_dir, "src/resources/compatibility.ts")
),
// This polyfill is loaded in workers to support ES5, filter it out.
latestBuild && require.resolve("proxy-polyfill/src/index.js"),
// Icons in supervisor conflict with icons in HA so we don't load.
isHassioBuild &&
require.resolve(
@@ -91,14 +86,12 @@ module.exports.babelOptions = ({ latestBuild, isProdBuild, isTestBuild }) => ({
setSpreadProperties: true,
},
browserslistEnv: latestBuild ? "modern" : "legacy",
// Must be unambiguous because some dependencies are CommonJS only
sourceType: "unambiguous",
presets: [
[
"@babel/preset-env",
{
useBuiltIns: latestBuild ? false : "entry",
corejs: latestBuild ? false : { version: "3.33", proposals: true },
useBuiltIns: latestBuild ? false : "usage",
corejs: latestBuild ? false : dependencies["core-js"],
bugfixes: true,
shippedProposals: true,
},
@@ -116,27 +109,39 @@ module.exports.babelOptions = ({ latestBuild, isProdBuild, isTestBuild }) => ({
ignoreModuleNotFound: true,
},
],
[
path.resolve(
paths.polymer_dir,
"build-scripts/babel-plugins/custom-polyfill-plugin.js"
),
{ method: "usage-global" },
],
// Minify template literals for production
isProdBuild && [
"template-html-minifier",
{
modules: {
lit: [
"html",
{ name: "svg", encapsulation: "svg" },
{ name: "css", encapsulation: "style" },
],
"@polymer/polymer/lib/utils/html-tag": ["html"],
...Object.fromEntries(
["lit", "lit-element", "lit-html"].map((m) => [
m,
[
"html",
{ name: "svg", encapsulation: "svg" },
{ name: "css", encapsulation: "style" },
],
])
),
"@polymer/polymer/lib/utils/html-tag.js": ["html"],
},
strictCSS: true,
htmlMinifier: module.exports.htmlMinifierOptions,
failOnError: true, // we can turn this off in case of false positives
failOnError: false, // we can turn this off in case of false positives
},
],
// Import helpers and regenerator from runtime package
[
"@babel/plugin-transform-runtime",
{ version: require("../package.json").dependencies["@babel/runtime"] },
{ version: dependencies["@babel/runtime"] },
],
// Support some proposals still in TC39 process
["@babel/plugin-proposal-decorators", { decoratorsBeforeExport: true }],
@@ -147,6 +152,18 @@ module.exports.babelOptions = ({ latestBuild, isProdBuild, isTestBuild }) => ({
/node_modules[\\/]webpack[\\/]buildin/,
],
sourceMaps: !isTestBuild,
overrides: [
{
// Use unambiguous for dependencies so that require() is correctly injected into CommonJS files
// Exclusions are needed in some cases where ES modules have no static imports or exports, such as polyfills
sourceType: "unambiguous",
include: /\/node_modules\//,
exclude: [
"element-internals-polyfill",
"@?lit(?:-labs|-element|-html)?",
].map((p) => new RegExp(`/node_modules/${p}/`)),
},
],
});
const nameSuffix = (latestBuild) => (latestBuild ? "-modern" : "-legacy");
+2 -2
View File
@@ -30,8 +30,8 @@ gulp.task(
env.useWDS()
? "wds-watch-app"
: env.useRollup()
? "rollup-watch-app"
: "webpack-watch-app"
? "rollup-watch-app"
: "webpack-watch-app"
)
);
+4 -1
View File
@@ -8,7 +8,10 @@ const zopfliOptions = { threshold: 150 };
const compressDist = (rootDir) =>
gulp
.src([`${rootDir}/**/*.{js,json,css,svg}`])
.src([
`${rootDir}/**/*.{js,json,css,svg,xml}`,
`${rootDir}/{authorize,onboarding}.html`,
])
.pipe(zopfli(zopfliOptions))
.pipe(gulp.dest(rootDir));
@@ -161,6 +161,10 @@ gulp.task("fetch-lokalise", async function () {
})
);
})
.catch((err) => {
console.error(err);
throw err;
})
)
);
});
+1
View File
@@ -426,6 +426,7 @@ gulp.task(
"fetch-nightly-translations",
gulp.series("clean-translations", "ensure-translations-build-dir")
),
gulp.parallel("create-test-metadata", "create-test-translation"),
"build-master-translation",
"build-merged-translations",
"build-translation-fragment-supervisor",
+10 -16
View File
@@ -7,6 +7,9 @@ const TerserPlugin = require("terser-webpack-plugin");
const { WebpackManifestPlugin } = require("webpack-manifest-plugin");
const log = require("fancy-log");
const WebpackBar = require("webpackbar");
const {
TransformAsyncModulesPlugin,
} = require("transform-async-modules-webpack-plugin");
const paths = require("./paths.cjs");
const bundle = require("./bundle.cjs");
@@ -51,8 +54,8 @@ const createWebpackConfig = ({
devtool: isTestBuild
? false
: isProdBuild
? "nosources-source-map"
: "eval-cheap-module-source-map",
? "nosources-source-map"
: "eval-cheap-module-source-map",
entry,
node: false,
module: {
@@ -142,17 +145,6 @@ const createWebpackConfig = ({
),
path.resolve(paths.polymer_dir, "src/util/empty.js")
),
// See `src/resources/intl-polyfill-legacy.ts` for explanation
!latestBuild &&
new webpack.NormalModuleReplacementPlugin(
new RegExp(
path.resolve(paths.polymer_dir, "src/resources/intl-polyfill.ts")
),
path.resolve(
paths.polymer_dir,
"src/resources/intl-polyfill-legacy.ts"
)
),
!isProdBuild && new LogStartCompilePlugin(),
isProdBuild &&
new StatsWriterPlugin({
@@ -163,6 +155,8 @@ const createWebpackConfig = ({
stats: { assets: true, chunks: true, modules: true },
transform: (stats) => JSON.stringify(filterStats(stats)),
}),
!latestBuild &&
new TransformAsyncModulesPlugin({ browserslistEnv: "legacy" }),
].filter(Boolean),
resolve: {
extensions: [".ts", ".js", ".json"],
@@ -191,11 +185,11 @@ const createWebpackConfig = ({
filename: ({ chunk }) =>
!isProdBuild || isStatsBuild || dontHash.has(chunk.name)
? "[name].js"
: "[name]-[contenthash].js",
: "[name].[contenthash].js",
chunkFilename:
isProdBuild && !isStatsBuild ? "[id]-[contenthash].js" : "[name].js",
isProdBuild && !isStatsBuild ? "[name].[contenthash].js" : "[name].js",
assetModuleFilename:
isProdBuild && !isStatsBuild ? "[id]-[contenthash][ext]" : "[id][ext]",
isProdBuild && !isStatsBuild ? "[id].[contenthash][ext]" : "[id][ext]",
crossOriginLoading: "use-credentials",
hashFunction: "xxhash64",
hashDigest: "base64url",
+50 -46
View File
@@ -3,7 +3,7 @@ import { mdiCast, mdiCastConnected } from "@mdi/js";
import "@polymer/paper-item/paper-icon-item";
import "@polymer/paper-listbox/paper-listbox";
import { Auth, Connection } from "home-assistant-js-websocket";
import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit";
import { CSSResultGroup, LitElement, TemplateResult, css, html } from "lit";
import { customElement, property, state } from "lit/decorators";
import { CastManager } from "../../../../src/cast/cast_manager";
import {
@@ -22,8 +22,9 @@ import "../../../../src/components/ha-svg-icon";
import {
getLegacyLovelaceCollection,
getLovelaceCollection,
LovelaceConfig,
} from "../../../../src/data/lovelace";
import { isStrategyDashboard } from "../../../../src/data/lovelace/config/types";
import { LovelaceViewConfig } from "../../../../src/data/lovelace/config/view";
import "../../../../src/layouts/hass-loading-screen";
import { generateDefaultViewConfig } from "../../../../src/panels/lovelace/common/generate-lovelace-config";
import "./hc-layout";
@@ -38,10 +39,10 @@ class HcCast extends LitElement {
@state() private askWrite = false;
@state() private lovelaceConfig?: LovelaceConfig | null;
@state() private lovelaceViews?: LovelaceViewConfig[] | null;
protected render(): TemplateResult {
if (this.lovelaceConfig === undefined) {
if (this.lovelaceViews === undefined) {
return html`<hass-loading-screen no-toolbar></hass-loading-screen>`;
}
@@ -72,43 +73,44 @@ class HcCast extends LitElement {
${error
? html` <div class="card-content">${error}</div> `
: !this.castManager.status
? html`
<p class="center-item">
<mwc-button raised @click=${this._handleLaunch}>
<ha-svg-icon .path=${mdiCast}></ha-svg-icon>
Start Casting
</mwc-button>
</p>
`
: html`
<div class="section-header">PICK A VIEW</div>
<paper-listbox
attr-for-selected="data-path"
.selected=${this.castManager.status.lovelacePath || ""}
>
${(this.lovelaceConfig
? this.lovelaceConfig.views
: [generateDefaultViewConfig({}, {}, {}, {}, () => "")]
).map(
(view, idx) => html`
<paper-icon-item
@click=${this._handlePickView}
data-path=${view.path || idx}
>
${view.icon
? html`
<ha-icon
.icon=${view.icon}
slot="item-icon"
></ha-icon>
`
: ""}
${view.title || view.path}
</paper-icon-item>
`
)}
</paper-listbox>
`}
? html`
<p class="center-item">
<mwc-button raised @click=${this._handleLaunch}>
<ha-svg-icon .path=${mdiCast}></ha-svg-icon>
Start Casting
</mwc-button>
</p>
`
: html`
<div class="section-header">PICK A VIEW</div>
<paper-listbox
attr-for-selected="data-path"
.selected=${this.castManager.status.lovelacePath || ""}
>
${(
this.lovelaceViews ?? [
generateDefaultViewConfig({}, {}, {}, {}, () => ""),
]
).map(
(view, idx) => html`
<paper-icon-item
@click=${this._handlePickView}
data-path=${view.path || idx}
>
${view.icon
? html`
<ha-icon
.icon=${view.icon}
slot="item-icon"
></ha-icon>
`
: ""}
${view.title || view.path}
</paper-icon-item>
`
)}
</paper-listbox>
`}
<div class="card-actions">
${this.castManager.status
? html`
@@ -136,11 +138,15 @@ class HcCast extends LitElement {
llColl.refresh().then(
() => {
llColl.subscribe((config) => {
this.lovelaceConfig = config;
if (isStrategyDashboard(config)) {
this.lovelaceViews = null;
} else {
this.lovelaceViews = config.views;
}
});
},
async () => {
this.lovelaceConfig = null;
this.lovelaceViews = null;
}
);
@@ -159,9 +165,7 @@ class HcCast extends LitElement {
toggleAttribute(
this,
"hide-icons",
this.lovelaceConfig
? !this.lovelaceConfig.views.some((view) => view.icon)
: true
this.lovelaceViews ? !this.lovelaceViews.some((view) => view.icon) : true
);
}
+18 -16
View File
@@ -1,6 +1,5 @@
import "@material/mwc-button";
import { mdiCastConnected, mdiCast } from "@mdi/js";
import "@polymer/paper-input/paper-input";
import {
Auth,
Connection,
@@ -24,6 +23,7 @@ import "../../../../src/components/ha-svg-icon";
import "../../../../src/layouts/hass-loading-screen";
import { registerServiceWorker } from "../../../../src/util/register-service-worker";
import "./hc-layout";
import "../../../../src/components/ha-textfield";
const seeFAQ = (qid) => html`
See <a href="./faq.html${qid ? `#${qid}` : ""}">the FAQ</a> for more
@@ -33,13 +33,13 @@ const translateErr = (err) =>
err === ERR_CANNOT_CONNECT
? "Unable to connect"
: err === ERR_HASS_HOST_REQUIRED
? "Please enter a Home Assistant URL."
: err === ERR_INVALID_HTTPS_TO_HTTP
? html`
Cannot connect to Home Assistant instances over "http://".
${seeFAQ("https")}
`
: `Unknown error (${err}).`;
? "Please enter a Home Assistant URL."
: err === ERR_INVALID_HTTPS_TO_HTTP
? html`
Cannot connect to Home Assistant instances over "http://".
${seeFAQ("https")}
`
: `Unknown error (${err}).`;
const INTRO = html`
<p>
@@ -116,13 +116,11 @@ export class HcConnect extends LitElement {
To get started, enter your Home Assistant URL and click authorize.
If you want a preview instead, click the show demo button.
</p>
<p>
<paper-input
label="Home Assistant URL"
placeholder="https://abcdefghijklmnop.ui.nabu.casa"
@keydown=${this._handleInputKeyDown}
></paper-input>
</p>
<ha-textfield
label="Home Assistant URL"
placeholder="https://abcdefghijklmnop.ui.nabu.casa"
@keydown=${this._handleInputKeyDown}
></ha-textfield>
${this.error ? html` <p class="error">${this.error}</p> ` : ""}
</div>
<div class="card-actions">
@@ -196,7 +194,7 @@ export class HcConnect extends LitElement {
}
private async _handleConnect() {
const inputEl = this.shadowRoot!.querySelector("paper-input")!;
const inputEl = this.shadowRoot!.querySelector("ha-textfield")!;
const value = inputEl.value || "";
this.error = undefined;
@@ -315,6 +313,10 @@ export class HcConnect extends LitElement {
.spacer {
flex: 1;
}
ha-textfield {
width: 100%;
}
`;
}
}
+2 -4
View File
@@ -1,7 +1,5 @@
import {
LovelaceCardConfig,
LovelaceConfig,
} from "../../../../src/data/lovelace";
import { LovelaceCardConfig } from "../../../../src/data/lovelace/config/card";
import { LovelaceConfig } from "../../../../src/data/lovelace/config/types";
import { castContext } from "../cast_context";
export const castDemoLovelace: () => LovelaceConfig = () => {
+1 -1
View File
@@ -1,7 +1,7 @@
import { html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { mockHistory } from "../../../../demo/src/stubs/history";
import { LovelaceConfig } from "../../../../src/data/lovelace";
import { LovelaceConfig } from "../../../../src/data/lovelace/config/types";
import {
MockHomeAssistant,
provideHass,
+3 -2
View File
@@ -1,7 +1,7 @@
import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit";
import { customElement, property, query } from "lit/decorators";
import { fireEvent } from "../../../../src/common/dom/fire_event";
import { LovelaceConfig } from "../../../../src/data/lovelace";
import { LovelaceConfig } from "../../../../src/data/lovelace/config/types";
import { Lovelace } from "../../../../src/panels/lovelace/types";
import "../../../../src/panels/lovelace/views/hui-view";
import { HomeAssistant } from "../../../../src/types";
@@ -14,7 +14,8 @@ import "./hc-launch-screen";
class HcLovelace extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
@property({ attribute: false }) public lovelaceConfig!: LovelaceConfig;
@property({ attribute: false })
public lovelaceConfig!: LovelaceConfig;
@property() public viewPath?: string | number;
+29 -12
View File
@@ -21,18 +21,26 @@ import {
import { atLeastVersion } from "../../../../src/common/config/version";
import { isNavigationClick } from "../../../../src/common/dom/is-navigation-click";
import {
fetchResources,
getLegacyLovelaceCollection,
getLovelaceCollection,
} from "../../../../src/data/lovelace";
import {
isStrategyDashboard,
LegacyLovelaceConfig,
LovelaceConfig,
} from "../../../../src/data/lovelace";
LovelaceDashboardStrategyConfig,
} from "../../../../src/data/lovelace/config/types";
import { fetchResources } from "../../../../src/data/lovelace/resource";
import { loadLovelaceResources } from "../../../../src/panels/lovelace/common/load-resources";
import { HassElement } from "../../../../src/state/hass-element";
import { castContext } from "../cast_context";
import "./hc-launch-screen";
const DEFAULT_STRATEGY = "original-states";
const DEFAULT_CONFIG: LovelaceDashboardStrategyConfig = {
strategy: {
type: "original-states",
},
};
let resourcesLoaded = false;
@customElement("hc-main")
@@ -93,7 +101,7 @@ export class HcMain extends HassElement {
.lovelaceConfig=${this._lovelaceConfig}
.viewPath=${this._lovelacePath}
.urlPath=${this._urlPath}
@config-refresh=${this._generateLovelaceConfig}
@config-refresh=${this._generateDefaultLovelaceConfig}
></hc-lovelace>
`;
}
@@ -284,9 +292,20 @@ export class HcMain extends HassElement {
// configuration.
try {
await llColl.refresh();
this._unsubLovelace = llColl.subscribe((lovelaceConfig) =>
this._handleNewLovelaceConfig(lovelaceConfig)
);
this._unsubLovelace = llColl.subscribe(async (rawConfig) => {
if (isStrategyDashboard(rawConfig)) {
const { generateLovelaceDashboardStrategy } = await import(
"../../../../src/panels/lovelace/strategies/get-strategy"
);
const config = await generateLovelaceDashboardStrategy(
rawConfig.strategy,
this.hass!
);
this._handleNewLovelaceConfig(config);
} else {
this._handleNewLovelaceConfig(rawConfig);
}
});
} catch (err: any) {
if (
atLeastVersion(this.hass.connection.haVersion, 0, 107) &&
@@ -300,7 +319,7 @@ export class HcMain extends HassElement {
}
// Generate a Lovelace config.
this._unsubLovelace = () => undefined;
await this._generateLovelaceConfig();
await this._generateDefaultLovelaceConfig();
}
}
if (!resourcesLoaded) {
@@ -316,15 +335,13 @@ export class HcMain extends HassElement {
this._sendStatus();
}
private async _generateLovelaceConfig() {
private async _generateDefaultLovelaceConfig() {
const { generateLovelaceDashboardStrategy } = await import(
"../../../../src/panels/lovelace/strategies/get-strategy"
);
this._handleNewLovelaceConfig(
await generateLovelaceDashboardStrategy(
{
type: DEFAULT_STRATEGY,
},
DEFAULT_CONFIG.strategy,
this.hass!
)
);
+1 -1
View File
@@ -1,5 +1,5 @@
import { LocalizeFunc } from "../../../src/common/translations/localize";
import { LovelaceConfig } from "../../../src/data/lovelace";
import { LovelaceConfig } from "../../../src/data/lovelace/config/types";
import { Entity } from "../../../src/fake_data/entity";
export interface DemoConfig {
+5 -4
View File
@@ -4,7 +4,7 @@ import { customElement, property, state } from "lit/decorators";
import { until } from "lit/directives/until";
import "../../../src/components/ha-card";
import "../../../src/components/ha-circular-progress";
import { LovelaceCardConfig } from "../../../src/data/lovelace";
import { LovelaceCardConfig } from "../../../src/data/lovelace/config/card";
import { MockHomeAssistant } from "../../../src/fake_data/provide_hass";
import { Lovelace, LovelaceCard } from "../../../src/panels/lovelace/types";
import {
@@ -39,7 +39,9 @@ export class HADemoCard extends LitElement implements LovelaceCard {
<div class="picker">
<div class="label">
${this._switching
? html`<ha-circular-progress active></ha-circular-progress>`
? html`<ha-circular-progress
indeterminate
></ha-circular-progress>`
: until(
selectedDemoConfig.then(
(conf) => html`
@@ -48,8 +50,7 @@ export class HADemoCard extends LitElement implements LovelaceCard {
<a target="_blank" href=${conf.authorUrl}>
${this.hass.localize(
"ui.panel.page-demo.cards.demo.demo_by",
"name",
conf.authorName
{ name: conf.authorName }
)}
</a>
</small>
+3 -13
View File
@@ -74,19 +74,9 @@
<body>
<div id="ha-launch-screen">
<div class="ha-launch-screen-spacer"></div>
<svg
viewBox="0 0 240 240"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M240 224.762C240 233.012 233.25 239.762 225 239.762H15C6.75 239.762 0 233.012 0 224.762V134.762C0 126.512 4.77 114.993 10.61 109.153L109.39 10.3725C115.22 4.5425 124.77 4.5425 130.6 10.3725L229.39 109.162C235.22 114.992 240 126.522 240 134.772V224.772V224.762Z"
fill="#F2F4F9"
/>
<path
d="M229.39 109.153L130.61 10.3725C124.78 4.5425 115.23 4.5425 109.4 10.3725L10.61 109.153C4.78 114.983 0 126.512 0 134.762V224.762C0 233.012 6.75 239.762 15 239.762H107.27L66.64 199.132C64.55 199.852 62.32 200.262 60 200.262C48.7 200.262 39.5 191.062 39.5 179.762C39.5 168.462 48.7 159.262 60 159.262C71.3 159.262 80.5 168.462 80.5 179.762C80.5 182.092 80.09 184.322 79.37 186.412L111 218.042V102.162C104.2 98.8225 99.5 91.8425 99.5 83.7725C99.5 72.4725 108.7 63.2725 120 63.2725C131.3 63.2725 140.5 72.4725 140.5 83.7725C140.5 91.8425 135.8 98.8225 129 102.162V183.432L160.46 151.972C159.84 150.012 159.5 147.932 159.5 145.772C159.5 134.472 168.7 125.272 180 125.272C191.3 125.272 200.5 134.472 200.5 145.772C200.5 157.072 191.3 166.272 180 166.272C177.5 166.272 175.12 165.802 172.91 164.982L129 208.892V239.772H225C233.25 239.772 240 233.022 240 224.772V134.772C240 126.522 235.23 115.002 229.39 109.162V109.153Z"
fill="#18BCF2"
/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 240">
<path fill="#18BCF2" d="M240 224.762a15 15 0 0 1-15 15H15a15 15 0 0 1-15-15v-90c0-8.25 4.77-19.769 10.61-25.609l98.78-98.7805c5.83-5.83 15.38-5.83 21.21 0l98.79 98.7895c5.83 5.83 10.61 17.36 10.61 25.61v90-.01Z"/>
<path fill="#F2F4F9" d="m107.27 239.762-40.63-40.63c-2.09.72-4.32 1.13-6.64 1.13-11.3 0-20.5-9.2-20.5-20.5s9.2-20.5 20.5-20.5 20.5 9.2 20.5 20.5c0 2.33-.41 4.56-1.13 6.65l31.63 31.63v-115.88c-6.8-3.3395-11.5-10.3195-11.5-18.3895 0-11.3 9.2-20.5 20.5-20.5s20.5 9.2 20.5 20.5c0 8.07-4.7 15.05-11.5 18.3895v81.27l31.46-31.46c-.62-1.96-.96-4.04-.96-6.2 0-11.3 9.2-20.5 20.5-20.5s20.5 9.2 20.5 20.5-9.2 20.5-20.5 20.5c-2.5 0-4.88-.47-7.09-1.29L129 208.892v30.88z"/>
</svg>
<div id="ha-launch-screen-info-box" class="ha-launch-screen-spacer"></div>
</div>
+4 -4
View File
@@ -43,8 +43,8 @@ const generateMeanStatistics = (
period === "day"
? addDays(currentDate, 1)
: period === "month"
? addMonths(currentDate, 1)
: addHours(currentDate, 1);
? addMonths(currentDate, 1)
: addHours(currentDate, 1);
}
return statistics;
};
@@ -80,8 +80,8 @@ const generateSumStatistics = (
period === "day"
? addDays(currentDate, 1)
: period === "month"
? addMonths(currentDate, 1)
: addHours(currentDate, 1);
? addMonths(currentDate, 1)
: addHours(currentDate, 1);
}
return statistics;
};
@@ -11,7 +11,7 @@ class DemoBlackWhiteRow extends LitElement {
@property() value!: any;
@property() disabled = false;
@property({ type: Boolean }) public disabled = false;
protected render(): TemplateResult {
return html`
+2 -2
View File
@@ -11,11 +11,11 @@ export interface DemoCardConfig {
@customElement("demo-card")
class DemoCard extends LitElement {
@property() public hass!: HomeAssistant;
@property({ attribute: false }) public hass!: HomeAssistant;
@property() public config!: DemoCardConfig;
@property() public showConfig = false;
@property({ type: Boolean }) public showConfig = false;
@state() private _size?: number;
+1 -1
View File
@@ -12,7 +12,7 @@ import "../ha-demo-options";
class DemoCards extends LitElement {
@property() public configs!: DemoCardConfig[];
@property() public hass!: HomeAssistant;
@property({ attribute: false }) public hass!: HomeAssistant;
@state() private _showConfig = false;
+3 -3
View File
@@ -8,11 +8,11 @@ import { HomeAssistant } from "../../../src/types";
@customElement("demo-more-info")
class DemoMoreInfo extends LitElement {
@property() public hass!: HomeAssistant;
@property({ attribute: false }) public hass!: HomeAssistant;
@property() public entityId!: string;
@property() public showConfig!: boolean;
@property({ type: Boolean }) public showConfig = false;
render() {
const state = this._getState(this.entityId, this.hass.states);
@@ -23,7 +23,7 @@ class DemoMoreInfo extends LitElement {
<state-card-content
.stateObj=${state}
.hass=${this.hass}
in-dialog
inDialog
></state-card-content>
<more-info-content
+1 -1
View File
@@ -9,7 +9,7 @@ import { HomeAssistant } from "../../../src/types";
@customElement("demo-more-infos")
class DemoMoreInfos extends LitElement {
@property() public hass!: HomeAssistant;
@property({ attribute: false }) public hass!: HomeAssistant;
@property() public entities!: [];
+1 -1
View File
@@ -509,7 +509,7 @@ export default {
away_mode: "on",
aux_heat: "off",
unit_of_measurement: "°C",
friendly_name: "Hvac",
friendly_name: "HVAC",
supported_features: 3833,
},
last_changed: "2018-07-19T10:44:46.200650+00:00",
+6 -6
View File
@@ -1,14 +1,14 @@
import { mdiMenu } from "@mdi/js";
import "@material/mwc-drawer";
import "@material/mwc-top-app-bar-fixed";
import { html, css, LitElement, PropertyValues } from "lit";
import { customElement, property, query } from "lit/decorators";
import { mdiMenu } from "@mdi/js";
import { LitElement, PropertyValues, css, html } from "lit";
import { customElement, query, state } from "lit/decorators";
import { dynamicElement } from "../../src/common/dom/dynamic-element-directive";
import { HaExpansionPanel } from "../../src/components/ha-expansion-panel";
import "../../src/components/ha-icon-button";
import "../../src/managers/notification-manager";
import { HaExpansionPanel } from "../../src/components/ha-expansion-panel";
import { haStyle } from "../../src/resources/styles";
import { PAGES, SIDEBAR } from "../build/import-pages";
import { dynamicElement } from "../../src/common/dom/dynamic-element-directive";
import "./components/page-description";
const GITHUB_DEMO_URL =
@@ -24,7 +24,7 @@ const FAKE_HASS = {
@customElement("ha-gallery")
class HaGallery extends LitElement {
@property() private _page =
@state() private _page =
document.location.hash.substring(1) ||
`${SIDEBAR[0].category}/${SIDEBAR[0].pages![0]}`;
@@ -80,7 +80,7 @@ const SCHEMAS: { name: string; conditions: ConditionWithShorthand[] }[] = [
];
@customElement("demo-automation-editor-condition")
class DemoHaAutomationEditorCondition extends LitElement {
export class DemoAutomationEditorCondition extends LitElement {
@state() private hass!: HomeAssistant;
@state() private _disabled = false;
@@ -155,6 +155,6 @@ class DemoHaAutomationEditorCondition extends LitElement {
declare global {
interface HTMLElementTagNameMap {
"demo-ha-automation-editor-condition": DemoHaAutomationEditorCondition;
"demo-automation-editor-condition": DemoAutomationEditorCondition;
}
}
@@ -126,7 +126,7 @@ const SCHEMAS: { name: string; triggers: Trigger[] }[] = [
];
@customElement("demo-automation-editor-trigger")
class DemoHaAutomationEditorTrigger extends LitElement {
export class DemoAutomationEditorTrigger extends LitElement {
@state() private hass!: HomeAssistant;
@state() private _disabled = false;
@@ -201,6 +201,6 @@ class DemoHaAutomationEditorTrigger extends LitElement {
declare global {
interface HTMLElementTagNameMap {
"demo-ha-automation-editor-trigger": DemoHaAutomationEditorTrigger;
"demo-automation-editor-trigger": DemoAutomationEditorTrigger;
}
}
+65 -27
View File
@@ -1,8 +1,10 @@
import { css, html, LitElement, TemplateResult } from "lit";
import { css, html, LitElement, TemplateResult, nothing } from "lit";
import { customElement } from "lit/decorators";
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-chip";
import "../../../../src/components/ha-chip-set";
import "../../../../src/components/chips/ha-chip-set";
import "../../../../src/components/chips/ha-assist-chip";
import "../../../../src/components/chips/ha-input-chip";
import "../../../../src/components/chips/ha-filter-chip";
import "../../../../src/components/ha-svg-icon";
import { mdiHomeAssistant } from "../../../../src/resources/home-assistant-logo-svg";
@@ -10,10 +12,6 @@ const chips: {
icon?: string;
content?: string;
}[] = [
{},
{
icon: mdiHomeAssistant,
},
{
content: "Content",
},
@@ -29,31 +27,73 @@ export class DemoHaChips extends LitElement {
return html`
<ha-card header="ha-chip demo">
<div class="card-content">
${chips.map(
(chip) => html`
<ha-chip .hasIcon=${chip.icon !== undefined}>
${chip.icon
? html`<ha-svg-icon slot="icon" .path=${chip.icon}>
</ha-svg-icon>`
: ""}
${chip.content}
</ha-chip>
`
)}
</div>
</ha-card>
<ha-card header="ha-chip-set demo">
<div class="card-content">
<p>Action chip</p>
<ha-chip-set>
${chips.map(
(chip) => html`
<ha-chip .hasIcon=${chip.icon !== undefined}>
<ha-assist-chip .label=${chip.content}>
${chip.icon
? html`<ha-svg-icon slot="icon" .path=${chip.icon}>
</ha-svg-icon>`
: nothing}
</ha-assist-chip>
`
)}
${chips.map(
(chip) => html`
<ha-assist-chip .label=${chip.content} selected>
${chip.icon
? html`<ha-svg-icon slot="icon" .path=${chip.icon}>
</ha-svg-icon>`
: nothing}
</ha-assist-chip>
`
)}
</ha-chip-set>
<p>Filter chip</p>
<ha-chip-set>
${chips.map(
(chip) => html`
<ha-filter-chip .label=${chip.content}>
${chip.icon
? html`<ha-svg-icon slot="icon" .path=${chip.icon}>
</ha-svg-icon>`
: nothing}
</ha-filter-chip>
`
)}
${chips.map(
(chip) => html`
<ha-filter-chip .label=${chip.content} selected>
${chip.icon
? html`<ha-svg-icon slot="icon" .path=${chip.icon}>
</ha-svg-icon>`
: nothing}
</ha-filter-chip>
`
)}
</ha-chip-set>
<p>Input chip</p>
<ha-chip-set>
${chips.map(
(chip) => html`
<ha-input-chip .label=${chip.content}>
${chip.icon
? html`<ha-svg-icon slot="icon" .path=${chip.icon}>
</ha-svg-icon>`
: ""}
${chip.content}
</ha-chip>
</ha-input-chip>
`
)}
${chips.map(
(chip) => html`
<ha-input-chip .label=${chip.content} selected>
${chip.icon
? html`<ha-svg-icon slot="icon" .path=${chip.icon}>
</ha-svg-icon>`
: nothing}
</ha-input-chip>
`
)}
</ha-chip-set>
@@ -68,12 +108,10 @@ export class DemoHaChips extends LitElement {
max-width: 600px;
margin: 24px auto;
}
ha-chip {
margin-bottom: 4px;
}
.card-content {
display: flex;
flex-direction: column;
align-items: flex-start;
}
`;
}
@@ -0,0 +1,4 @@
---
title: Circular Progress
subtitle: Can be used to indicate an ongoing task.
---
@@ -0,0 +1,64 @@
import { html, css, LitElement, TemplateResult } from "lit";
import { customElement, property } from "lit/decorators";
import "../../../../src/components/ha-bar";
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-circular-progress";
import "@material/web/progress/circular-progress";
import { HomeAssistant } from "../../../../src/types";
@customElement("demo-components-ha-circular-progress")
export class DemoHaCircularProgress extends LitElement {
@property({ attribute: false }) hass!: HomeAssistant;
protected render(): TemplateResult {
return html`<ha-card header="Basic circular progress">
<div class="card-content">
<ha-circular-progress indeterminate></ha-circular-progress></div
></ha-card>
<ha-card header="Different circular progress sizes">
<div class="card-content">
<ha-circular-progress
indeterminate
size="tiny"
></ha-circular-progress>
<ha-circular-progress
indeterminate
size="small"
></ha-circular-progress>
<ha-circular-progress
indeterminate
size="medium"
></ha-circular-progress>
<ha-circular-progress
indeterminate
size="large"
></ha-circular-progress></div
></ha-card>
<ha-card header="Circular progress with an aria-label">
<div class="card-content">
<ha-circular-progress
indeterminate
aria-label="Doing something..."
></ha-circular-progress>
<ha-circular-progress
indeterminate
.ariaLabel=${"Doing something..."}
></ha-circular-progress></div
></ha-card>`;
}
static get styles() {
return css`
ha-card {
max-width: 600px;
margin: 24px auto;
}
`;
}
}
declare global {
interface HTMLElementTagNameMap {
"demo-components-ha-circular-progress": DemoHaCircularProgress;
}
}
@@ -59,7 +59,7 @@ export class DemoHaBarButton extends LitElement {
<ha-control-button
class=${ifDefined(btn.class)}
label=${ifDefined(btn.label)}
disabled=${ifDefined(btn.disabled)}
?disabled=${btn.disabled}
>
<ha-svg-icon .path=${btn.icon || mdiLightbulb}></ha-svg-icon>
</ha-control-button>
@@ -11,6 +11,7 @@ const buttons: {
min?: number;
max?: number;
step?: number;
unit?: string;
class?: string;
}[] = [
{
@@ -29,6 +30,11 @@ const buttons: {
label: "Custom",
class: "custom",
},
{
id: "unit",
label: "With unit",
unit: "m",
},
];
@customElement("demo-components-ha-control-number-buttons")
@@ -50,6 +56,7 @@ export class DemoHarControlNumberButtons extends LitElement {
<pre>Config: ${JSON.stringify(config)}</pre>
<ha-control-number-buttons
.value=${this.value}
.unit=${config.unit}
.min=${config.min}
.max=${config.max}
.step=${config.step}
@@ -135,7 +135,7 @@ export class DemoHaControlSelect extends LitElement {
class=${ifDefined(config.class)}
@value-changed=${this.handleValueChanged}
aria-labelledby=${id}
disabled=${ifDefined(config.disabled)}
?disabled=${config.disabled}
>
</ha-control-select>
</div>
@@ -156,7 +156,7 @@ export class DemoHaControlSelect extends LitElement {
class=${ifDefined(config.class)}
@value-changed=${this.handleValueChanged}
aria-labelledby=${id}
disabled=${ifDefined(config.disabled)}
?disabled=${config.disabled}
>
</ha-control-select>
`;
@@ -9,6 +9,7 @@ const sliders: {
id: string;
label: string;
mode?: "start" | "end" | "cursor";
unit?: string;
class?: string;
}[] = [
{
@@ -31,18 +32,21 @@ const sliders: {
label: "Slider (start mode) and custom style",
mode: "start",
class: "custom",
unit: "mm",
},
{
id: "slider-end-custom",
label: "Slider (end mode) and custom style",
mode: "end",
class: "custom",
unit: "mm",
},
{
id: "slider-cursor-custom",
label: "Slider (cursor mode) and custom style",
mode: "cursor",
class: "custom",
unit: "mm",
},
];
@@ -93,6 +97,7 @@ export class DemoHaBarSlider extends LitElement {
@value-changed=${this.handleValueChanged}
@slider-moved=${this.handleSliderMoved}
aria-labelledby=${id}
.unit=${config.unit}
>
</ha-control-slider>
</div>
@@ -114,6 +119,7 @@ export class DemoHaBarSlider extends LitElement {
@value-changed=${this.handleValueChanged}
@slider-moved=${this.handleSliderMoved}
aria-label=${label}
.unit=${config.unit}
>
</ha-control-slider>
`;
@@ -63,8 +63,8 @@ export class DemoHaControlSwitch extends LitElement {
.pathOn=${mdiLightbulb}
.pathOff=${mdiLightbulbOff}
aria-labelledby=${id}
disabled=${ifDefined(config.disabled)}
reversed=${ifDefined(config.reversed)}
?disabled=${config.disabled}
?reversed=${config.reversed}
>
</ha-control-switch>
</div>
@@ -86,8 +86,8 @@ export class DemoHaControlSwitch extends LitElement {
aria-label=${label}
.pathOn=${mdiGarageOpen}
.pathOff=${mdiGarage}
disabled=${ifDefined(config.disabled)}
reversed=${ifDefined(config.reversed)}
?disabled=${config.disabled}
?reversed=${config.reversed}
>
</ha-control-switch>
`;
@@ -5,9 +5,22 @@ subtitle: Dialogs provide important prompts in a user flow.
# Material Design 3
Our dialogs are based on the latest version of Material Design. Specs and guidelines can be found on its [website](https://m3.material.io/components/dialogs/overview).
Our dialogs are based on the latest version of Material Design. Please note that we have made some well-considered adjustments to these guideliness. Specs and guidelines can be found on its [website](https://m3.material.io/components/dialogs/overview).
# Highlighted guidelines
# Guidelines
## Design
- Dialogs have a max width of 560px. Alert and confirmation dialogs got a fixed width of 320px. If you need more width, consider a dedicated page instead.
- The close X-icon is on the top left, on all screen sizes. Except for alert and confirmation dialogs, they only have buttons and no X-icon. This is different compared to the Material guideliness.
- Dialogs can't be closed with ESC or clicked outside of the dialog when there is a form that the user needs to fill out. Instead it will animate "no" by a little shake.
- Extra icon buttons are on the top right, for example help, settings and expand dialog. More than 2 icon buttons, they will be in an overflow menu.
- The submit button is grouped with a cancel button at the bottom right, on all screen sizes. Fullscreen mobile dialogs have them sticky at the bottom.
- Keep the labels short, for example `Save`, `Delete`, `Enable`.
- Dialog with actions must always have a discard button. On desktop a `Cancel` button and X-icon, on mobile only the X-icon.
- Destructive actions should be a red warning button.
- Alert or confirmation dialogs only have buttons and no X-icon.
- Try to avoid three buttons in one dialog. Especially when you leave the dialog task unfinished.
## Content
@@ -17,14 +30,6 @@ Our dialogs are based on the latest version of Material Design. Specs and guidel
- If users become unsure, they read the description. Make sure this explains what will happen.
- Strive for minimalism.
## Buttons and X-icon
- Keep the labels short, for example `Save`, `Delete`, `Enable`.
- Dialog with actions must always have a discard button. On desktop a `Cancel` button and X-icon, on mobile only the X-icon.
- Destructive actions should be a red warning button.
- Alert or confirmation dialogs only have buttons and no X-icon.
- Try to avoid three buttons in one dialog. Especially when you leave the dialog task unfinished.
## Example
### Confirmation dialog
@@ -3,6 +3,7 @@ import { css, html, LitElement, TemplateResult } from "lit";
import { customElement } from "lit/decorators";
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-expansion-panel";
import "../../../../src/components/ha-icon-button";
import "../../../../src/components/ha-markdown";
import "../../components/demo-black-white-row";
import { LONG_TEXT } from "../../data/text";
+1 -1
View File
@@ -18,7 +18,7 @@ The Home Assistant interface is based on Material Design. It's a design system c
We want to make it as easy for designers to contribute as it is for developers. Theres a lot a designer can contribute to:
- Meet us at <a href="https://discord.gg/BPBc8rZ9" rel="noopener noreferrer" target="_blank">devs_ux Discord</a>. Feel free to share your designs, user test or strategic ideas.
- Meet us at <a href="https://www.home-assistant.io/join-chat" rel="noopener noreferrer" target="_blank">devs_ux Discord</a>. Feel free to share your designs, user test or strategic ideas.
- Start designing with our <a href="https://www.figma.com/community/file/967153512097289521/Home-Assistant-DesignKit" rel="noopener noreferrer" target="_blank">Figma DesignKit</a>.
- Find the latest UX <a href="https://github.com/home-assistant/frontend/discussions?discussions_q=label%3Aux" rel="noopener noreferrer" target="_blank">discussions</a> and <a href="https://github.com/home-assistant/frontend/labels/ux" rel="noopener noreferrer" target="_blank">issues</a> on GitHub. Everyone can start a new issue or discussion!
@@ -1,19 +1,20 @@
import { html, css, LitElement } from "lit";
import "@material/mwc-list/mwc-list";
import { LitElement, css, html } from "lit";
import { customElement, state } from "lit/decorators";
import { formatDateTimeNumeric } from "../../../../src/common/datetime/format_date_time";
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-control-select";
import { translationMetadata } from "../../../../src/resources/translations-metadata";
import { formatDateTimeNumeric } from "../../../../src/common/datetime/format_date_time";
import { timeOptions } from "../../data/date-options";
import { demoConfig } from "../../../../src/fake_data/demo_config";
import {
DateFormat,
FirstWeekday,
FrontendLocaleData,
NumberFormat,
TimeFormat,
DateFormat,
FirstWeekday,
TimeZone,
} from "../../../../src/data/translation";
import { demoConfig } from "../../../../src/fake_data/demo_config";
import { translationMetadata } from "../../../../src/resources/translations-metadata";
import { timeOptions } from "../../data/date-options";
@customElement("demo-date-time-date-time-numeric")
export class DemoDateTimeDateTimeNumeric extends LitElement {
@@ -1,19 +1,20 @@
import { html, css, LitElement } from "lit";
import "@material/mwc-list/mwc-list";
import { LitElement, css, html } from "lit";
import { customElement, state } from "lit/decorators";
import { formatDateTimeWithSeconds } from "../../../../src/common/datetime/format_date_time";
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-control-select";
import { translationMetadata } from "../../../../src/resources/translations-metadata";
import { formatDateTimeWithSeconds } from "../../../../src/common/datetime/format_date_time";
import { timeOptions } from "../../data/date-options";
import { demoConfig } from "../../../../src/fake_data/demo_config";
import {
DateFormat,
FirstWeekday,
FrontendLocaleData,
NumberFormat,
TimeFormat,
DateFormat,
FirstWeekday,
TimeZone,
} from "../../../../src/data/translation";
import { demoConfig } from "../../../../src/fake_data/demo_config";
import { translationMetadata } from "../../../../src/resources/translations-metadata";
import { timeOptions } from "../../data/date-options";
@customElement("demo-date-time-date-time-seconds")
export class DemoDateTimeDateTimeSeconds extends LitElement {
@@ -1,19 +1,20 @@
import { html, css, LitElement } from "lit";
import "@material/mwc-list/mwc-list";
import { LitElement, css, html } from "lit";
import { customElement, state } from "lit/decorators";
import { formatShortDateTimeWithYear } from "../../../../src/common/datetime/format_date_time";
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-control-select";
import { translationMetadata } from "../../../../src/resources/translations-metadata";
import { formatShortDateTimeWithYear } from "../../../../src/common/datetime/format_date_time";
import { timeOptions } from "../../data/date-options";
import { demoConfig } from "../../../../src/fake_data/demo_config";
import {
DateFormat,
FirstWeekday,
FrontendLocaleData,
NumberFormat,
TimeFormat,
DateFormat,
FirstWeekday,
TimeZone,
} from "../../../../src/data/translation";
import { demoConfig } from "../../../../src/fake_data/demo_config";
import { translationMetadata } from "../../../../src/resources/translations-metadata";
import { timeOptions } from "../../data/date-options";
@customElement("demo-date-time-date-time-short-year")
export class DemoDateTimeDateTimeShortYear extends LitElement {
@@ -1,19 +1,20 @@
import { html, css, LitElement } from "lit";
import "@material/mwc-list/mwc-list";
import { LitElement, css, html } from "lit";
import { customElement, state } from "lit/decorators";
import { formatShortDateTime } from "../../../../src/common/datetime/format_date_time";
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-control-select";
import { translationMetadata } from "../../../../src/resources/translations-metadata";
import { formatShortDateTime } from "../../../../src/common/datetime/format_date_time";
import { timeOptions } from "../../data/date-options";
import { demoConfig } from "../../../../src/fake_data/demo_config";
import {
DateFormat,
FirstWeekday,
FrontendLocaleData,
NumberFormat,
TimeFormat,
DateFormat,
FirstWeekday,
TimeZone,
} from "../../../../src/data/translation";
import { demoConfig } from "../../../../src/fake_data/demo_config";
import { translationMetadata } from "../../../../src/resources/translations-metadata";
import { timeOptions } from "../../data/date-options";
@customElement("demo-date-time-date-time-short")
export class DemoDateTimeDateTimeShort extends LitElement {
+8 -7
View File
@@ -1,19 +1,20 @@
import { html, css, LitElement } from "lit";
import "@material/mwc-list/mwc-list";
import { LitElement, css, html } from "lit";
import { customElement, state } from "lit/decorators";
import { formatDateTime } from "../../../../src/common/datetime/format_date_time";
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-control-select";
import { translationMetadata } from "../../../../src/resources/translations-metadata";
import { formatDateTime } from "../../../../src/common/datetime/format_date_time";
import { timeOptions } from "../../data/date-options";
import { demoConfig } from "../../../../src/fake_data/demo_config";
import {
DateFormat,
FirstWeekday,
FrontendLocaleData,
NumberFormat,
TimeFormat,
DateFormat,
FirstWeekday,
TimeZone,
} from "../../../../src/data/translation";
import { demoConfig } from "../../../../src/fake_data/demo_config";
import { translationMetadata } from "../../../../src/resources/translations-metadata";
import { timeOptions } from "../../data/date-options";
@customElement("demo-date-time-date-time")
export class DemoDateTimeDateTime extends LitElement {
+9 -7
View File
@@ -1,18 +1,20 @@
import { html, css, LitElement } from "lit";
import "@material/mwc-list/mwc-list";
import { LitElement, css, html } from "lit";
import { customElement, state } from "lit/decorators";
import "../../../../src/components/ha-card";
import { translationMetadata } from "../../../../src/resources/translations-metadata";
import { formatTimeWithSeconds } from "../../../../src/common/datetime/format_time";
import { timeOptions } from "../../data/date-options";
import { demoConfig } from "../../../../src/fake_data/demo_config";
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-control-select";
import {
DateFormat,
FirstWeekday,
FrontendLocaleData,
NumberFormat,
TimeFormat,
DateFormat,
FirstWeekday,
TimeZone,
} from "../../../../src/data/translation";
import { demoConfig } from "../../../../src/fake_data/demo_config";
import { translationMetadata } from "../../../../src/resources/translations-metadata";
import { timeOptions } from "../../data/date-options";
@customElement("demo-date-time-time-seconds")
export class DemoDateTimeTimeSeconds extends LitElement {
+9 -7
View File
@@ -1,18 +1,20 @@
import { html, css, LitElement } from "lit";
import "@material/mwc-list/mwc-list";
import { LitElement, css, html } from "lit";
import { customElement, state } from "lit/decorators";
import "../../../../src/components/ha-card";
import { translationMetadata } from "../../../../src/resources/translations-metadata";
import { formatTimeWeekday } from "../../../../src/common/datetime/format_time";
import { timeOptions } from "../../data/date-options";
import { demoConfig } from "../../../../src/fake_data/demo_config";
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-control-select";
import {
DateFormat,
FirstWeekday,
FrontendLocaleData,
NumberFormat,
TimeFormat,
DateFormat,
FirstWeekday,
TimeZone,
} from "../../../../src/data/translation";
import { demoConfig } from "../../../../src/fake_data/demo_config";
import { translationMetadata } from "../../../../src/resources/translations-metadata";
import { timeOptions } from "../../data/date-options";
@customElement("demo-date-time-time-weekday")
export class DemoDateTimeTimeWeekday extends LitElement {
+8 -7
View File
@@ -1,19 +1,20 @@
import { html, css, LitElement } from "lit";
import "@material/mwc-list/mwc-list";
import { LitElement, css, html } from "lit";
import { customElement, state } from "lit/decorators";
import { formatTime } from "../../../../src/common/datetime/format_time";
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-control-select";
import { translationMetadata } from "../../../../src/resources/translations-metadata";
import { formatTime } from "../../../../src/common/datetime/format_time";
import { timeOptions } from "../../data/date-options";
import { demoConfig } from "../../../../src/fake_data/demo_config";
import {
DateFormat,
FirstWeekday,
FrontendLocaleData,
NumberFormat,
TimeFormat,
DateFormat,
FirstWeekday,
TimeZone,
} from "../../../../src/data/translation";
import { demoConfig } from "../../../../src/fake_data/demo_config";
import { translationMetadata } from "../../../../src/resources/translations-metadata";
import { timeOptions } from "../../data/date-options";
@customElement("demo-date-time-time")
export class DemoDateTimeTime extends LitElement {
@@ -55,7 +55,7 @@ const CONFIGS = [
];
@customElement("demo-lovelace-media-player-row")
class DemoHuiMediaPlayerRow extends LitElement {
export class DemoLovelaceMediaPlayerRow extends LitElement {
@query("#demos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
@@ -73,6 +73,6 @@ class DemoHuiMediaPlayerRow extends LitElement {
declare global {
interface HTMLElementTagNameMap {
"demo-lovelace-media-player-rows": DemoHuiMediaPlayerRow;
"demo-lovelace-media-player-row": DemoLovelaceMediaPlayerRow;
}
}
@@ -35,6 +35,18 @@ const ENTITIES = [
friendly_name: "Nest",
supported_features: 43,
}),
getEntity("climate", "sensibo", "fan_only", {
current_temperature: null,
temperature: null,
min_temp: 0,
max_temp: 1,
target_temp_step: 1,
hvac_modes: ["fan_only", "off"],
friendly_name: "Sensibo purifier",
fan_modes: ["low", "high"],
fan_mode: "low",
supported_features: 9,
}),
getEntity("climate", "unavailable", "unavailable", {
supported_features: 43,
}),
@@ -57,6 +69,23 @@ const CONFIGS = [
entity: climate.nest
`,
},
{
heading: "Fan only example",
config: `
- type: thermostat
entity: climate.sensibo
features:
- type: climate-hvac-modes
hvac_modes:
- fan_only
- 'off'
- type: climate-fan-modes
style: icons
fan_modes:
- low
- high
`,
},
{
heading: "Unavailable",
config: `
-1
View File
@@ -10,7 +10,6 @@ import { computeStateDisplay } from "../../../../src/common/entity/compute_state
import "../../../../src/components/data-table/ha-data-table";
import type { DataTableColumnContainer } from "../../../../src/components/data-table/ha-data-table";
import "../../../../src/components/entity/state-badge";
import "../../../../src/components/ha-chip";
import { provideHass } from "../../../../src/fake_data/provide_hass";
import { HomeAssistant } from "../../../../src/types";
+7 -1
View File
@@ -2,7 +2,7 @@ import "@material/mwc-button";
import { css, html, LitElement, TemplateResult } from "lit";
import { customElement } from "lit/decorators";
import "../../../../src/components/ha-card";
import { ActionHandlerEvent } from "../../../../src/data/lovelace";
import { ActionHandlerEvent } from "../../../../src/data/lovelace/action_handler";
import { actionHandler } from "../../../../src/panels/lovelace/common/directives/action-handler-directive";
@customElement("demo-misc-util-long-press")
@@ -59,3 +59,9 @@ export class DemoUtilLongPress extends LitElement {
}
`;
}
declare global {
interface HTMLElementTagNameMap {
"demo-misc-util-long-press": DemoUtilLongPress;
}
}
+16 -1
View File
@@ -31,6 +31,21 @@ const ENTITIES = [
max_temp: 30,
supported_features: ClimateEntityFeature.TARGET_TEMPERATURE,
}),
getEntity("climate", "fan", "fan_only", {
friendly_name: "Basic fan",
hvac_modes: ["fan_only", "off"],
hvac_mode: "fan_only",
fan_modes: ["low", "high"],
fan_mode: "low",
current_temperature: null,
temperature: null,
min_temp: 0,
max_temp: 1,
target_temp_step: 1,
supported_features:
// eslint-disable-next-line no-bitwise
ClimateEntityFeature.TARGET_TEMPERATURE | ClimateEntityFeature.FAN_MODE,
}),
getEntity("climate", "hvac", "auto", {
friendly_name: "Basic hvac",
hvac_modes: ["auto", "off"],
@@ -77,7 +92,7 @@ const ENTITIES = [
@customElement("demo-more-info-climate")
class DemoMoreInfoClimate extends LitElement {
@property() public hass!: MockHomeAssistant;
@property({ attribute: false }) public hass!: MockHomeAssistant;
@query("demo-more-infos") private _demoRoot!: HTMLElement;
+1 -1
View File
@@ -141,7 +141,7 @@ const ENTITIES = [
@customElement("demo-more-info-cover")
class DemoMoreInfoCover extends LitElement {
@property() public hass!: MockHomeAssistant;
@property({ attribute: false }) public hass!: MockHomeAssistant;
@query("demo-more-infos") private _demoRoot!: HTMLElement;
+1 -1
View File
@@ -29,7 +29,7 @@ const ENTITIES = [
@customElement("demo-more-info-humidifier")
class DemoMoreInfoHumidifier extends LitElement {
@property() public hass!: MockHomeAssistant;
@property({ attribute: false }) public hass!: MockHomeAssistant;
@query("demo-more-infos") private _demoRoot!: HTMLElement;
+1 -1
View File
@@ -32,7 +32,7 @@ const ENTITIES = [
@customElement("demo-more-info-input-number")
class DemoMoreInfoInputNumber extends LitElement {
@property() public hass!: MockHomeAssistant;
@property({ attribute: false }) public hass!: MockHomeAssistant;
@query("demo-more-infos") private _demoRoot!: HTMLElement;
@@ -0,0 +1,3 @@
---
title: Input Text
---
+46
View File
@@ -0,0 +1,46 @@
import { html, LitElement, PropertyValues, TemplateResult } from "lit";
import { customElement, property, query } from "lit/decorators";
import "../../../../src/components/ha-card";
import "../../../../src/dialogs/more-info/more-info-content";
import { getEntity } from "../../../../src/fake_data/entity";
import {
MockHomeAssistant,
provideHass,
} from "../../../../src/fake_data/provide_hass";
import "../../components/demo-more-infos";
const ENTITIES = [
getEntity("input_text", "text", "Inspiration", {
friendly_name: "Text",
mode: "text",
}),
];
@customElement("demo-more-info-input-text")
class DemoMoreInfoInputText extends LitElement {
@property({ attribute: false }) public hass!: MockHomeAssistant;
@query("demo-more-infos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`
<demo-more-infos
.hass=${this.hass}
.entities=${ENTITIES.map((ent) => ent.entityId)}
></demo-more-infos>
`;
}
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.addEntities(ENTITIES);
}
}
declare global {
interface HTMLElementTagNameMap {
"demo-more-info-input-text": DemoMoreInfoInputText;
}
}
+1 -1
View File
@@ -140,7 +140,7 @@ const ENTITIES = [
@customElement("demo-more-info-light")
class DemoMoreInfoLight extends LitElement {
@property() public hass!: MockHomeAssistant;
@property({ attribute: false }) public hass!: MockHomeAssistant;
@query("demo-more-infos") private _demoRoot!: HTMLElement;
@@ -0,0 +1,3 @@
---
title: Lock
---
+49
View File
@@ -0,0 +1,49 @@
import { html, LitElement, PropertyValues, TemplateResult } from "lit";
import { customElement, property, query } from "lit/decorators";
import "../../../../src/components/ha-card";
import "../../../../src/dialogs/more-info/more-info-content";
import { getEntity } from "../../../../src/fake_data/entity";
import {
MockHomeAssistant,
provideHass,
} from "../../../../src/fake_data/provide_hass";
import "../../components/demo-more-infos";
const ENTITIES = [
getEntity("lock", "lock", "locked", {
friendly_name: "Lock",
device_class: "lock",
}),
getEntity("lock", "unavailable", "unavailable", {
friendly_name: "Unavailable lock",
}),
];
@customElement("demo-more-info-lock")
class DemoMoreInfoLock extends LitElement {
@property({ attribute: false }) public hass!: MockHomeAssistant;
@query("demo-more-infos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`
<demo-more-infos
.hass=${this.hass}
.entities=${ENTITIES.map((ent) => ent.entityId)}
></demo-more-infos>
`;
}
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.addEntities(ENTITIES);
}
}
declare global {
interface HTMLElementTagNameMap {
"demo-more-info-lock": DemoMoreInfoLock;
}
}
@@ -0,0 +1,3 @@
---
title: Media Player
---
@@ -0,0 +1,41 @@
import { html, LitElement, PropertyValues, TemplateResult } from "lit";
import { customElement, property, query } from "lit/decorators";
import "../../../../src/components/ha-card";
import "../../../../src/dialogs/more-info/more-info-content";
import {
MockHomeAssistant,
provideHass,
} from "../../../../src/fake_data/provide_hass";
import "../../components/demo-more-infos";
import { createMediaPlayerEntities } from "../../data/media_players";
const ENTITIES = createMediaPlayerEntities();
@customElement("demo-more-info-media-player")
class DemoMoreInfoMediaPlayer extends LitElement {
@property({ attribute: false }) public hass!: MockHomeAssistant;
@query("demo-more-infos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`
<demo-more-infos
.hass=${this.hass}
.entities=${ENTITIES.map((ent) => ent.entityId)}
></demo-more-infos>
`;
}
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.addEntities(ENTITIES);
}
}
declare global {
interface HTMLElementTagNameMap {
"demo-more-info-media-player": DemoMoreInfoMediaPlayer;
}
}
@@ -0,0 +1,3 @@
---
title: Number
---
+78
View File
@@ -0,0 +1,78 @@
import { html, LitElement, PropertyValues, TemplateResult } from "lit";
import { customElement, property, query } from "lit/decorators";
import "../../../../src/components/ha-card";
import "../../../../src/dialogs/more-info/more-info-content";
import { getEntity } from "../../../../src/fake_data/entity";
import {
MockHomeAssistant,
provideHass,
} from "../../../../src/fake_data/provide_hass";
import "../../components/demo-more-infos";
const ENTITIES = [
getEntity("number", "box1", 0, {
friendly_name: "Box1",
min: 0,
max: 100,
step: 1,
initial: 0,
mode: "box",
unit_of_measurement: "items",
}),
getEntity("number", "slider1", 0, {
friendly_name: "Slider1",
min: 0,
max: 100,
step: 1,
initial: 0,
mode: "slider",
unit_of_measurement: "items",
}),
getEntity("number", "auto1", 0, {
friendly_name: "Auto1",
min: 0,
max: 1000,
step: 1,
initial: 0,
mode: "auto",
unit_of_measurement: "items",
}),
getEntity("number", "auto2", 0, {
friendly_name: "Auto2",
min: 0,
max: 100,
step: 1,
initial: 0,
mode: "auto",
unit_of_measurement: "items",
}),
];
@customElement("demo-more-info-number")
class DemoMoreInfoNumber extends LitElement {
@property({ attribute: false }) public hass!: MockHomeAssistant;
@query("demo-more-infos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`
<demo-more-infos
.hass=${this.hass}
.entities=${ENTITIES.map((ent) => ent.entityId)}
></demo-more-infos>
`;
}
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.addEntities(ENTITIES);
}
}
declare global {
interface HTMLElementTagNameMap {
"demo-more-info-number": DemoMoreInfoNumber;
}
}
@@ -0,0 +1,3 @@
---
title: Scene
---
+49
View File
@@ -0,0 +1,49 @@
import { html, LitElement, PropertyValues, TemplateResult } from "lit";
import { customElement, property, query } from "lit/decorators";
import "../../../../src/components/ha-card";
import "../../../../src/dialogs/more-info/more-info-content";
import { getEntity } from "../../../../src/fake_data/entity";
import {
MockHomeAssistant,
provideHass,
} from "../../../../src/fake_data/provide_hass";
import "../../components/demo-more-infos";
const ENTITIES = [
getEntity("scene", "romantic_lights", "scening", {
entity_id: ["light.bed_light", "light.ceiling_lights"],
friendly_name: "Romantic Scene",
}),
getEntity("scene", "unavailable", "unavailable", {
friendly_name: "Romantic Scene",
}),
];
@customElement("demo-more-info-scene")
class DemoMoreInfoScene extends LitElement {
@property({ attribute: false }) public hass!: MockHomeAssistant;
@query("demo-more-infos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`
<demo-more-infos
.hass=${this.hass}
.entities=${ENTITIES.map((ent) => ent.entityId)}
></demo-more-infos>
`;
}
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.addEntities(ENTITIES);
}
}
declare global {
interface HTMLElementTagNameMap {
"demo-more-info-scene": DemoMoreInfoScene;
}
}
@@ -0,0 +1,3 @@
---
title: Timer
---
+46
View File
@@ -0,0 +1,46 @@
import { html, LitElement, PropertyValues, TemplateResult } from "lit";
import { customElement, property, query } from "lit/decorators";
import "../../../../src/components/ha-card";
import "../../../../src/dialogs/more-info/more-info-content";
import { getEntity } from "../../../../src/fake_data/entity";
import {
MockHomeAssistant,
provideHass,
} from "../../../../src/fake_data/provide_hass";
import "../../components/demo-more-infos";
const ENTITIES = [
getEntity("timer", "timer", "idle", {
friendly_name: "Timer",
duration: "0:05:00",
}),
];
@customElement("demo-more-info-timer")
class DemoMoreInfoTimer extends LitElement {
@property({ attribute: false }) public hass!: MockHomeAssistant;
@query("demo-more-infos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`
<demo-more-infos
.hass=${this.hass}
.entities=${ENTITIES.map((ent) => ent.entityId)}
></demo-more-infos>
`;
}
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.addEntities(ENTITIES);
}
}
declare global {
interface HTMLElementTagNameMap {
"demo-more-info-timer": DemoMoreInfoTimer;
}
}
+13 -17
View File
@@ -1,12 +1,6 @@
import { html, LitElement, PropertyValues, TemplateResult } from "lit";
import { customElement, property, query } from "lit/decorators";
import "../../../../src/components/ha-card";
import {
UPDATE_SUPPORT_BACKUP,
UPDATE_SUPPORT_PROGRESS,
UPDATE_SUPPORT_INSTALL,
UPDATE_SUPPORT_RELEASE_NOTES,
} from "../../../../src/data/update";
import "../../../../src/dialogs/more-info/more-info-content";
import { getEntity } from "../../../../src/fake_data/entity";
import {
@@ -15,13 +9,14 @@ import {
} from "../../../../src/fake_data/provide_hass";
import "../../components/demo-more-infos";
import { LONG_TEXT } from "../../data/text";
import { UpdateEntityFeature } from "../../../../src/data/update";
const base_attributes = {
title: "Awesome",
installed_version: "1.2.2",
latest_version: "1.2.3",
release_url: "https://home-assistant.io",
supported_features: UPDATE_SUPPORT_INSTALL,
supported_features: UpdateEntityFeature.INSTALL,
skipped_version: null,
in_progress: false,
release_summary:
@@ -61,7 +56,7 @@ const ENTITIES = [
getEntity("update", "update7", "on", {
...base_attributes,
supported_features:
base_attributes.supported_features + UPDATE_SUPPORT_BACKUP,
base_attributes.supported_features + UpdateEntityFeature.BACKUP,
friendly_name: "With backup support",
}),
getEntity("update", "update8", "on", {
@@ -73,21 +68,21 @@ const ENTITIES = [
...base_attributes,
in_progress: 25,
supported_features:
base_attributes.supported_features + UPDATE_SUPPORT_PROGRESS,
base_attributes.supported_features + UpdateEntityFeature.PROGRESS,
friendly_name: "With 25 in_progress",
}),
getEntity("update", "update10", "on", {
...base_attributes,
in_progress: 50,
supported_features:
base_attributes.supported_features + UPDATE_SUPPORT_PROGRESS,
base_attributes.supported_features + UpdateEntityFeature.PROGRESS,
friendly_name: "With 50 in_progress",
}),
getEntity("update", "update11", "on", {
...base_attributes,
in_progress: 75,
supported_features:
base_attributes.supported_features + UPDATE_SUPPORT_PROGRESS,
base_attributes.supported_features + UpdateEntityFeature.PROGRESS,
friendly_name: "With 75 in_progress",
}),
getEntity("update", "update12", "unavailable", {
@@ -114,19 +109,19 @@ const ENTITIES = [
...base_attributes,
friendly_name: "Update with release notes",
supported_features:
base_attributes.supported_features + UPDATE_SUPPORT_RELEASE_NOTES,
base_attributes.supported_features + UpdateEntityFeature.RELEASE_NOTES,
}),
getEntity("update", "update17", "off", {
...base_attributes,
friendly_name: "Update with release notes error",
supported_features:
base_attributes.supported_features + UPDATE_SUPPORT_RELEASE_NOTES,
base_attributes.supported_features + UpdateEntityFeature.RELEASE_NOTES,
}),
getEntity("update", "update18", "off", {
...base_attributes,
friendly_name: "Update with release notes loading",
supported_features:
base_attributes.supported_features + UPDATE_SUPPORT_RELEASE_NOTES,
base_attributes.supported_features + UpdateEntityFeature.RELEASE_NOTES,
}),
getEntity("update", "update19", "on", {
...base_attributes,
@@ -142,15 +137,16 @@ const ENTITIES = [
getEntity("update", "update21", "on", {
...base_attributes,
in_progress: true,
friendly_name: "Update with in_progress true and UPDATE_SUPPORT_PROGRESS",
friendly_name:
"Update with in_progress true and UpdateEntityFeature.PROGRESS",
supported_features:
base_attributes.supported_features + UPDATE_SUPPORT_PROGRESS,
base_attributes.supported_features + UpdateEntityFeature.PROGRESS,
}),
];
@customElement("demo-more-info-update")
class DemoMoreInfoUpdate extends LitElement {
@property() public hass!: MockHomeAssistant;
@property({ attribute: false }) public hass!: MockHomeAssistant;
@query("demo-more-infos") private _demoRoot!: HTMLElement;
@@ -0,0 +1,3 @@
---
title: Vacuum
---
+50
View File
@@ -0,0 +1,50 @@
import { html, LitElement, PropertyValues, TemplateResult } from "lit";
import { customElement, property, query } from "lit/decorators";
import "../../../../src/components/ha-card";
import "../../../../src/dialogs/more-info/more-info-content";
import { getEntity } from "../../../../src/fake_data/entity";
import {
MockHomeAssistant,
provideHass,
} from "../../../../src/fake_data/provide_hass";
import "../../components/demo-more-infos";
import { VacuumEntityFeature } from "../../../../src/data/vacuum";
const ENTITIES = [
getEntity("vacuum", "first_floor_vacuum", "docked", {
friendly_name: "First floor vacuum",
supported_features:
VacuumEntityFeature.START +
VacuumEntityFeature.STOP +
VacuumEntityFeature.RETURN_HOME,
}),
];
@customElement("demo-more-info-vacuum")
class DemoMoreInfoVacuum extends LitElement {
@property({ attribute: false }) public hass!: MockHomeAssistant;
@query("demo-more-infos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`
<demo-more-infos
.hass=${this.hass}
.entities=${ENTITIES.map((ent) => ent.entityId)}
></demo-more-infos>
`;
}
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.addEntities(ENTITIES);
}
}
declare global {
interface HTMLElementTagNameMap {
"demo-more-info-vacuum": DemoMoreInfoVacuum;
}
}
+1 -1
View File
@@ -42,7 +42,7 @@ const ENTITIES = [
@customElement("demo-more-info-water-heater")
class DemoMoreInfoWaterHeater extends LitElement {
@property() public hass!: MockHomeAssistant;
@property({ attribute: false }) public hass!: MockHomeAssistant;
@query("demo-more-infos") private _demoRoot!: HTMLElement;
@@ -49,11 +49,9 @@ export class HassioAddonRepositoryEl extends LitElement {
return html`
<div class="content">
<p class="description">
${this.supervisor.localize(
"store.no_results_found",
"repository",
repo.name
)}
${this.supervisor.localize("store.no_results_found", {
repository: repo.name,
})}
</p>
</div>
`;
@@ -86,15 +84,15 @@ export class HassioAddonRepositoryEl extends LitElement {
)
: this.supervisor.localize("addon.state.installed")
: addon.available
? this.supervisor.localize("addon.state.not_installed")
: this.supervisor.localize("addon.state.not_available")}
? this.supervisor.localize("addon.state.not_installed")
: this.supervisor.localize("addon.state.not_available")}
.iconClass=${addon.installed
? addon.update_available
? "update"
: "installed"
: !addon.available
? "not_available"
: ""}
? "not_available"
: ""}
.iconImage=${atLeastVersion(
this.hass.config.version,
0,
@@ -108,8 +106,8 @@ export class HassioAddonRepositoryEl extends LitElement {
? "update"
: "installed"
: !addon.available
? "unavailable"
: ""}
? "unavailable"
: ""}
></hassio-card-content>
</div>
</ha-card>
@@ -142,3 +140,9 @@ export class HassioAddonRepositoryEl extends LitElement {
];
}
}
declare global {
interface HTMLElementTagNameMap {
"hassio-addon-repository": HassioAddonRepositoryEl;
}
}
+7 -1
View File
@@ -56,7 +56,7 @@ export class HassioAddonStore extends LitElement {
@property({ attribute: false }) public supervisor!: Supervisor;
@property({ type: Boolean }) public narrow!: boolean;
@property({ type: Boolean }) public narrow = false;
@property({ attribute: false }) public route!: Route;
@@ -248,3 +248,9 @@ export class HassioAddonStore extends LitElement {
`;
}
}
declare global {
interface HTMLElementTagNameMap {
"hassio-addon-store": HassioAddonStore;
}
}
@@ -20,7 +20,7 @@ class HassioAddonConfigDashboard extends LitElement {
protected render(): TemplateResult {
if (!this.addon) {
return html`<ha-circular-progress active></ha-circular-progress>`;
return html`<ha-circular-progress indeterminate></ha-circular-progress>`;
}
const hasConfiguration =
(this.addon.options && Object.keys(this.addon.options).length) ||
@@ -65,9 +65,9 @@ class HassioAddonConfig extends LitElement {
@property({ attribute: false }) public supervisor!: Supervisor;
@property({ type: Boolean }) private _configHasChanged = false;
@state() private _configHasChanged = false;
@property({ type: Boolean }) private _valid = true;
@state() private _valid = true;
@state() private _canShowSchema = false;
@@ -104,50 +104,50 @@ class HassioAddonConfig extends LitElement {
selector: { select: { options: entry.options } },
}
: entry.type === "string"
? entry.multiple
? {
name: entry.name,
required: entry.required,
selector: {
select: { options: [], multiple: true, custom_value: true },
},
}
: {
name: entry.name,
required: entry.required,
selector: {
text: {
type:
entry.format || MASKED_FIELDS.includes(entry.name)
? "password"
: "text",
? entry.multiple
? {
name: entry.name,
required: entry.required,
selector: {
select: { options: [], multiple: true, custom_value: true },
},
},
}
: entry.type === "boolean"
? {
name: entry.name,
required: entry.required,
selector: { boolean: {} },
}
: entry.type === "schema"
? {
name: entry.name,
required: entry.required,
selector: { object: {} },
}
: entry.type === "float" || entry.type === "integer"
? {
name: entry.name,
required: entry.required,
selector: {
number: {
mode: "box",
step: entry.type === "float" ? "any" : undefined,
},
},
}
: entry
}
: {
name: entry.name,
required: entry.required,
selector: {
text: {
type:
entry.format || MASKED_FIELDS.includes(entry.name)
? "password"
: "text",
},
},
}
: entry.type === "boolean"
? {
name: entry.name,
required: entry.required,
selector: { boolean: {} },
}
: entry.type === "schema"
? {
name: entry.name,
required: entry.required,
selector: { object: {} },
}
: entry.type === "float" || entry.type === "integer"
? {
name: entry.name,
required: entry.required,
selector: {
number: {
mode: "box",
step: entry.type === "float" ? "any" : undefined,
},
},
}
: entry
)
);
@@ -340,11 +340,9 @@ class HassioAddonConfig extends LitElement {
};
fireEvent(this, "hass-api-called", eventdata);
} catch (err: any) {
this._error = this.supervisor.localize(
"addon.failed_to_reset",
"error",
extractApiErrorMessage(err)
);
this._error = this.supervisor.localize("addon.failed_to_reset", {
error: extractApiErrorMessage(err),
});
}
button.progress = false;
}
@@ -381,11 +379,9 @@ class HassioAddonConfig extends LitElement {
await suggestAddonRestart(this, this.hass, this.supervisor, this.addon);
}
} catch (err: any) {
this._error = this.supervisor.localize(
"addon.failed_to_save",
"error",
extractApiErrorMessage(err)
);
this._error = this.supervisor.localize("addon.failed_to_save", {
error: extractApiErrorMessage(err),
});
eventdata.success = false;
}
button.progress = false;
@@ -180,11 +180,9 @@ class HassioAddonNetwork extends LitElement {
await suggestAddonRestart(this, this.hass, this.supervisor, this.addon);
}
} catch (err: any) {
this._error = this.supervisor.localize(
"addon.failed_to_reset",
"error",
extractApiErrorMessage(err)
);
this._error = this.supervisor.localize("addon.failed_to_reset", {
error: extractApiErrorMessage(err),
});
button.actionError();
}
}
@@ -220,11 +218,9 @@ class HassioAddonNetwork extends LitElement {
await suggestAddonRestart(this, this.hass, this.supervisor, this.addon);
}
} catch (err: any) {
this._error = this.supervisor.localize(
"addon.failed_to_save",
"error",
extractApiErrorMessage(err)
);
this._error = this.supervisor.localize("addon.failed_to_save", {
error: extractApiErrorMessage(err),
});
button.actionError();
}
}
@@ -34,7 +34,7 @@ class HassioAddonDocumentationDashboard extends LitElement {
protected render(): TemplateResult {
if (!this.addon) {
return html`<ha-circular-progress active></ha-circular-progress>`;
return html`<ha-circular-progress indeterminate></ha-circular-progress>`;
}
return html`
<div class="content">
@@ -85,8 +85,7 @@ class HassioAddonDocumentationDashboard extends LitElement {
} catch (err: any) {
this._error = this.supervisor.localize(
"addon.documentation.get_documentation",
"error",
extractApiErrorMessage(err)
{ error: extractApiErrorMessage(err) }
);
}
}
@@ -51,7 +51,7 @@ class HassioAddonDashboard extends LitElement {
| HassioAddonDetails
| StoreAddonDetails;
@property({ type: Boolean }) public narrow!: boolean;
@property({ type: Boolean }) public narrow = false;
@state() private _error?: string;
@@ -10,7 +10,7 @@ import "./hassio-addon-info";
@customElement("hassio-addon-info-tab")
class HassioAddonInfoDashboard extends LitElement {
@property({ type: Boolean }) public narrow!: boolean;
@property({ type: Boolean }) public narrow = false;
@property({ attribute: false }) public route!: Route;
@@ -22,7 +22,7 @@ class HassioAddonInfoDashboard extends LitElement {
protected render(): TemplateResult {
if (!this.addon) {
return html`<ha-circular-progress active></ha-circular-progress>`;
return html`<ha-circular-progress indeterminate></ha-circular-progress>`;
}
return html`
+182 -133
View File
@@ -31,8 +31,8 @@ import { navigate } from "../../../../src/common/navigate";
import "../../../../src/components/buttons/ha-progress-button";
import "../../../../src/components/ha-alert";
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-chip";
import "../../../../src/components/ha-chip-set";
import "../../../../src/components/chips/ha-chip-set";
import "../../../../src/components/chips/ha-assist-chip";
import "../../../../src/components/ha-markdown";
import "../../../../src/components/ha-settings-row";
import "../../../../src/components/ha-svg-icon";
@@ -78,6 +78,7 @@ import { showHassioMarkdownDialog } from "../../dialogs/markdown/show-dialog-has
import { hassioStyle } from "../../resources/hassio-style";
import "../../update-available/update-available-card";
import { addonArchIsSupported, extractChangelog } from "../../util/addon";
import { capitalizeFirstLetter } from "../../../../src/common/string/capitalize-first-letter";
const STAGE_ICON = {
stable: mdiCheckCircle,
@@ -98,7 +99,7 @@ const RATING_ICON = {
@customElement("hassio-addon-info")
class HassioAddonInfo extends LitElement {
@property({ type: Boolean }) public narrow!: boolean;
@property({ type: Boolean }) public narrow = false;
@property({ attribute: false }) public route!: Route;
@@ -234,28 +235,32 @@ class HassioAddonInfo extends LitElement {
<ha-chip-set class="capabilities">
${this.addon.stage !== "stable"
? html` <ha-chip
hasIcon
class=${classMap({
yellow: this.addon.stage === "experimental",
red: this.addon.stage === "deprecated",
})}
@click=${this._showMoreInfo}
id="stage"
>
<ha-svg-icon
slot="icon"
.path=${STAGE_ICON[this.addon.stage]}
? html`
<ha-assist-chip
filled
class=${classMap({
yellow: this.addon.stage === "experimental",
red: this.addon.stage === "deprecated",
})}
@click=${this._showMoreInfo}
id="stage"
.label=${capitalizeFirstLetter(
this.supervisor.localize(
`addon.dashboard.capability.stages.${this.addon.stage}`
)
)}
>
</ha-svg-icon>
${this.supervisor.localize(
`addon.dashboard.capability.stages.${this.addon.stage}`
)}
</ha-chip>`
<ha-svg-icon
slot="icon"
.path=${STAGE_ICON[this.addon.stage]}
>
</ha-svg-icon>
</ha-assist-chip>
`
: ""}
<ha-chip
hasIcon
<ha-assist-chip
filled
class=${classMap({
green: Number(this.addon.rating) >= 6,
yellow: [3, 4, 5].includes(Number(this.addon.rating)),
@@ -263,151 +268,197 @@ class HassioAddonInfo extends LitElement {
})}
@click=${this._showMoreInfo}
id="rating"
.label=${capitalizeFirstLetter(
this.supervisor.localize(
"addon.dashboard.capability.label.rating"
)
)}
>
<ha-svg-icon slot="icon" .path=${RATING_ICON[this.addon.rating]}>
</ha-svg-icon>
${this.supervisor.localize(
"addon.dashboard.capability.label.rating"
)}
</ha-chip>
</ha-assist-chip>
${this.addon.host_network
? html`
<ha-chip
hasIcon
<ha-assist-chip
filled
@click=${this._showMoreInfo}
id="host_network"
.label=${capitalizeFirstLetter(
this.supervisor.localize(
"addon.dashboard.capability.label.host"
)
)}
>
<ha-svg-icon slot="icon" .path=${mdiNetwork}> </ha-svg-icon>
${this.supervisor.localize(
"addon.dashboard.capability.label.host"
)}
</ha-chip>
</ha-assist-chip>
`
: ""}
${this.addon.full_access
? html`
<ha-chip
hasIcon
<ha-assist-chip
filled
@click=${this._showMoreInfo}
id="full_access"
.label=${capitalizeFirstLetter(
this.supervisor.localize(
"addon.dashboard.capability.label.hardware"
)
)}
>
<ha-svg-icon slot="icon" .path=${mdiChip}></ha-svg-icon>
${this.supervisor.localize(
"addon.dashboard.capability.label.hardware"
)}
</ha-chip>
</ha-assist-chip>
`
: ""}
${this.addon.homeassistant_api
? html`
<ha-chip
hasIcon
<ha-assist-chip
filled
@click=${this._showMoreInfo}
id="homeassistant_api"
.label=${capitalizeFirstLetter(
this.supervisor.localize(
"addon.dashboard.capability.label.core"
)
)}
>
<ha-svg-icon
slot="icon"
.path=${mdiHomeAssistant}
></ha-svg-icon>
${this.supervisor.localize(
"addon.dashboard.capability.label.core"
)}
</ha-chip>
</ha-assist-chip>
`
: ""}
${this._computeHassioApi
? html`
<ha-chip hasIcon @click=${this._showMoreInfo} id="hassio_api">
<ha-assist-chip
filled
@click=${this._showMoreInfo}
id="hassio_api"
.label=${capitalizeFirstLetter(
this.supervisor.localize(
`addon.dashboard.capability.role.${this.addon.hassio_role}`
) || this.addon.hassio_role
)}
>
<ha-svg-icon
slot="icon"
.path=${mdiHomeAssistant}
></ha-svg-icon>
${this.supervisor.localize(
`addon.dashboard.capability.role.${this.addon.hassio_role}`
) || this.addon.hassio_role}
</ha-chip>
</ha-assist-chip>
`
: ""}
${this.addon.docker_api
? html`
<ha-chip hasIcon @click=${this._showMoreInfo} id="docker_api">
<ha-svg-icon slot="icon" .path=${mdiDocker}></ha-svg-icon>
${this.supervisor.localize(
"addon.dashboard.capability.label.docker"
<ha-assist-chip
filled
@click=${this._showMoreInfo}
id="docker_api"
.label=${capitalizeFirstLetter(
this.supervisor.localize(
"addon.dashboard.capability.label.docker"
)
)}
</ha-chip>
>
<ha-svg-icon slot="icon" .path=${mdiDocker}></ha-svg-icon>
</ha-assist-chip>
`
: ""}
${this.addon.host_pid
? html`
<ha-chip hasIcon @click=${this._showMoreInfo} id="host_pid">
<ha-svg-icon slot="icon" .path=${mdiPound}></ha-svg-icon>
${this.supervisor.localize(
"addon.dashboard.capability.label.host_pid"
<ha-assist-chip
filled
@click=${this._showMoreInfo}
id="host_pid"
.label=${capitalizeFirstLetter(
this.supervisor.localize(
"addon.dashboard.capability.label.host_pid"
)
)}
</ha-chip>
>
<ha-svg-icon slot="icon" .path=${mdiPound}></ha-svg-icon>
</ha-assist-chip>
`
: ""}
${this.addon.apparmor !== "default"
? html`
<ha-chip
hasIcon
<ha-assist-chip
filled
@click=${this._showMoreInfo}
class=${this._computeApparmorClassName}
id="apparmor"
.label=${capitalizeFirstLetter(
this.supervisor.localize(
"addon.dashboard.capability.label.apparmor"
)
)}
>
<ha-svg-icon slot="icon" .path=${mdiShield}></ha-svg-icon>
${this.supervisor.localize(
"addon.dashboard.capability.label.apparmor"
)}
</ha-chip>
</ha-assist-chip>
`
: ""}
${this.addon.auth_api
? html`
<ha-chip hasIcon @click=${this._showMoreInfo} id="auth_api">
<ha-svg-icon slot="icon" .path=${mdiKey}></ha-svg-icon>
${this.supervisor.localize(
"addon.dashboard.capability.label.auth"
<ha-assist-chip
filled
@click=${this._showMoreInfo}
id="auth_api"
.label=${capitalizeFirstLetter(
this.supervisor.localize(
"addon.dashboard.capability.label.auth"
)
)}
</ha-chip>
>
<ha-svg-icon slot="icon" .path=${mdiKey}></ha-svg-icon>
</ha-assist-chip>
`
: ""}
${this.addon.ingress
? html`
<ha-chip hasIcon @click=${this._showMoreInfo} id="ingress">
<ha-assist-chip
filled
@click=${this._showMoreInfo}
id="ingress"
.label=${capitalizeFirstLetter(
this.supervisor.localize(
"addon.dashboard.capability.label.ingress"
)
)}
>
<ha-svg-icon
slot="icon"
.path=${mdiCursorDefaultClickOutline}
></ha-svg-icon>
${this.supervisor.localize(
"addon.dashboard.capability.label.ingress"
)}
</ha-chip>
</ha-assist-chip>
`
: ""}
${this.addon.signed
? html`
<ha-chip hasIcon @click=${this._showMoreInfo} id="signed">
<ha-svg-icon slot="icon" .path=${mdiLinkLock}></ha-svg-icon>
${this.supervisor.localize(
"addon.dashboard.capability.label.signed"
<ha-assist-chip
filled
@click=${this._showMoreInfo}
id="signed"
.label=${capitalizeFirstLetter(
this.supervisor.localize(
"addon.dashboard.capability.label.signed"
)
)}
</ha-chip>
>
<ha-svg-icon slot="icon" .path=${mdiLinkLock}></ha-svg-icon>
</ha-assist-chip>
`
: ""}
</ha-chip-set>
<div class="description light-color">
${this.addon.description}.<br />
${this.supervisor.localize(
"addon.dashboard.visit_addon_page",
"name",
html`<a href=${this.addon.url!} target="_blank" rel="noreferrer"
${this.supervisor.localize("addon.dashboard.visit_addon_page", {
name: html`<a
href=${this.addon.url!}
target="_blank"
rel="noreferrer"
>${this.addon.name}</a
>`
)}
>`,
})}
</div>
<div class="addon-container">
<div>
@@ -574,10 +625,10 @@ class HassioAddonInfo extends LitElement {
<ha-alert alert-type="warning">
${this.supervisor.localize(
"addon.dashboard.not_available_version",
"core_version_installed",
this.supervisor.core.version,
"core_version_needed",
addonStoreInfo!.homeassistant
{
core_version_installed: this.supervisor.core.version,
core_version_needed: addonStoreInfo!.homeassistant,
}
)}
</ha-alert>
`
@@ -750,12 +801,11 @@ class HassioAddonInfo extends LitElement {
id === "stage"
? this.supervisor.localize(
`addon.dashboard.capability.${id}.description`,
"icon_stable",
`<ha-svg-icon path="${STAGE_ICON.stable}"></ha-svg-icon>`,
"icon_experimental",
`<ha-svg-icon path="${STAGE_ICON.experimental}"></ha-svg-icon>`,
"icon_deprecated",
`<ha-svg-icon path="${STAGE_ICON.deprecated}"></ha-svg-icon>`
{
icon_stable: `<ha-svg-icon path="${STAGE_ICON.stable}"></ha-svg-icon>`,
icon_experimental: `<ha-svg-icon path="${STAGE_ICON.experimental}"></ha-svg-icon>`,
icon_deprecated: `<ha-svg-icon path="${STAGE_ICON.deprecated}"></ha-svg-icon>`,
}
)
: this.supervisor.localize(
`addon.dashboard.capability.${id}.description`
@@ -817,11 +867,9 @@ class HassioAddonInfo extends LitElement {
};
fireEvent(this, "hass-api-called", eventdata);
} catch (err: any) {
this._error = this.supervisor.localize(
"addon.failed_to_save",
"error",
extractApiErrorMessage(err)
);
this._error = this.supervisor.localize("addon.failed_to_save", {
error: extractApiErrorMessage(err),
});
}
}
@@ -839,11 +887,9 @@ class HassioAddonInfo extends LitElement {
};
fireEvent(this, "hass-api-called", eventdata);
} catch (err: any) {
this._error = this.supervisor.localize(
"addon.failed_to_save",
"error",
extractApiErrorMessage(err)
);
this._error = this.supervisor.localize("addon.failed_to_save", {
error: extractApiErrorMessage(err),
});
}
}
@@ -861,11 +907,9 @@ class HassioAddonInfo extends LitElement {
};
fireEvent(this, "hass-api-called", eventdata);
} catch (err: any) {
this._error = this.supervisor.localize(
"addon.failed_to_save",
"error",
extractApiErrorMessage(err)
);
this._error = this.supervisor.localize("addon.failed_to_save", {
error: extractApiErrorMessage(err),
});
}
}
@@ -883,11 +927,9 @@ class HassioAddonInfo extends LitElement {
};
fireEvent(this, "hass-api-called", eventdata);
} catch (err: any) {
this._error = this.supervisor.localize(
"addon.failed_to_save",
"error",
extractApiErrorMessage(err)
);
this._error = this.supervisor.localize("addon.failed_to_save", {
error: extractApiErrorMessage(err),
});
}
}
@@ -905,11 +947,9 @@ class HassioAddonInfo extends LitElement {
};
fireEvent(this, "hass-api-called", eventdata);
} catch (err: any) {
this._error = this.supervisor.localize(
"addon.failed_to_save",
"error",
extractApiErrorMessage(err)
);
this._error = this.supervisor.localize("addon.failed_to_save", {
error: extractApiErrorMessage(err),
});
}
}
@@ -1185,23 +1225,35 @@ class HassioAddonInfo extends LitElement {
.description a {
color: var(--primary-color);
}
ha-chip {
text-transform: capitalize;
--ha-chip-text-color: var(--text-primary-color);
--ha-chip-background-color: var(--primary-color);
ha-assist-chip {
--md-sys-color-primary: var(--text-primary-color);
--md-sys-color-on-surface: var(--text-primary-color);
--ha-assist-chip-filled-container-color: var(--primary-color);
}
.red {
--ha-chip-background-color: var(--label-badge-red, #df4c1e);
--ha-assist-chip-filled-container-color: var(
--label-badge-red,
#df4c1e
);
}
.blue {
--ha-chip-background-color: var(--label-badge-blue, #039be5);
--ha-assist-chip-filled-container-color: var(
--label-badge-blue,
#039be5
);
}
.green {
--ha-chip-background-color: var(--label-badge-green, #0da035);
--ha-assist-chip-filled-container-color: var(
--label-badge-green,
#0da035
);
}
.yellow {
--ha-chip-background-color: var(--label-badge-yellow, #f4b400);
--ha-assist-chip-filled-container-color: var(
--label-badge-yellow,
#f4b400
);
}
.capabilities {
margin-bottom: 16px;
@@ -1260,9 +1312,6 @@ class HassioAddonInfo extends LitElement {
}
@media (max-width: 720px) {
ha-chip {
line-height: 36px;
}
.addon-options {
max-width: 100%;
}
@@ -18,7 +18,9 @@ class HassioAddonLogDashboard extends LitElement {
protected render(): TemplateResult {
if (!this.addon) {
return html` <ha-circular-progress active></ha-circular-progress> `;
return html`
<ha-circular-progress indeterminate></ha-circular-progress>
`;
}
return html`
<div class="content">
@@ -72,11 +72,9 @@ class HassioAddonLogs extends LitElement {
try {
this._content = await fetchHassioAddonLogs(this.hass, this.addon.slug);
} catch (err: any) {
this._error = this.supervisor.localize(
"addon.logs.get_logs",
"error",
extractApiErrorMessage(err)
);
this._error = this.supervisor.localize("addon.logs.get_logs", {
error: extractApiErrorMessage(err),
});
}
}

Some files were not shown because too many files have changed in this diff Show More