Compare commits

..
Author SHA1 Message Date
Wendelin 06355f6093 Fix target details for labels 2025-09-30 16:09:58 +02:00
Wendelin 36bcaade22 Fix target details button and expansion panel keyboard focus 2025-09-30 14:06:57 +02:00
Wendelin cdf5d2c899 Merge branch 'dev' of github.com:home-assistant/frontend into target-selected-value 2025-09-30 13:48:06 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
d746dc5752 Pin Node.js to 22.20.0 (#27258)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-30 11:53:51 +02:00
WendelinandGitHub 5f53e1e71c Update WA to fix tab group scrolling (#27255) 2025-09-30 11:36:17 +02:00
WendelinandGitHub 3da82df093 Update node nvm to latest LTS (#27256) 2025-09-30 11:35:48 +02:00
Wendelin 6cdf9ba1ab Merge branch 'dev' of github.com:home-assistant/frontend into target-selected-value 2025-09-30 11:22:37 +02:00
4cedfffb71 Let text scroll in markdown card (#27250)
* Let text overflow in markdown card

* Update src/panels/lovelace/cards/hui-markdown-card.ts

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

---------

Co-authored-by: Paul Bottein <[email protected]>
2025-09-30 09:37:15 +02:00
dcapslockandGitHub 1e1514e7da forwardHaptic on node rather than window. (#27251)
forwardHaptic on node rather than window. Allows for capturing for custom cards.
2025-09-30 07:49:32 +03:00
Jan-Philipp BeneckeandGitHub 60e07075bc Refactor ha-config-labels to use styleMap (#27248) 2025-09-29 21:05:17 +02:00
Jan-Philipp BeneckeandGitHub c998086474 Fix --ha-space-13 spacing token (#27246) 2025-09-29 20:16:29 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
53be0a3fa2 Update dependency @rsdoctor/rspack-plugin to v1.3.0 (#27241)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-29 17:31:13 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
d69c46c80c Update dependency @codemirror/autocomplete to v6.19.0 (#27242)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-29 17:30:42 +02:00
Paul BotteinandGitHub 0c2a7bfed0 Replace legacy hass icons to mdi icons (#27244) 2025-09-29 17:30:20 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
afdd232e38 Bump home-assistant/wheels from 2025.07.0 to 2025.09.1 (#27239)
Bumps [home-assistant/wheels](https://github.com/home-assistant/wheels) from 2025.07.0 to 2025.09.1.
- [Release notes](https://github.com/home-assistant/wheels/releases)
- [Commits](https://github.com/home-assistant/wheels/compare/2025.07.0...2025.09.1)

---
updated-dependencies:
- dependency-name: home-assistant/wheels
  dependency-version: 2025.09.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-29 12:37:13 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
179751a135 Bump github/codeql-action from 3.30.3 to 3.30.5 (#27235)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.30.3 to 3.30.5.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/192325c86100d080feab897ff886c34abd4c83a3...3599b3baa15b485a2e49ef411a7a4bb2452e7f93)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 3.30.5
  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>
2025-09-29 11:03:37 +03:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
52f6024306 Bump actions/cache from 4.2.4 to 4.3.0 (#27236)
Bumps [actions/cache](https://github.com/actions/cache) from 4.2.4 to 4.3.0.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/0400d5f644dc74513175e3cd8d07132dd4860809...0057852bfaa89a56745cba8c7296529d2fc39830)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: 4.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-29 11:03:06 +03:00
Phil WhiteandGitHub 7c7a4e61f2 Add media playback badge for Area card (#26893) 2025-09-29 09:58:57 +02:00
Jan-Philipp BeneckeandGitHub facce7b016 Add custom color token for control color (#27227) 2025-09-29 07:28:24 +00:00
Petar PetrovandGitHub e546cb3374 Make "loading next step" look like progress step in config flows (#27234) 2025-09-29 09:19:18 +02:00
Jan-Philipp BeneckeandGitHub a0d2e7312b Adjust media player cover image sizes in more info for smaller screens (#27232)
Adjust media player cover image sizes for smaller screens
2025-09-29 08:30:12 +03:00
Jan-Philipp BeneckeandGitHub c0a9dadcbe Implement core spacing tokens (#27226) 2025-09-29 08:28:24 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
e1edf7fb98 Update dependency lint-staged to v16.2.1 (#27233)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-29 07:57:45 +03:00
Jan-Philipp BeneckeandGitHub 6d5c165bd2 Add tooltips for undo/redo in automation & script editors (#27224) 2025-09-28 13:35:48 +03:00
Simon LamonandGitHub 54177a16e9 Set explicit netlify version to fix workflows (#27229)
netlify set explicit version for fix
2025-09-28 13:34:18 +03:00
c814b8e888 Align dashboard data table with other data tables (#27206)
* Align dashboard data table with other data tables

* Update ha-config-lovelace-dashboards.ts

Co-authored-by: Copilot <[email protected]>

* Update ha-config-lovelace-dashboards.ts

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Copilot <[email protected]>
2025-09-27 18:07:01 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
33a0b32cc5 Update vaadinWebComponents monorepo to v24.9.1 (#27220)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-27 13:25:12 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
7dae13bf57 Update dependency @rspack/core to v1.5.7 (#27219)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-27 13:24:59 +02:00
renovate[bot]andGitHub 0a3fe6e0fb Update dependency tar to v7.5.1 (#27216) 2025-09-26 19:21:46 +02:00
Paul BotteinandGitHub e0348e4da7 Fix slider ticks support for number selector (#27211) 2025-09-26 15:35:01 +02:00
Aidan TimsonandGitHub d53f3ec898 Add missing translations for thread config panel (#27210) 2025-09-26 14:09:11 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
e422547d93 Update Yarn to v4.10.3 (#27209)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-26 15:33:12 +03:00
Paul BotteinandGitHub d91a3fbe85 Don't display negative durations in media player more info (#27212)
Don't display negative value in media player more info
2025-09-26 15:28:59 +03:00
Paul BotteinandGitHub 01d7130f22 Fix try tts dialog max width (#27208) 2025-09-26 13:36:05 +02:00
Aidan TimsonandGitHub c57851e4df Migrate hex color helper functions to culori (#27184) 2025-09-26 11:31:18 +02:00
Aidan TimsonandGitHub 6f1f13acb0 Migrate rgb color helper functions to culori (#27185) 2025-09-26 11:00:08 +02:00
Jan-Philipp BeneckeandGitHub a8abd00809 Refactor media player slider to use slot for position and duration display (#27205)
* Refactor media player slider to use slot for position and duration display

* Fix variable naming
2025-09-26 06:33:56 +00:00
karwostsandGitHub e053978dbe Add dropdown mode to water heater operation feature (#27201) 2025-09-26 08:51:03 +03:00
karwostsandGitHub 6e57f726a3 Add validation issues to energy diagnostic (#27203) 2025-09-26 08:48:21 +03:00
renovate[bot]andGitHub b7cabadbe1 Update dependency typescript-eslint to v8.44.1 (#27197) 2025-09-25 22:09:08 +02:00
Simon LamonandGitHub d920217374 Fix typos in media player more info (#27198) 2025-09-25 19:02:26 +00:00
Jan-Philipp BeneckeandGitHub 1630263276 Round seconds in media player more info before formatting (#27196) 2025-09-25 20:47:40 +02:00
Paul BotteinandGitHub 5680c742be Revert "Update dependency @types/chromecast-caf-receiver to v6.0.24" (#27188) 2025-09-25 17:48:23 +02:00
Paul BotteinandGitHub 2aeb9cf0ef Revert "Update dependency @types/chromecast-caf-receiver to v6.0.24 (#26500)"
This reverts commit 4a3ed62583.
2025-09-25 17:47:59 +02:00
Paul BotteinandGitHub c9931b3a3c Disabled config badge (#27172)
* Add disabled option for badge

* Add disabled to struct
2025-09-25 17:45:06 +02:00
Paul BotteinandGitHub fbf7ebdfe4 Add icon option to common controls section strategy (#27180) 2025-09-25 17:23:54 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
52ccb03de5 Update dependency hls.js to v1.6.13 (#27187)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-25 17:21:23 +02:00
Paul BotteinandGitHub 900236ac07 Fix storage bar not displayed (#27183) 2025-09-25 15:56:26 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
28940c930d Update dependency @codemirror/view to v6.38.3 (#27163)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-25 15:55:35 +01:00
Paul BotteinandGitHub e278b463fd Fix analytics switches (#27181) 2025-09-25 15:54:11 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
db2acd4e39 Update dependency @rspack/core to v1.5.6 (#27177)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-25 13:10:01 +02:00
WendelinandGitHub 6dcc52cd44 Reduce default tab padding in tab-group (#27173) 2025-09-25 11:52:04 +01:00
Paul BotteinandGitHub 981db50826 Smooth animation of the sidebar resizing handle (#27166) 2025-09-25 10:43:04 +02:00
Paul BotteinandGitHub 09683863a7 Fix safe padding for bottom sheet and add scroll lock (#27165) 2025-09-25 10:41:05 +02:00
Norbert RittelandGitHub 8c78f931dc Use "Add (person)" instead of "New person" / "Create" (#27161)
* Update dialog-person-detail.ts

* Update en.json
2025-09-25 10:19:25 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
40ce3c1e31 Update dependency lint-staged to v16.2.0 (#27164)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-25 10:13:06 +02:00
Wendelin 32e4c23c1a Merge branch 'dev' of github.com:home-assistant/frontend into target-selected-value 2025-09-25 09:17:09 +02:00
Paulus SchoutsenandGitHub e430a1b1be Avoid invalid entities in common controls (#27158) 2025-09-25 08:15:54 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
a2c6116417 Update dependency tar to v7.4.4 (#27159)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-25 08:15:06 +03:00
Paul BotteinandGitHub 3239273f3e Do not show error message when action has no response in dev tools (#27156) 2025-09-24 19:19:31 +02:00
Paul Bottein e42c5a3254 Merge branch 'master' into dev 2025-09-24 17:09:01 +02:00
Paul Bottein df7a6297b0 Bumped version to 20250924.0 2025-09-24 16:45:20 +02:00
e4ca478d01 Add themes variables to tile card to change font appearance (#27092)
* Add themes variables to tile card to change font appearance

* Update documentation header including themes variables

---------

Co-authored-by: Jeremy Cook <[email protected]>
2025-09-24 14:34:43 +00:00
7be2c59295 Redesign media player more-info dialog (#26904)
* Redesign media player more-info dialog

* Add missing imports

* Add some more media player controls to gallery

* Fix NaN

* Fix first example source

* Regroup

* Remove

* Add marquee text

* Buttons

* aria-label

* Increase speed

* Improve marquee text

* Improve marquee text

* Improve marquee text

* Add touch events to marquee text

* Use classMap

* Remove chip styling

* Make ha-marquee-text slotted and add to gallery

* Format

* Remove aria-label

* Make turn on and off buttons have labels

* Match more figma

* Add integration logo and move grouping/inputs to top

* Hm

* Fix badge

* Minor tweaks

* Disable position slider when seek is not supported

* Process code review

* remove disabled color for slider

* Process UX

* Run prettier

* Mark listener as passive

* Improve bottom controls and styling

* Remove unused function

* Some minor improvements

* Show remaining instead duration

---------

Co-authored-by: Paulus Schoutsen <[email protected]>
2025-09-24 16:13:37 +02:00
99d9c67492 Button feature change variable handling script (#26786)
* Update types.ts

Added extra parameter button_action

* Update hui-button-card-feature-editor.ts

Added second field

* Update hui-button-card-feature.ts

* Update types.ts

* Update hui-button-card-feature-editor.ts

Fix issue with field naming

* Update hui-button-card-feature-editor.ts

* Update hui-button-card-feature-editor.ts

* Update hui-button-card-feature-editor.ts

* .

* Strategy update

* Update types.ts

* Update hui-button-card-feature-editor.ts

* Fix linting issues

* Add data field to editor

* localize error

* Update hui-button-card-feature.ts

Added suggestions

* Use UI to set script variables in button feature

* Update src/panels/lovelace/card-features/hui-button-card-feature.ts

Co-authored-by: Petar Petrov <[email protected]>

---------

Co-authored-by: Wendelin <[email protected]>
Co-authored-by: Wendelin <[email protected]>
Co-authored-by: Petar Petrov <[email protected]>
2025-09-24 15:53:42 +03:00
WendelinandGitHub 8f781e53e3 Hassio core logs latest endpoint (#27131) 2025-09-24 14:48:26 +02:00
Aidan TimsonandGitHub 3c92826e71 Fix pixel gap on mobile for automation card (#27153) 2025-09-24 13:23:39 +02:00
karwostsandGitHub 151a879e0a Add an energy diagnostics downloader (#27150)
* Add an energy diagnostics downloader

* add version
2025-09-24 13:47:09 +03:00
WendelinandGitHub f3a8529ed7 Fix show disabled integrations button (#27151)
* Fix show disabled integrations button

* fix tsc
2025-09-24 13:42:37 +03:00
d2cc7856d1 Visually differentiate statistics graph in more-info (#27055)
visually differentiate statistics graph in more-info

Co-authored-by: Petar Petrov <[email protected]>
2025-09-24 10:41:43 +00:00
d5cb815bbd Automation sidebar bottom fade and safe area fixes (#27135)
Co-authored-by: Wendelin <[email protected]>
Co-authored-by: Wendelin <[email protected]>
2025-09-24 10:52:16 +02:00
Tom CarpenterandGitHub 7f88d863e9 Add toolbar to YAML/template editors (#26580) 2025-09-24 09:49:35 +02:00
Aidan TimsonandGitHub 88ac56ac0b Analog clock: CSS animation and seconds motion options (#26943)
* Increase analog clock interval and improve accuracy

* Restore

* Use CSS to render hands instead of JS interval with resync to adjust offsets

* Option

* Remove

* Option

* Fix
2025-09-24 08:36:39 +03:00
3d173ad03e Revert "Revert "Rename "Logbook" to "Activity" in user-facing strings"" (#26882)
Co-authored-by: Simon Lamon <[email protected]>
2025-09-23 22:02:44 +02:00
Lukas WaslowskiandGitHub 3889d71768 Improve addon configuration UI (#26997)
* Replace deeply nested ternary operators with if-return chain

* Extract _convertSchemaElement from _convertSchema

* Extract _convertSchemaElementToSelector from _convertSchemaElement

* Add force parameter to _convertSchemaElementToSelector

* Add UI editor for (lists of) nested dicts in addon configs

* Render top-level dicts to expandable sections

* Use correct translation keys for nested fields in addon configs

* Restructure translation keys for nested addon config fields
2025-09-23 19:08:06 +02:00
Jan-Philipp BeneckeandGitHub 8872adf2ed Remove unused fab styles from automation and script blueprint editors (#27147)
* Add missing styles to save fab in automation/script blueprint editor

* Remove unused FAB styles from automation and script editors
2025-09-23 17:28:47 +02:00
Aidan TimsonandGitHub 969e655fff Set hardware loading to use alert with spinner (#27149)
* Fix icon size

* Set hardware loading to use alert with spinner

* Match storage size
2025-09-23 17:28:06 +02:00
WendelinandGitHub cdc913d878 Automation Editor: Fix onDisable to not open sidebar (#27144)
Fix onDisable to not open sidebar always
2025-09-23 16:49:16 +03:00
4ac1215def Add undo/redo to script editor (#27145)
Co-authored-by: Wendelin <[email protected]>
2025-09-23 12:16:40 +00:00
b2376fba56 Simplify undo of pasting in automation editor (#27141)
Co-authored-by: Wendelin <[email protected]>
2025-09-23 13:30:17 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
f14d9198ac Update Yarn to v4.10.2 (#27142)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-23 12:34:38 +02:00
karwostsandGitHub f4e583b302 Don't hide empty entity-filter card in edit mode (#27119) 2025-09-23 07:54:54 +03:00
Paul BotteinandGitHub 2c602aecee Clear ha-ripple state on disconnected (#27139) 2025-09-23 07:53:07 +03:00
Jan LayolaandGitHub cbf96898fe Fix history chart issues (#27133)
* Add z-index to reset button

* Add sync-charts property to StateHistoryCharts component
2025-09-23 07:51:57 +03:00
karwostsandGitHub 6760f4a2ae Support water_heater in thermostat card (#27096) 2025-09-22 22:16:11 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
3481f7e8be Update dependency eslint to v9.36.0 (#27137)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-22 18:14:37 +02:00
WendelinandGitHub 95a0fe335f Revive automation row overflow menu (#27093) 2025-09-22 16:46:35 +02:00
Aidan TimsonandGitHub 1e2d144d26 Update safe areas for dialogs (#27008) 2025-09-22 15:38:39 +02:00
Jan LayolaandGitHub 6aa89cb532 Fix ha-target-picker remove/expad buttons after tooltip migration (#27134) 2025-09-22 15:22:42 +02:00
Jan-Philipp BeneckeandGitHub 1b0ed7017f Add undo/redo functionality to automation editor (#26796) 2025-09-22 14:41:02 +02:00
WendelinandGitHub 1cc7e387da Do not show delete confirm on default choose (#27132) 2025-09-22 11:38:28 +00:00
WendelinandGitHub 41bf935f6e Add disabled info to subtitle, fixed disabled overflow (#27128) 2025-09-22 13:33:14 +02:00
Norbert RittelandGitHub b08ea36a1e Explain "picker" using different term (#27114)
* Explain "picker" using different term

* Replace "list" with "menu list"
2025-09-22 09:40:22 +02:00
Paulus SchoutsenandGitHub 4f52a46725 Fix header positioning for media players domain dashboard (#27123)
* Fix header positioning for media players domain dashboard

* Update home-media-players-view-strategy.ts
2025-09-22 09:09:52 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
f8a82563b0 Update Yarn to v4.10.0 (#27125)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-22 08:38:27 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
a1672ccdfb Update dependency del to v8.0.1 (#27120)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-22 08:38:00 +02:00
renovate[bot]andGitHub bde851e5a4 Update dependency rspack-manifest-plugin to v5.1.0 (#27121) 2025-09-22 08:19:33 +02:00
karwostsandGitHub a6d3041d59 Fix a date bug in statistic card energy mode (#27102) 2025-09-20 12:45:17 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
f64edfa305 Update dependency @rspack/core to v1.5.5 (#27106)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-20 11:39:07 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
067b321d84 Lock file maintenance (#27100)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-19 08:45:09 +03:00
Norbert RittelandGitHub 33efe395c8 Clarify sidebar setting / column header for dashboards (#27087) 2025-09-19 08:42:53 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
db26b1041f Update dependency fs-extra to v11.3.2 (#27099)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-19 08:33:36 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
6e9b4637bb Update dependency typescript-eslint to v8.44.0 (#27098)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-18 20:29:57 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
0e30e5e0f4 Update dependency @rspack/core to v1.5.4 (#27094)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-18 17:16:33 +02:00
Bram KragtenandGitHub 283da74e2d Expand pasting capabilities of automation editor (#26992) 2025-09-18 17:01:42 +02:00
Wendelin cf97566669 Fix dialog title 2025-09-18 16:59:37 +02:00
WendelinandGitHub 034afd1375 automation editor: resizable sidebar (#27025) 2025-09-18 16:45:31 +02:00
912d710ae4 Change order related items (#27081)
Co-authored-by: Bram Kragten <[email protected]>
2025-09-18 12:38:40 +00:00
Jan-Philipp BeneckeandGitHub 86b99d931a Fix minification errors in ha-tab-group-tab and ha-slider styles (#27090) 2025-09-18 14:28:45 +02:00
35cfa9aa0d Only show devices dialog at the end of a flow chain (#27068)
Co-authored-by: Bram Kragten <[email protected]>
2025-09-18 14:26:04 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
6a23dbf204 Update vaadinWebComponents monorepo to v24.9.0 (#27086)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-18 14:35:17 +03:00
Paul BotteinandGitHub cef8fc1d38 Move the logic to show common controls inside the strategy itself (#27088) 2025-09-18 14:34:46 +03:00
Wendelin c68d73b1ef Add overview dialog 2025-09-18 11:08:52 +02:00
Norbert RittelandGitHub 7c06e33b50 Clarify sidebar setting for add-ons (#27085) 2025-09-18 09:55:39 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
cb365d4635 Update dependency marked to v16.3.0 (#27080)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-17 20:03:35 +02:00
Paulus SchoutsenandGitHub 525102678b Limit to 4 common entities on landing page. (#27082) 2025-09-17 20:03:10 +02:00
dfc4b0bba2 Show generated media in action dev tools (#26927)
* Show generated image in action dev tools

* Resolve media_source_id

* Render other media content too

* Update src/panels/developer-tools/action/developer-tools-action.ts

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

* Fix

* Remove translation placeholder

---------

Co-authored-by: Bram Kragten <[email protected]>
2025-09-17 19:07:32 +02:00
Jan-Philipp BeneckeandGitHub 846692bc8a Migrate ha-slider to webawesome (#27075)
* Migrate ha-slider to webawesome

* Fix labeled slider

* Change slider surface color

* Trigger Build

* Remove large and border

* Run prettier

* enable tooltip and focus ring
2025-09-17 19:06:13 +02:00
Wendelin 89ef753309 Fix filtering 2025-09-17 15:18:49 +02:00
DouweandGitHub 3b90b5fcb1 Add feature gap theme variable for hui-card-features (#27076)
* Update hui-card-features.ts

Add CSS variable for gap

* Renamed variable
2025-09-17 14:03:49 +02:00
cac978344f Add more binary sensors to security dashboard (#27041)
Co-authored-by: Simon Lamon <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
2025-09-17 13:56:51 +02:00
karwostsandGitHub 6a40631e6d Add diagnostics download to helpers menu (#27077) 2025-09-17 14:19:15 +03:00
Aidan TimsonandGitHub 48f5b6dfd3 Safe area: Fix double padding for sidebar (#27078)
Fix double padding for sidebar
2025-09-17 14:16:02 +03:00
Björn EbbinghausandGitHub 04b01d2cd9 Add relative timestamp state_content for input_datetime (#24135)
* Fix digit grouping in input_datetime `year`

* Display `input_datetime`s `timestamp` attribute as relative time instead of number
2025-09-17 10:22:00 +00:00
Jan LayolaandGitHub 0e8e054db1 Sync charts zoom in history tab (#26898)
* Add chart zoom event system and sync infrastructure to chart-base

- Replace inline datazoom handler with dedicated _handleDataZoomEvent method
- Add _syncZoomState method for zoom state synchronization
- Refactor zoom detection to be more robust and reliable

* Add hide reset button functionality

- Add hideResetButton property to ha-chart-base component
- Add hideResetButton property to state-history-chart-line component
- Add hideResetButton property to state-history-chart-timeline component
- Implement conditional reset button rendering based on hideResetButton flag
- Pass hideResetButton prop through component hierarchy

This allows parent components to control reset button visibility when
implementing custom reset functionality or coordinated multi-chart resets.

* Implement chart zoom synchronization

- Add chart-zoom event handlers to state-history-chart-line component
- Add chart-zoom event handlers to state-history-chart-timeline component
- Forward zoom events with chart index for identification

This enables individual charts to communicate zoom changes to parent
components for coordinated multi-chart synchronization.

* Add floating reset button and sync orchestration

- Add chart-zoom event type definition to HASSDomEvents interface
- Add global zoom state tracking with _hasZoomedCharts property
- Add _isSyncing flag to prevent infinite sync loops
- Implement _handleTimelineSync method for coordinating chart synchronization
- Implement _handleGlobalZoomReset method for resetting all charts
- Enable hide-reset-button on individual charts to use global reset
- Add floating reset button with Material Design styling

On history page the floating reset button appears when any chart is zoomed
and provides a single point to reset all synchronized charts simultaneously.

* Refactor chart zoom synchronization to use public API

Replace direct ECharts dispatchAction calls with proper zoom methods. The parent component now calls chartComponent.zoom() instead of accessing internal chart.dispatchAction() directly.

* Remove duplicate TypeScript declaration of the "chart-zoom" event

* Fix tooltips not shown due to xAxisPointer hidden

* Use chart zoom function in history charts

* Apply code review feedback

* Remove unnecessary any types

* Apply code review feedback
2025-09-17 10:36:28 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
477a893193 Update dependency color-name to v2.0.2 (#27074)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-16 20:38:31 +02:00
puddlyandGitHub bd0822f09f Wrap overflowing menu step option descriptions (#27072)
Make menu step option descriptions multiline
2025-09-16 20:25:41 +02:00
Paul BotteinandGitHub 07c3ffb55d Use computed config for strategy visibility and disabled flag (#27071) 2025-09-16 19:10:51 +02:00
fbfb4709d2 Add section strategy showing entities we expect user to use (#27014)
* Extend favorites with predicted entities

* Split out into own section

* Better component loaded check

* Use section strategy

* Feedbacks

* Remove hardcoded limit

* Add translations

---------

Co-authored-by: Paul Bottein <[email protected]>
2025-09-16 12:24:08 -04:00
Wendelin b149ddc3d4 Enhance target picker with filtering options for devices and entities 2025-09-16 17:31:46 +02:00
Aidan TimsonandGitHub 0a5b31e328 Add safe areas to bottom sheets and sidebar (#27009)
* Add safe areas to bottom sheet

* Add safe areas to automation sidebar

* Remove

* Add safe areas

* Add safe areas

* Switch
2025-09-16 16:48:06 +02:00
Aidan TimsonandGitHub 8cf0d8d2c3 Safe area: devtools (#26969)
* Remove extra padding

* Remove extra padding

* Remove extra padding

* Fixes

* use change from #26971

* Remove

* Remove

* Remove

* Remove

* Restore for future change

* Fix
2025-09-16 16:35:48 +02:00
WendelinandGitHub 61c16ce020 Automation editor: Copy always enabled (#27069) 2025-09-16 16:09:18 +02:00
Wendelin a2e99de828 Do not show entities count for sub entries 2025-09-16 15:51:18 +02:00
WendelinandGitHub 6bede4ddca Automation editor: Disable click on drag handle (#27063)
Add stopPropagation to click events in automation components
2025-09-16 15:22:26 +03:00
Paul BotteinandGitHub bd88b91071 Order tile card config according to struct (#27060) 2025-09-16 15:13:37 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
29b02a3c99 Update dependency jsdom to v27 (#27066)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-16 15:04:10 +03:00
TimothyandGitHub ac87e2280d Add External app version into ha-config-info (#27064) 2025-09-16 13:18:18 +02:00
Wendelin e3655feda0 Keep chips in history and logbook 2025-09-16 13:14:11 +02:00
Wendelin a5be92c277 Merge branch 'dev' of github.com:home-assistant/frontend into target-selected-value 2025-09-16 11:08:44 +02:00
Jan LayolaandGitHub 98c4e34a23 Sort installed addons by name in the ha-config-logs component (#27056) 2025-09-15 17:01:54 +02:00
karwostsandGitHub 3d005c8316 Manual entry mode for media selector (#26753) 2025-09-15 16:48:03 +02:00
Paul BotteinandGitHub af31b5add3 Add formatEntityName helper on hass object. (#26057) 2025-09-15 14:18:52 +00:00
Aidan TimsonandGitHub 9d02a1d391 Fix calendar toggle group wrapping (#27049) 2025-09-15 14:12:37 +00:00
Petar PetrovandGitHub 98e6f32fe8 Improve device section organization in energy Sankey card (#26978) 2025-09-15 15:57:52 +02:00
2726c6a849 Fix calendar toggle group button sizes (#27050)
Co-authored-by: Bram Kragten <[email protected]>
2025-09-15 13:31:49 +00:00
Aidan TimsonandGitHub c09ec54c76 Safe area: containers and panels (#26971)
This commit squashes the following development history:

1e78af3aa - Restore, moved to #26969
d672d9f44 - Restore
53ee5fbbc - Restore
16b4eb98e - Restore
8d8b13f50 - Restore
62e16619d - Apply changes from #27003
f5ee79a47 - Fix
60678689c - Fix
766ed6a25 - Fix
f76bd4f7e - Fix fabs
1879fd0d9 - Fix
ea3ee6de5 - Add safe areas to ha-hanel-custom
aa3384b9a - Add missing
c9a7f76dc - Fix
78351fd1f - Fix
59789d379 - Fix
1c7aabd34 - Remove
eaf1373cf - Fix
8481a93d7 - Fix
fe7df1f2f - Remove
69f244ff3 - Restore
2eb936b64 - Adjust
b09350637 - Fix
c0504bb7e - Clean
b0773d73e - Fix
4caa4a43b - make sure narrow is passed
8885f6bf6 - Add safe areas to 2 pane fixed
62df70f63 - Clean
a87e68d87 - FIx
5086be030 - Fix energy
ac3478e54 - Fix
0f28098a6 - Restore
b65ba3df9 - Restore
b0e1ea6db - Restore
7bb78d1c7 - Fix
26c95df71 - Update
7369c79d3 - Remove
b5f31dad6 - Fix
40cfc437d - Set top level padding instead of individual panels
83b49729f - Restore
25db15816 - Fix
8c9c39827 - Set top level app bar padding instead of individual panels
b7a1b27c9 - Remove
1e9368705 - Device
1482502f9 - Integration page
98dc1bf56 - Fix
1c3de1376 - Add
a08bee4d8 - Remove
0d462439b - Area subpage
4bfd60875 - Areas fix
b5cbcdaf7 - Fix
9fb272074 - Add safe areas to script editor
7c3bc9433 - Add safe areas to scene editor
1cf1b999a - Fix mobile for automation editors
4413bd4b7 - Add safe areas to automation editor
2e6953327 - Add safe areas to blueprint editor
989776dd1 - Add config section padding
6692b7ccf - Fix header row
22337b5e2 - Fix calendar
414e058cd - Fix pane
f09ae0e0c - Fix calendar
fb5a984ee - Fix pane
1daee18c8 - Todo fab
6f52cb42b - Todo content
9b317c583 - Media browser
0f8ca248d - Fix history panel
cd7843799 - Fix logbook
b8d47ecf3 - Fix
d15e9311d - Safe area: dashboard view container should only apply left safe area when in full view

Summary of changes:
- Add narrow property to top app bar components for conditional safe area padding
- Update safe area inset calculations to use fallback values (0px) for better compatibility
- Fix content height calculations to account for safe area insets
- Apply safe area padding conditionally based on narrow state
- Update FAB positioning to respect safe area insets
- Ensure proper spacing and layout on mobile devices with notches/dynamic islands
2025-09-15 15:54:04 +03:00
Norbert RittelandGitHub 9f045538a2 Update beta / stable channel descriptions (#27047) 2025-09-15 11:49:11 +02:00
Paul BotteinandGitHub c6c4f91b0e Use slot for tile card info (#27046) 2025-09-15 11:29:48 +03:00
f71d8f4367 Fix incorrect logbook entity filters (#27037)
* Fix incorrect logbook filters

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

---------

Co-authored-by: Petar Petrov <[email protected]>
2025-09-15 08:06:03 +00:00
WendelinandGitHub 68c1a38231 Unit tests for common/entity/get_states (#27007) 2025-09-15 09:28:02 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
a9796e4216 Bump github/codeql-action from 3.30.0 to 3.30.3 (#27045)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.30.0 to 3.30.3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/2d92b76c45b91eb80fc44c74ce3fce0ee94e8f9d...192325c86100d080feab897ff886c34abd4c83a3)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 3.30.3
  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>
2025-09-15 08:38:26 +02:00
Aidan TimsonandGitHub bf6eefb692 Migrate from date-fns-tz to @date-fns/tz (#26809)
* Add @date-fns/tz

* Update calc_date

* Refactor ha-date-range-picker

* Refactor calendar panel

* Refactor todo panel

* Remove date-fns-tz

* Cleanup

* Move util functions

* Fix comment

* Reuse

* Restore old check for rrulejs, update to new format
2025-09-15 07:38:08 +03:00
Paul BotteinandGitHub 7ec3b08444 Add disabled option for cards and sections (#27026)
* Add hidden config option for cards and sections

* Rename to disabled
2025-09-15 07:23:39 +03:00
Norbert RittelandGitHub f3355671d1 Capitalize "Core" and "Supervisor" as component names (#27039) 2025-09-14 17:50:44 +02:00
Simon LamonandGitHub c0e240a3bf Revert SHA pinning for home-assistant/wheels (#27034) 2025-09-13 16:47:57 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
00fd4753e4 Update dependency @rspack/core to v1.5.3 (#27032)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-13 09:54:56 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
08ac873e3b Update dependency globals to v16.4.0 (#27031)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-13 09:54:37 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
d12b8d1b1b Update dependency hls.js to v1.6.12 (#27028)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-12 19:23:15 +02:00
Simon LamonandGitHub 977207dde4 Pin SHA for all github actions (#26958) 2025-09-12 19:17:44 +02:00
Norbert RittelandGitHub 87a5f1a315 Treat "Recorder" as a (capitalized) name that should not be translated (#27023) 2025-09-12 18:29:56 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
acab2d5ead Update dependency ua-parser-js to v2.0.5 (#27024)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-12 16:42:16 +02:00
046fc00f73 Add home assistant bottom sheet (#26948)
Co-authored-by: Wendelin <[email protected]>
2025-09-12 15:33:30 +02:00
MarcinandGitHub 05775c411b Add transition to button background (#27021) 2025-09-12 14:57:33 +02:00
Bram Kragten d64acca598 Merge branch 'rc' 2025-09-12 14:43:23 +02:00
Bram Kragten 59571d03a6 Bumped version to 20250903.5 2025-09-12 14:43:09 +02:00
WendelinandBram Kragten 28c515bbac Fix automation sidebar overflow icon size (#27016) 2025-09-12 14:42:36 +02:00
Aidan TimsonandBram Kragten 27db5b3b02 Move close to the secondary action to allow enter key to submit (#27005) 2025-09-12 14:42:35 +02:00
WendelinandBram Kragten 1922db0474 Fix disabled automation style (#26988)
* Update disabled state logic in action and condition editors to account for indent property

* Remove opacity
2025-09-12 14:42:34 +02:00
Simon LamonandBram Kragten c8c74a9744 Don't show "condition did not pass" before testing (#26987)
Testing wrapper
2025-09-12 14:42:33 +02:00
Simon LamonandBram Kragten 2c676baa99 Fix Webhook Trigger doesn't display correctly (#26982)
Webhook
2025-09-12 14:42:33 +02:00
Petar PetrovandBram Kragten 3e41474faa Fix battery to grid connection in Sankey card (#26973) 2025-09-12 14:42:32 +02:00
Petar PetrovandBram Kragten 5f9c69ac21 Fix for batteries with long names in energy dashboard (#26972) 2025-09-12 14:42:31 +02:00
Paul BotteinandBram Kragten 8b45ccaaba Only copy/cut/delete selected automation rows (#26966) 2025-09-12 14:42:30 +02:00
Paul BotteinandBram Kragten 455925f637 Don't trigger automation shortcuts when a field is focused or text selected (#26965)
* Don't trigger automation shortcut when a field is focused

* Don't trigger automation shortcut when a text is selected
2025-09-12 14:42:29 +02:00
WendelinandBram Kragten 9fba7427f8 Fix yaml editor save in config-flow (#26963) 2025-09-12 14:42:28 +02:00
karwostsandBram Kragten 21aae02652 Mark new automation as dirty if it has initData (#26953) 2025-09-12 14:42:28 +02:00
karwostsandBram Kragten 24e3fbf622 Fix condition action in config flow dialog (#26929) 2025-09-12 14:42:27 +02:00
Wendelin 043849b057 Group floor and area, add label icon, remove remove group 2025-09-12 14:33:41 +02:00
dcbc8b627f Migrate ha-tooltip to webawesome (#26540)
Co-authored-by: Bram Kragten <[email protected]>
2025-09-12 13:09:24 +02:00
Wendelin 9a69566000 Fix sublist 2025-09-12 12:02:01 +02:00
0d8d18617c Create and implement goBack helper function (#27015)
Co-authored-by: Bram Kragten <[email protected]>
2025-09-12 11:39:45 +02:00
Lukas WaslowskiandGitHub 7eb87c78cc fix: Pass hass object to <ha-form/> in <hassio-addon-config/> (#26995)
fix: Pass  object to <ha-form/> in <hassio-addon-config/>
2025-09-12 05:03:53 -04:00
Paul BotteinandGitHub 0eaf9ead9e Move section edit logic to its own component (#27017) 2025-09-12 08:51:10 +00:00
Paul BotteinandGitHub 7082646fe5 Only copy/cut/delete selected automation rows (#26966) 2025-09-12 10:46:23 +02:00
karwostsandGitHub 96d364b3bd Full width ha-select dropdowns for z-wave (#27013) 2025-09-12 10:45:31 +02:00
WendelinandGitHub e726eb7370 Fix automation sidebar overflow icon size (#27016) 2025-09-12 10:43:55 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
e6f587da78 Update dependency typescript-eslint to v8.43.0 (#27010)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-11 19:43:02 +02:00
Wendelin 9cdb57476a Merge branch 'dev' of github.com:home-assistant/frontend into target-selected-value 2025-09-11 15:59:07 +02:00
Petar PetrovandGitHub c595392abe Support opening a new config flow when the current one is finished (#26964) 2025-09-11 15:49:09 +02:00
Aidan TimsonandGitHub 5bcffd0dbe Fix hass-subpage toolbar position (#27003) 2025-09-11 15:26:14 +02:00
Aidan TimsonandGitHub df801833fc Move close to the secondary action to allow enter key to submit (#27005) 2025-09-11 13:16:02 +00:00
Paul BotteinandGitHub 5ba5c00c70 Include non-primary entities targeted directly by label (#26952) 2025-09-11 15:12:20 +02:00
Paul BotteinandGitHub dcea227f4a Add themes variables to tile card to change border radius (#26999) 2025-09-11 14:55:07 +02:00
Wendelin f8d90d003e fix entity domain name 2025-09-11 14:36:44 +02:00
Wendelin f53ee52b0e Fix typo 2025-09-11 12:27:05 +02:00
Wendelin f8cc1531e5 Use extractFromTarget 2025-09-11 12:25:02 +02:00
WendelinandGitHub 1abedcd5f0 Migrate tab-group to webawesome (#26951) 2025-09-11 11:15:24 +02:00
Lukas WaslowskiandGitHub 9e29693293 nitpick: Rename HaFormExpendable to HaFormExpandable (#26994)
nitpick: Rename HaFormExpendable to HaFormExpandable
2025-09-10 21:38:07 +02:00
Lukas WaslowskiandGitHub 3bfafc794f fix: Import ha-expansion-panel in ha-form-expandable (#26996)
fix: Import ha-expansion-panel in ha-form-expandable

The current usages of ha-form-expandable only work correctly because
ha-expansion-panel is already imported somewhere else by coincidence.

This adds an explicit import to avoid breakages when using
ha-form-expandable in a standalone context (e.g. within ./hassio).
2025-09-10 21:37:37 +02:00
Simon LamonandGitHub 89c43b2b33 Don't show "condition did not pass" before testing (#26987)
Testing wrapper
2025-09-10 16:58:26 +03:00
WendelinandGitHub 466115d916 Prettier one line format in style .globals.ts files (#26991) 2025-09-10 14:54:34 +02:00
WendelinandGitHub a34ca3c085 Fix disabled automation style (#26988)
* Update disabled state logic in action and condition editors to account for indent property

* Remove opacity
2025-09-10 14:01:05 +02:00
karwostsandGitHub 9a8ca36047 Filter entities from energy sources table with no data (#26974)
Filtere entities from energy sources table with no data
2025-09-10 09:48:53 +03:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Petar Petrov
b454e89613 Bump vite from 7.1.2 to 7.1.5 (#26983)
* Bump vite from 7.1.2 to 7.1.5

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.1.2 to 7.1.5.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.1.5/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 7.1.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>

* dedupe

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Petar Petrov <[email protected]>
2025-09-10 05:45:12 +00:00
Simon LamonandGitHub 0b76109272 Fix Webhook Trigger doesn't display correctly (#26982)
Webhook
2025-09-10 08:42:47 +03:00
Paulus SchoutsenandGitHub 942d264693 Allow storing AI Task generate image preferred entity (#26959) 2025-09-10 08:41:22 +03:00
Petar PetrovandGitHub b10fdf8438 Fix for batteries with long names in energy dashboard (#26972) 2025-09-09 19:28:09 +02:00
Petar PetrovandGitHub bee8980192 Fix battery to grid connection in Sankey card (#26973) 2025-09-09 19:27:41 +02:00
Lukas WaslowskiandGitHub 61487565db nitpick: Rename _filteredShchema to _filteredSchema (#26979) 2025-09-09 19:26:52 +02:00
Wendelin 11f65ef0f7 Add new target selected value view 2025-09-09 15:38:48 +02:00
Aidan TimsonandGitHub cc70eb46c9 Safe area: sidebar and notification drawer (#26853)
* sidebar: account for safe-area top inset in menu height/padding; adjust list height calc

* Defaults

* Defaults

* Restore

* Remove test

* Adjust

* Adjust

* Only apply on smaller layouts

* Fix

* Restore

* Restore

* No default in this case

* Restore

* Gain back some space

* Fix

* Adjust

* Tweak

* Calculate when mobile

* Use fallbacks for calculations and others anyway
2025-09-09 11:59:24 +02:00
dec9d304da Add analog card clock style options (#26711)
* Options

* Add default analog options (or delete) when changing style, hide when digital

* Fix rebase error

* Format

* Update description

Co-authored-by: Norbert Rittel <[email protected]>

* Flatten config options

* Flatten config options

* Add analog clock style options

Show lines

Adjust

Adjust

Replace 'ticks_style' with 'face_style' and use numbers over numeric

Use numbers over numeric

* Rebase fixes

* Missing translations mapping

* Remove rotated numbers and roman upright options

* Remove rotated numbers and roman upright options

* Edit description

* Update src/translations/en.json

Co-authored-by: Norbert Rittel <[email protected]>

* Update src/translations/en.json

Co-authored-by: Norbert Rittel <[email protected]>

---------

Co-authored-by: Norbert Rittel <[email protected]>
2025-09-09 11:30:19 +03:00
Paul BotteinandGitHub 7f8e856102 Don't trigger automation shortcuts when a field is focused or text selected (#26965)
* Don't trigger automation shortcut when a field is focused

* Don't trigger automation shortcut when a text is selected
2025-09-09 10:53:06 +03:00
karwostsandGitHub 4bd60a1366 Mark new automation as dirty if it has initData (#26953) 2025-09-09 10:26:18 +03:00
WendelinandGitHub e9ca1758a0 Fix yaml editor save in config-flow (#26963) 2025-09-09 10:25:06 +03:00
Paulus SchoutsenandGitHub dff3b82f0d Show action being called in action dev tools (#26923) 2025-09-09 08:57:36 +02:00
J. Nick KostonandGitHub 1b630e7b66 Hide useless configure bluetooth options button for remote scanners (#26960)
This avoids showing the button when all they get is
"Bluetooth configuration for remote adapters is not supported."
2025-09-09 09:46:22 +03:00
Aidan TimsonandGitHub f4238bf291 Safe area: bars (#26816)
* app-bars: apply safe-area insets (top padding and fixed-adjust; add content padding in fixed)

* Set toolbar

* Set bars

* Add left and right insets to root ll

* Add to dev tools header

* Fix

* Apply to subpages (config pages mainly)

* Adjust

* Remove old comment
2025-09-09 08:13:03 +02:00
karwostsandGitHub ef8cb8b393 Add a bulk delete to devices table (#26914) 2025-09-08 20:33:53 +02:00
karwostsandGitHub bed161d485 Deduplicate table rendering code in energy sources table (#26918) 2025-09-08 20:14:15 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
22e0ef4308 Update dependency eslint to v9.35.0 (#26955)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-08 19:34:36 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
eb355d110d Update babel monorepo to v7.28.4 (#26954)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-08 19:34:07 +02:00
WendelinandGitHub c041c295d5 Use @home-assistant/webawesome (#26942) 2025-09-08 14:25:47 +02:00
WendelinandGitHub c582896574 Update missing border radius variables (#26944) 2025-09-08 14:01:24 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
3e6b59fe1e Update dependency luxon to v3.7.2 (#26941)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-08 14:43:53 +03:00
Aidan TimsonandGitHub 62714b2b68 Safe area: dialogs (#26814)
* dialogs: apply safe-area insets (content padding, header mobile insets, more-info top margin)

* Set default (40px prio if not set)

* Set default (default padding prio if not set)

* Set default to avoid issues

* Set on container

* Sort

* No longer needed

* No longer needed

* No longer needed

* Remove

* Restore

* Restore

* Move to padding

* Switch to margins, set min and max height

* Set default

* Account for insets to remove extra scrollbars

* Fix content for filter dialog

* Move margins outside of media check

* Use padding instead

* use min-width instead

* Use padding for just top and bottom

* Calculate lit-virtualizer to include safe areas

* Calculate lit-virtualizer to include safe areas

* Fix double scrollbar from previous

* Remove calculation

* Default

* Remove double calculation

* Remove double calculation
2025-09-08 09:39:27 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
07fdd5b7af Update vaadinWebComponents monorepo to v24.8.7 (#26936)
* Update vaadinWebComponents monorepo to v24.8.7

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-08 07:35:30 +00:00
Phil WhiteandGitHub 720f435987 Fix refresh button appending logs instead of clearing them (#26875) 2025-09-08 09:18:05 +02:00
Yosi LevyandGitHub 52061d6c1a Variour RTL fixes for automation and others (#26891) 2025-09-08 09:13:10 +02:00
Paulus SchoutsenandGitHub ae35164a57 Update clipboard copy template message in actions dev tool (#26925) 2025-09-08 08:59:11 +02:00
karwostsandGitHub d1c814bd6b Fix condition action in config flow dialog (#26929) 2025-09-08 08:33:02 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
bb50512c89 Bump softprops/action-gh-release from 2.3.2 to 2.3.3 (#26935)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.3.2 to 2.3.3.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/v2.3.2...v2.3.3)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: 2.3.3
  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>
2025-09-08 08:20:26 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
0fae45edc9 Bump actions/setup-node from 4.4.0 to 5.0.0 (#26934)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.4.0 to 5.0.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4.4.0...v5.0.0)

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

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-08 08:20:00 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
0a8d3cc8fa Bump actions/setup-python from 5 to 6 (#26933)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5 to 6.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-08 08:19:11 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
db09947a67 Bump actions/labeler from 5.0.0 to 6.0.1 (#26932)
Bumps [actions/labeler](https://github.com/actions/labeler) from 5.0.0 to 6.0.1.
- [Release notes](https://github.com/actions/labeler/releases)
- [Commits](https://github.com/actions/labeler/compare/v5.0.0...v6.0.1)

---
updated-dependencies:
- dependency-name: actions/labeler
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-08 08:18:47 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
5eb600726f Bump actions/stale from 9.1.0 to 10.0.0 (#26931)
Bumps [actions/stale](https://github.com/actions/stale) from 9.1.0 to 10.0.0.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v9.1.0...v10.0.0)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-version: 10.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-08 08:18:07 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
17a2e6e1f6 Bump actions/github-script from 7 to 8 (#26930)
Bumps [actions/github-script](https://github.com/actions/github-script) from 7 to 8.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-08 08:17:35 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
53e7959d54 Update dependency serve to v14.2.5 (#26922)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-07 20:21:02 +02:00
Aidan TimsonandGitHub 5f140c5fc4 Safe area: main content and onboarding (#26813)
* foundation: define --safe-area-content-inset-*; adjust drawer width; apply top inset to pre-login templates

* Set default for var

* Update demo template

* Set default to avoid issues

* Allow for left and right insets or 560px

* Remove
2025-09-07 13:25:29 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
688b8e5229 Update dependency @types/leaflet.markercluster to v1.5.6 (#26911)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-06 14:59:59 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
34b50b45a3 Update dependency @types/leaflet-draw to v1.0.13 (#26910)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-06 16:49:58 +02:00
karwostsandGitHub c17c9c6cc9 Remove an unused translation (#26908) 2025-09-05 22:39:01 -04:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
c9d72b5253 Update dependency @types/culori to v4.0.1 (#26899)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 23:22:30 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
f5dbb28fb2 Update dependency typescript-eslint to v8.42.0 (#26897)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 23:22:22 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
9acfe5c1cc Update dependency @codemirror/autocomplete to v6.18.7 (#26896)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 23:22:15 +02:00
Jan-Philipp BeneckeandGitHub 701cbcfbad Do not show state-card-content in new more-info dialog in gallery (#26889)
* Do not show `state-card-content` in new more-info dialog in gallery

* Use `computeShowNewMoreInfo`
2025-09-05 14:13:28 -04:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
38685127d2 Update dependency @codemirror/view to v6.38.2 (#26890)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 08:59:04 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
4275f6c6b6 Update dependency lint-staged to v16.1.6 (#26885)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-04 19:33:55 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
bfc186b612 Update dependency @rspack/core to v1.5.2 (#26880)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-04 16:41:29 +02:00
Bram Kragten 2cbcf1a689 Merge branch 'rc' 2025-09-04 16:30:48 +02:00
Bram Kragten 1c1c0d70c5 Bumped version to 20250903.3 2025-09-04 16:30:32 +02:00
Paul BotteinandBram Kragten a66f5fb573 Fix testing condition in iOS (#26879) 2025-09-04 16:29:32 +02:00
Petar PetrovandBram Kragten 9affeab755 Fix highlighting issue in Energy Sankey card (#26878) 2025-09-04 16:29:31 +02:00
Paul BotteinandBram Kragten 2bfaf77908 Add UI editor for trend graph feature (#26872) 2025-09-04 16:29:30 +02:00
Bram Kragten bc4caae796 Revert "Rename "Logbook" to "Activity" in user-facing strings" (#26867)
Revert "Rename "Logbook" to "Activity" in user-facing strings (#26619)"

This reverts commit 057fad55e8.
2025-09-04 16:29:29 +02:00
WendelinandBram Kragten 8746acd329 Fix script with fields fields in tile card button feature (#26866)
Check script fields in tile card button feature
2025-09-04 16:29:28 +02:00
WendelinandBram Kragten 96ecf16da2 Translate del in shortcut dialog (#26865) 2025-09-04 16:29:27 +02:00
1e95a0f3ef Display area with only sensors in climate view in home dashboard (#26863)
* Display area with only sensors in climate view in home dashboard

* Update home-climate-view-strategy.ts

Co-authored-by: Simon Lamon <[email protected]>

---------

Co-authored-by: Simon Lamon <[email protected]>
2025-09-04 16:29:26 +02:00
Simon LamonandBram Kragten a164d793b1 Home dashboard: Climate fix (#26856)
* Climate dashboard fix

* Update home-climate-view-strategy.ts
2025-09-04 16:29:25 +02:00
Paul BotteinandGitHub cb4d92ccf4 Add UI editor for trend graph feature (#26872) 2025-09-04 16:28:02 +02:00
WendelinandGitHub 1dc7256fb5 Translate del in shortcut dialog (#26865) 2025-09-04 16:11:38 +02:00
WendelinandGitHub 012e710e45 Test-device-tracker-entity-filter (#26881) 2025-09-04 16:08:38 +02:00
Paul BotteinandGitHub 5abb7d0286 Fix testing condition in iOS (#26879) 2025-09-04 15:50:39 +02:00
Petar PetrovandGitHub ce74946706 Fix highlighting issue in Energy Sankey card (#26878) 2025-09-04 15:42:39 +02:00
Bram KragtenandGitHub bf351d67e9 Revert "Rename "Logbook" to "Activity" in user-facing strings" (#26867)
Revert "Rename "Logbook" to "Activity" in user-facing strings (#26619)"

This reverts commit 057fad55e8.
2025-09-04 11:14:16 +02:00
WendelinandGitHub b75fa013d2 Fix script with fields fields in tile card button feature (#26866)
Check script fields in tile card button feature
2025-09-04 11:42:41 +03:00
2601b0d89c Display area with only sensors in climate view in home dashboard (#26863)
* Display area with only sensors in climate view in home dashboard

* Update home-climate-view-strategy.ts

Co-authored-by: Simon Lamon <[email protected]>

---------

Co-authored-by: Simon Lamon <[email protected]>
2025-09-04 10:11:35 +02:00
Mike KellyandGitHub ef8410e121 Add MCF as another volume unit (#26400) 2025-09-04 09:30:13 +03:00
karwostsandGitHub 37610703c8 Pass first weekday to recorder/statistic_during_period (#26229)
* Pass first weekday to recorder/statistic_during_period

* switch order
2025-09-04 09:27:40 +03:00
4efd9bba8a Fix weather more info forecast layout jump when loading data (#26764)
* Fix weather more info forecast layout jump when loading data

* Tabs arent always populated

* Apply suggestions from code review

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Petar Petrov <[email protected]>
Co-authored-by: Copilot <[email protected]>
2025-09-04 06:04:56 +00:00
Paulus SchoutsenandGitHub e1fe7976d8 Do not allow filtering by automation labels on mobile (#26861) 2025-09-04 08:47:52 +03:00
Simon LamonandGitHub 53b96107d9 Home dashboard: Climate fix (#26856)
* Climate dashboard fix

* Update home-climate-view-strategy.ts
2025-09-03 18:55:33 +02:00
Bram Kragten 510fc71b40 Merge branch 'rc' 2025-09-03 16:20:50 +02:00
Bram Kragten 2a6a3edb77 Bumped version to 20250903.2 2025-09-03 16:20:26 +02:00
Bram Kragten c7a8796a47 Dont align with clipboard on copy/cut automation item (#26855) 2025-09-03 16:19:59 +02:00
Bram KragtenandGitHub dcbad9e798 Dont align with clipboard on copy/cut automation item (#26855) 2025-09-03 14:19:02 +00:00
26b3212c7e Enable sorting step flow menu options in user language (#26845)
* Enable sorting step flow menu options in user language

* Remove menu_sort_values

* Update src/dialogs/config-flow/step-flow-menu.ts

Co-authored-by: Petar Petrov <[email protected]>

* prettier

---------

Co-authored-by: Petar Petrov <[email protected]>
2025-09-03 17:03:09 +03:00
Bram Kragten 9d40fa5f2b Merge branch 'rc' 2025-09-03 12:59:34 +02:00
Bram Kragten 8f2a023775 Bumped version to 20250903.1 2025-09-03 12:59:17 +02:00
Paul BotteinandBram Kragten 989b0b34fe Rename history chart to trend graph (#26854)
* Rename history chart to trend graph

* rename element and prettier

---------

Co-authored-by: Bram Kragten <[email protected]>
2025-09-03 12:58:48 +02:00
f3f4bcfe45 Rename history chart to trend graph (#26854)
* Rename history chart to trend graph

* rename element and prettier

---------

Co-authored-by: Bram Kragten <[email protected]>
2025-09-03 10:56:05 +00:00
Bram Kragten cf94e71215 Merge branch 'rc' 2025-09-03 12:06:15 +02:00
Bram Kragten 49896f3fa6 Bumped version to 20250903.0 2025-09-03 12:05:53 +02:00
Bram Kragten 7cfa9de75f Bumped version to 20250903.0 2025-09-03 12:05:19 +02:00
Paul BotteinandBram Kragten fc4b7674b1 Improve responsive support for history graph feature (#26851) 2025-09-03 12:01:50 +02:00
WendelinandBram Kragten 04c9f32539 Fix automation narrow bottom sheet close animation (#26850) 2025-09-03 12:01:49 +02:00
Bram Kragten 21e3fc9bb9 Update shortcuts dialog (#26849) 2025-09-03 12:01:48 +02:00
WendelinandBram Kragten 4b78eb7656 Update device action button variant based on warning class (#26848) 2025-09-03 12:01:47 +02:00
Paul BotteinandGitHub b66dc8894d Improve responsive support for history graph feature (#26851) 2025-09-03 12:00:49 +02:00
WendelinandGitHub 14a7813ab0 Fix automation narrow bottom sheet close animation (#26850) 2025-09-03 09:45:13 +00:00
Bram KragtenandGitHub 70a2ca281f Update shortcuts dialog (#26849) 2025-09-03 10:01:10 +02:00
WendelinandGitHub d982f042fc Update device action button variant based on warning class (#26848) 2025-09-03 07:06:18 +00:00
J. Nick KostonandGitHub e60f9e326b Show scanner-type-specific power cycle instructions in Bluetooth UI (#26847)
* Show scanner-type-specific power cycle instructions in Bluetooth UI

* preen
2025-09-03 10:03:03 +03:00
Paul BotteinandGitHub e6f91aef8e 20250902.1 (#26843) 2025-09-02 21:05:33 +02:00
Paul Bottein 8f99f86c8b Bumped version to 20250902.1 2025-09-02 21:04:49 +02:00
Paul Bottein b7eff547c7 Remove non numerical sensor and binary-sensor for history chart feature (#26838)
* Use hui-graph-base for chart history feature and remove non numerical sensor support

* Fix chart opacity
2025-09-02 21:04:20 +02:00
J. Nick KostonandGitHub ba39d189e7 Show scanner current state in the Bluetooth UI (#26792)
* Show scanner current state in the Bluetooth UI

The state updates live as the scanner changes mode, and provides
a warning on what to do if the scanner gets in a bad state

* Show scanner current state in the Bluetooth UI

The state updates live as the scanner changes mode, and provides
a warning on what to do if the scanner gets in a bad state

* cleanup

* switch
2025-09-02 15:20:06 -03:00
Paul BotteinandGitHub 78867b2cd9 Remove non numerical sensor and binary-sensor for history chart feature (#26838)
* Use hui-graph-base for chart history feature and remove non numerical sensor support

* Fix chart opacity
2025-09-02 14:38:06 -03:00
Paul BotteinandGitHub ceb6b64152 20250902.0 (#26842) 2025-09-02 18:42:11 +02:00
Paul Bottein d253041376 Bumped version to 20250902.0 2025-09-02 18:41:08 +02:00
Paul Bottein cb0aa81f89 Change home summaries color (#26839) 2025-09-02 18:40:48 +02:00
Bram KragtenandPaul Bottein 42061b2f8c Remove expand all/collapse all options from overflow (#26837)
* remove expand all/collapse all options from overflow

* ignore
2025-09-02 18:40:47 +02:00
Bram KragtenandPaul Bottein 69bfb89a65 Add new shortcuts to shortcuts dialog (#26836) 2025-09-02 18:40:46 +02:00
Bram KragtenandPaul Bottein e0307f9688 Align box shadows (#26835)
* Align box shadows

* update colors
2025-09-02 18:40:45 +02:00
Bram KragtenandPaul Bottein 1cf353461f Tweak automation row (#26834)
tweak automation row
2025-09-02 18:40:44 +02:00
Paul Bottein 1786235c86 Clean graph in security and climate view in home dashboard (#26833) 2025-09-02 18:40:43 +02:00
Simon LamonandPaul Bottein 645ba3f9c1 Home dashboard: Ensure temperature sensor entity exists (#26831) 2025-09-02 18:40:42 +02:00
Bram KragtenandPaul Bottein b65f6f46e1 Fix scrolling items in the bottom into view (#26830) 2025-09-02 18:40:41 +02:00
Aidan TimsonandPaul Bottein 84ad521b3d Fix capitalization on data table filter button (#26829) 2025-09-02 18:40:40 +02:00
Bram KragtenandPaul Bottein dfb9c662e7 add shadow when scrollable in automation bottom sheet, min height 50vh (#26828) 2025-09-02 18:40:39 +02:00
Bram KragtenandPaul Bottein 5ac42e17b0 prevent keyboard shortcuts with more modifier keys (#26826) 2025-09-02 18:40:38 +02:00
karwostsandPaul Bottein be2f19637e Differentate service vs device in more-info link (#26823) 2025-09-02 18:40:37 +02:00
Paul BotteinandGitHub 1dff42dc00 Change home summaries color (#26839) 2025-09-02 18:14:46 +02:00
Bram KragtenandGitHub 0c9b3a0765 Remove expand all/collapse all options from overflow (#26837)
* remove expand all/collapse all options from overflow

* ignore
2025-09-02 16:26:44 +02:00
Bram KragtenandGitHub 5a109c0ba8 Align box shadows (#26835)
* Align box shadows

* update colors
2025-09-02 14:15:48 +00:00
Bram KragtenandGitHub f3b214c30a Add new shortcuts to shortcuts dialog (#26836) 2025-09-02 17:08:32 +03:00
Petar PetrovandGitHub c49d2a0be6 Add support for option descriptions in config flows (#26825)
* Add support for option descriptions in config flows

* use `twoline`

* remove unused classes
2025-09-02 14:03:35 +00:00
Bram KragtenandGitHub c6c3170c1b Tweak automation row (#26834)
tweak automation row
2025-09-02 13:50:05 +00:00
Paul BotteinandGitHub 0abb958aea Clean graph in security and climate view in home dashboard (#26833) 2025-09-02 14:58:56 +02:00
Bram KragtenandGitHub 9d55843629 Fix scrolling items in the bottom into view (#26830) 2025-09-02 14:57:11 +02:00
Bram KragtenandGitHub b70d309297 add shadow when scrollable in automation bottom sheet, min height 50vh (#26828) 2025-09-02 14:12:48 +02:00
Simon LamonandGitHub 5961b71562 Home dashboard: Ensure temperature sensor entity exists (#26831) 2025-09-02 13:03:18 +02:00
karwostsandGitHub 6942626f60 Differentate service vs device in more-info link (#26823) 2025-09-02 12:44:16 +02:00
Aidan TimsonandGitHub 069c0acdff Fix capitalization on data table filter button (#26829) 2025-09-02 10:44:01 +00:00
Bram KragtenandGitHub 1f0d83190d prevent keyboard shortcuts with more modifier keys (#26826) 2025-09-02 09:39:54 +02:00
Bram Kragten b7a6ee3792 Bumped version to 20250901.0 2025-09-01 21:42:55 +02:00
1fb2f0c989 Automation-keybindings (#26762)
Co-authored-by: Norbert Rittel <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
2025-09-01 21:42:19 +02:00
7c6c92c856 Automation-keybindings (#26762)
Co-authored-by: Norbert Rittel <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
2025-09-01 21:41:50 +02:00
Bram Kragten b4ad411e6f Change drag selected styling (#26822) 2025-09-01 21:41:20 +02:00
Bram Kragten 5d76a92f73 Update hover and hightlight states for automation rows (#26820) 2025-09-01 21:41:19 +02:00
Paul BotteinandBram Kragten beee09491a Fix tag trigger when using it inside sidebar (#26819) 2025-09-01 21:41:18 +02:00
Paul BotteinandBram Kragten ee5aabdddf Remove box shadow for ha card in automation bottom sheet on mobile (#26817) 2025-09-01 21:41:17 +02:00
Paul BotteinandBram Kragten ec80f6a6f1 Add automation testing logic to sidebar (#26815) 2025-09-01 21:41:16 +02:00
Paul BotteinandBram Kragten 9845f0b47c Don't use ha-automation-row-selected to know if the item was selected (#26812) 2025-09-01 21:41:15 +02:00
Paul BotteinandBram Kragten cd294ba619 Force energy distribution to display the data of today (#26811) 2025-09-01 21:41:14 +02:00
Paul BotteinandBram Kragten 61e27cb1ea Fix automation sidebar z index (#26810) 2025-09-01 21:41:14 +02:00
Paul BotteinandBram Kragten 8d6295e8e8 Update heading subtitle height to better fix grid (#26808) 2025-09-01 21:41:13 +02:00
Paul BotteinandBram Kragten b0e95699f7 Fix add dialog on dashboards on mobile (#26807) 2025-09-01 21:41:12 +02:00
Petar PetrovandBram Kragten c8e1e7b8a8 Handle negative values in History chart card feature (#26806) 2025-09-01 21:41:11 +02:00
Bram Kragten d2cea159af Enable drag and drop on mobile for automations (#26805) 2025-09-01 21:41:10 +02:00
Petar PetrovandBram Kragten eb5d1c79c8 Use feature-color in History chart feature (#26802) 2025-09-01 21:41:09 +02:00
Paulus SchoutsenandBram Kragten 65ab6848ab Do not add graphs to every sensor tile card (#26793) 2025-09-01 21:41:09 +02:00
Paul BotteinandBram Kragten 7a1d934e8d Use summary card in home dashboard (#26775) 2025-09-01 21:41:08 +02:00
WendelinandBram Kragten cbacde12fa Automation editor: fix yaml editor and editor switch (#26772) 2025-09-01 21:41:07 +02:00
Robert ReschandGitHub eff352cde1 Warn about system performance when setting camera stream orientation (#26616) 2025-09-01 20:54:48 +02:00
Bram KragtenandGitHub 62a75c188c Change drag selected styling (#26822) 2025-09-01 20:26:25 +02:00
Paul BotteinandGitHub 4ffa6b6186 Force energy distribution to display the data of today (#26811) 2025-09-01 18:12:34 +02:00
Paul BotteinandGitHub 25173cf605 Don't use ha-automation-row-selected to know if the item was selected (#26812) 2025-09-01 18:12:08 +02:00
Paul BotteinandGitHub 3277d8e80b Add automation testing logic to sidebar (#26815) 2025-09-01 18:08:59 +02:00
Bram KragtenandGitHub 55864fdc82 Update hover and hightlight states for automation rows (#26820) 2025-09-01 17:40:03 +02:00
Paul BotteinandGitHub d4d662ba46 Fix automation sidebar z index (#26810) 2025-09-01 17:21:36 +02:00
Paul BotteinandGitHub 3ea5f508bb Remove box shadow for ha card in automation bottom sheet on mobile (#26817) 2025-09-01 17:19:09 +02:00
Paul BotteinandGitHub 902a5dd678 Fix tag trigger when using it inside sidebar (#26819) 2025-09-01 17:18:18 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Petar Petrov
4a3ed62583 Update dependency @types/chromecast-caf-receiver to v6.0.24 (#26500)
* Update dependency @types/chromecast-caf-receiver to v6.0.24

* Use enum strings directly to make TS happy

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Petar Petrov <[email protected]>
2025-09-01 14:53:10 +00:00
Paul BotteinandGitHub b4223e9e92 Use summary card in home dashboard (#26775) 2025-09-01 15:13:53 +02:00
Paul BotteinandGitHub 99955d7818 Fix add dialog on dashboards on mobile (#26807) 2025-09-01 15:39:52 +03:00
Paul BotteinandGitHub f66768726c Update heading subtitle height to better fix grid (#26808) 2025-09-01 15:39:03 +03:00
Michel van de WeteringandGitHub 0e4be02b2c Remove Hue bridge v1 image (#26674) 2025-09-01 15:27:50 +03:00
Bram KragtenandGitHub 6daea23b3c Enable drag and drop on mobile for automations (#26805) 2025-09-01 14:09:13 +02:00
Petar PetrovandGitHub e21ddcb1e5 Handle negative values in History chart card feature (#26806) 2025-09-01 11:45:52 +00:00
WendelinandGitHub ded85d9f27 Automation editor: fix yaml editor and editor switch (#26772) 2025-09-01 13:26:17 +02:00
Petar PetrovandGitHub eea43494da Use feature-color in History chart feature (#26802) 2025-09-01 11:34:44 +02:00
Norbert RittelandGitHub 9cf9ef927d Expand description for disabled services (#26782)
* Expand description for disabled services

* Drop "not added to Home Assistant"
2025-09-01 09:51:22 +03:00
Paulus SchoutsenandGitHub 779ec4f583 Do not add graphs to every sensor tile card (#26793) 2025-08-31 15:11:41 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
c541831cd2 Update dependency marked to v16.2.1 (#26785)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-31 17:07:02 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
fd20c2a554 Update dependency @rspack/core to v1.5.1 (#26790)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-31 17:06:55 +02:00
uptimeZERO_andGitHub 14fd29808c Bugfix: Fixed column widths in the dashboard config page (#26777)
Fixed column widths in dashboard config
2025-08-30 11:54:37 +00:00
Aidan TimsonandGitHub 7132ee157f Adjust states set state layout (#26765) 2025-08-30 13:11:41 +02:00
J. Nick KostonandGitHub 1596b313d5 Add RSSI color gradient to Bluetooth visualization to identify connection problems (#26778) 2025-08-29 14:15:00 -05:00
Paul BotteinandGitHub 4c33618e05 20250829.0 (#26776) 2025-08-29 17:49:27 +02:00
Paul Bottein 3837b3e630 Bumped version to 20250829.0 2025-08-29 17:48:01 +02:00
karwostsandPaul Bottein 7c15633f6d Don't use context for media selector with 'accept' (#26773) 2025-08-29 17:45:59 +02:00
Paul Bottein f7ec8650eb Add translations for home dashboard (#26763) 2025-08-29 17:45:58 +02:00
Paul Bottein 7674eee0fb Fix alert z-index for automation and script (#26759) 2025-08-29 17:45:13 +02:00
Norbert RittelandPaul Bottein f494a6453a Improve OAuth setup explanation (#26758)
* Improve OAuth setup explanation

* Add "your"

* Include "application" in headline
2025-08-29 17:43:54 +02:00
WendelinandPaul Bottein 37f3682ffa Automation editor: fix focus handling (#26755) 2025-08-29 17:42:34 +02:00
Paul BotteinandWendelin 8055286a1f Use fixed layout for automation sidebar to have scrollbar on the side (#26751)
Co-authored-by: Wendelin <[email protected]>
2025-08-29 17:39:43 +02:00
karwostsandGitHub 70cd68ded7 Don't use context for media selector with 'accept' (#26773) 2025-08-29 14:08:11 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
cc91a6185e Update dependency @rspack/core to v1.5.0 (#26768)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-29 17:05:14 +03:00
1fd7c84583 Use fixed layout for automation sidebar to have scrollbar on the side (#26751)
Co-authored-by: Wendelin <[email protected]>
2025-08-29 14:19:13 +02:00
Paul BotteinandGitHub 0269540ee9 Add translations for home dashboard (#26763) 2025-08-29 14:17:55 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
98390b3843 Update Yarn to v4.9.4 (#26760)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-29 08:12:28 +00:00
Paul BotteinandGitHub 269628929c Fix alert z-index for automation and script (#26759) 2025-08-29 08:05:05 +00:00
Norbert RittelandGitHub 21fcc84afd Improve OAuth setup explanation (#26758)
* Improve OAuth setup explanation

* Add "your"

* Include "application" in headline
2025-08-29 09:59:31 +02:00
WendelinandGitHub b86c1db83d Automation editor: fix focus handling (#26755) 2025-08-29 08:39:06 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
a376670478 Update dependency typescript-eslint to v8.41.0 (#26757)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-29 08:21:34 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
72c62079aa Update dependency hls.js to v1.6.11 (#26756)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-29 08:21:28 +02:00
Surya PrakashandGitHub 9baf875585 Fix: Keep buttons active in picture-glance-card regardless of state (#26718)
* Fix: Keep buttons active in picture-glance-card regardless of state


Fixes #26683

**Problem:**
Buttons in the picture-glance-card were incorrectly disabled when their state was 'unknown', making them unclickable.

**Root Cause:**
The `disabled` property was being set based on the state value, but buttons should remain clickable regardless of their state since their state only reflects the last time they were pressed.

**Solution:**
Set `disabled=${false}` to ensure buttons are always active and clickable.

**Testing:**
Verified that buttons remain active and functional even when state is 'unknown'.

* Fix: Ensure buttons get state-on class when state is unknown

Fixes #26683

The "state-on" class was not being applied when button state was
"unknown" because "unknown" was included in the STATES_OFF set.
This ensures buttons appear active regardless of their state.

* Update hui-picture-glance-card.ts

* Update hui-picture-glance-card.ts

* Update hui-picture-glance-card.ts

* Update hui-picture-glance-card.ts

* Update hui-picture-glance-card.ts

* Update hui-picture-glance-card.ts

* Update hui-picture-glance-card.ts
2025-08-29 08:20:39 +02:00
Jonathan KeslinandGitHub 175915218f Hide leading zero in clock card hour when using 12-hour time format (#26669)
Remove leading zero on hour on Clock card when displayed with 12-hour time format
2025-08-29 08:42:07 +03:00
Paul BotteinandGitHub 0bdd213761 20250828.0 (#26752) 2025-08-28 18:54:59 +02:00
Paul Bottein 810b43760e Bumped version to 20250828.0 2025-08-28 18:51:59 +02:00
Aidan TimsonandPaul Bottein 424d71c55a Change loading detailed storage to use ha-alert with spinner (#26749)
* Change spinner overlay to use `ha-alert` with messaging

* Use spinner for icon slot
2025-08-28 18:51:14 +02:00
Petar PetrovandPaul Bottein 176924241c Increase disk usage request timeout (#26748) 2025-08-28 18:51:13 +02:00
Norbert RittelandPaul Bottein da08aa7fb0 Different spelling fixes of user-facing strings (#26745)
* Different spelling fixes of user-facing strings

* Fix menu "Application credentials" menu item name
2025-08-28 18:51:12 +02:00
WendelinandPaul Bottein 6047227648 Automation editor: overflow changes and style fixes (#26744)
* Fix for width also for blueprint editor

* Fix overflow menus

* Fix option icons

* Fix iOS bottom sheet flickering and drag handle

* Fix mobile padding

* Fix padding in sidebar

* Fix overflow placement

* Add new a11y sort

* Remove overflow in rows

* Fix a11y select row

* Revert "Fix a11y select row"

This reverts commit 54260c4a37.

* Fix option padding on blueprint

---------

Co-authored-by: Paul Bottein <[email protected]>
2025-08-28 18:51:11 +02:00
Norbert RittelandPaul Bottein fc71fd6bc3 Improve section descriptions in Automation editor (#26741)
Replace "listed here" or "list of" with "added here"
2025-08-28 18:51:10 +02:00
WendelinandPaul Bottein 90a1b135e1 Fix automation editor drag selected row in/out nested (#26740)
Fix nested sort
2025-08-28 18:51:09 +02:00
Paulus SchoutsenandPaul Bottein e19413b6ca Show binary sensors with graphs on the security dashboard (#26738) 2025-08-28 18:51:08 +02:00
Paulus SchoutsenandPaul Bottein 0dfc10af5f Show configured area sensors on climate domain dashboard (#26737) 2025-08-28 18:51:07 +02:00
karwostsandPaul Bottein bbbc419bea Hide 'options' from enum more info (#26736)
* Hide 'options' from enum more info

* restrict to specific domain and class
2025-08-28 18:51:06 +02:00
50ad5e376f Move automation and script ha-alerts to main flow (#26735)
Co-authored-by: Wendelin <[email protected]>
2025-08-28 18:51:05 +02:00
J. Nick KostonandPaul Bottein a9f2254bbc Improve network adapter configuration discoverability (#26734) 2025-08-28 18:51:04 +02:00
Paul Bottein a8836404d4 Use entity picture for home favorite and update home dashboard icon (#26732)
* Add strategy icon

* Use entity picture for favorite
2025-08-28 18:51:03 +02:00
25f25243bd Automation editor: overflow changes and style fixes (#26744)
* Fix for width also for blueprint editor

* Fix overflow menus

* Fix option icons

* Fix iOS bottom sheet flickering and drag handle

* Fix mobile padding

* Fix padding in sidebar

* Fix overflow placement

* Add new a11y sort

* Remove overflow in rows

* Fix a11y select row

* Revert "Fix a11y select row"

This reverts commit 54260c4a37.

* Fix option padding on blueprint

---------

Co-authored-by: Paul Bottein <[email protected]>
2025-08-28 16:42:45 +00:00
karwostsandGitHub cf8d36b1f3 Hide 'options' from enum more info (#26736)
* Hide 'options' from enum more info

* restrict to specific domain and class
2025-08-28 18:08:33 +02:00
Aidan TimsonandGitHub e3a9d754df Change loading detailed storage to use ha-alert with spinner (#26749)
* Change spinner overlay to use `ha-alert` with messaging

* Use spinner for icon slot
2025-08-28 18:05:53 +02:00
Petar PetrovandGitHub 7b303a699b Increase disk usage request timeout (#26748) 2025-08-28 16:32:52 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
ee45eb00f7 Update vaadinWebComponents monorepo to v24.8.6 (#26746)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-28 15:38:03 +03:00
Norbert RittelandGitHub 24a6aa2669 Different spelling fixes of user-facing strings (#26745)
* Different spelling fixes of user-facing strings

* Fix menu "Application credentials" menu item name
2025-08-28 15:37:06 +03:00
66d011cfb9 Move automation and script ha-alerts to main flow (#26735)
Co-authored-by: Wendelin <[email protected]>
2025-08-28 13:53:15 +02:00
WendelinandGitHub 35895735cc Fix automation editor drag selected row in/out nested (#26740)
Fix nested sort
2025-08-28 13:30:14 +02:00
Norbert RittelandGitHub e71df0b71a Improve section descriptions in Automation editor (#26741)
Replace "listed here" or "list of" with "added here"
2025-08-28 11:05:31 +02:00
Paulus SchoutsenandGitHub 2a9846c598 Show configured area sensors on climate domain dashboard (#26737) 2025-08-28 08:34:45 +03:00
Paulus SchoutsenandGitHub b243d56bee Show binary sensors with graphs on the security dashboard (#26738) 2025-08-28 08:26:44 +03:00
J. Nick KostonandGitHub 6a372a165e Improve network adapter configuration discoverability (#26734) 2025-08-27 09:59:23 -05:00
Paul BotteinandGitHub a5dad9bc22 Use entity picture for home favorite and update home dashboard icon (#26732)
* Add strategy icon

* Use entity picture for favorite
2025-08-27 16:33:48 +02:00
Bram Kragten 954e0a5f63 Merge branch 'rc' into dev 2025-08-27 15:09:31 +02:00
Bram Kragten 4dbd4eebaa Bumped version to 20250827.0 2025-08-27 15:08:57 +02:00
09b01df366 Translate integration filters (#26728)
Co-authored-by: Bram Kragten <[email protected]>
2025-08-27 13:02:38 +00:00
Paul BotteinandGitHub a76539c732 Revert background section (#26730) 2025-08-27 12:55:15 +00:00
Aidan TimsonandGitHub c7babe884c Add variables for analog clock background (#26726) 2025-08-27 12:36:33 +00:00
Paul BotteinandGitHub ce83feec93 Use large section for summay view (#26729) 2025-08-27 12:35:45 +00:00
karwostsandGitHub 150ee3fb12 Display sum/median labels in area card editor (#26721) 2025-08-27 14:35:10 +02:00
8fd3fcd323 Focus automation sidebar when open via keyboard (#26606)
Co-authored-by: Bram Kragten <[email protected]>
2025-08-27 11:28:52 +00:00
WendelinandGitHub 6e3b3a53e4 Fix close automation bottom sheet on add (#26727) 2025-08-27 13:25:19 +02:00
22966485c7 Automation editor: New choose default styles and style fixes (#26708)
Co-authored-by: Simon Lamon <[email protected]>
2025-08-27 13:20:25 +02:00
karwostsandGitHub 673ca8ba4b Use media selector for media_player.play_media (#26559) 2025-08-27 12:39:40 +02:00
Paul BotteinandGitHub c8be25dfc2 Rename overview to home and add widget section (#26715) 2025-08-27 12:35:43 +02:00
edaaa00038 Analog style for clock card (#26557)
Co-authored-by: Norbert Rittel <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
2025-08-27 10:15:06 +01:00
WendelinandGitHub 2de605d97a Automation editor: expand only root rows per default (#26712)
* Add default expand/collapse

* Readd expanded search param functionality
2025-08-27 12:10:53 +03:00
Paul BotteinandGitHub 0b11302b1d Align storage life time design with used storage (#26724) 2025-08-27 09:52:56 +02:00
Norbert RittelandGitHub ddb224e145 Capitalize "Assist" as feature name in "Assist pipeline" (#26719)
Makes it consistent with all other occurrences of Assist in Frontend.
2025-08-27 08:47:15 +02:00
Paul BotteinandGitHub 317149e51e Always show compact header for dashboards (#26706) 2025-08-26 20:09:57 +02:00
Norbert RittelandGitHub 51840b88b3 Add missing hyphens to compound adjectives with "specific" (#26717) 2025-08-26 18:56:48 +02:00
Norbert RittelandGitHub 319a1ad8c6 Fix description of battery energy sensors (#26714) 2025-08-26 16:13:38 +00:00
WendelinandGitHub d75c84750d Add indent style to automation action, condition, and option editors (#26709) 2025-08-26 18:10:17 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
492a73e345 Update dependency @bundle-stats/plugin-webpack-filter to v4.21.3 (#26713)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-26 18:01:25 +02:00
WendelinandGitHub 64bf101c95 Automation Editor: Move overflow actions to sidebar only (#26707)
Move all overflow actions to sidebar
2025-08-26 18:00:54 +02:00
876ced25f1 Rename subentry (#26574)
* rename subentry

* rename subentry

* update subentry

* remove title from update subentry

* format

---------

Co-authored-by: Petar Petrov <[email protected]>
2025-08-26 15:49:51 +00:00
WendelinandGitHub 72e3b72854 Fix automation action condition row left-chevron (#26705)
Enhance collapse logic to include condition block types in automation action row
2025-08-26 15:46:36 +00:00
Paulus SchoutsenandGitHub 6ccd3d3b95 Tweak choose spacing (#26702) 2025-08-26 14:18:17 +00:00
WendelinandGitHub 5709cb6aa4 Add collapse/expand all for automations (#26695) 2025-08-26 15:21:03 +02:00
WendelinandGitHub 1fe7282b0e Fix action condition (#26703) 2025-08-26 13:56:49 +02:00
Paulus SchoutsenandGitHub 6d29063b35 Adjust top-level spacing to move description a bit closer (#26698) 2025-08-26 13:16:53 +02:00
Paulus SchoutsenandGitHub d3e0b94d27 Show tag name in tag trigger (#26697) 2025-08-26 13:16:26 +02:00
WendelinandGitHub f4f1f98433 Fix tablet sidebar RTL (#26700) 2025-08-26 13:14:42 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
69e3d8e13d Update dependency eslint to v9.34.0 (#26694)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-26 08:12:36 +03:00
Paul BotteinandGitHub 3ab6e389d3 Fixes dahsboard tab bar on mobile (#26690)
* Don't show toolbar in desktop

* Fix tab bar height

* Fix tab bar height

* rename to Add person

* Fix title

* Fix key
2025-08-25 15:41:49 +00:00
9cc85bc928 Fix hold action for picture element card in Android app (#26647)
Co-authored-by: Petar Petrov <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
2025-08-25 14:36:20 +00:00
WendelinandGitHub 4f4343d6c8 Automation editor mobile bottom sheet (#26680) 2025-08-25 16:27:57 +02:00
7ab27d620a Sum & Median Area card sensors (#26681)
Co-authored-by: Copilot <[email protected]>
2025-08-25 16:02:16 +02:00
Petar PetrovandGitHub fa4ee71803 Fix rounding in energy dashboard (#26689) 2025-08-25 14:00:44 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
82026250c5 Update dependency @material/web to v2.4.0 (#26678)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-25 15:28:19 +02:00
bc7533bb42 Add scene to button tile feature (#26520)
Co-authored-by: Petar Petrov <[email protected]>
2025-08-25 13:16:31 +00:00
Petar PetrovandGitHub 7110c0381f Show detailed storage space info (#26686)
* Storage space breakdown

* update mock data

* update format

* new format

* clean up

* fix

* remove useless if

* use ha-tooltip and styleMap

* fix hover
2025-08-25 13:03:58 +00:00
Surya PrakashandGitHub 87fa05accc Fix: Volume bar cut off at 100% in media player entity row (#26675) 2025-08-25 12:47:17 +00:00
56ee3f82fb Improve states tool performance (#26236)
Co-authored-by: Simon Lamon <[email protected]>
2025-08-25 14:15:56 +02:00
victorigualadaandGitHub 11872b076b Fix ha-alert icon z-index overlapping over other elements (#26685)
* Fix ha-alert icon z-index overlapping over other elements

* directly remove ha-alert's icon z-index property to fix overlapping
2025-08-25 14:14:37 +03:00
Kendell RandGitHub 620db4238d Indirect -> direct use of @rspack/dev-server (#26665)
* Indirect -> direct use of @rspack/dev-server

* move to devdependencies
2025-08-25 08:26:38 +03:00
Surya PrakashandGitHub ef78bec48d Fix: Enable tile button feature for entities with 'unknown' state (#26673)
## What this fixes
Fixes #26670

The button tile feature was incorrectly disabled for entities in the 'unknown' state. It should only be disabled for 'unavailable' entities, as a button is always pressable.

## Changes made
Removed `"unknown"` from the disabled states check in `hui-button-card-feature.ts`.

**Before:** Button was disabled if state was `"unavailable"` OR `"unknown"`
**After:** Button is disabled **only** if state is `"unavailable"`
2025-08-25 08:06:06 +03:00
Kendell RandGitHub 4dcf2287ce Fix invalid CSS (#26677) 2025-08-24 21:26:07 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
a9766ed66b Update dependency core-js to v3.45.1 (#26667)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-23 22:03:05 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
26a83feeb0 Update Yarn to v4.9.3 (#26662)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-23 22:02:49 +02:00
karwostsandGitHub 8c5dd7cdba Fix shortcuts quickbar translation (#26666) 2025-08-23 22:02:35 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
0d025a2355 Update dependency @rsdoctor/rspack-plugin to v1.2.3 (#26659)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-23 10:33:08 +02:00
karwostsandGitHub 8216778d0c Fix last backup status counter on system page (#26655) 2025-08-23 09:46:43 +02:00
fe16b689a8 Remove floors from the area overview dashboard (#26622)
* Remove floors from the area overview dashboard

* Refactor summaries view code

* Update src/panels/lovelace/strategies/overview/overview-home-view-strategy.ts

---------

Co-authored-by: Paulus Schoutsen <[email protected]>
2025-08-23 07:44:47 +00:00
Aidan TimsonandGitHub 2653f6c874 Move section to other views/dashboards from edit dialog menu (#26621)
* Init

* Pass in lovelace

* Working move

* Finalise
2025-08-23 09:22:34 +02:00
Jan-Philipp BeneckeandGitHub 8093f7f4cb Add background opacity option to section styling (#26651)
* Add background opacity option to section styling

* Run updated prettier
2025-08-22 18:58:47 +02:00
Jan-Philipp BeneckeandGitHub b26c914ff9 Use dedicated translation key for none option in section background type (#26652) 2025-08-22 18:13:04 +02:00
Jan-Philipp BeneckeandGitHub b2fa97b6dc Add background styling options to section settings (#26369)
* Add background styling options to section settings

* Improve

* Fix linter

* Move to subkey

* Use hex instead of rgb to save in yaml

* Remove or
2025-08-22 12:51:07 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
8a8bba422a Update dependency typescript-eslint to v8.40.0 (#26648)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-22 08:34:15 +03:00
76ca66b1b5 Change home and other zones edit dialog title to location name (#26637)
* Change home and other zone edit dialog title to location name

* Remove no longer used translations

* Use name as context

Co-authored-by: Petar Petrov <[email protected]>

* Use name as context

* Add translation

* Use name as context

* Actually use the right key

* Use name as context

---------

Co-authored-by: Petar Petrov <[email protected]>
2025-08-22 08:13:10 +03:00
Paul BotteinandGitHub 280dbfc958 Add "add" button to lovelace dashboard toolbar (#26644)
* Add add button to lovelace dashboard toolbar

* Add person and area

* Fix typing
2025-08-21 20:45:57 +02:00
karwostsandGitHub 0b10ad3e78 No multiline strings in state-history-chart-timeline (#26646) 2025-08-21 17:39:54 +02:00
Bram Kragten c172f0c486 Bumped version to 20250811.1 2025-08-21 16:30:40 +02:00
Dav15JrandBram Kragten 1244ed73a2 Fix Inconsistent naming of "Input button" in Quickbar navigation (#26541)
* Fix Inconsistent naming of "Input button" in Quickbar navigation

* Fix Media Manage button default visibilty.

* undo wrong change
2025-08-21 16:29:44 +02:00
Petar PetrovandBram Kragten e2aef205cc Filter hidden entities from group more-info (#26527) 2025-08-21 16:29:43 +02:00
Paul BotteinandBram Kragten 7434c9345a Fix related entities click behavior in the more info dialog (#26525) 2025-08-21 16:29:43 +02:00
Bram Kragten 287ff17107 Update tabs when user data changes (#26524) 2025-08-21 16:29:42 +02:00
WendelinandBram Kragten 21309944e5 Fix ha-button icon padding (#26517) 2025-08-21 16:29:41 +02:00
WendelinandBram Kragten c0e39ffd67 Fix handling empty release notes in more-info-update (#26515)
Fix handling empty release nots in more-info-update
2025-08-21 16:29:40 +02:00
Bram Kragten 3da2cb3123 Fix style variable in base chart (#26509) 2025-08-21 16:29:37 +02:00
karwostsandBram Kragten 7957bd1f25 Fix search in raw configuration editor (#26496) 2025-08-21 16:29:36 +02:00
Aidan TimsonandGitHub 04d0aa2f22 Remove "hassio" option from commands in quick bar (#26640) 2025-08-21 16:42:40 +03:00
Aidan TimsonandGitHub 4b901101da Fix voice assist setup success step translations (#26638) 2025-08-21 16:41:16 +03:00
4960284e2d Media player playback controls card feature (#26608)
* Setup

* Add buttons

* Fix

* Move to function

* Clean

* Cleanup

* Check client size

* Get width from host component

* Fix

* Spacing

* use current target

* Ensure state updates update render

* Apply suggestions from code review

Co-authored-by: Copilot <[email protected]>

* Update src/panels/lovelace/card-features/hui-media-player-playback-card-feature.ts

* Resolve code suggestion type errors

* Resize observer not needed

---------

Co-authored-by: Petar Petrov <[email protected]>
Co-authored-by: Copilot <[email protected]>
2025-08-21 10:28:43 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
11d32300e9 Update dependency eslint-plugin-unused-imports to v4.2.0 (#26641)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-21 13:26:40 +03:00
Philipp WallerandGitHub f131e93e63 Refactor automation editor event naming for consistency (#26634) 2025-08-21 13:23:59 +03:00
WendelinandGitHub 5a540dd889 Use automation sidebar in scripts (#26602) 2025-08-21 12:21:00 +02:00
Drinor DalipiandGitHub 3a70310f78 Follow-up: revert ultimate fallback to undefined in computeEntityEntryName (#26629) 2025-08-21 09:50:48 +02:00
Philipp WallerandGitHub feed58c33e Add show-automation-editor event for custom cards & panels (#26613)
* expose showAutomationEditor functionality in ha-panel-custom

* drop connectedCallback change (leftover from earlier test)

* enhance documentation for showAutomationEditor method

* Add automation editor mixin and event declaration for show-automation-editor
2025-08-21 08:22:05 +03:00
Philipp WallerandGitHub e5585e13fe Replace deprecated ESLint flag to remove warning (#26630)
replace deprecated ESLint flag
2025-08-21 04:43:17 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
edd49e1511 Update dependency marked to v16.2.0 (#26632)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-21 06:35:54 +02:00
057fad55e8 Rename "Logbook" to "Activity" in user-facing strings (#26619)
* Initial plan

* Update user-facing strings from "Logbook" to "Activity"

Co-authored-by: balloob <[email protected]>

* Apply suggestions from code review

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: balloob <[email protected]>
Co-authored-by: Paulus Schoutsen <[email protected]>
2025-08-20 17:36:32 +03:00
Aidan TimsonandGitHub d1a8165de2 Allow clock to show without background (#26554) 2025-08-20 17:31:25 +03:00
+4
Petar PetrovGitHubBram KragtenPaul BotteinkarwostsSimon LamonWendelindependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Aidan TimsonNorbert Rittelrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>pcan08Paulus SchoutsenDrinor Dalipi
31c555445d Bar gauge card feature for sensors (#26585)
* Bar graph card feature for sensors

* use state color

* tweak name

* rename and improve colors

* Update src/panels/lovelace/card-features/hui-progress-bar-card-feature.ts

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

* rename to Bar gauge

* name fix

* Force dark-only themes to be in dark mode (#26583)

* Fetch translations for switch-as-x domains (#26566)

* Fetch translations for switch-as-x domains

* no cache

* Migrate ha-progress-ring to webawesome (#26542)

* Migrate all sl-animation usages to wa-animation (#26544)

* Remove unused shoelace animation import (#26584)

* Bump actions/checkout from 4.2.2 to 5.0.0 (#26586)

Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.2 to 5.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4.2.2...v5.0.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add date card feature (#26531)

* Add date card feature

* Rename from "date" to "date-set"

* Better label

* Fix

* Parse date for datetime

* Show accurate state of show_header_toggle in entities card editor (#26564)

* Add clipboard support to condition card conditions (#26535)

* Add copy paste support to condition card conditions

* Don't clear the clipboard

* Fix selection

* Add cut and duplicate

* Remove

* Fix event

* Fix picture glance mouse pointer (#26391)

* Fix picture glance mouse pointer

* More action updates

* Capitalize "Samba" as the name of the Open Source project (#26590)

Capitalize "Samba" as name for the Open Source project

* Update dependency @codemirror/language to v6.11.3 (#26589)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Set default forecast option in weather forecast card editor (#26592)

* Add fan oscillate feature (#26519)

* First working fan-oscillate feature

This a first working impl, need at least to do:
- Tooltip not yet "Yes/No"
- Need implementation verification

* Use same strings as more info label for control tooltip

* Add missing label for editor

* Rename some variables

* Add fan features in gallery

* Fix lint:types by applying suggestions from code review

Co-authored-by: Aidan Timson <[email protected]>

* fix lint new line after import

* fix typo

Co-authored-by: Petar Petrov <[email protected]>

* fix event value type treating

* remove type magic as suggested

Co-authored-by: Petar Petrov <[email protected]>

* Update localize.ts

Complete suggestion change to have tooltip

* fix lint by removing unused import

---------

Co-authored-by: Aidan Timson <[email protected]>
Co-authored-by: Petar Petrov <[email protected]>

* Lock file maintenance (#26598)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Fix legend in devices-detail-graph (#26596)

* Change Suggest with AI label to Suggest (#26603)

* Automation row remember collapsed status (#26604)

* Summaries overview dashboard (#26594)

* Change categories to lights, climate and security

* Add entities grouped by devices

* Fix garage cover device class

* Rename category to summary

* Add media players categories

* Reduce spacing

* Remove person

* Remove translations

* Use media player cards

* Display entities without device

* Add missing entity category

* Update src/panels/lovelace/strategies/overview/helpers/overview-summaries.ts

Co-authored-by: Paulus Schoutsen <[email protected]>

* Add white space

---------

Co-authored-by: Paulus Schoutsen <[email protected]>

* Fix entities not showing due to JavaScript crash (fixes #25363) (#26599)

* Fix entity UI crash from undefined entity names (fixes #25363)

* Fix mock function type compatibility in test

- Update mock to handle string | undefined parameter
- Maintain test functionality while satisfying type checker

* Simplify approach based on reviewer feedback

- Use String() coercion to preserve numeric entity names (e.g., power strip outlets)
- Single line change instead of complex type validation across multiple files
- Revert stripPrefixFromEntityName to original (no longer needs null handling)
- Remove separate test file, update existing test to expect stringified numbers
- More conservative approach that preserves data rather than replacing with fallbacks

* History chart card feature (#26555)

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

* Fix space in overview welcome caption (#26618)

* Fix space in overview welcome caption

* Update src/panels/lovelace/strategies/overview/overview-home-view-strategy.ts

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Paul Bottein <[email protected]>
Co-authored-by: karwosts <[email protected]>
Co-authored-by: Simon Lamon <[email protected]>
Co-authored-by: Wendelin <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Aidan Timson <[email protected]>
Co-authored-by: Norbert Rittel <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: pcan08 <[email protected]>
Co-authored-by: Paulus Schoutsen <[email protected]>
Co-authored-by: Drinor Dalipi <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
2025-08-20 17:27:05 +03:00
Paul BotteinandGitHub 61bb5d33e5 Add home structure helper to overview dashboard (#26620)
* Use home structure in overview home

* Use home structure in summary views
2025-08-20 14:53:05 +02:00
Paulus SchoutsenandGitHub 20a3bab5bc Fix space in overview welcome caption (#26618)
* Fix space in overview welcome caption

* Update src/panels/lovelace/strategies/overview/overview-home-view-strategy.ts
2025-08-20 09:48:59 +00:00
e8d916acd7 History chart card feature (#26555)
Co-authored-by: Bram Kragten <[email protected]>
2025-08-20 11:30:42 +02:00
Drinor DalipiandGitHub 8b73d664b4 Fix entities not showing due to JavaScript crash (fixes #25363) (#26599)
* Fix entity UI crash from undefined entity names (fixes #25363)

* Fix mock function type compatibility in test

- Update mock to handle string | undefined parameter
- Maintain test functionality while satisfying type checker

* Simplify approach based on reviewer feedback

- Use String() coercion to preserve numeric entity names (e.g., power strip outlets)
- Single line change instead of complex type validation across multiple files
- Revert stripPrefixFromEntityName to original (no longer needs null handling)
- Remove separate test file, update existing test to expect stringified numbers
- More conservative approach that preserves data rather than replacing with fallbacks
2025-08-20 06:10:13 +00:00
10dcc08068 Summaries overview dashboard (#26594)
* Change categories to lights, climate and security

* Add entities grouped by devices

* Fix garage cover device class

* Rename category to summary

* Add media players categories

* Reduce spacing

* Remove person

* Remove translations

* Use media player cards

* Display entities without device

* Add missing entity category

* Update src/panels/lovelace/strategies/overview/helpers/overview-summaries.ts

Co-authored-by: Paulus Schoutsen <[email protected]>

* Add white space

---------

Co-authored-by: Paulus Schoutsen <[email protected]>
2025-08-19 19:48:43 +00:00
WendelinandGitHub fc5adc3753 Automation row remember collapsed status (#26604) 2025-08-19 12:13:35 +02:00
Paulus SchoutsenandGitHub d1db8f456f Change Suggest with AI label to Suggest (#26603) 2025-08-19 11:39:12 +02:00
karwostsandGitHub 0dd07a395a Fix legend in devices-detail-graph (#26596) 2025-08-19 09:12:30 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
589771df5c Lock file maintenance (#26598)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-19 08:44:22 +03:00
92812048dc Add fan oscillate feature (#26519)
* First working fan-oscillate feature

This a first working impl, need at least to do:
- Tooltip not yet "Yes/No"
- Need implementation verification

* Use same strings as more info label for control tooltip

* Add missing label for editor

* Rename some variables

* Add fan features in gallery

* Fix lint:types by applying suggestions from code review

Co-authored-by: Aidan Timson <[email protected]>

* fix lint new line after import

* fix typo

Co-authored-by: Petar Petrov <[email protected]>

* fix event value type treating

* remove type magic as suggested

Co-authored-by: Petar Petrov <[email protected]>

* Update localize.ts

Complete suggestion change to have tooltip

* fix lint by removing unused import

---------

Co-authored-by: Aidan Timson <[email protected]>
Co-authored-by: Petar Petrov <[email protected]>
2025-08-18 18:22:41 +03:00
Aidan TimsonandGitHub 9fc14d6627 Set default forecast option in weather forecast card editor (#26592) 2025-08-18 16:18:50 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
3da6b85593 Update dependency @codemirror/language to v6.11.3 (#26589)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-18 15:59:13 +03:00
Norbert RittelandGitHub d2a4f481be Capitalize "Samba" as the name of the Open Source project (#26590)
Capitalize "Samba" as name for the Open Source project
2025-08-18 14:54:51 +02:00
karwostsandGitHub e37f67c548 Fix picture glance mouse pointer (#26391)
* Fix picture glance mouse pointer

* More action updates
2025-08-18 13:33:10 +03:00
Aidan TimsonandGitHub e775a6770b Add clipboard support to condition card conditions (#26535)
* Add copy paste support to condition card conditions

* Don't clear the clipboard

* Fix selection

* Add cut and duplicate

* Remove

* Fix event
2025-08-18 13:10:58 +03:00
karwostsandGitHub 4ba5ef6c37 Show accurate state of show_header_toggle in entities card editor (#26564) 2025-08-18 13:01:25 +03:00
Aidan TimsonandGitHub d528ab06d9 Add date card feature (#26531)
* Add date card feature

* Rename from "date" to "date-set"

* Better label

* Fix

* Parse date for datetime
2025-08-18 09:57:09 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
03a628cfe2 Bump actions/checkout from 4.2.2 to 5.0.0 (#26586)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.2 to 5.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4.2.2...v5.0.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-18 12:38:04 +03:00
WendelinandGitHub 973851b332 Remove unused shoelace animation import (#26584) 2025-08-18 10:42:59 +03:00
Simon LamonandGitHub 4c5795c276 Migrate all sl-animation usages to wa-animation (#26544) 2025-08-18 09:04:42 +02:00
Simon LamonandGitHub 41d016d96a Migrate ha-progress-ring to webawesome (#26542) 2025-08-18 09:02:32 +02:00
karwostsandGitHub 22e647cad4 Fetch translations for switch-as-x domains (#26566)
* Fetch translations for switch-as-x domains

* no cache
2025-08-18 08:40:31 +03:00
karwostsandGitHub b63dd9dbbf Force dark-only themes to be in dark mode (#26583) 2025-08-18 08:39:32 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
3b3b9e269d Update dependency hls.js to v1.6.10 (#26581)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-18 08:33:39 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
d2c3b9ee83 Update dependency @lokalise/node-api to v15.2.1 (#26577)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-17 15:33:15 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
5b50a8692b Update babel monorepo to v7.28.3 (#26576)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-17 15:32:52 +02:00
Paulus SchoutsenandGitHub 8a8bbee8e0 Update theme color in web app manifests (#26572) 2025-08-17 10:19:40 +02:00
TheJulianJESandGitHub 28e28d1417 Fix restrict-task-creation workflow (#26569) 2025-08-17 10:19:16 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
ea77a0f3d6 Update dependency @lokalise/node-api to v15.1.0 (#26567)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-16 21:23:51 +02:00
karwostsandGitHub 10e09b238a Configurable todo item tap action (#26551)
* Configurable todo item tap action

* string
2025-08-15 16:33:50 +03:00
Simon LamonandGitHub f9cd2b66cb Migrate ha-fade-in to webawesome (#26543)
fade in
2025-08-15 13:29:34 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
b1c0fba8cf Update dependency @rsdoctor/rspack-plugin to v1.2.2 (#26553)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-15 13:27:29 +03:00
Norbert RittelandGitHub fdae6257b3 Consistently use "Home Assistant OS" as name (#26552) 2025-08-15 10:02:00 +02:00
6a48aea128 Fix media manage button default visibilty (#26548)
* Fix Inconsistent naming of "Input button" in Quickbar navigation

* Fix Media Manage button default visibilty.

---------

Co-authored-by: Simon Lamon <[email protected]>
2025-08-15 07:19:09 +00:00
Norbert RittelandGitHub a90b173671 Fix missing sentence-case in a few strings (#26547)
* Fix missing sentence-case in a few strings

* One more

* And another one
2025-08-15 09:10:00 +02:00
Dav15JrandGitHub d9971bfaa9 Fix Inconsistent naming of "Input button" in Quickbar navigation (#26541)
* Fix Inconsistent naming of "Input button" in Quickbar navigation

* Fix Media Manage button default visibilty.

* undo wrong change
2025-08-15 07:09:54 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
369d56a809 Update dependency typescript-eslint to v8.39.1 (#26546)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-15 09:04:30 +02:00
Norbert RittelandGitHub 939a3cdf63 Fix missing sentence-casing in People settings (#26539)
* Fix missing sentence-casing in People settings

* Remove hyphen from "presence detection integration"
2025-08-14 16:56:02 +02:00
208fd0662c Migrate ha-button-toggle-group to webawesome (#26506)
Co-authored-by: Bram Kragten <[email protected]>
2025-08-14 14:52:39 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
f133f246cb Update vaadinWebComponents monorepo to v24.8.5 (#25954)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-14 14:51:25 +02:00
Paul BotteinandGitHub b9b8997d68 Makes ha-combo-box clear value compatible with vaadin 24.8 (#26530) 2025-08-14 14:50:24 +02:00
Aidan TimsonandGitHub 46c4a19a13 Fix conditional card options alignment (#26534) 2025-08-14 12:27:21 +00:00
Paul BotteinandGitHub 8d63654211 Create overview dashboard with lights, covers, energy and favorite entities (#26504)
* Create overview dashboard with light, cover, energy and favorite

* Add welcome message

* Add person entities

* Add editor for favorite entities

* Don't use property
2025-08-14 11:56:35 +02:00
WendelinandGitHub 3bf25f125b Automation editor sidebar (#26413) 2025-08-14 10:06:16 +02:00
Petar PetrovandGitHub 8c65876413 Filter hidden entities from group more-info (#26527) 2025-08-13 17:50:00 +02:00
Bram KragtenandGitHub 2ab6d49553 Update tabs when user data changes (#26524) 2025-08-13 16:24:56 +02:00
Aidan TimsonandGitHub 67b0cf0952 Add small amount of extra padding to ohf card in about section (#26523) 2025-08-13 17:23:01 +03:00
Bram KragtenandGitHub 5138276f8a Show password forgot link on mobile (#26526)
show password forgot link on mobile
2025-08-13 17:22:17 +03:00
Paul BotteinandGitHub 30e6777529 Fix related entities click behavior in the more info dialog (#26525) 2025-08-13 16:08:52 +02:00
Aidan TimsonandGitHub 1686ab4b9d Add valve position card feature (#26511) 2025-08-13 15:04:44 +03:00
WendelinandGitHub b7102c0d7d Fix ha-button icon padding (#26517) 2025-08-13 13:40:44 +02:00
Petar PetrovandGitHub d41d524850 Show battery in and out energy in Sankey chart (#26490) 2025-08-13 12:40:45 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
4f05f6305a Update fullcalendar monorepo to v6.1.19 (#26516)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-13 09:50:40 +02:00
karwostsandGitHub ba0b1239be Fix search in automation yaml editor (#26513) 2025-08-13 09:07:50 +03:00
WendelinandGitHub 708b68f35d Fix handling empty release notes in more-info-update (#26515)
Fix handling empty release nots in more-info-update
2025-08-13 09:03:25 +03:00
Aidan TimsonandGitHub 3108e98b97 Update ha-spinner component to webawesome (#26507) 2025-08-12 21:00:40 +02:00
Bram KragtenandGitHub ba7609cc2c Fix style variable in base chart (#26509) 2025-08-12 17:14:29 +02:00
Bram Kragten 506fd7d480 center spinner 2025-08-12 15:30:47 +02:00
Bram KragtenandGitHub 9767ebe1fb Show spinner when loading application credential config (#26510) 2025-08-12 15:25:18 +02:00
Aidan TimsonandGitHub 539e89e7b5 Add valve open/close card feature (#26488)
* Add valve open/close card feature

* Toggle button UI if no assumed state
2025-08-12 14:26:12 +02:00
karwostsandGitHub a7eef81272 Fix search in raw configuration editor (#26496) 2025-08-12 14:31:38 +03:00
Aidan TimsonandGitHub 7986be103f Fix invalid loading margin while variables are loading (#26495)
* Fix invalid loading margin while variables are loading

* Fix invalid loading margin while variables are loading
2025-08-12 07:53:36 +03:00
055e65c45e Add a dashboard condition based on user's location (#26401)
* Add a dashboard condition based on user's location

* Update src/translations/en.json

Co-authored-by: Norbert Rittel <[email protected]>

* Update src/data/person.ts

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

* Use multiple: true

---------

Co-authored-by: Norbert Rittel <[email protected]>
Co-authored-by: Bram Kragten <[email protected]>
2025-08-12 07:51:31 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
fe762e9ae4 Update dependency eslint to v9.33.0 (#26502)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-12 07:47:01 +03:00
pcan08andGitHub 5267c6fdfc Add fan direction feature in gallery (#26499) 2025-08-11 19:40:32 +02:00
Andrew JacksonandGitHub 8eff913845 Sort subentries within integration devices by title (#26497)
Sort subentries by title
2025-08-11 17:34:36 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1c845d0052 Update dependency lint-staged to v16.1.5 (#26498)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-11 19:22:34 +02:00
60a1d25e1e Add fan direction feature (#26467)
* Create fan-direction feature

* Translate direction buttons tooltip

* Update src/translations/en.json

fix fan-direction label to sentence-cased

Co-authored-by: Norbert Rittel <[email protected]>

* Update src/translations/en.json

Remove usued translation

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

---------

Co-authored-by: Norbert Rittel <[email protected]>
Co-authored-by: Paul Bottein <[email protected]>
2025-08-11 16:32:42 +03:00
Aidan TimsonandGitHub 3439d1d663 Add area, device, floor and formatted state to template editor completions (#26383) 2025-08-11 15:28:34 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
bf120d9cb2 Update dependency @rsdoctor/rspack-plugin to v1.2.1 (#26492)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-11 14:25:53 +03:00
Paul BotteinandGitHub b5a024c879 Fix default alarm modes order when customizing it in card feature (#26491) 2025-08-11 14:13:02 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Petar Petrov
602d754e5e Update dependency typescript to v5.9.2 (#26372)
* Update dependency typescript to v5.9.2

* fix types

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Petar Petrov <[email protected]>
2025-08-11 11:11:15 +00:00
b7c4f4029d Translate service worker update toast notification (#26487)
* Translate service worker update toast notification

* Update src/managers/notification-manager.ts

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

* Update src/managers/notification-manager.ts

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

* Fix toast translation args

---------

Co-authored-by: Bram Kragten <[email protected]>
2025-08-11 14:07:32 +03:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
7fdb5d4862 Bump actions/cache from 4.2.3 to 4.2.4 (#26489)
Bumps [actions/cache](https://github.com/actions/cache) from 4.2.3 to 4.2.4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4.2.3...v4.2.4)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: 4.2.4
  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>
2025-08-11 13:32:14 +03:00
bc52ab410c Split repeat building blocks in picker (#26385)
Co-authored-by: Bram Kragten <[email protected]>
2025-08-11 11:07:41 +02:00
karwostsandGitHub 3b0220fa92 Support multiple for StateSelector (#25716)
* Support `multiple` for StateSelector

* lint

* Fixup after merge
2025-08-11 11:24:37 +03:00
Bram Kragten 64e00e559f Bumped version to 20250811.0 2025-08-11 09:58:49 +02:00
WendelinandBram Kragten b407bd4c4f Fix first letter uppercase in some buttons (#26485) 2025-08-11 09:58:39 +02:00
Simon LamonandBram Kragten d466abf9c4 Fix diagnostic download (#26466)
Diagnostic fix 2
2025-08-11 09:58:38 +02:00
karwostsandBram Kragten 4d98230145 Support button feature for input_button (#26444) 2025-08-11 09:58:38 +02:00
Petar PetrovandBram Kragten 8a5bca0eb0 Show sankey chart in vertical layout on mobile (#26439)
* Show sankey chart in vertical layout on mobile

* ts fix
2025-08-11 09:58:37 +02:00
Petar PetrovandBram Kragten 1638da858c Font improvements for Sankey chart (#26438)
* Use theme vars for sankey chart font

* improve font size calculation
2025-08-11 09:58:36 +02:00
WendelinandBram Kragten bfb11102cc Fix css var naming --ha-color-border-primary (#26433) 2025-08-11 09:58:35 +02:00
WendelinandBram Kragten a3d3539e82 Fix button start/end slot margins, add reduce-left-padding flag (#26431)
* Fix button start/end slot margins, add reduce-left-padding flag

* Always reduce padding when icons are there

* Revert icon padding changes
2025-08-11 09:58:35 +02:00
TimothyandBram Kragten 1fc6cff857 Fix typo in Neutral80 color (#26430) 2025-08-11 09:58:34 +02:00
WendelinandBram Kragten c5d7eb5384 Fix plain button in legacy browsers (#26426) 2025-08-11 09:58:33 +02:00
karwostsandBram Kragten 759e6eba35 Fix mqtt config panel (#26422) 2025-08-11 09:58:32 +02:00
karwostsandBram Kragten 153129e066 Fix a dangerous button color (#26418) 2025-08-11 09:58:31 +02:00
Aidan TimsonandBram Kragten 7bf3c7273e Fix Mod-S (Ctrl-S/Cmd-S) support for automation/scene/script YAML editors (#26412)
* Fix automation and script yaml mode Mod-S (Ctrl/Cmd-S) support

* Fix manual script editor

* Fix manual automation editor save

* Fix scene yaml mode
2025-08-11 09:58:31 +02:00
WendelinandBram Kragten 08765e6ce2 Add border radius css var ha prefix (#26411) 2025-08-11 09:58:30 +02:00
WendelinandGitHub a60c9f788d Fix first letter uppercase in some buttons (#26485) 2025-08-11 10:47:06 +03:00
karwostsandGitHub d9c297c06a Improve robustness of UI for if/then action (#26477) 2025-08-11 08:40:42 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
3789bebb2b Update dependency @bundle-stats/plugin-webpack-filter to v4.21.2 (#26480)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-11 08:36:51 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
bbecf5f368 Update dependency hls.js to v1.6.9 (#26474)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-10 14:30:38 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
e580b30219 Update dependency @rsdoctor/rspack-plugin to v1.2.0 (#26471)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-10 14:30:12 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
ed8c8ad3e3 Update dependency @rsdoctor/rspack-plugin to v1.1.11 (#26470)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-09 15:19:04 +02:00
Simon LamonandGitHub 4f61d5689b Fix diagnostic download (#26466)
Diagnostic fix 2
2025-08-09 15:17:59 +02:00
renovate[bot]andGitHub 60a18185d7 Update dependency @tsparticles/engine to v3.9.1 (#26420)
* Update dependency @tsparticles/engine to v3.9.1
2025-08-09 06:19:38 +00:00
karwostsandGitHub e0246b8488 Support button feature for input_button (#26444) 2025-08-09 07:52:14 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1cd0fae84a Update dependency @awesome.me/webawesome to v3.0.0-beta.4 (#26465)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-08 21:42:37 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
e8a1ebbff4 Update dependency fs-extra to v11.3.1 (#26464)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-08 19:38:28 +02:00
karwostsandGitHub c5010b8502 Fix some date-range bugs (#26441) 2025-08-08 16:57:54 +03:00
Petar PetrovandGitHub a7db401b62 Show sankey chart in vertical layout on mobile (#26439)
* Show sankey chart in vertical layout on mobile

* ts fix
2025-08-08 16:37:44 +03:00
Petar PetrovandGitHub 49c7dad6eb Font improvements for Sankey chart (#26438)
* Use theme vars for sankey chart font

* improve font size calculation
2025-08-08 08:43:59 +02:00
Aidan TimsonandGitHub 521c3d40b7 Add missing button feature translation (#26437) 2025-08-08 08:42:45 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
709a1d2ef0 Update dependency typescript-eslint to v8.39.0 (#26446)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-08 08:42:06 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
3c5d7b97d1 Update dependency core-js to v3.45.0 (#26449)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-08 08:41:49 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
9165c8bc57 Update dependency hls.js to v1.6.8 (#26451)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-08 08:40:58 +02:00
Luke MondyandGitHub 0b3e4eab23 Add 'Not' to lovelace visibility conditions (#26408)
:Add 'Not' to lovelace visibility conditions
2025-08-07 16:40:27 +03:00
WendelinandGitHub 39d14c943c Revert "Add Mobile team and design has codeowner of the theme colors" (#26432)
Revert "Add Mobile team and design has codeowner of the theme colors (#26428)"

This reverts commit 9588987e30.
2025-08-07 15:06:41 +02:00
WendelinandGitHub 09469be93f Fix css var naming --ha-color-border-primary (#26433) 2025-08-07 15:06:13 +02:00
karwostsandGitHub 6e215870ef Fix mqtt config panel (#26422) 2025-08-07 16:06:07 +03:00
WendelinandGitHub d5985dcaaf Fix button start/end slot margins, add reduce-left-padding flag (#26431)
* Fix button start/end slot margins, add reduce-left-padding flag

* Always reduce padding when icons are there

* Revert icon padding changes
2025-08-07 15:05:56 +02:00
TimothyandGitHub bbd9d8887d Fix typo in Neutral80 color (#26430) 2025-08-07 10:07:12 +00:00
TimothyandGitHub 9588987e30 Add Mobile team and design has codeowner of the theme colors (#26428) 2025-08-07 09:56:47 +00:00
WendelinandGitHub 52c05a4426 Fix plain button in legacy browsers (#26426) 2025-08-07 09:50:05 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
e8224df4e5 Update dependency echarts to v6 (#26356)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-07 09:41:59 +03:00
karwostsandGitHub 83a6df1621 Fix a dangerous button color (#26418) 2025-08-07 07:40:31 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
c46ebc8d3e Update dependency marked to v16.1.2 (#26423)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-07 07:38:25 +02:00
Aidan TimsonandGitHub fca530411f Fix Mod-S (Ctrl-S/Cmd-S) support for automation/scene/script YAML editors (#26412)
* Fix automation and script yaml mode Mod-S (Ctrl/Cmd-S) support

* Fix manual script editor

* Fix manual automation editor save

* Fix scene yaml mode
2025-08-06 18:52:41 +02:00
Norbert RittelandGitHub c2c64b9923 Fix summary for Choose building block by counting options (#26409)
* Fix summary for Choose building block

* Sentence-case "If-then" to match label of that building block
2025-08-06 18:52:03 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
9968c27a8e Update dependency lint-staged to v16.1.4 (#26414)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-06 18:45:36 +02:00
WendelinandGitHub 96796ac5da Add border radius css var ha prefix (#26411) 2025-08-06 12:59:34 +00:00
Bram Kragten 550e4cd4aa Bumped version to 20250806.0 2025-08-06 14:33:58 +02:00
Bram Kragten f6041c5cbb add save button to AI suggestions settings (#26407) 2025-08-06 14:32:48 +02:00
Bram Kragten 42f65c2ca1 Fix buttons in button row (#26405) 2025-08-06 14:32:46 +02:00
Bram Kragten 588f171f7f Update zwave js buttons (#26404) 2025-08-06 14:32:44 +02:00
Bram Kragten bd1445840d Update color variables (#26403) 2025-08-06 14:32:42 +02:00
Bram KragtenandGitHub 37def6d3e4 add save button to AI suggestions settings (#26407) 2025-08-06 14:27:58 +02:00
Bram KragtenandGitHub 013d603ba0 Fix buttons in button row (#26405) 2025-08-06 11:15:09 +00:00
Bram KragtenandGitHub b76407d28d Update zwave js buttons (#26404) 2025-08-06 13:13:22 +02:00
Bram KragtenandGitHub 4e969ccf09 Update color variables (#26403) 2025-08-06 10:42:21 +00:00
Bram Kragten 97a0903cec Bumped version to 20250805.0 2025-08-05 15:21:31 +02:00
Bram Kragten e2525a3d07 Fix colors in network graphs (#26397) 2025-08-05 15:21:22 +02:00
Bram Kragten 8bc0f5a42c Fix network graph not rendering (#26396) 2025-08-05 15:21:21 +02:00
Jan-Philipp BeneckeandBram Kragten bf7e8ffd24 Add localization for third-party data reporting in the Z-Wave JS dashboard (#26395)
* Add localization for third-party data reporting in the Z-Wave JS dashboard

* Run prettier
2025-08-05 15:21:21 +02:00
Stefan AgnerandBram Kragten 255e598c65 Fix System information dialog unhealthy/unsupported list (#26393)
The System Information dialog was not displaying translated list of
unhealthy and unsupported reasons because the wrong translation keys
were used. This commit updates the translation keys to the correct
ones.
2025-08-05 15:21:19 +02:00
karwostsandBram Kragten 5e22178225 Fix energy now button (#26384)
Update hui-energy-period-selector.ts
2025-08-05 15:21:19 +02:00
WendelinandBram Kragten 56b7a6abec Improve ha button radius variables (#26382)
* Improve ha button radius variables

* fixes

---------

Co-authored-by: Bram Kragten <[email protected]>
2025-08-05 15:21:18 +02:00
WendelinandBram Kragten f34c4a11af Improve neutral color palette (#26381)
Improve neutral, add docs, removed unused var.
2025-08-05 15:21:17 +02:00
Stefan AgnerandBram Kragten 102689b711 Remove eMMC specific references in disk life time handling (#26379)
* Remove eMMC specific references in disk life time handling

Remove eMMC specific calculations and references in the disk life
time handling to generalize the code for all disk types. This includes
updating translations and UI components to reflect a more generic
approach to disk life time metrics.

* Assume 30 MB/s as the speed for disk operations

The previous code tried to estimate based on disk type, 30 MB/s for
eMMC devices and 10 MB/s for others. However, this did not work
correctly since the disk_life_time returns null for non-eMMC devices,
leading to 30 MB/s being used for all devices.

Now disk_life_time is not a eMMC indicator anymore. Simply assume a
constant speed of 30 MB/s for all disk operations explicitly.
2025-08-05 15:21:16 +02:00
WendelinandBram Kragten b16d769192 Fix ha-buttons (#26373)
* Fix ha-button supervisor network

* Fix button appearance for entity row

* Fix logs button menu mobile width

* Fix new logs indicator
2025-08-05 15:21:15 +02:00
Jan-Philipp BeneckeandBram Kragten 29bcacc64e Improve Z-Wave JS config dashboard styling (#26368) 2025-08-05 15:21:14 +02:00
Jan-Philipp BeneckeandBram Kragten c7f3331373 Do not show AI suggestion button when no inputs in save dialog (#26357) 2025-08-05 15:21:13 +02:00
SquazelandBram Kragten c32444b70c Fix picture-glance card icon styling for unavailable/unknown entities (#26352) 2025-08-05 15:21:12 +02:00
WendelinandBram Kragten 11c6b90eb0 Fix dialog secondary button design (#26344) 2025-08-05 15:21:11 +02:00
Simon LamonandBram Kragten f7a17598f0 Fix diagnostic download on integration level (#26341) 2025-08-05 15:21:10 +02:00
Bram Kragten 56967bc0c1 Add support for sub config flows in conversation agent picker (#26336) 2025-08-05 15:21:09 +02:00
Bram KragtenandGitHub cdfd6431c3 Fix colors in network graphs (#26397) 2025-08-05 15:14:21 +02:00
Bram KragtenandGitHub c363995718 Fix network graph not rendering (#26396) 2025-08-05 15:05:23 +02:00
Jan-Philipp BeneckeandGitHub 53497aa632 Add localization for third-party data reporting in the Z-Wave JS dashboard (#26395)
* Add localization for third-party data reporting in the Z-Wave JS dashboard

* Run prettier
2025-08-05 13:00:14 +02:00
Stefan AgnerandGitHub 8d89b0e57f Fix System information dialog unhealthy/unsupported list (#26393)
The System Information dialog was not displaying translated list of
unhealthy and unsupported reasons because the wrong translation keys
were used. This commit updates the translation keys to the correct
ones.
2025-08-05 12:10:51 +02:00
Stefan AgnerandGitHub 92cf8b5579 Remove eMMC specific references in disk life time handling (#26379)
* Remove eMMC specific references in disk life time handling

Remove eMMC specific calculations and references in the disk life
time handling to generalize the code for all disk types. This includes
updating translations and UI components to reflect a more generic
approach to disk life time metrics.

* Assume 30 MB/s as the speed for disk operations

The previous code tried to estimate based on disk type, 30 MB/s for
eMMC devices and 10 MB/s for others. However, this did not work
correctly since the disk_life_time returns null for non-eMMC devices,
leading to 30 MB/s being used for all devices.

Now disk_life_time is not a eMMC indicator anymore. Simply assume a
constant speed of 30 MB/s for all disk operations explicitly.
2025-08-05 10:42:42 +02:00
karwostsandGitHub 6068c32176 Pass narrow through parallel/sequence automation actions (#26386) 2025-08-04 17:51:17 +02:00
karwostsandGitHub 38893324af Fix energy now button (#26384)
Update hui-energy-period-selector.ts
2025-08-04 16:19:26 +02:00
a39ab3c174 Improve ha button radius variables (#26382)
* Improve ha button radius variables

* fixes

---------

Co-authored-by: Bram Kragten <[email protected]>
2025-08-04 12:58:12 +00:00
ChristophandGitHub 797d2be5bf show spinner on update button (during update installation) (#26110)
* scroll to top when installing an update

* Revert "scroll to top when installing an update"

This reverts commit d0051b0c4c.

* add progress spinner to update button

* refactor disabled logic for update/skip button

* do not run update when disabled button is clicked

* refactor: use new ha-button to show progress

* refactor: move functions to update.ts
2025-08-04 14:51:38 +02:00
WendelinandGitHub 99a91e1019 Improve neutral color palette (#26381)
Improve neutral, add docs, removed unused var.
2025-08-04 12:24:42 +00:00
WendelinandGitHub 5de8d07ce0 Fix ha-buttons (#26373)
* Fix ha-button supervisor network

* Fix button appearance for entity row

* Fix logs button menu mobile width

* Fix new logs indicator
2025-08-04 14:18:31 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
3a31a4a721 Bump home-assistant/wheels from 2025.03.0 to 2025.07.0 (#26375)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 11:01:02 +02:00
SquazelandGitHub 05f4419a92 Fix picture-glance card icon styling for unavailable/unknown entities (#26352) 2025-08-04 08:16:11 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
5ea8feb86b Update rspack monorepo to v1.4.11 (#26365)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-04 06:52:21 +02:00
Jan-Philipp BeneckeandGitHub 8fd70b3ae6 Improve Z-Wave JS config dashboard styling (#26368) 2025-08-04 06:50:35 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
343aa40bc8 Update dependency @types/luxon to v3.7.1 (#26351)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-03 08:10:32 +02:00
Jan-Philipp BeneckeandGitHub 6022f9a77e Do not show AI suggestion button when no inputs in save dialog (#26357) 2025-08-03 08:10:06 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
bd9de0680e Update dependency @types/luxon to v3.7.0 (#26342)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-01 17:09:44 +02:00
Simon LamonandGitHub b8000d5bc1 Fix diagnostic download on integration level (#26341) 2025-08-01 13:16:09 +02:00
WendelinandGitHub c6efa1127f Fix dialog secondary button design (#26344) 2025-08-01 13:13:42 +02:00
Bram KragtenandGitHub 688a3d91d3 Add support for sub config flows in conversation agent picker (#26336) 2025-08-01 13:13:28 +02:00
TimothyandGitHub 68151a2a70 Add Bruno and Timo as codeowners of the external_app folders (#26345) 2025-08-01 11:49:47 +02:00
Bram Kragten b01ab9234b Bumped version to 20250731.0 2025-07-31 16:54:24 +02:00
WendelinandBram Kragten ad39228dea Fix line-height, fix script editor buttons (#26337)
* Fix line-height

* Fix script root buttons
2025-07-31 16:54:03 +02:00
WendelinandBram Kragten 8cc48cdecb Use tilecard button feature editor (#26335)
Use button feature editor
2025-07-31 16:54:02 +02:00
WendelinandBram Kragten 524e89acf0 Revert "Use query params instead of path for media browser navigate ids" (#26333) 2025-07-31 16:54:01 +02:00
WendelinandBram Kragten 48f6b34882 Fix ha-button with missing label and links (#26332) 2025-07-31 16:54:00 +02:00
Bram Kragten 44d9185574 Fix area picker text alignment in voice wizard (#26330) 2025-07-31 16:53:59 +02:00
Joost LekkerkerkerandBram Kragten 51ff6c6564 Use underscores in AI task name (#26327) 2025-07-31 16:53:58 +02:00
b49b8e3db8 Add weekdays to time trigger (#25908)
* Add weekdays to time trigger

* Update src/translations/en.json

Co-authored-by: Norbert Rittel <[email protected]>

* Localization changes

---------

Co-authored-by: Norbert Rittel <[email protected]>
Co-authored-by: Simon Lamon <[email protected]>
2025-07-31 16:53:57 +02:00
WendelinandGitHub c2ca556151 Fix line-height, fix script editor buttons (#26337)
* Fix line-height

* Fix script root buttons
2025-07-31 16:52:36 +02:00
WendelinandGitHub df86b27af4 Use tilecard button feature editor (#26335)
Use button feature editor
2025-07-31 13:27:40 +02:00
WendelinandGitHub eba1f401cc Fix ha-button with missing label and links (#26332) 2025-07-31 12:40:17 +02:00
WendelinandGitHub 19c2f9c9e8 Revert "Use query params instead of path for media browser navigate ids" (#26333) 2025-07-31 12:38:52 +02:00
Bram KragtenandGitHub 4250447d14 Fix area picker text alignment in voice wizard (#26330) 2025-07-31 11:52:33 +02:00
Joost LekkerkerkerandGitHub 4666197f28 Use underscores in AI task name (#26327) 2025-07-30 21:52:09 +02:00
a5ca36c93f Add weekdays to time trigger (#25908)
* Add weekdays to time trigger

* Update src/translations/en.json

Co-authored-by: Norbert Rittel <[email protected]>

* Localization changes

---------

Co-authored-by: Norbert Rittel <[email protected]>
Co-authored-by: Simon Lamon <[email protected]>
2025-07-30 19:45:10 +02:00
Norbert RittelandGitHub a88950e16c Correct the setup steps for Matter sharing in Google Home app (#26322)
Correct the setup steps in the Google Home app
2025-07-30 19:40:41 +02:00
Bram Kragten c013c5ec64 Merge branch 'rc' into dev 2025-07-30 16:18:36 +02:00
Bram Kragten 53d5d0efbd Merge branch 'master' into rc 2025-07-30 16:18:22 +02:00
Bram Kragten 3577991553 Bumped version to 20250730.0 2025-07-30 16:16:28 +02:00
fa758f2bee Redesign ha-button (#25564)
Co-authored-by: Bram Kragten <[email protected]>
2025-07-30 16:15:18 +02:00
6dbfc2f4ed Add new card feature: button (#26165)
Co-authored-by: Simon Lamon <[email protected]>
Co-authored-by: Wendelin <[email protected]>
2025-07-30 16:13:05 +02:00
Petar PetrovandGitHub b355556c07 Improve network graph layout (#26268) 2025-07-30 15:55:06 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
fec336260e Pin dependency @types/culori to 4.0.0 (#26318)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-30 14:07:48 +02:00
WendelinandGitHub 3e67d91d1a Add color palettes (#26271) 2025-07-30 13:51:14 +02:00
karwostsandGitHub 641e406502 Don't allow view URL to be a number (#26313) 2025-07-29 21:33:58 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
073ba22233 Update dependency @bundle-stats/plugin-webpack-filter to v4.21.1 (#26316)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-29 21:29:30 +02:00
Norbert RittelandGitHub 6b4a4e6024 Fix doubled plural in "add-on(s) repositories / capabilities" (#26310)
The string "Manage add-on repositories" has it correct, so this makes the fixed ones more consistent, too.
2025-07-29 10:05:13 +02:00
karwostsandGitHub 7d8b418a81 Fix some instability in ha-selector-object (#26301)
Fix some instability in ha-object-selector
2025-07-29 09:50:58 +03:00
karwostsandGitHub c14425b2d1 Allow picture card to serve media images (#26291)
* Allow picture card to serve media images

* small adjustments
2025-07-29 09:49:08 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
4740a71bdd Update dependency eslint to v9.32.0 (#26309)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-28 22:12:27 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
6d0e0158ea Bump relative-ci/agent-action from 3.0.0 to 3.0.1 (#26307)
Bumps [relative-ci/agent-action](https://github.com/relative-ci/agent-action) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/relative-ci/agent-action/releases)
- [Commits](https://github.com/relative-ci/agent-action/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: relative-ci/agent-action
  dependency-version: 3.0.1
  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>
2025-07-28 17:03:04 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
e966d6f4f4 Update rspack monorepo to v1.4.10 (#26300)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-27 22:11:12 +02:00
karwostsandGitHub b99bb60cd0 Cleanup some selectors firing double value-changed events (#26302) 2025-07-27 22:10:30 +02:00
karwostsandGitHub 080c79234c Fix typo in attribute (#26303)
Update hui-action-editor.ts
2025-07-27 22:09:16 +02:00
karwostsandGitHub 9ad887942e Add raindrops to lightning-rainy state SVG (#26298) 2025-07-27 07:54:25 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
27dfa514e7 Update dependency @lokalise/node-api to v15 (#26297)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-27 07:50:01 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
ab5c5389e8 Update dependency @rsdoctor/rspack-plugin to v1.1.10 (#26295)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-27 07:49:07 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
219679bce9 Update rspack monorepo to v1.4.9 (#26289)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-25 14:43:41 +02:00
ChaiandGitHub aca4a1f86d Fix for integration 'Add entry' unnecessary dialogs (#26285) 2025-07-25 11:42:34 +00:00
Paulus SchoutsenandGitHub f428d6b3f2 Add download device info button (#26278)
* Add download device info button

* Update src/panels/config/core/ha-config-section-analytics.ts

* Guard download support

* Update src/translations/en.json
2025-07-24 19:53:04 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Simon Lamon
109c3e86d9 Lock file maintenance (#26230)
* Lock file maintenance

* Remove duplicated packages

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Simon Lamon <[email protected]>
2025-07-24 19:02:51 +00:00
karwostsandGitHub e4b6c3fd4d Disallow special characters in view URL (#26280)
* Disallow special characters in view URL
2025-07-24 18:58:26 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
43f1d9be44 Update dependency typescript-eslint to v8.38.0 (#26283)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-24 20:05:15 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
5c405201b2 Update dependency eslint-plugin-lit-a11y to v5.1.1 (#26279)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-24 19:25:39 +03:00
karwostsandGitHub 9fc91fbbcc Fix spelling, remove errant apostrophe (#26277)
Update en.json
2025-07-24 17:06:57 +03:00
Norbert RittelandGitHub d9e3f2c15f Three smaller fixes in user-facing strings (#26276)
- change "eg." to "e.g." (four other occurrences are correct)
- add a comma after "Enter your email address, …" as the noun in the second part of the sentence changes to "we"
- sentence-case "Newest version"
2025-07-24 15:10:35 +03:00
Abílio CostaandGitHub 3e2f5b0dd3 Handle visibility changes in camera players (#26235)
* Handle visibility changes in webrtc player

* Implement visibility handling for hls

* Remove console logs
2025-07-23 19:31:39 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
aae1a3604c Bump axios from 1.10.0 to 1.11.0 (#26273)
Bumps [axios](https://github.com/axios/axios) from 1.10.0 to 1.11.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.10.0...v1.11.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.11.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-23 17:03:08 +00:00
Bram KragtenandGitHub e31b9c4264 Update translations action with dispatch 2025-07-23 14:54:35 +02:00
MarcinandGitHub 90a9dbafbf Fixed icon (#26249) 2025-07-23 14:52:07 +02:00
MarcinandGitHub 7041557ee2 Changed area dashboard preview icon (#26269) 2025-07-23 14:50:51 +02:00
Joost LekkerkerkerandGitHub 3d6e5ef1f0 Render AI task entities with formatted time (#26265) 2025-07-23 14:49:51 +02:00
Petar PetrovandGitHub d9bf605c3f Improve ZHA routes vizualization (#26270) 2025-07-23 14:48:47 +02:00
20dab92ad8 Sort devices and services alphabetically in integration pages (#26231)
Co-authored-by: balloob <[email protected]>
Co-authored-by: copilot-swe-agent[bot] <[email protected]>
2025-07-23 14:41:34 +02:00
Petar PetrovandGitHub 98ed3bdd4d Add handle to axis pointer in charts on mobile (#26088)
* Add handle to axis pointer in charts on mobile

* Ignore hidden xAxis

* simplify
2025-07-23 13:13:43 +02:00
Petar PetrovandGitHub f5bc6309ae Add features to light & cover groups more-info (#26187)
* Add features to light & cover groups more-info

* 12 column tiles
2025-07-23 13:13:09 +02:00
Simon LamonandGitHub 620ebd8a61 Correct lokalise docker image (#26267)
Mistyped docker iamge
2025-07-23 13:11:57 +02:00
Norbert RittelandGitHub ca30af5c8a Various spelling fixes in user-facing strings (#26261)
* Various spelling fixes in user-facing strings

* Fix triple apostrophes
2025-07-23 13:23:17 +03:00
Simon LamonandGitHub 9d30ce348f Bump Lokalise docker image to latest v3.1.4 (#26226)
Bump lokalise to latest version v3.1.4
2025-07-23 11:44:36 +02:00
karwostsandGitHub 07c7b07362 Stabilize step flow errors (#26258) 2025-07-23 08:33:48 +03:00
karwostsandGitHub c13a80ce5e Hide hardware integrations in brand sub-menu (#26252)
* Hide hardware integrations in brand sub-menu

* Filter before sort
2025-07-22 16:16:03 +02:00
WendelinandGitHub 13868478f7 Download core logs via supervisor (#26251)
Use supervisor download dialog for core downloads
2025-07-22 14:55:11 +03:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
77aca59dda Bump form-data from 4.0.3 to 4.0.4 (#26248)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-22 09:04:27 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
b86605949b Update dependency marked to v16.1.1 (#26247)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-22 09:08:42 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
cd19022e2e Update dependency eslint-config-prettier to v10.1.8 (#26246)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-22 09:08:17 +03:00
03368c1859 Improve Z-Wave firmware update dialog on device page (#26158)
Co-authored-by: Bram Kragten <[email protected]>
2025-07-21 13:55:31 +00:00
Petar PetrovandGitHub 8e0ed288e1 Tweak the color of sum/change lines in statistics chart (#26242) 2025-07-21 10:57:18 +02:00
Petar PetrovandGitHub 879e0ed3d5 Show more details in statistics legend when only 1 entity (#26241) 2025-07-21 10:57:13 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
657275fd17 Update dependency marked to v16.1.0 (#26238)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-21 08:48:59 +03:00
Paul BotteinandGitHub 3d1c908a01 Add support for multiple entities and hide_states option in state and attribute selectors (#26207)
* Add support for multiple entities and target for state selector

* Add support for multiple entities for attribute selector

* Improve context support

* Add combine mode and fix hidden and entity category for service control

* Don't use combine mode

* Refactor options
2025-07-21 08:48:25 +03:00
Norbert RittelandGitHub 713e8e7b71 Fix missing sentence-casing in Quickbar navigation items (#26224)
Fix missing sentence-casing in Quickbar navigation

Also replace one occurrence of "configuration" with "settings" as this is now it's menu title.
2025-07-20 10:17:48 +02:00
Petar PetrovandGitHub 9e597d22a5 Handle predefined options in Z-Wave config panel (#26097)
* Handle predefined options in Z-Wave config panel

* use ha-combo-box

* lint

* display invalid status on the input

* show number and label

* compute items outside of render
2025-07-19 09:18:27 +03:00
Petar PetrovandGitHub 259e8a14da Fix history for energy_storage device class (#26223) 2025-07-18 20:34:05 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
4de4243b55 Update rspack monorepo to v1.4.8 (#26222)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 18:35:35 +02:00
Paul BotteinandGitHub a667cb627b Add reorder option to entity selector (#26217) 2025-07-18 18:08:54 +02:00
Paul BotteinandGitHub 9461634670 Fix interactions translation in area card editor (#26218) 2025-07-18 16:00:02 +02:00
Petar PetrovandGitHub 51b79b33fb Disable network graph emphasis on mobile (#26106) 2025-07-18 14:04:22 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
539884295b Update rspack monorepo to v1.4.7 (#26216)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 12:40:48 +02:00
Bram Kragten a885c7e358 Merge branch 'rc' 2025-07-18 10:32:20 +02:00
Bram Kragten fa968f49c1 Bumped version to 20250702.3 2025-07-18 10:32:06 +02:00
Petar PetrovandBram Kragten cf3c40f5f7 Fix "Cancel exclusion" button for Z-Wave (#26188) 2025-07-18 10:31:56 +02:00
Petar PetrovandBram Kragten 361474885f Fix entity renaming when adding a new device (#26177) 2025-07-18 10:31:55 +02:00
Petar PetrovandBram Kragten 1e06046bd6 Fix number format in statistics charts (#26176)
fix number format in statistics charts
2025-07-18 10:31:54 +02:00
Petar PetrovandBram Kragten 4c940e62f3 Fix entities link on integration page (#26167) 2025-07-18 10:31:53 +02:00
dcapslockandBram Kragten 7631c409e1 Improve performance of Helpers config page (#26153) 2025-07-18 10:31:52 +02:00
Paul BotteinandGitHub e1192403d9 Update card size icon for area strategy (#26213) 2025-07-18 10:22:37 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
f5c49c83a0 Update dependency @codemirror/view to v6.38.1 (#26214)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 10:22:16 +02:00
faae7a2322 ZWaveJS network graph (#26112)
* ZwaveJS network visualization

* more progress

* working version

* lint

* remove unused code

* Update src/translations/en.json

Co-authored-by: Norbert Rittel <[email protected]>

* remove "live" toggle and use deepEqual

* styling tweak

---------

Co-authored-by: Norbert Rittel <[email protected]>
2025-07-18 10:12:28 +02:00
Petar PetrovandGitHub f6aa55ef74 Fix entities link on integration page (#26167) 2025-07-18 10:01:33 +02:00
Petar PetrovandGitHub 1a0afc5079 Show more details on storage page (#26202) 2025-07-18 08:31:31 +02:00
ChristophandGitHub 4a50ca4ea5 do not set "___ADD_NEW___" value in ha-area-picker (#26210) 2025-07-18 08:37:04 +03:00
Logan RosenandGitHub 6cb27ede09 Refresh store collection when adding or removing repository (#26174)
* Refresh store collection when adding new repository

* Remove store refresh from `hassio-addon-store`

* Only refresh store when adding/removing repositories
2025-07-18 08:35:41 +03:00
Petar PetrovandGitHub 1b68c51a05 Add Sankey chart to the energy dashboard (#26192)
* Add Sankey chart to the energy dashboard

* hide floors & areas if there is an explicit hierarchy
2025-07-18 06:30:21 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
5f2b11ca9f Update dependency typescript-eslint to v8.37.0 (#26211)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 06:08:59 +02:00
Tommy GoodeandGitHub ec6666a4ea Add 'state' option for secondary entity info on Entities card (#26201)
* add 'state' option for secondary entity info on Entities card

* Use formatEntityState instead of computeStateDisplay
2025-07-17 14:02:09 +00:00
Paul BotteinandGitHub a10dbb64f0 Small improvements for area strategy editor (#26206) 2025-07-17 16:39:38 +03:00
Stefan AgnerandGitHub aa17be0e33 Add Supervisor unhealthy reason translations (#26190)
* Add Supervisor unhealthy reason translations

This adds translations for new Supervisor unhealthy reasons, including:
- `oserror_bad_message` (https://github.com/home-assistant/supervisor/pull/4750)
- `duplicate_os_installation` (https://github.com/home-assistant/supervisor/pull/6024)

While at it, sort the keys alphabetically for consistency.
2025-07-17 10:27:36 +02:00
Norbert RittelandGitHub a8919703ee Fix description of Picture elements card (#26203)
- change explanation from plural to singular to match first sentence
- remove the exclamation mark from the middle of the sentence and fix wrong capitalization
2025-07-17 11:01:36 +03:00
Norbert RittelandGitHub 1c66a5e437 Sentence-case "Enable state reporting" for Alexa (#26204)
Makes it consistent with identical `enable_state_reporting` string for `google`.
2025-07-17 11:00:33 +03:00
Paul BotteinandGitHub 767d785d04 Increase area card default height when using camera and features (#26205) 2025-07-17 10:59:29 +03:00
Paul BotteinandGitHub 0839528e22 Add option to change the area card size for area dashboard (#26199) 2025-07-17 09:07:24 +03:00
Norbert RittelandGitHub 1012245ef7 Different sentence-casing fixes in user-facing strings (#26200)
* Several casing fixes in en.json

* Include "Security Devices PIN"

* Include "Browser Media Player"
2025-07-17 09:03:00 +03:00
karwostsandGitHub 0d6db8b834 Show picture-elements error messages for elements (#26196) 2025-07-17 09:01:42 +03:00
Petar PetrovandGitHub adea2efb01 Fix "Cancel exclusion" button for Z-Wave (#26188) 2025-07-16 17:29:28 +02:00
dcapslockandGitHub 818914b837 Include card error message in card error (#26184)
Pass card error message to createErrorCardElement
2025-07-16 17:28:42 +02:00
Paul BotteinandGitHub b207528ecf Remove specific icons for area controls card features (#26195) 2025-07-16 17:27:05 +02:00
Norbert RittelandGitHub 039ef18d8c Fix spelling of "to log in to" (verb) and "login" (noun) (#26189)
Fix spelling of "to log in to" and "login"
2025-07-16 12:22:52 +03:00
Petar PetrovandGitHub db387834f2 Fix entity renaming when adding a new device (#26177) 2025-07-16 11:00:49 +03:00
Petar PetrovandGitHub 1b7d9f9e3b Remove vis-data dependency (#26186) 2025-07-16 08:42:37 +02:00
Paulus SchoutsenandGitHub ed8c9f5ce5 AI Task automation save improvements (#26140)
* also assign category

* Extract Suggest AI button

* Add sick animation

* Show AI Task pref but disabled if not done loading

* Lint

* Update progress wording

* Define better interface

* Add My panel

* Adjust instructions to params.domain

* Mention sentence capitalization

* Update label when failure

* Keep width during suggestion
2025-07-16 08:20:37 +03:00
Norbert RittelandGitHub c3bf1d8770 Consistently capitalize "Companion" for the mobile apps (#26180) 2025-07-15 19:27:04 +02:00
Paul BotteinandGitHub 7db4693082 Don't show members for legacy groups (#26179) 2025-07-15 17:05:38 +00:00
Petar PetrovandGitHub 72a12a4ba4 Fix for charts with identically named entities (#26166)
* Fix for charts with identically named entities

* lint

* type fix
2025-07-15 19:01:58 +02:00
Paul BotteinandGitHub aee9e4b0a5 Show group members in more info (#26178)
* Should group members in more info

* Fix flickering
2025-07-15 19:51:46 +03:00
Petar PetrovandGitHub 55f6affc9e Fix number format in statistics charts (#26176)
fix number format in statistics charts
2025-07-15 18:40:23 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1e5f2f7215 Update dependency eslint to v9.31.0 (#26171)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-15 08:14:15 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
da864d5bb7 Update dependency lit-html to v3.3.1 (#26162)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-14 12:23:55 +02:00
Paul BotteinandGitHub 8d60f39cf4 Improve aria support in control elements (#26107)
* Improve aria support in control elements

* Use radiogroup for control select

* Fix switch
2025-07-14 12:56:31 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2045519814 Update dependency @lit/reactive-element to v2.1.1 (#26159)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-14 08:35:27 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
3f70e88a4f Update dependency lit to v3.3.1 (#26160)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-14 11:27:40 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
6ed5fbe102 Update dependency @lit-labs/observers to v2.0.6 (#26155)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-14 11:26:43 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
4e72d5083d Update dependency @lit/context to v1.1.6 (#26157)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-14 11:25:55 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
f9e102e537 Update dependency @lit-labs/virtualizer to v2.1.1 (#26156)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-14 11:05:03 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
e54363875b Update dependency @lit-labs/motion to v1.0.9 (#26154)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-14 09:10:11 +03:00
dcapslockandGitHub 1ce4e2a799 Improve performance of Helpers config page (#26153) 2025-07-14 08:42:37 +03:00
karwostsandGitHub 80b86a89f0 Render energy-gas in the display unit of the sources (#26143) 2025-07-14 08:34:53 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1a316d251e Update rspack monorepo to v1.4.6 (#26148)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-13 09:00:49 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
a74f90b768 Update dependency luxon to v3.7.1 (#26147)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-13 10:51:09 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
fc6e457581 Update dependency @types/leaflet to v1.9.20 (#26142)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-11 23:25:08 +02:00
karwostsandGitHub ad7b8b66f2 Render energy-water in the display unit of the sources (#26141)
Render energy-water in the display unit of the source
2025-07-11 19:31:27 +03:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
0714677a8a Update dependency hls.js to v1.6.7 (#26137)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-11 12:37:28 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
0a946a5c43 Update rspack monorepo to v1.4.5 (#26138)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-11 12:37:04 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
4930a8d88e Update dependency typescript-eslint to v8.36.0 (#26136)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-11 12:36:55 +02:00
8b781cec8e Handle disabled ZWave provisionning entries (#26132)
* Handle disabled ZWave provisionning entries

* Update src/translations/en.json

Co-authored-by: Norbert Rittel <[email protected]>

---------

Co-authored-by: Simon Lamon <[email protected]>
Co-authored-by: Norbert Rittel <[email protected]>
2025-07-11 12:36:19 +02:00
Petar PetrovandGitHub 065c98c5d7 "Add device" primary button on protocol integration pages (#26130) 2025-07-11 10:37:25 +03:00
Bram Kragten 6a3c58d20f Merge branch 'rc' 2025-07-10 21:35:08 +02:00
Bram Kragten a87afe9fb3 Bumped version to 20250702.2 2025-07-10 21:34:53 +02:00
ChristophandBram Kragten 61fe8983f3 do not set "___ADD_NEW___" value in ha-floor-picker (#26102) 2025-07-10 21:34:33 +02:00
Ezra FreedmanandBram Kragten c10410ade3 Weather card smallest width is not set correctly (#26082)
set result.width, not result.height
2025-07-10 21:34:32 +02:00
Yosi LevyandBram Kragten 761fded9e3 RTL fixes for 7-25 (#26074) 2025-07-10 21:34:32 +02:00
karwostsandBram Kragten b87fbe7a1e Fix default range icon (#26069) 2025-07-10 21:34:31 +02:00
karwostsandBram Kragten 7fdf824e97 Revert changes to persistent notification in sidebar (#25984) 2025-07-10 21:34:30 +02:00
karwostsandGitHub 69d8eeb7db Revert changes to persistent notification in sidebar (#25984) 2025-07-10 21:33:33 +02:00
Norbert RittelandGitHub 3b7d2869e5 Fix sentence-casing of two "More Info" button labels (#26135)
Fix sentence-casing of two "More Info" buttons

- the one in the Dev tools opens the "More info" dialog for the entity, so it's changed to that dialog's name
- the one for Thread configuration opens href=${documentationUrl(this.hass, `/integrations/thread`)}
therefore it's changed to "More information"
2025-07-10 16:07:11 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
bcda5cd0cf Update dependency core-js to v3.44.0 (#26134)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-10 16:02:35 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
eeb64a25ff Update dependency @rsdoctor/rspack-plugin to v1.1.8 (#26133)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-10 16:01:56 +00:00
Petar PetrovandGitHub 9134132ba9 Only show loading for slow flow steps to avoid flickering (#26131) 2025-07-10 17:59:07 +02:00
karwostsandGitHub 1ded254e5a Fix some weather-forecast card editor issues (#26125) 2025-07-10 11:27:37 +03:00
ChristophandGitHub fc104a7992 add floor column to datatable in config devices page (#26103)
* add floor column to datatable in config devices page

* refactor conditions related to floor column in config devices page
2025-07-10 11:25:56 +03:00
karwostsandGitHub e7e062a222 Pause map autofit when user initiates pan/zoom (#26114)
* Pause map autofit when user initiates pan/zoom

* not a state

* a different approach
2025-07-09 17:32:20 +03:00
Franck NijhofandGitHub 5233086efb Add Task issue form (#26121) 2025-07-09 14:14:37 +02:00
ChristophandGitHub 8d95f0d95d add unit tests for common/url/search-params.ts (#26115) 2025-07-09 14:11:28 +03:00
karwostsandGitHub 5cf8b39703 Coerce all energy distribution values to the same unit (#26117) 2025-07-09 14:06:47 +03:00
Franck NijhofandGitHub 15dabe372c Adjust feature request links in issue reporting (#26123) 2025-07-09 12:40:37 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
aab52a8bb2 Update dependency vis-data to v7.1.10 (#26122)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-09 10:27:49 +00:00
Norbert RittelandGitHub aa52825b40 Capitalize "REST", remove excessive commas (#26109) 2025-07-08 12:57:30 +02:00
ChristophandGitHub 2809a306e6 do not set "___ADD_NEW___" value in ha-floor-picker (#26102) 2025-07-08 12:40:24 +02:00
Bram Kragten fe946eb75b Merge branch 'rc' 2025-07-04 13:53:23 +02:00
Bram Kragten 3bfbe4bde6 Bumped version to 20250702.1 2025-07-04 13:53:08 +02:00
7963a97358 Terminology: change controller to adapter (#26051)
* Terminology: change controller to adapter

* Update src/translations/en.json

Co-authored-by: AlCalzone <[email protected]>

* Apply suggestions from code review

---------

Co-authored-by: AlCalzone <[email protected]>
2025-07-04 13:52:37 +02:00
Ezra FreedmanandBram Kragten 0ed2b5966e Prevent uncaught TypeError on HuiWeatherForecastCard render (#26038) 2025-07-04 13:52:37 +02:00
Paul BotteinandBram Kragten 70c5f77aa7 Fix play media action (#26035) 2025-07-04 13:52:36 +02:00
Paul BotteinandBram Kragten 1013647249 Fix zoom in statistic chart (#26034) 2025-07-04 13:52:35 +02:00
Paul BotteinandBram Kragten 45e9c51525 Reduce media selector size (#26033) 2025-07-04 13:52:34 +02:00
Bram Kragten bbe3a9e0c2 Merge branch 'rc' 2025-07-02 13:45:20 +02:00
Bram Kragten 33ea02208a Bumped version to 20250702.0 2025-07-02 13:44:53 +02:00
Bram Kragten cf531cd935 Disable fullscreen in trigger detail dialog (#26030) 2025-07-02 13:44:27 +02:00
Paul BotteinandBram Kragten 232649c0cd Improve styling of the code editor in fullscreen mode (#26029) 2025-07-02 13:44:26 +02:00
Bram Kragten 1db8ef37a2 Dont fetch device actions on first updated (#26028) 2025-07-02 13:44:25 +02:00
Paul BotteinandBram Kragten eecd765d09 Fix UI jump when using drag and drop in areas strategy editor (#26026) 2025-07-02 13:44:25 +02:00
Paul BotteinandBram Kragten 3d75831623 Add missing domain icon import in area controls (#26023) 2025-07-02 13:44:24 +02:00
Paul BotteinandBram Kragten c1934e0b9a Add missing area helper (#26022) 2025-07-02 13:44:23 +02:00
karwostsandBram Kragten c0e9c3b9dc Fix glitchy 'show' checkboxes on integration page (#26021) 2025-07-02 13:44:22 +02:00
Paul BotteinandGitHub c3f0bba4a3 20250701.0 (#26019) 2025-07-01 15:04:35 +02:00
Paul Bottein 0026ee7563 Bumped version to 20250701.0 2025-07-01 15:02:51 +02:00
Paul Bottein 61f1c8cbd4 Force narrow style for action, condition and trigger in blueprint (#26018) 2025-07-01 15:02:17 +02:00
Paul Bottein e0b32ea789 Increase target area in tile card and area card (#26017) 2025-07-01 15:02:17 +02:00
Paul Bottein 96bbfe8a93 Add dashboard title to strategy editor (#26015) 2025-07-01 15:02:16 +02:00
Paul Bottein 93837f01f7 Avoid selector to take to much space in action calls (#26014) 2025-07-01 15:02:15 +02:00
Ezra FreedmanandPaul Bottein d0737082a5 Fix translation in the integration page for entities (#26009)
add call to localize
2025-07-01 15:02:14 +02:00
Paul Bottein 57da4d3499 Fix object selector not displayed (#26007) 2025-07-01 15:02:13 +02:00
Paul Bottein 6e84fee791 Do not display quality scale for custom integrations (#26006) 2025-07-01 15:02:12 +02:00
Paul Bottein 2e223e637b Improve device row in integration page (#26005)
Improve device row in config entry page
2025-07-01 15:02:11 +02:00
Paul Bottein 3e45821fd0 Allow to re-order floors in areas dashboard (#26002)
* Allow to re-order floors in areas dashboard

* Move drag handle to right

* Improve typings

* Only show drag handle if there is at least 2 floors
2025-07-01 15:02:10 +02:00
Simon LamonandPaul Bottein b16087d5b5 Fix fullscreen yaml editor (transparency background) (#25989)
Fix fullscreen editor (transparency background)
2025-07-01 15:02:10 +02:00
Norbert RittelandPaul Bottein 6300bfb200 Fix grammar of Light, Sensor and Tile card descriptions (#25988)
* Fix grammar of Light, Sensor and Entity card descriptions

* Capitalize "Tile card" as a name

* Apply same change to Entity badge description
2025-07-01 15:02:09 +02:00
Simon LamonandPaul Bottein 05a9f69c9e Pass area control service calls through hass (#25986)
Connection logging
2025-07-01 15:02:08 +02:00
Norbert RittelandPaul Bottein e306e29d95 Fix sentence-casing, spelling and grammar issues (#25981)
* Fix sentence-casing, spelling and grammar issues

* Add "IP information" to the list

* More sentence-casing issues
2025-07-01 15:02:07 +02:00
Norbert RittelandPaul Bottein 619974ffdb Dev Tools: Remove excessive space from "Input date times" (#25973)
Remove excessive space from "input date times"
2025-07-01 15:02:06 +02:00
Paul Bottein 6f753c4909 Use entity format state if only one entity for that domain in the area card (#25964)
Use entity format state if only one entity is area card
2025-07-01 15:02:05 +02:00
Paul BotteinandGitHub a0a2b5f065 20250627.0 (#25971) 2025-06-27 13:51:57 +02:00
Paul Bottein 5430325127 Bumped version to 20250627.0 2025-06-27 13:50:14 +02:00
Paul Bottein 56d3cf7f1e Use areas dashboard name in the top bar (#25969) 2025-06-27 13:49:10 +02:00
Paul Bottein b39e9c38b9 Bump vaadin to 24.7.9 (#25963) 2025-06-27 13:49:09 +02:00
Bram KragtenandPaul Bottein c065efc52f Disable fullscreen editor for editors that are already fullscreen (#25959)
* Disabled fullscreen editor for editors that are already fullscreen

* Update ha-code-editor.ts
2025-06-27 13:49:08 +02:00
Paul Bottein caaec7d34d Fix expand icon for entries and sub entries (#25955) 2025-06-27 13:49:07 +02:00
Bram Kragten 76509d8bd4 Bumped version to 20250626.0 2025-06-26 16:44:40 +02:00
Paul BotteinandBram Kragten 11fcab87d4 Revert vaadin to 24.7.7 (#25953) 2025-06-26 16:44:05 +02:00
Paul BotteinandBram Kragten bfa0b8c0fc Don't limit combo-box dropdown size (#25952) 2025-06-26 16:44:04 +02:00
Bram Kragten f54312a7bc Load title when fetching flow (#25951) 2025-06-26 16:44:03 +02:00
Bram Kragten 8ff3f7733f Fix filtering on device in entities config panel (#25948)
* Fix filtering on device in entities config panel

* fix

* set filters from url twice to catch race...
2025-06-26 16:44:02 +02:00
Paul BotteinandBram Kragten def8e8a713 Disable escape key to close edit card dialog (#25947) 2025-06-26 16:44:01 +02:00
Bram Kragten e675283fcc Add label to version number (#25942)
Add label
2025-06-26 16:44:00 +02:00
Bram Kragten 1900cce7f9 make sure header is always shown in data entry flow (#25941) 2025-06-26 16:44:00 +02:00
Bram Kragten 8e2c943dff add version number to integration page (#25940)
* add version number to integration page

* Update ha-config-integration-page.ts
2025-06-26 16:43:59 +02:00
Bram Kragten 8c5beb724f Use different icon for services (#25939) 2025-06-26 16:43:58 +02:00
Paul BotteinandBram Kragten b9fb981fb2 Remove alert classes and only use slot sensors for areas dashboard (#25937)
* Remove alert classes and only used slot sensors for areas dashboard

* Rename group to sensors

* Rename group to sensors
2025-06-26 16:43:57 +02:00
Paul BotteinandBram Kragten 3456aa96e8 Better handle case when no floors in areas dashboard (#25933) 2025-06-26 16:43:56 +02:00
Eric SternandBram Kragten e88d9a1ffb Fix logbook stream subscription (#25927) 2025-06-26 16:43:56 +02:00
Paulus SchoutsenandBram Kragten 0b488e1ffd Fix wrapping of add subentry buttons (#25925) 2025-06-26 16:43:55 +02:00
Paulus SchoutsenandBram Kragten 47aea824aa Make the config entry row section wider on mobile (#25924) 2025-06-26 16:43:54 +02:00
Bram Kragten 570c63c50a Prevent overflow of ripple on device row on integration page (#25922) 2025-06-26 16:43:53 +02:00
Bram Kragten d9a3a27245 Dont show internal quality scale (#25921)
dont show internal quality scale
2025-06-26 16:43:52 +02:00
Bram Kragten 3d1a3e2335 Only show own devices when there are devices... (#25920)
only show own devices when there are devices...
2025-06-26 16:43:51 +02:00
Bram Kragten 42815c4d5e Update confirm disable messages (#25919) 2025-06-26 16:43:50 +02:00
889 changed files with 37638 additions and 14760 deletions
+1 -1
View File
@@ -11,7 +11,7 @@ body:
**Please do not report issues for custom cards.**
[fr]: https://github.com/home-assistant/frontend/discussions
[fr]: https://github.com/orgs/home-assistant/discussions
[releases]: https://github.com/home-assistant/home-assistant/releases
- type: checkboxes
attributes:
+1 -1
View File
@@ -1,7 +1,7 @@
blank_issues_enabled: false
contact_links:
- name: Request a feature for the UI / Dashboards
url: https://github.com/home-assistant/frontend/discussions/category_choices
url: https://github.com/orgs/home-assistant/discussions
about: Request a new feature for the Home Assistant frontend.
- name: Report a bug that is NOT related to the UI / Dashboards
url: https://github.com/home-assistant/core/issues
+53
View File
@@ -0,0 +1,53 @@
name: Task
description: For staff only - Create a task
type: Task
body:
- type: markdown
attributes:
value: |
## ⚠️ RESTRICTED ACCESS
**This form is restricted to Open Home Foundation staff and authorized contributors only.**
If you are a community member wanting to contribute, please:
- For bug reports: Use the [bug report form](https://github.com/home-assistant/frontend/issues/new?template=bug_report.yml)
- For feature requests: Submit to [Feature Requests](https://github.com/orgs/home-assistant/discussions)
---
### For authorized contributors
Use this form to create tasks for development work, improvements, or other actionable items that need to be tracked.
- type: textarea
id: description
attributes:
label: Description
description: |
Provide a clear and detailed description of the task that needs to be accomplished.
Be specific about what needs to be done, why it's important, and any constraints or requirements.
placeholder: |
Describe the task, including:
- What needs to be done
- Why this task is needed
- Expected outcome
- Any constraints or requirements
validations:
required: true
- type: textarea
id: additional_context
attributes:
label: Additional context
description: |
Any additional information, links, research, or context that would be helpful.
Include links to related issues, research, prototypes, roadmap opportunities etc.
placeholder: |
- Roadmap opportunity: [link]
- Epic: [link]
- Feature request: [link]
- Technical design documents: [link]
- Prototype/mockup: [link]
- Dependencies: [links]
validations:
required: false
+5 -1
View File
@@ -310,7 +310,11 @@ export class DialogMyFeature
.heading=${createCloseHeading(this.hass, this._params.title)}
>
<!-- Dialog content -->
<ha-button @click=${this.closeDialog} slot="secondaryAction">
<ha-button
appearance="plain"
@click=${this.closeDialog}
slot="secondaryAction"
>
${this.hass.localize("ui.common.cancel")}
</ha-button>
<ha-button @click=${this._submit} slot="primaryAction">
+6 -6
View File
@@ -21,12 +21,12 @@ jobs:
url: ${{ steps.deploy.outputs.NETLIFY_LIVE_URL || steps.deploy.outputs.NETLIFY_URL }}
steps:
- name: Check out files from GitHub
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
ref: dev
- name: Setup Node
uses: actions/setup-node@v4.4.0
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with:
node-version-file: ".nvmrc"
cache: yarn
@@ -42,7 +42,7 @@ jobs:
- name: Deploy to Netlify
id: deploy
run: |
npx -y netlify-cli deploy --dir=cast/dist --alias dev
npx -y netlify-cli@23.7.3 deploy --dir=cast/dist --alias dev
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_CAST_SITE_ID }}
@@ -56,12 +56,12 @@ jobs:
url: ${{ steps.deploy.outputs.NETLIFY_LIVE_URL || steps.deploy.outputs.NETLIFY_URL }}
steps:
- name: Check out files from GitHub
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
ref: master
- name: Setup Node
uses: actions/setup-node@v4.4.0
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with:
node-version-file: ".nvmrc"
cache: yarn
@@ -77,7 +77,7 @@ jobs:
- name: Deploy to Netlify
id: deploy
run: |
npx -y netlify-cli deploy --dir=cast/dist --prod
npx -y netlify-cli@23.7.3 deploy --dir=cast/dist --prod
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_CAST_SITE_ID }}
+11 -11
View File
@@ -24,9 +24,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out files from GitHub
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Setup Node
uses: actions/setup-node@v4.4.0
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with:
node-version-file: ".nvmrc"
cache: yarn
@@ -37,7 +37,7 @@ jobs:
- name: Build resources
run: ./node_modules/.bin/gulp gen-icons-json build-translations build-locale-data gather-gallery-pages
- name: Setup lint cache
uses: actions/cache@v4.2.3
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: |
node_modules/.cache/prettier
@@ -58,9 +58,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out files from GitHub
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Setup Node
uses: actions/setup-node@v4.4.0
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with:
node-version-file: ".nvmrc"
cache: yarn
@@ -76,9 +76,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out files from GitHub
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Setup Node
uses: actions/setup-node@v4.4.0
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with:
node-version-file: ".nvmrc"
cache: yarn
@@ -89,7 +89,7 @@ jobs:
env:
IS_TEST: "true"
- name: Upload bundle stats
uses: actions/[email protected]
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: frontend-bundle-stats
path: build/stats/*.json
@@ -100,9 +100,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out files from GitHub
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Setup Node
uses: actions/setup-node@v4.4.0
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with:
node-version-file: ".nvmrc"
cache: yarn
@@ -113,7 +113,7 @@ jobs:
env:
IS_TEST: "true"
- name: Upload bundle stats
uses: actions/[email protected]
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: supervisor-bundle-stats
path: build/stats/*.json
+4 -4
View File
@@ -23,7 +23,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
@@ -36,14 +36,14 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
uses: github/codeql-action/init@3599b3baa15b485a2e49ef411a7a4bb2452e7f93 # v3.30.5
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@v3
uses: github/codeql-action/autobuild@3599b3baa15b485a2e49ef411a7a4bb2452e7f93 # v3.30.5
# ️ 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@v3
uses: github/codeql-action/analyze@3599b3baa15b485a2e49ef411a7a4bb2452e7f93 # v3.30.5
+6 -6
View File
@@ -22,12 +22,12 @@ jobs:
url: ${{ steps.deploy.outputs.NETLIFY_LIVE_URL || steps.deploy.outputs.NETLIFY_URL }}
steps:
- name: Check out files from GitHub
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
ref: dev
- name: Setup Node
uses: actions/setup-node@v4.4.0
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with:
node-version-file: ".nvmrc"
cache: yarn
@@ -43,7 +43,7 @@ jobs:
- name: Deploy to Netlify
id: deploy
run: |
npx -y netlify-cli deploy --dir=demo/dist --prod
npx -y netlify-cli@23.7.3 deploy --dir=demo/dist --prod
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_DEMO_DEV_SITE_ID }}
@@ -57,12 +57,12 @@ jobs:
url: ${{ steps.deploy.outputs.NETLIFY_LIVE_URL || steps.deploy.outputs.NETLIFY_URL }}
steps:
- name: Check out files from GitHub
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
ref: master
- name: Setup Node
uses: actions/setup-node@v4.4.0
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with:
node-version-file: ".nvmrc"
cache: yarn
@@ -78,7 +78,7 @@ jobs:
- name: Deploy to Netlify
id: deploy
run: |
npx -y netlify-cli deploy --dir=demo/dist --prod
npx -y netlify-cli@23.7.3 deploy --dir=demo/dist --prod
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_DEMO_SITE_ID }}
+3 -3
View File
@@ -16,10 +16,10 @@ jobs:
url: ${{ steps.deploy.outputs.NETLIFY_LIVE_URL || steps.deploy.outputs.NETLIFY_URL }}
steps:
- name: Check out files from GitHub
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Setup Node
uses: actions/setup-node@v4.4.0
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with:
node-version-file: ".nvmrc"
cache: yarn
@@ -35,7 +35,7 @@ jobs:
- name: Deploy to Netlify
id: deploy
run: |
npx -y netlify-cli deploy --dir=gallery/dist --prod
npx -y netlify-cli@23.7.3 deploy --dir=gallery/dist --prod
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_GALLERY_SITE_ID }}
+3 -3
View File
@@ -21,10 +21,10 @@ jobs:
if: github.repository == 'home-assistant/frontend' && contains(github.event.pull_request.labels.*.name, 'needs design preview')
steps:
- name: Check out files from GitHub
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Setup Node
uses: actions/setup-node@v4.4.0
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with:
node-version-file: ".nvmrc"
cache: yarn
@@ -40,7 +40,7 @@ jobs:
- name: Deploy preview to Netlify
id: deploy
run: |
npx -y netlify-cli deploy --dir=gallery/dist --alias "deploy-preview-${{ github.event.number }}" \
npx -y netlify-cli@23.7.3 deploy --dir=gallery/dist --alias "deploy-preview-${{ github.event.number }}" \
--json > deploy_output.json
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
+1 -1
View File
@@ -10,6 +10,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Apply labels
uses: actions/labeler@v5.0.0
uses: actions/labeler@634933edcd8ababfe52f92936142cc22ac488b1b # v6.0.1
with:
sync-labels: true
+1 -1
View File
@@ -9,7 +9,7 @@ jobs:
lock:
runs-on: ubuntu-latest
steps:
- uses: dessant/[email protected]
- uses: dessant/lock-threads@1bf7ec25051fe7c00bdd17e6a7cf3d7bfb7dc771 # v5.0.1
with:
github-token: ${{ github.token }}
process-only: "issues, prs"
+5 -5
View File
@@ -20,15 +20,15 @@ jobs:
contents: write
steps:
- name: Checkout the repository
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Set up Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@v5
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Setup Node
uses: actions/setup-node@v4.4.0
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with:
node-version-file: ".nvmrc"
cache: yarn
@@ -57,14 +57,14 @@ jobs:
run: tar -czvf translations.tar.gz translations
- name: Upload build artifacts
uses: actions/[email protected]
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: wheels
path: dist/home_assistant_frontend*.whl
if-no-files-found: error
- name: Upload translations
uses: actions/[email protected]
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: translations
path: translations.tar.gz
+1 -1
View File
@@ -17,7 +17,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Send bundle stats and build information to RelativeCI
uses: relative-ci/[email protected].0
uses: relative-ci/agent-action@1707825cbfcc7452b2913d273414705415ae64d4 # v3.0.1
with:
key: ${{ secrets[format('RELATIVE_CI_KEY_{0}_{1}', matrix.bundle, matrix.build)] }}
token: ${{ github.token }}
+1 -1
View File
@@ -18,6 +18,6 @@ jobs:
pull-requests: read
runs-on: ubuntu-latest
steps:
- uses: release-drafter/[email protected]
- uses: release-drafter/release-drafter@b1476f6e6eb133afa41ed8589daba6dc69b4d3f5 # v6.1.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+12 -11
View File
@@ -23,10 +23,10 @@ jobs:
contents: write # Required to upload release assets
steps:
- name: Checkout the repository
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Set up Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@v5
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
with:
python-version: ${{ env.PYTHON_VERSION }}
@@ -34,7 +34,7 @@ jobs:
uses: home-assistant/actions/helpers/verify-version@master
- name: Setup Node
uses: actions/setup-node@v4.4.0
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with:
node-version-file: ".nvmrc"
cache: yarn
@@ -55,7 +55,7 @@ jobs:
script/release
- name: Upload release assets
uses: softprops/[email protected].2
uses: softprops/action-gh-release@6cbd405e2c4e67a21c47fa9e383d020e4e28b836 # v2.3.3
with:
files: |
dist/*.whl
@@ -73,8 +73,9 @@ jobs:
version=$(echo "${{ github.ref }}" | awk -F"/" '{print $NF}' )
echo "home-assistant-frontend==$version" > ./requirements.txt
# home-assistant/wheels doesn't support SHA pinning
- name: Build wheels
uses: home-assistant/[email protected]3.0
uses: home-assistant/[email protected]9.1
with:
abi: cp313
tag: musllinux_1_2
@@ -90,9 +91,9 @@ jobs:
contents: write # Required to upload release assets
steps:
- name: Checkout the repository
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Setup Node
uses: actions/setup-node@v4.4.0
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with:
node-version-file: ".nvmrc"
cache: yarn
@@ -107,7 +108,7 @@ jobs:
- name: Tar folder
run: tar -czf landing-page/home_assistant_frontend_landingpage-${{ github.event.release.tag_name }}.tar.gz -C landing-page/dist .
- name: Upload release asset
uses: softprops/[email protected].2
uses: softprops/action-gh-release@6cbd405e2c4e67a21c47fa9e383d020e4e28b836 # v2.3.3
with:
files: landing-page/home_assistant_frontend_landingpage-${{ github.event.release.tag_name }}.tar.gz
@@ -119,9 +120,9 @@ jobs:
contents: write # Required to upload release assets
steps:
- name: Checkout the repository
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Setup Node
uses: actions/setup-node@v4.4.0
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with:
node-version-file: ".nvmrc"
cache: yarn
@@ -136,6 +137,6 @@ jobs:
- name: Tar folder
run: tar -czf hassio/home_assistant_frontend_supervisor-${{ github.event.release.tag_name }}.tar.gz -C hassio/build .
- name: Upload release asset
uses: softprops/[email protected].2
uses: softprops/action-gh-release@6cbd405e2c4e67a21c47fa9e383d020e4e28b836 # v2.3.3
with:
files: hassio/home_assistant_frontend_supervisor-${{ github.event.release.tag_name }}.tar.gz
@@ -0,0 +1,58 @@
name: Restrict task creation
# yamllint disable-line rule:truthy
on:
issues:
types: [opened]
jobs:
check-authorization:
runs-on: ubuntu-latest
# Only run if this is a Task issue type (from the issue form)
if: github.event.issue.type.name == 'Task'
steps:
- name: Check if user is authorized
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
with:
script: |
const issueAuthor = context.payload.issue.user.login;
// Check if user is an organization member
try {
await github.rest.orgs.checkMembershipForUser({
org: 'home-assistant',
username: issueAuthor
});
console.log(`✅ ${issueAuthor} is an organization member`);
return; // Authorized
} catch (error) {
console.log(`❌ ${issueAuthor} is not authorized to create Task issues`);
}
// Close the issue with a comment
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: `Hi @${issueAuthor}, thank you for your contribution!\n\n` +
`Task issues are restricted to Open Home Foundation staff and authorized contributors.\n\n` +
`If you would like to:\n` +
`- Report a bug: Please use the [bug report form](https://github.com/home-assistant/frontend/issues/new?template=bug_report.yml)\n` +
`- Request a feature: Please submit to [Feature Requests](https://github.com/orgs/home-assistant/discussions)\n\n` +
`If you believe you should have access to create Task issues, please contact the maintainers.`
});
await github.rest.issues.update({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
state: 'closed'
});
// Add a label to indicate this was auto-closed
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
labels: ['auto-closed']
});
+1 -1
View File
@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: 90 days stale policy
uses: actions/stale@v9.1.0
uses: actions/stale@3a9db7e6a41a89f618792c92c0e97cc736e1b13f # v10.0.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 90
+2 -1
View File
@@ -1,6 +1,7 @@
name: Translations
on:
workflow_dispatch:
push:
branches:
- dev
@@ -13,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Upload Translations
run: |
+1 -1
View File
@@ -1 +1 @@
lts/iron
22.20.0
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -6,4 +6,4 @@ enableGlobalCache: false
nodeLinker: node-modules
yarnPath: .yarn/releases/yarn-4.9.2.cjs
yarnPath: .yarn/releases/yarn-4.10.3.cjs
+8
View File
@@ -0,0 +1,8 @@
# People marked here will be automatically requested for a review
# when the code that they own is touched.
# https://github.com/blog/2392-introducing-code-owners
# https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
# Part of the frontend that mobile developper should review
src/external_app/ @bgoncal @TimoPtr
test/external_app/ @bgoncal @TimoPtr
+1 -1
View File
@@ -14,5 +14,5 @@
"name": "Home Assistant Cast",
"short_name": "HA Cast",
"start_url": "/?homescreen=1",
"theme_color": "#03A9F4"
"theme_color": "#009ac7"
}
+28 -20
View File
@@ -1,5 +1,3 @@
import "@material/mwc-button/mwc-button";
import type { ActionDetail } from "@material/mwc-list/mwc-list";
import { mdiCast, mdiCastConnected, mdiViewDashboard } from "@mdi/js";
import type { Auth, Connection } from "home-assistant-js-websocket";
@@ -20,6 +18,7 @@ import { atLeastVersion } from "../../../../src/common/config/version";
import { toggleAttribute } from "../../../../src/common/dom/toggle_attribute";
import "../../../../src/components/ha-icon";
import "../../../../src/components/ha-list";
import "../../../../src/components/ha-button";
import "../../../../src/components/ha-list-item";
import "../../../../src/components/ha-svg-icon";
import {
@@ -63,12 +62,20 @@ class HcCast extends LitElement {
<p class="question action-item">
Stay logged in?
<span>
<mwc-button @click=${this._handleSaveTokens}>
<ha-button
appearance="plain"
size="small"
@click=${this._handleSaveTokens}
>
YES
</mwc-button>
<mwc-button @click=${this._handleSkipSaveTokens}>
</ha-button>
<ha-button
appearance="plain"
size="small"
@click=${this._handleSkipSaveTokens}
>
NO
</mwc-button>
</ha-button>
</span>
</p>
`
@@ -78,10 +85,10 @@ class HcCast extends LitElement {
: !this.castManager.status
? html`
<p class="center-item">
<mwc-button raised @click=${this._handleLaunch}>
<ha-svg-icon .path=${mdiCast}></ha-svg-icon>
<ha-button @click=${this._handleLaunch}>
<ha-svg-icon slot="start" .path=${mdiCast}></ha-svg-icon>
Start Casting
</mwc-button>
</ha-button>
</p>
`
: html`
@@ -121,14 +128,22 @@ class HcCast extends LitElement {
<div class="card-actions">
${this.castManager.status
? html`
<mwc-button @click=${this._handleLaunch}>
<ha-svg-icon .path=${mdiCastConnected}></ha-svg-icon>
<ha-button appearance="plain" @click=${this._handleLaunch}>
<ha-svg-icon
slot="start"
.path=${mdiCastConnected}
></ha-svg-icon>
Manage
</mwc-button>
</ha-button>
`
: ""}
<div class="spacer"></div>
<mwc-button @click=${this._handleLogout}>Log out</mwc-button>
<ha-button
variant="danger"
appearance="plain"
@click=${this._handleLogout}
>Log out</ha-button
>
</div>
</hc-layout>
`;
@@ -245,13 +260,6 @@ class HcCast extends LitElement {
color: var(--secondary-text-color);
}
mwc-button ha-svg-icon {
margin-right: 8px;
margin-inline-end: 8px;
margin-inline-start: initial;
height: 18px;
}
ha-list-item ha-icon,
ha-list-item ha-svg-icon {
padding: 12px;
+14 -12
View File
@@ -1,4 +1,3 @@
import "@material/mwc-button";
import { mdiCastConnected, mdiCast } from "@mdi/js";
import type {
Auth,
@@ -28,6 +27,7 @@ import "../../../../src/layouts/hass-loading-screen";
import { registerServiceWorker } from "../../../../src/util/register-service-worker";
import "./hc-layout";
import "../../../../src/components/ha-textfield";
import "../../../../src/components/ha-button";
const seeFAQ = (qid) => html`
See <a href="./faq.html${qid ? `#${qid}` : ""}">the FAQ</a> for more
@@ -83,11 +83,14 @@ export class HcConnect extends LitElement {
Unable to connect to ${tokens!.hassUrl}.
</div>
<div class="card-actions">
<a href="/">
<mwc-button> Retry </mwc-button>
</a>
<ha-button appearance="plain" href="/">Retry</ha-button>
<div class="spacer"></div>
<mwc-button @click=${this._handleLogout}>Log out</mwc-button>
<ha-button
appearance="plain"
variant="danger"
@click=${this._handleLogout}
>Log out</ha-button
>
</div>
</hc-layout>
`;
@@ -128,16 +131,19 @@ export class HcConnect extends LitElement {
${this.error ? html` <p class="error">${this.error}</p> ` : ""}
</div>
<div class="card-actions">
<mwc-button @click=${this._handleDemo}>
<ha-button appearance="plain" @click=${this._handleDemo}>
Show Demo
<ha-svg-icon
slot="end"
.path=${this.castManager.castState === "CONNECTED"
? mdiCastConnected
: mdiCast}
></ha-svg-icon>
</mwc-button>
</ha-button>
<div class="spacer"></div>
<mwc-button @click=${this._handleConnect}>Authorize</mwc-button>
<ha-button appearance="plain" @click=${this._handleConnect}
>Authorize</ha-button
>
</div>
</hc-layout>
`;
@@ -309,10 +315,6 @@ export class HcConnect extends LitElement {
color: darkred;
}
mwc-button ha-svg-icon {
margin-left: 8px;
}
.spacer {
flex: 1;
}
+2 -2
View File
@@ -75,7 +75,7 @@ export const castDemoEntities: () => Entity[] = () =>
longitude: 4.8903147,
radius: 100,
friendly_name: "Home",
icon: "hass:home",
icon: "mdi:home",
},
},
"input_number.harmonyvolume": {
@@ -88,7 +88,7 @@ export const castDemoEntities: () => Entity[] = () =>
step: 1,
mode: "slider",
friendly_name: "Volume",
icon: "hass:volume-high",
icon: "mdi:volume-high",
},
},
"climate.upstairs": {
+2 -2
View File
@@ -56,7 +56,7 @@ export const castDemoLovelace: () => LovelaceConfig = () => {
type: "weblink",
url: "/lovelace/climate",
name: "Climate controls",
icon: "hass:arrow-right",
icon: "mdi:arrow-right",
},
],
},
@@ -76,7 +76,7 @@ export const castDemoLovelace: () => LovelaceConfig = () => {
type: "weblink",
url: "/lovelace/overview",
name: "Back",
icon: "hass:arrow-left",
icon: "mdi:arrow-left",
},
],
},
+1 -1
View File
@@ -75,5 +75,5 @@
"name": "Home Assistant Demo",
"short_name": "HA Demo",
"start_url": "/?homescreen=1",
"theme_color": "#03A9F4"
"theme_color": "#009ac7"
}
+1 -1
View File
@@ -143,7 +143,7 @@ export const demoEntitiesArsaboo: DemoConfig["entities"] = (localize) =>
state: "on",
attributes: {
friendly_name: "Home Automation",
icon: "hass:home-automation",
icon: "mdi:home-automation",
},
},
"input_boolean.tvtime": {
+1 -1
View File
@@ -4,7 +4,7 @@ export const demoLovelaceArsaboo: DemoConfig["lovelace"] = (localize) => ({
title: "Home Assistant",
views: [
{
icon: "hass:home-assistant",
icon: "mdi:home-assistant",
id: "home",
title: "Home",
cards: [
+1 -1
View File
@@ -1236,7 +1236,7 @@ export const demoLovelaceJimpower: DemoConfig["lovelace"] = () => ({
},
],
path: "security",
icon: "hass:shield-home",
icon: "mdi:shield-home",
name: "Security",
background:
'center / cover no-repeat url("/assets/jimpower/background-15.jpg") fixed',
+8 -5
View File
@@ -89,11 +89,14 @@ export class HADemoCard extends LitElement implements LovelaceCard {
)}
</div>
<div class="actions small-hidden">
<a href="https://www.home-assistant.io" target="_blank">
<ha-button>
${this.hass.localize("ui.panel.page-demo.cards.demo.learn_more")}
</ha-button>
</a>
<ha-button
appearance="plain"
size="small"
href="https://www.home-assistant.io"
target="_blank"
>
${this.hass.localize("ui.panel.page-demo.cards.demo.learn_more")}
</ha-button>
</div>
</ha-card>
`;
+2 -2
View File
@@ -68,7 +68,7 @@
}
#ha-launch-screen .ha-launch-screen-spacer-top {
flex: 1;
margin-top: calc( 2 * max(var(--safe-area-inset-bottom), 48px) + 46px );
margin-top: calc( 2 * max(var(--safe-area-inset-top, 0px), 48px) + 46px );
padding-top: 48px;
}
#ha-launch-screen .ha-launch-screen-spacer-bottom {
@@ -76,7 +76,7 @@
padding-top: 48px;
}
.ohf-logo {
margin: max(var(--safe-area-inset-bottom), 48px) 0;
margin: max(var(--safe-area-inset-bottom, 0px), 48px) 0;
display: flex;
flex-direction: column;
align-items: center;
+7 -13
View File
@@ -1,11 +1,11 @@
import "@material/mwc-button/mwc-button";
import type { Button } from "@material/mwc-button";
import type { TemplateResult } from "lit";
import { html, LitElement, css, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import { applyThemesOnElement } from "../../../src/common/dom/apply_themes_on_element";
import { fireEvent } from "../../../src/common/dom/fire_event";
import "../../../src/components/ha-card";
import "../../../src/components/ha-button";
import type { HaButton } from "../../../src/components/ha-button";
@customElement("demo-black-white-row")
class DemoBlackWhiteRow extends LitElement {
@@ -25,12 +25,9 @@ class DemoBlackWhiteRow extends LitElement {
<slot name="light"></slot>
</div>
<div class="card-actions">
<mwc-button
.disabled=${this.disabled}
@click=${this.handleSubmit}
>
<ha-button .disabled=${this.disabled} @click=${this.handleSubmit}>
Submit
</mwc-button>
</ha-button>
</div>
</ha-card>
</div>
@@ -40,12 +37,9 @@ class DemoBlackWhiteRow extends LitElement {
<slot name="dark"></slot>
</div>
<div class="card-actions">
<mwc-button
.disabled=${this.disabled}
@click=${this.handleSubmit}
>
<ha-button .disabled=${this.disabled} @click=${this.handleSubmit}>
Submit
</mwc-button>
</ha-button>
</div>
</ha-card>
${this.value
@@ -74,7 +68,7 @@ class DemoBlackWhiteRow extends LitElement {
}
handleSubmit(ev) {
const content = (ev.target as Button).closest(".content")!;
const content = (ev.target as HaButton).closest(".content")!;
fireEvent(this, "submitted" as any, {
slot: content.classList.contains("light") ? "light" : "dark",
});
+9 -6
View File
@@ -1,10 +1,11 @@
import { LitElement, css, html } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import "../../../src/components/ha-card";
import "../../../src/dialogs/more-info/more-info-content";
import "../../../src/state-summary/state-card-content";
import "../ha-demo-options";
import type { HomeAssistant } from "../../../src/types";
import { computeShowNewMoreInfo } from "../../../src/dialogs/more-info/const";
@customElement("demo-more-info")
class DemoMoreInfo extends LitElement {
@@ -21,11 +22,13 @@ class DemoMoreInfo extends LitElement {
<div class="root">
<div id="card">
<ha-card>
<state-card-content
.stateObj=${state}
.hass=${this.hass}
in-dialog
></state-card-content>
${!computeShowNewMoreInfo(state)
? html`<state-card-content
.stateObj=${state}
.hass=${this.hass}
in-dialog
></state-card-content>`
: nothing}
<more-info-content
.hass=${this.hass}
+1 -1
View File
@@ -1106,7 +1106,7 @@ export default {
friendly_name: "Philips Hue",
entity_picture: null,
description:
"Press the button on the bridge to register Philips Hue with Home Assistant.\n\n![Description image](/static/images/config_philips_hue.jpg)",
"Press the button on the bridge to register Philips Hue with Home Assistant.",
submit_caption: "I have pressed the button",
},
last_changed: "2018-07-19T10:44:46.515160+00:00",
+12 -2
View File
@@ -17,6 +17,10 @@ export const createMediaPlayerEntities = () => [
new Date().getTime() - 23000
).toISOString(),
volume_level: 0.5,
source_list: ["AirPlay", "Blu-Ray", "TV", "USB", "iPod (USB)"],
source: "AirPlay",
sound_mode_list: ["Movie", "Music", "Game", "Pure Audio"],
sound_mode: "Music",
}),
getEntity("media_player", "music_playing", "playing", {
friendly_name: "Playing The Music",
@@ -24,8 +28,8 @@ export const createMediaPlayerEntities = () => [
media_title: "I Wanna Be A Hippy (Flamman & Abraxas Radio Mix)",
media_artist: "Technohead",
// Pause + Seek + Volume Set + Volume Mute + Previous Track + Next Track + Play Media +
// Select Source + Stop + Clear + Play + Shuffle Set + Browse Media
supported_features: 195135,
// Select Source + Stop + Clear + Play + Shuffle Set + Browse Media + Grouping
supported_features: 784959,
entity_picture: "/images/album_cover.jpg",
media_duration: 300,
media_position: 0,
@@ -34,6 +38,9 @@ export const createMediaPlayerEntities = () => [
new Date().getTime() - 23000
).toISOString(),
volume_level: 0.5,
sound_mode_list: ["Movie", "Music", "Game", "Pure Audio"],
sound_mode: "Music",
group_members: ["media_player.playing", "media_player.stream_playing"],
}),
getEntity("media_player", "stream_playing", "playing", {
friendly_name: "Playing the Stream",
@@ -149,15 +156,18 @@ export const createMediaPlayerEntities = () => [
}),
getEntity("media_player", "receiver_on", "on", {
source_list: ["AirPlay", "Blu-Ray", "TV", "USB", "iPod (USB)"],
sound_mode_list: ["Movie", "Music", "Game", "Pure Audio"],
volume_level: 0.63,
is_volume_muted: false,
source: "TV",
sound_mode: "Movie",
friendly_name: "Receiver (selectable sources)",
// Volume Set + Volume Mute + On + Off + Select Source + Play + Sound Mode
supported_features: 84364,
}),
getEntity("media_player", "receiver_off", "off", {
source_list: ["AirPlay", "Blu-Ray", "TV", "USB", "iPod (USB)"],
sound_mode_list: ["Movie", "Music", "Game", "Pure Audio"],
friendly_name: "Receiver (selectable sources)",
// Volume Set + Volume Mute + On + Off + Select Source + Play + Sound Mode
supported_features: 84364,
@@ -18,7 +18,6 @@ import { HaDeviceAction } from "../../../../src/panels/config/automation/action/
import { HaEventAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-event";
import { HaIfAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-if";
import { HaParallelAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-parallel";
import { HaPlayMediaAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-play_media";
import { HaRepeatAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-repeat";
import { HaSequenceAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-sequence";
import { HaServiceAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-service";
@@ -32,7 +31,6 @@ const SCHEMAS: { name: string; actions: Action[] }[] = [
{ name: "Service", actions: [HaServiceAction.defaultConfig] },
{ name: "Condition", actions: [HaConditionAction.defaultConfig] },
{ name: "Delay", actions: [HaDelayAction.defaultConfig] },
{ name: "Play media", actions: [HaPlayMediaAction.defaultConfig] },
{ name: "Wait", actions: [HaWaitAction.defaultConfig] },
{ name: "WaitForTrigger", actions: [HaWaitForTriggerAction.defaultConfig] },
{ name: "Repeat", actions: [HaRepeatAction.defaultConfig] },
@@ -147,13 +147,13 @@ The `title ` option should not be used without a description.
<ha-alert alert-type="success">
This is a success alert — check it out!
<mwc-button slot="action" label="Undo"></mwc-button>
<ha-button slot="action">Undo</ha-button>
</ha-alert>
```html
<ha-alert alert-type="success">
This is a success alert — check it out!
<mwc-button slot="action" label="Undo"></mwc-button>
<ha-button slot="action">Undo</ha-button>
</ha-alert>
```
+6 -6
View File
@@ -1,10 +1,10 @@
import "@material/mwc-button/mwc-button";
import type { TemplateResult } from "lit";
import { css, html, LitElement } from "lit";
import { customElement } from "lit/decorators";
import { applyThemesOnElement } from "../../../../src/common/dom/apply_themes_on_element";
import "../../../../src/components/ha-alert";
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-button";
import "../../../../src/components/ha-logo-svg";
const alerts: {
@@ -78,13 +78,13 @@ const alerts: {
title: "Error with action",
description: "This is a test error alert with action",
type: "error",
actionSlot: html`<mwc-button slot="action" label="restart"></mwc-button>`,
actionSlot: html`<ha-button size="small" slot="action">restart</ha-button>`,
},
{
title: "Unsaved data",
description: "You have unsaved data",
type: "warning",
actionSlot: html`<mwc-button slot="action" label="save"></mwc-button>`,
actionSlot: html`<ha-button size="small" slot="action">save</ha-button>`,
},
{
title: "Slotted icon",
@@ -108,7 +108,7 @@ const alerts: {
title: "Slotted action",
description: "Alert with slotted action",
type: "info",
actionSlot: html`<mwc-button slot="action" label="action"></mwc-button>`,
actionSlot: html`<ha-button slot="action">action</ha-button>`,
},
{
description: "Dismissable information (RTL)",
@@ -120,7 +120,7 @@ const alerts: {
title: "Error with action",
description: "This is a test error alert with action (RTL)",
type: "error",
actionSlot: html`<mwc-button slot="action" label="restart"></mwc-button>`,
actionSlot: html`<ha-button slot="action">restart</ha-button>`,
rtl: true,
},
{
@@ -211,7 +211,7 @@ export class DemoHaAlert extends LitElement {
max-height: 24px;
width: 24px;
}
mwc-button {
ha-button {
--mdc-theme-primary: var(--primary-text-color);
}
`;
+1 -1
View File
@@ -117,7 +117,7 @@ export class DemoHaBadge extends LitElement {
}
.card-content {
display: flex;
gap: 24px;
gap: var(--ha-space-6);
}
`;
}
@@ -0,0 +1,67 @@
---
title: Button
---
<style>
.wrapper {
display: flex;
gap: 24px;
}
</style>
# Button `<ha-button>`
## Implementation
### Example Usage
<div class="wrapper">
<ha-button>
simple button
</ha-button>
<ha-button appearance="plain">
plain button
</ha-button>
<ha-button appearance="filled">
filled button
</ha-button>
<ha-button size="small">
small
</ha-button>
</div>
```html
<ha-button> simple button </ha-button>
<ha-button size="small"> small </ha-button>
```
### API
This component is based on the webawesome button component.
Check the [webawesome documentation](https://webawesome.com/docs/components/button/) for more details.
**Slots**
- default slot: Label of the button
` - no default
- `start`: The prefix container (usually for icons).
` - no default
- `end`: The suffix container (usually for icons).
` - no default
**Properties/Attributes**
| Name | Type | Default | Description |
| ---------- | ---------------------------------------------- | -------- | --------------------------------------------------------------------------------- |
| appearance | "accent"/"filled"/"plain" | "accent" | Sets the button appearance. |
| variants | "brand"/"danger"/"neutral"/"warning"/"success" | "brand" | Sets the button color variant. "brand" is default. |
| size | "small"/"medium" | "medium" | Sets the button size. |
| loading | Boolean | false | Shows a loading indicator instead of the buttons label and disable buttons click. |
| disabled | Boolean | false | Disables the button and prevents user interaction. |
**CSS Custom Properties**
- `--ha-button-height` - Height of the button.
- `--ha-button-border-radius` - Border radius of the button. Defaults to `var(--ha-border-radius-pill)`.
+171
View File
@@ -0,0 +1,171 @@
import { mdiHome } from "@mdi/js";
import type { TemplateResult } from "lit";
import { css, html, LitElement } from "lit";
import { customElement } from "lit/decorators";
import { applyThemesOnElement } from "../../../../src/common/dom/apply_themes_on_element";
import { titleCase } from "../../../../src/common/string/title-case";
import "../../../../src/components/ha-button";
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-svg-icon";
import { mdiHomeAssistant } from "../../../../src/resources/home-assistant-logo-svg";
const appearances = ["accent", "filled", "plain"];
const variants = ["brand", "danger", "neutral", "warning", "success"];
@customElement("demo-components-ha-button")
export class DemoHaButton extends LitElement {
protected render(): TemplateResult {
return html`
${["light", "dark"].map(
(mode) => html`
<div class=${mode}>
<ha-card header="ha-button in ${mode}">
<div class="card-content">
${variants.map(
(variant) => html`
<div>
${appearances.map(
(appearance) => html`
<ha-button
.appearance=${appearance}
.variant=${variant}
>
<ha-svg-icon
.path=${mdiHomeAssistant}
slot="start"
></ha-svg-icon>
${titleCase(`${variant} ${appearance}`)}
<ha-svg-icon
.path=${mdiHome}
slot="end"
></ha-svg-icon>
</ha-button>
`
)}
</div>
<div>
${appearances.map(
(appearance) => html`
<ha-button
.appearance=${appearance}
.variant=${variant}
size="small"
>
${titleCase(`${variant} ${appearance}`)}
</ha-button>
`
)}
</div>
<div>
${appearances.map(
(appearance) => html`
<ha-button
.appearance=${appearance}
.variant=${variant}
loading
>
<ha-svg-icon
.path=${mdiHomeAssistant}
slot="start"
></ha-svg-icon>
${titleCase(`${variant} ${appearance}`)}
<ha-svg-icon
.path=${mdiHome}
slot="end"
></ha-svg-icon>
</ha-button>
`
)}
</div>
`
)}
${variants.map(
(variant) => html`
<div>
${appearances.map(
(appearance) => html`
<ha-button
.variant=${variant}
.appearance=${appearance}
disabled
>
${titleCase(`${appearance}`)}
</ha-button>
`
)}
</div>
<div>
${appearances.map(
(appearance) => html`
<ha-button
.variant=${variant}
.appearance=${appearance}
size="small"
disabled
>
${titleCase(`${appearance}`)}
</ha-button>
`
)}
</div>
`
)}
</div>
</ha-card>
</div>
`
)}
`;
}
firstUpdated(changedProps) {
super.firstUpdated(changedProps);
applyThemesOnElement(
this.shadowRoot!.querySelector(".dark"),
{
default_theme: "default",
default_dark_theme: "default",
themes: {},
darkMode: true,
theme: "default",
},
undefined,
undefined,
true
);
}
static styles = css`
:host {
display: flex;
justify-content: center;
}
.dark,
.light {
display: block;
background-color: var(--primary-background-color);
padding: 0 50px;
}
.button {
padding: unset;
}
ha-card {
margin: 24px auto;
}
.card-content {
display: flex;
flex-direction: column;
gap: var(--ha-space-6);
}
.card-content div {
display: flex;
gap: var(--ha-space-2);
}
`;
}
declare global {
interface HTMLElementTagNameMap {
"demo-components-ha-button": DemoHaButton;
}
}
@@ -135,7 +135,7 @@ export class DemoHaControlSelect extends LitElement {
.options=${options}
class=${ifDefined(config.class)}
@value-changed=${this.handleValueChanged}
aria-labelledby=${id}
.label=${label}
?disabled=${config.disabled}
>
</ha-control-select>
@@ -156,7 +156,7 @@ export class DemoHaControlSelect extends LitElement {
vertical
class=${ifDefined(config.class)}
@value-changed=${this.handleValueChanged}
aria-labelledby=${id}
.label=${label}
?disabled=${config.disabled}
>
</ha-control-select>
@@ -97,7 +97,7 @@ export class DemoHaBarSlider extends LitElement {
class=${ifDefined(config.class)}
@value-changed=${this.handleValueChanged}
@slider-moved=${this.handleSliderMoved}
aria-labelledby=${id}
.label=${label}
.unit=${config.unit}
>
</ha-control-slider>
@@ -119,7 +119,7 @@ export class DemoHaBarSlider extends LitElement {
class=${ifDefined(config.class)}
@value-changed=${this.handleValueChanged}
@slider-moved=${this.handleSliderMoved}
aria-label=${label}
.label=${label}
.unit=${config.unit}
>
</ha-control-slider>
@@ -63,7 +63,7 @@ export class DemoHaControlSwitch extends LitElement {
@change=${this.handleValueChanged}
.pathOn=${mdiLightbulb}
.pathOff=${mdiLightbulbOff}
aria-labelledby=${id}
.label=${label}
?disabled=${config.disabled}
?reversed=${config.reversed}
>
@@ -84,7 +84,7 @@ export class DemoHaControlSwitch extends LitElement {
vertical
class=${ifDefined(config.class)}
@change=${this.handleValueChanged}
aria-label=${label}
.label=${label}
.pathOn=${mdiGarageOpen}
.pathOff=${mdiGarage}
?disabled=${config.disabled}
-1
View File
@@ -1,5 +1,4 @@
/* eslint-disable lit/no-template-arrow */
import "@material/mwc-button";
import type { TemplateResult } from "lit";
import { html, LitElement } from "lit";
import { customElement, state } from "lit/decorators";
@@ -0,0 +1,37 @@
---
title: Marquee Text
---
# Marquee Text `<ha-marquee-text>`
Marquee text component scrolls text horizontally if it overflows its container. It supports pausing on hover and customizable speed and pause duration.
## Implementation
### Example Usage
<ha-marquee-text style="width: 200px;">
This is a long text that will scroll horizontally if it overflows the container.
</ha-marquee-text>
```html
<ha-marquee-text style="width: 200px;">
This is a long text that will scroll horizontally if it overflows the
container.
</ha-marquee-text>
```
### API
**Slots**
- default slot: The text content to be displayed and scrolled.
- no default
**Properties/Attributes**
| Name | Type | Default | Description |
| -------------- | ------- | ------- | ---------------------------------------------------------------------------- |
| speed | number | `15` | The speed of the scrolling animation. Higher values result in faster scroll. |
| pause-on-hover | boolean | `true` | Whether to pause the scrolling animation when |
| pause-duration | number | `1000` | The delay in milliseconds before the scrolling animation starts/restarts. |
@@ -0,0 +1,25 @@
import { css, LitElement } from "lit";
import { customElement } from "lit/decorators";
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-marquee-text";
@customElement("demo-components-ha-marquee-text")
export class DemoHaMarqueeText extends LitElement {
static styles = css`
ha-card {
max-width: 600px;
margin: 24px auto;
}
.card-content {
display: flex;
flex-direction: column;
align-items: flex-start;
}
`;
}
declare global {
interface HTMLElementTagNameMap {
"demo-components-ha-marquee-text": DemoHaMarqueeText;
}
}
@@ -0,0 +1,32 @@
---
title: Progress Button
---
<style>
.wrapper {
display: flex;
gap: 24px;
}
</style>
# Progress Button `<ha-progress-button>`
### API
This component is a wrapper around `<ha-button>` that adds support for showing progress
**Slots**
- default slot: Label of the button
` - no default
**Properties/Attributes**
| Name | Type | Default | Description |
| ---------- | ---------------------------------------------- | --------- | -------------------------------------------------- |
| label | string | "accent" | Sets the button label. |
| disabled | Boolean | false | Disables the button if true. |
| progress | Boolean | false | Shows a progress indicator on the button. |
| appearance | "accent"/"filled"/"plain" | "accent" | Sets the button appearance. |
| variants | "brand"/"danger"/"neutral"/"warning"/"success" | "brand" | Sets the button color variant. "brand" is default. |
| iconPath | string | undefined | Sets the icon path for the button. |
@@ -0,0 +1,139 @@
import type { TemplateResult } from "lit";
import { css, html, LitElement } from "lit";
import { customElement } from "lit/decorators";
import { applyThemesOnElement } from "../../../../src/common/dom/apply_themes_on_element";
import "../../../../src/components/buttons/ha-progress-button";
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-svg-icon";
import { mdiHomeAssistant } from "../../../../src/resources/home-assistant-logo-svg";
@customElement("demo-components-ha-progress-button")
export class DemoHaProgressButton extends LitElement {
protected render(): TemplateResult {
return html`
${["light", "dark"].map(
(mode) => html`
<div class=${mode}>
<ha-card header="ha-progress-button in ${mode}">
<div class="card-content">
<ha-progress-button @click=${this._clickedSuccess}>
Success
</ha-progress-button>
<ha-progress-button @click=${this._clickedFail}>
Fail
</ha-progress-button>
<ha-progress-button size="small" @click=${this._clickedSuccess}>
small
</ha-progress-button>
<ha-progress-button
appearance="filled"
@click=${this._clickedSuccess}
>
filled
</ha-progress-button>
<ha-progress-button
appearance="plain"
@click=${this._clickedSuccess}
>
plain
</ha-progress-button>
<ha-progress-button
variant="warning"
@click=${this._clickedSuccess}
>
warning
</ha-progress-button>
<ha-progress-button
variant="neutral"
@click=${this._clickedSuccess}
label="with icon"
.iconPath=${mdiHomeAssistant}
>
With Icon
</ha-progress-button>
<ha-progress-button progress @click=${this._clickedSuccess}>
progress
</ha-progress-button>
<ha-progress-button disabled @click=${this._clickedSuccess}>
disabled
</ha-progress-button>
</div>
</ha-card>
</div>
`
)}
`;
}
firstUpdated(changedProps) {
super.firstUpdated(changedProps);
applyThemesOnElement(
this.shadowRoot!.querySelector(".dark"),
{
default_theme: "default",
default_dark_theme: "default",
themes: {},
darkMode: true,
theme: "default",
},
undefined,
undefined,
true
);
}
private async _clickedSuccess(ev: CustomEvent): Promise<void> {
console.log("Clicked success");
const button = ev.currentTarget as any;
button.progress = true;
setTimeout(() => {
button.actionSuccess();
button.progress = false;
}, 1000);
}
private async _clickedFail(ev: CustomEvent): Promise<void> {
const button = ev.currentTarget as any;
button.progress = true;
setTimeout(() => {
button.actionError();
button.progress = false;
}, 1000);
}
static styles = css`
:host {
display: flex;
justify-content: center;
}
.dark,
.light {
display: block;
background-color: var(--primary-background-color);
padding: 0 50px;
}
.button {
padding: unset;
}
ha-card {
margin: 24px auto;
}
.card-content {
display: flex;
flex-direction: column;
gap: var(--ha-space-6);
}
.card-content div {
display: flex;
gap: var(--ha-space-2);
}
`;
}
declare global {
interface HTMLElementTagNameMap {
"demo-components-ha-progress-button": DemoHaProgressButton;
}
}
@@ -1,4 +1,3 @@
import "@material/mwc-button";
import type { TemplateResult } from "lit";
import { css, html, LitElement } from "lit";
import { customElement, state } from "lit/decorators";
@@ -0,0 +1,36 @@
---
title: Slider
subtitle: A slider component for selecting a value from a range.
---
<style>
.wrapper {
display: flex;
gap: 24px;
}
</style>
# Slider `<ha-slider>`
## Implementation
### Example Usage
<div class="wrapper">
<ha-slider size="small" with-markers min="0" max="8" value="4"></ha-slider>
<ha-slider size="medium"></ha-slider>
</div>
```html
<ha-slider size="small" with-markers min="0" max="8" value="4"></ha-slider>
<ha-slider size="medium"></ha-slider>
```
### API
This component is based on the webawesome slider component.
Check the [webawesome documentation](https://webawesome.com/docs/components/slider/) for more details.
**CSS Custom Properties**
- `--ha-slider-track-size` - Height of the slider track. Defaults to `4px`.
+100
View File
@@ -0,0 +1,100 @@
import type { TemplateResult } from "lit";
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
import { applyThemesOnElement } from "../../../../src/common/dom/apply_themes_on_element";
import "../../../../src/components/ha-bar";
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-spinner";
import "../../../../src/components/ha-slider";
import type { HomeAssistant } from "../../../../src/types";
@customElement("demo-components-ha-slider")
export class DemoHaSlider extends LitElement {
@property({ attribute: false }) hass!: HomeAssistant;
protected render(): TemplateResult {
return html`
${["light", "dark"].map(
(mode) => html`
<div class=${mode}>
<ha-card header="ha-slider ${mode} demo">
<div class="card-content">
<span>Default (disabled)</span>
<ha-slider
disabled
min="0"
max="8"
value="4"
with-markers
></ha-slider>
<span>Small</span>
<ha-slider
size="small"
min="0"
max="8"
value="4"
with-markers
></ha-slider>
<span>Medium</span>
<ha-slider
size="medium"
min="0"
max="8"
value="4"
with-markers
></ha-slider>
</div>
</ha-card>
</div>
`
)}
`;
}
firstUpdated(changedProps) {
super.firstUpdated(changedProps);
applyThemesOnElement(
this.shadowRoot!.querySelector(".dark"),
{
default_theme: "default",
default_dark_theme: "default",
themes: {},
darkMode: true,
theme: "default",
},
undefined,
undefined,
true
);
}
static styles = css`
:host {
display: flex;
justify-content: center;
}
.dark,
.light {
display: block;
background-color: var(--primary-background-color);
padding: 0 50px;
margin: 16px;
border-radius: 8px;
}
ha-card {
margin: 24px auto;
}
.card-content {
display: flex;
flex-direction: column;
align-items: center;
gap: var(--ha-space-6);
}
`;
}
declare global {
interface HTMLElementTagNameMap {
"demo-components-ha-slider": DemoHaSlider;
}
}
+1 -1
View File
@@ -70,7 +70,7 @@ export class DemoHaSpinner extends LitElement {
display: flex;
flex-direction: column;
align-items: center;
gap: 24px;
gap: var(--ha-space-6);
}
`;
}
@@ -6,21 +6,23 @@ A tooltip's target is its _first child element_, so you should only wrap one ele
Tooltips use `display: contents` so they won't interfere with how elements are positioned in a flex or grid layout.
<ha-tooltip content="This is a tooltip">
<ha-button>Hover Me</ha-button>
<ha-button id="hover">Hover Me</ha-button>
<ha-tooltip for="hover">
This is a tooltip
</ha-tooltip>
```
<ha-tooltip content="This is a tooltip">
<ha-button>Hover Me</ha-button>
<ha-button id="hover">Hover Me</ha-button>
<ha-tooltip for="hover">
This is a tooltip
</ha-tooltip>
```
## Documentation
This element is based on shoelace `sl-tooltip` it only sets some css tokens and has a custom show/hide animation.
This element is based on webawesome `wa-tooltip` it only sets some css tokens and has a custom show/hide animation.
<a href="https://shoelace.style/components/tooltip" target="_blank" rel="noopener noreferrer">Shoelace documentation</a>
<a href="https://webawesome.com/docs/components/tooltip/" target="_blank" rel="noopener noreferrer">Webawesome documentation</a>
### HA style tokens
@@ -28,7 +30,7 @@ In your theme settings use this without the prefixed `--`.
- `--ha-tooltip-border-radius` (Default: 4px)
- `--ha-tooltip-arrow-size` (Default: 8px)
- `--sl-tooltip-font-family` (Default: `var(--ha-font-family-body)`)
- `--wa-tooltip-font-family` (Default: `var(--ha-font-family-body)`)
- `--ha-tooltip-font-size` (Default: `var(--ha-font-size-s)`)
- `--sl-tooltip-font-weight` (Default: `var(--ha-font-weight-normal)`)
- `--sl-tooltip-line-height` (Default: `var(--ha-line-height-condensed)`)
- `--wa-tooltip-font-weight` (Default: `var(--ha-font-weight-normal)`)
- `--wa-tooltip-line-height` (Default: `var(--ha-line-height-condensed)`)
+37
View File
@@ -11,6 +11,7 @@ import { provideHass } from "../../../../src/fake_data/provide_hass";
import "../../components/demo-cards";
import { mockIcons } from "../../../../demo/src/stubs/icons";
import { ClimateEntityFeature } from "../../../../src/data/climate";
import { FanEntityFeature } from "../../../../src/data/fan";
const ENTITIES = [
getEntity("switch", "tv_outlet", "on", {
@@ -100,6 +101,15 @@ const ENTITIES = [
ClimateEntityFeature.FAN_MODE +
ClimateEntityFeature.TARGET_TEMPERATURE_RANGE,
}),
getEntity("fan", "fan_demo", "on", {
friendly_name: "Ceiling fan",
device_class: "fan",
direction: "reverse",
supported_features:
FanEntityFeature.DIRECTION +
FanEntityFeature.SET_SPEED +
FanEntityFeature.OSCILLATE,
}),
];
const CONFIGS = [
@@ -261,6 +271,33 @@ const CONFIGS = [
- type: target-temperature
`,
},
{
heading: "Fan direction feature",
config: `
- type: tile
entity: fan.fan_demo
features:
- type: fan-direction
`,
},
{
heading: "Fan speed feature",
config: `
- type: tile
entity: fan.fan_demo
features:
- type: fan-speed
`,
},
{
heading: "Fan oscillate feature",
config: `
- type: tile
entity: fan.fan_demo
features:
- type: fan-oscillate
`,
},
];
@customElement("demo-lovelace-tile-card")
+8 -4
View File
@@ -1,7 +1,7 @@
import "@material/mwc-button";
import type { TemplateResult } from "lit";
import { css, html, LitElement } from "lit";
import { customElement } from "lit/decorators";
import "../../../../src/components/ha-button";
import "../../../../src/components/ha-card";
import type { ActionHandlerEvent } from "../../../../src/data/lovelace/action_handler";
import { actionHandler } from "../../../../src/panels/lovelace/common/directives/action-handler-directive";
@@ -13,12 +13,16 @@ export class DemoUtilLongPress extends LitElement {
${[1, 2, 3].map(
() => html`
<ha-card>
<mwc-button
<ha-button
appearance="plain"
@action=${this._handleAction}
.actionHandler=${actionHandler({})}
.actionHandler=${actionHandler({
hasHold: true,
hasDoubleClick: true,
})}
>
(long) press me!
</mwc-button>
</ha-button>
<textarea></textarea>
+3
View File
@@ -0,0 +1,3 @@
---
title: Fan
---
+50
View File
@@ -0,0 +1,50 @@
import type { PropertyValues, TemplateResult } from "lit";
import { html, LitElement } 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 type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
import { provideHass } from "../../../../src/fake_data/provide_hass";
import "../../components/demo-more-infos";
import { FanEntityFeature } from "../../../../src/data/fan";
const ENTITIES = [
getEntity("fan", "fan", "on", {
friendly_name: "Fan",
device_class: "fan",
supported_features:
FanEntityFeature.OSCILLATE +
FanEntityFeature.DIRECTION +
FanEntityFeature.SET_SPEED,
}),
];
@customElement("demo-more-info-fan")
class DemoMoreInfoFan 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-fan": DemoMoreInfoFan;
}
}
@@ -11,7 +11,10 @@ import "../../../../src/components/ha-alert";
import "../../../../src/components/ha-button-menu";
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-form/ha-form";
import type { HaFormSchema } from "../../../../src/components/ha-form/types";
import type {
HaFormSchema,
HaFormDataContainer,
} from "../../../../src/components/ha-form/types";
import "../../../../src/components/ha-formfield";
import "../../../../src/components/ha-icon-button";
import "../../../../src/components/ha-list-item";
@@ -33,6 +36,7 @@ import { haStyle } from "../../../../src/resources/styles";
import type { HomeAssistant } from "../../../../src/types";
import { suggestAddonRestart } from "../../dialogs/suggestAddonRestart";
import { hassioStyle } from "../../resources/hassio-style";
import type { ObjectSelector, Selector } from "../../../../src/data/selector";
const SUPPORTED_UI_TYPES = [
"string",
@@ -78,78 +82,125 @@ class HassioAddonConfig extends LitElement {
@query("ha-yaml-editor") private _editor?: HaYamlEditor;
public computeLabel = (entry: HaFormSchema): string =>
this.addon.translations[this.hass.language]?.configuration?.[entry.name]
?.name ||
this.addon.translations.en?.configuration?.[entry.name]?.name ||
private _getTranslationEntry(
language: string,
entry: HaFormSchema,
options?: { path?: string[] }
) {
let parent = this.addon.translations[language]?.configuration;
if (!parent) return undefined;
if (options?.path) {
for (const key of options.path) {
parent = parent[key]?.fields;
if (!parent) return undefined;
}
}
return parent[entry.name];
}
public computeLabel = (
entry: HaFormSchema,
_data: HaFormDataContainer,
options?: { path?: string[] }
): string =>
this._getTranslationEntry(this.hass.language, entry, options)?.name ||
this._getTranslationEntry("en", entry, options)?.name ||
entry.name;
public computeHelper = (entry: HaFormSchema): string =>
this.addon.translations[this.hass.language]?.configuration?.[entry.name]
public computeHelper = (
entry: HaFormSchema,
options?: { path?: string[] }
): string =>
this._getTranslationEntry(this.hass.language, entry, options)
?.description ||
this.addon.translations.en?.configuration?.[entry.name]?.description ||
this._getTranslationEntry("en", entry, options)?.description ||
"";
private _convertSchema = memoizeOne(
// Convert supervisor schema to selectors
(schema: Record<string, any>): HaFormSchema[] =>
schema.map((entry) =>
entry.type === "select"
? {
name: entry.name,
required: entry.required,
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
? 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
)
(schema: readonly HaFormSchema[]): HaFormSchema[] =>
this._convertSchemaElements(schema)
);
private _filteredShchema = memoizeOne(
private _convertSchemaElements(
schema: readonly HaFormSchema[]
): HaFormSchema[] {
return schema.map((entry) => this._convertSchemaElement(entry));
}
private _convertSchemaElement(entry: any): HaFormSchema {
if (entry.type === "schema" && !entry.multiple) {
return {
name: entry.name,
type: "expandable",
required: entry.required,
schema: this._convertSchemaElements(entry.schema),
};
}
const selector = this._convertSchemaElementToSelector(entry, false);
if (selector) {
return {
name: entry.name,
required: entry.required,
selector,
};
}
return entry;
}
private _convertSchemaElementToSelector(
entry: any,
force: boolean
): Selector | null {
if (entry.type === "select") {
return { select: { options: entry.options } };
}
if (entry.type === "string") {
return entry.multiple
? { select: { options: [], multiple: true, custom_value: true } }
: {
text: {
type: entry.format
? entry.format
: MASKED_FIELDS.includes(entry.name)
? "password"
: "text",
},
};
}
if (entry.type === "boolean") {
return { boolean: {} };
}
if (entry.type === "schema") {
const fields: NonNullable<ObjectSelector["object"]>["fields"] = {};
for (const child_entry of entry.schema) {
fields[child_entry.name] = {
required: child_entry.required,
selector: this._convertSchemaElementToSelector(child_entry, true)!,
};
}
return {
object: {
multiple: entry.multiple,
fields,
},
};
}
if (entry.type === "float" || entry.type === "integer") {
return {
number: {
mode: "box",
step: entry.type === "float" ? "any" : undefined,
},
};
}
if (force) {
return { object: {} };
}
return null;
}
private _filteredSchema = memoizeOne(
(options: Record<string, unknown>, schema: HaFormSchema[]) =>
schema.filter((entry) => entry.name in options || entry.required)
);
@@ -161,7 +212,7 @@ class HassioAddonConfig extends LitElement {
showForm &&
JSON.stringify(this.addon.schema) !==
JSON.stringify(
this._filteredShchema(this.addon.options, this.addon.schema!)
this._filteredSchema(this.addon.options, this.addon.schema!)
);
return html`
<h1>${this.addon.name}</h1>
@@ -199,6 +250,7 @@ class HassioAddonConfig extends LitElement {
<div class="card-content">
${showForm
? html`<ha-form
.hass=${this.hass}
.disabled=${this.disabled}
.data=${this._options!}
@value-changed=${this._configChanged}
@@ -207,7 +259,7 @@ class HassioAddonConfig extends LitElement {
.schema=${this._convertSchema(
this._showOptional
? this.addon.schema!
: this._filteredShchema(
: this._filteredSchema(
this.addon.options,
this.addon.schema!
)
@@ -99,7 +99,8 @@ class HassioAddonNetwork extends LitElement {
: nothing}
<div class="card-actions">
<ha-progress-button
class="warning"
variant="danger"
appearance="plain"
.disabled=${this.disabled}
@click=${this._resetTapped}
>
+72 -53
View File
@@ -25,6 +25,7 @@ import type { CSSResultGroup, TemplateResult } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { ifDefined } from "lit/directives/if-defined";
import memoizeOne from "memoize-one";
import { atLeastVersion } from "../../../../src/common/config/version";
import { fireEvent } from "../../../../src/common/dom/fire_event";
@@ -187,12 +188,13 @@ class HassioAddonInfo extends LitElement {
"addon.dashboard.protection_mode.content"
)}
<ha-button
variant="danger"
slot="action"
.label=${this.supervisor.localize(
"addon.dashboard.protection_mode.enable"
)}
@click=${this._protectionToggled}
>
${this.supervisor.localize(
"addon.dashboard.protection_mode.enable"
)}
</ha-button>
</ha-alert>
`
@@ -692,14 +694,16 @@ class HassioAddonInfo extends LitElement {
? this._computeIsRunning
? html`
<ha-progress-button
class="warning"
variant="danger"
appearance="plain"
@click=${this._stopClicked}
.disabled=${systemManaged && !this.controlEnabled}
>
${this.supervisor.localize("addon.dashboard.stop")}
</ha-progress-button>
<ha-progress-button
class="warning"
variant="danger"
appearance="plain"
@click=${this._restartClicked}
>
${this.supervisor.localize("addon.dashboard.restart")}
@@ -709,10 +713,60 @@ class HassioAddonInfo extends LitElement {
<ha-progress-button
@click=${this._startClicked}
.progress=${this.addon.state === "startup"}
appearance="plain"
>
${this.supervisor.localize("addon.dashboard.start")}
</ha-progress-button>
`
: nothing}
</div>
<div>
${this.addon.version
? html`
<ha-progress-button
variant="danger"
appearance="plain"
@click=${this._uninstallClicked}
.disabled=${systemManaged && !this.controlEnabled}
>
${this.supervisor.localize("addon.dashboard.uninstall")}
</ha-progress-button>
${this.addon.build
? html`
<ha-progress-button
variant="danger"
appearance="plain"
@click=${this._rebuildClicked}
>
${this.supervisor.localize("addon.dashboard.rebuild")}
</ha-progress-button>
`
: nothing}
${this._computeShowWebUI || this._computeShowIngressUI
? html`
<ha-button
href=${ifDefined(
!this._computeShowIngressUI
? this._pathWebui!
: nothing
)}
target=${ifDefined(
!this._computeShowIngressUI ? "_blank" : nothing
)}
rel=${ifDefined(
!this._computeShowIngressUI ? "noopener" : nothing
)}
@click=${!this._computeShowWebUI
? this._openIngress
: undefined}
>
${this.supervisor.localize(
"addon.dashboard.open_web_ui"
)}
</ha-button>
`
: nothing}
`
: html`
<ha-progress-button
.disabled=${!this.addon.available}
@@ -722,58 +776,12 @@ class HassioAddonInfo extends LitElement {
</ha-progress-button>
`}
</div>
<div>
${this.addon.version
? html` ${this._computeShowWebUI
? html`
<a
href=${this._pathWebui!}
tabindex="-1"
target="_blank"
rel="noopener"
>
<ha-button>
${this.supervisor.localize(
"addon.dashboard.open_web_ui"
)}
</ha-button>
</a>
`
: nothing}
${this._computeShowIngressUI
? html`
<ha-button @click=${this._openIngress}>
${this.supervisor.localize(
"addon.dashboard.open_web_ui"
)}
</ha-button>
`
: nothing}
<ha-progress-button
class="warning"
@click=${this._uninstallClicked}
.disabled=${systemManaged && !this.controlEnabled}
>
${this.supervisor.localize("addon.dashboard.uninstall")}
</ha-progress-button>
${this.addon.build
? html`
<ha-progress-button
class="warning"
@click=${this._rebuildClicked}
>
${this.supervisor.localize("addon.dashboard.rebuild")}
</ha-progress-button>
`
: nothing}`
: nothing}
</div>
</div>
</ha-card>
${this.addon.long_description
? html`
<ha-card outlined>
<ha-card class="long-description" outlined>
<div class="card-content">
<ha-markdown
.content=${this.addon.long_description}
@@ -1146,15 +1154,17 @@ class HassioAddonInfo extends LitElement {
),
dismissText: this.supervisor.localize("common.cancel"),
});
button.actionError();
button.progress = false;
return;
}
} catch (err: any) {
button.actionError();
button.progress = false;
showAlertDialog(this, {
title: "Failed to validate addon configuration",
text: extractApiErrorMessage(err),
});
button.progress = false;
return;
}
@@ -1168,11 +1178,15 @@ class HassioAddonInfo extends LitElement {
};
fireEvent(this, "hass-api-called", eventdata);
} catch (err: any) {
button.actionError();
button.progress = false;
showAlertDialog(this, {
title: this.supervisor.localize("addon.dashboard.action_error.start"),
text: extractApiErrorMessage(err),
});
return;
}
button.actionSuccess();
button.progress = false;
}
@@ -1228,6 +1242,7 @@ class HassioAddonInfo extends LitElement {
path: "uninstall",
};
fireEvent(this, "hass-api-called", eventdata);
button.actionSuccess();
} catch (err: any) {
showAlertDialog(this, {
title: this.supervisor.localize(
@@ -1235,6 +1250,7 @@ class HassioAddonInfo extends LitElement {
),
text: extractApiErrorMessage(err),
});
button.actionError();
}
button.progress = false;
}
@@ -1317,6 +1333,9 @@ class HassioAddonInfo extends LitElement {
.description a {
color: var(--primary-color);
}
.long-description {
direction: ltr;
}
ha-assist-chip {
--md-sys-color-primary: var(--text-primary-color);
--md-sys-color-on-surface: var(--text-primary-color);
@@ -1,4 +1,3 @@
import "@material/mwc-button";
import type { TemplateResult } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property } from "lit/decorators";
+6 -5
View File
@@ -1,4 +1,3 @@
import "@material/mwc-button";
import type { ActionDetail } from "@material/mwc-list";
import { mdiBackupRestore, mdiDelete, mdiDotsVertical, mdiPlus } from "@mdi/js";
@@ -17,6 +16,7 @@ import type {
} from "../../../src/components/data-table/ha-data-table";
import "../../../src/components/ha-button-menu";
import "../../../src/components/ha-fab";
import "../../../src/components/ha-button";
import "../../../src/components/ha-icon-button";
import "../../../src/components/ha-list-item";
import "../../../src/components/ha-svg-icon";
@@ -241,12 +241,13 @@ export class HassioBackups extends LitElement {
<div class="header-btns">
${!this.narrow
? html`
<mwc-button
<ha-button
appearance="plain"
variant="danger"
@click=${this._deleteSelected}
class="warning"
>
${this.supervisor.localize("backup.delete_selected")}
</mwc-button>
</ha-button>
`
: html`
<ha-icon-button
@@ -408,7 +409,7 @@ export class HassioBackups extends LitElement {
margin-inline-end: -12px;
margin-inline-start: initial;
}
.header-btns > mwc-button,
.header-btns > ha-button,
.header-btns > ha-icon-button {
margin: 8px;
}
+4 -6
View File
@@ -1,10 +1,9 @@
import "@material/mwc-button";
import type { CSSResultGroup } from "lit";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import memoizeOne from "memoize-one";
import "../../../src/components/buttons/ha-progress-button";
import "../../../src/components/ha-card";
import "../../../src/components/ha-button";
import "../../../src/components/ha-settings-row";
import "../../../src/components/ha-svg-icon";
import type { HassioHassOSInfo } from "../../../src/data/hassio/host";
@@ -109,10 +108,9 @@ export class HassioUpdate extends LitElement {
</ha-settings-row>
</div>
<div class="card-actions">
<a href="/hassio/update-available/${key}">
<mwc-button .label=${this.supervisor.localize("common.show")}>
</mwc-button>
</a>
<ha-button appearance="plain" href="/hassio/update-available/${key}">
${this.supervisor.localize("common.show")}
</ha-button>
</div>
</ha-card>
`;
@@ -1,10 +1,10 @@
import "@material/mwc-button/mwc-button";
import type { CSSResultGroup } from "lit";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
import { fireEvent } from "../../../../src/common/dom/fire_event";
import "../../../../src/components/ha-dialog";
import "../../../../src/components/ha-button";
import "../../../../src/components/ha-form/ha-form";
import type { SchemaUnion } from "../../../../src/components/ha-form/types";
import { extractApiErrorMessage } from "../../../../src/data/hassio/common";
@@ -77,20 +77,21 @@ class HassioBackupLocationDialog extends LitElement {
@value-changed=${this._valueChanged}
dialogInitialFocus
></ha-form>
<mwc-button
<ha-button
appearance="plain"
slot="secondaryAction"
@click=${this.closeDialog}
dialogInitialFocus
>
${this._dialogParams.supervisor.localize("common.cancel")}
</mwc-button>
<mwc-button
</ha-button>
<ha-button
.disabled=${this._waiting || !this._data}
slot="primaryAction"
@click=${this._changeMount}
>
${this._dialogParams.supervisor.localize("common.save")}
</mwc-button>
</ha-button>
</ha-dialog>
`;
}
@@ -8,7 +8,6 @@ import { atLeastVersion } from "../../../../src/common/config/version";
import { fireEvent } from "../../../../src/common/dom/fire_event";
import { stopPropagation } from "../../../../src/common/dom/stop_propagation";
import { slugify } from "../../../../src/common/string/slugify";
import "../../../../src/components/buttons/ha-progress-button";
import "../../../../src/components/ha-alert";
import "../../../../src/components/ha-button";
import "../../../../src/components/ha-button-menu";
@@ -1,10 +1,9 @@
import "@material/mwc-button";
import type { CSSResultGroup } from "lit";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { fireEvent } from "../../../../src/common/dom/fire_event";
import "../../../../src/components/buttons/ha-progress-button";
import "../../../../src/components/ha-alert";
import "../../../../src/components/ha-button";
import "../../../../src/components/ha-spinner";
import { createCloseHeading } from "../../../../src/components/ha-dialog";
import {
@@ -69,16 +68,20 @@ class HassioCreateBackupDialog extends LitElement {
${this._error
? html`<ha-alert alert-type="error">${this._error}</ha-alert>`
: ""}
<mwc-button slot="secondaryAction" @click=${this.closeDialog}>
<ha-button
appearance="plain"
slot="secondaryAction"
@click=${this.closeDialog}
>
${this._dialogParams.supervisor.localize("common.close")}
</mwc-button>
<mwc-button
</ha-button>
<ha-button
.disabled=${this._creatingBackup}
slot="primaryAction"
@click=${this._createBackup}
>
${this._dialogParams.supervisor.localize("backup.create")}
</mwc-button>
</ha-button>
</ha-dialog>
`;
}
@@ -4,6 +4,7 @@ import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
import { fireEvent } from "../../../../src/common/dom/fire_event";
import "../../../../src/components/ha-dialog";
import "../../../../src/components/ha-button";
import "../../../../src/components/ha-list-item";
import "../../../../src/components/ha-select";
import "../../../../src/components/ha-spinner";
@@ -20,8 +21,8 @@ import type { HomeAssistant } from "../../../../src/types";
import type { HassioDatatiskDialogParams } from "./show-dialog-hassio-datadisk";
const calculateMoveTime = memoizeOne((supervisor: Supervisor): number => {
const speed = supervisor.host.disk_life_time !== "" ? 30 : 10;
const moveTime = (supervisor.host.disk_used * 1000) / 60 / speed;
// Assume a speed of 30 MB/s.
const moveTime = (supervisor.host.disk_used * 1000) / 60 / 30;
const rebootTime = (supervisor.host.startup_time * 4) / 60;
return Math.ceil((moveTime + rebootTime) / 10) * 10;
});
@@ -109,17 +110,18 @@ class HassioDatadiskDialog extends LitElement {
"dialog.datadisk_move.no_devices"
)}
<mwc-button
slot="secondaryAction"
<ha-button
appearance="plain"
slot="primaryAction"
@click=${this.closeDialog}
dialogInitialFocus
>
${this.dialogParams.supervisor.localize(
"dialog.datadisk_move.cancel"
)}
</mwc-button>
</ha-button>
<mwc-button
<ha-button
.disabled=${!this.selectedDevice}
slot="primaryAction"
@click=${this._moveDatadisk}
@@ -127,7 +129,7 @@ class HassioDatadiskDialog extends LitElement {
${this.dialogParams.supervisor.localize(
"dialog.datadisk_move.move"
)}
</mwc-button>`}
</ha-button>`}
</ha-dialog>
`;
}
@@ -1,4 +1,3 @@
import "@material/mwc-button/mwc-button";
import { mdiClose } from "@mdi/js";
import type { CSSResultGroup } from "lit";
import { css, html, LitElement, nothing } from "lit";
@@ -6,6 +5,7 @@ import { customElement, property, state } from "lit/decorators";
import { cache } from "lit/directives/cache";
import { fireEvent } from "../../../../src/common/dom/fire_event";
import "../../../../src/components/ha-alert";
import "../../../../src/components/ha-button";
import "../../../../src/components/ha-dialog";
import "../../../../src/components/ha-expansion-panel";
import "../../../../src/components/ha-formfield";
@@ -15,7 +15,8 @@ import "../../../../src/components/ha-list";
import "../../../../src/components/ha-list-item";
import "../../../../src/components/ha-password-field";
import "../../../../src/components/ha-radio";
import "../../../../src/components/ha-spinner";
import "../../../../src/components/ha-tab-group";
import "../../../../src/components/ha-tab-group-tab";
import "../../../../src/components/ha-textfield";
import type { HaTextField } from "../../../../src/components/ha-textfield";
import { extractApiErrorMessage } from "../../../../src/data/hassio/common";
@@ -37,7 +38,6 @@ import type { HassDialog } from "../../../../src/dialogs/make-dialog-manager";
import { haStyleDialog } from "../../../../src/resources/styles";
import type { HomeAssistant } from "../../../../src/types";
import type { HassioNetworkDialogParams } from "./show-dialog-network";
import "../../../../src/components/sl-tab-group";
const IP_VERSIONS = ["ipv4", "ipv6"];
@@ -115,19 +115,19 @@ export class DialogHassioNetwork
></ha-icon-button>
</ha-header-bar>
${this._interfaces.length > 1
? html`<sl-tab-group @sl-tab-show=${this._handleTabActivated}
? html`<ha-tab-group @wa-tab-show=${this._handleTabActivated}
>${this._interfaces.map(
(device, index) =>
html`<sl-tab
html`<ha-tab-group-tab
slot="nav"
.id=${device.interface}
.panel=${index.toString()}
.active=${this._curTabIndex === index}
>
${device.interface}
</sl-tab>`
</ha-tab-group-tab>`
)}
</sl-tab-group>`
</ha-tab-group>`
: ""}
</div>
${cache(this._renderTab())}
@@ -154,16 +154,16 @@ export class DialogHassioNetwork
)}
</p>`
: ""}
<mwc-button
<ha-button
appearance="plain"
size="small"
class="scan"
@click=${this._scanForAP}
.disabled=${this._scanning}
.loading=${this._scanning}
>
${this._scanning
? html`<ha-spinner aria-label="Scanning" size="small">
</ha-spinner>`
: this.supervisor.localize("dialog.network.scan_ap")}
</mwc-button>
${this.supervisor.localize("dialog.network.scan_ap")}
</ha-button>
${this._accessPoints &&
this._accessPoints.accesspoints &&
this._accessPoints.accesspoints.length !== 0
@@ -270,16 +270,16 @@ export class DialogHassioNetwork
: ""}
</div>
<div class="buttons">
<mwc-button
.label=${this.supervisor.localize("common.cancel")}
@click=${this.closeDialog}
<ha-button @click=${this.closeDialog} appearance="plain">
${this.supervisor.localize("common.cancel")}
</ha-button>
<ha-button
@click=${this._updateNetwork}
.disabled=${!this._dirty}
.loading=${this._processing}
>
</mwc-button>
<mwc-button @click=${this._updateNetwork} .disabled=${!this._dirty}>
${this._processing
? html`<ha-spinner size="small"> </ha-spinner>`
: this.supervisor.localize("common.save")}
</mwc-button>
${this.supervisor.localize("common.save")}
</ha-button>
</div>`;
}
@@ -584,11 +584,7 @@ export class DialogHassioNetwork
}
}
mwc-button.warning {
--mdc-theme-primary: var(--error-color);
}
mwc-button.scan {
ha-button.scan {
margin-left: 8px;
margin-inline-start: 8px;
margin-inline-end: initial;
@@ -609,8 +605,8 @@ export class DialogHassioNetwork
var(--mdc-dialog-scroll-divider-color, rgba(0, 0, 0, 0.12));
display: flex;
justify-content: space-between;
padding: 8px;
padding-bottom: max(var(--safe-area-inset-bottom), 8px);
padding: 16px;
padding-bottom: max(var(--safe-area-inset-bottom), 16px);
background-color: var(--mdc-theme-surface, #fff);
}
.warning {
@@ -632,10 +628,10 @@ export class DialogHassioNetwork
--mdc-list-side-padding: 10px;
}
sl-tab {
ha-tab-group-tab {
flex: 1;
}
sl-tab::part(base) {
ha-tab-group-tab::part(base) {
width: 100%;
justify-content: center;
}
@@ -1,13 +1,14 @@
import "@material/mwc-button/mwc-button";
import { mdiDelete } from "@mdi/js";
import { mdiDelete, mdiPlus } from "@mdi/js";
import type { CSSResultGroup, TemplateResult } from "lit";
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
import "../../../../src/components/ha-button";
import { createCloseHeading } from "../../../../src/components/ha-dialog";
import "../../../../src/components/ha-form/ha-form";
import type { SchemaUnion } from "../../../../src/components/ha-form/types";
import "../../../../src/components/ha-icon-button";
import "../../../../src/components/ha-settings-row";
import "../../../../src/components/ha-svg-icon";
import { extractApiErrorMessage } from "../../../../src/data/hassio/common";
import {
addHassioDockerRegistry,
@@ -84,16 +85,19 @@ class HassioRegistriesDialog extends LitElement {
dialogInitialFocus
></ha-form>
<div class="action">
<mwc-button
<ha-button
?disabled=${Boolean(
!this._input.registry ||
!this._input.username ||
!this._input.password
)}
@click=${this._addNewRegistry}
appearance="filled"
size="small"
>
<ha-svg-icon slot="start" .path=${mdiPlus}></ha-svg-icon>
${this.supervisor.localize("dialog.registries.add_registry")}
</mwc-button>
</ha-button>
</div>
`
: html`${this._registries?.length
@@ -126,11 +130,17 @@ class HassioRegistriesDialog extends LitElement {
</ha-alert>
`}
<div class="action">
<mwc-button @click=${this._addRegistry} dialogInitialFocus>
<ha-button
@click=${this._addRegistry}
dialogInitialFocus
appearance="filled"
size="small"
>
<ha-svg-icon slot="start" .path=${mdiPlus}></ha-svg-icon>
${this.supervisor.localize(
"dialog.registries.add_new_registry"
)}
</mwc-button>
</ha-button>
</div> `}
</ha-dialog>
`;
@@ -1,5 +1,4 @@
import "@material/mwc-button/mwc-button";
import { mdiDelete, mdiDeleteOff } from "@mdi/js";
import { mdiDelete, mdiDeleteOff, mdiPlus } from "@mdi/js";
import type { CSSResultGroup } from "lit";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
@@ -7,10 +6,15 @@ import memoizeOne from "memoize-one";
import { fireEvent } from "../../../../src/common/dom/fire_event";
import { caseInsensitiveStringCompare } from "../../../../src/common/string/compare";
import "../../../../src/components/ha-alert";
import "../../../../src/components/ha-tooltip";
import "../../../../src/components/ha-spinner";
import "../../../../src/components/ha-button";
import { createCloseHeading } from "../../../../src/components/ha-dialog";
import "../../../../src/components/ha-icon-button";
import "../../../../src/components/ha-md-list";
import "../../../../src/components/ha-md-list-item";
import "../../../../src/components/ha-svg-icon";
import "../../../../src/components/ha-textfield";
import type { HaTextField } from "../../../../src/components/ha-textfield";
import "../../../../src/components/ha-tooltip";
import type {
HassioAddonInfo,
HassioAddonRepository,
@@ -24,10 +28,6 @@ import {
import { haStyle, haStyleDialog } from "../../../../src/resources/styles";
import type { HomeAssistant } from "../../../../src/types";
import type { HassioRepositoryDialogParams } from "./show-dialog-repositories";
import type { HaTextField } from "../../../../src/components/ha-textfield";
import "../../../../src/components/ha-textfield";
import "../../../../src/components/ha-md-list";
import "../../../../src/components/ha-md-list-item";
@customElement("dialog-hassio-repositories")
class HassioRepositoriesDialog extends LitElement {
@@ -119,26 +119,27 @@ class HassioRepositoriesDialog extends LitElement {
<div>${repo.url}</div>
</div>
<ha-tooltip
.for="icon-button-${repo.slug}"
class="delete"
slot="end"
.content=${this._dialogParams!.supervisor.localize(
>
${this._dialogParams!.supervisor.localize(
usedRepositories.includes(repo.slug)
? "dialog.repositories.used"
: "dialog.repositories.remove"
)}
>
<div>
<ha-icon-button
.disabled=${usedRepositories.includes(repo.slug)}
.slug=${repo.slug}
.path=${usedRepositories.includes(repo.slug)
? mdiDeleteOff
: mdiDelete}
@click=${this._removeRepository}
>
</ha-icon-button>
</div>
</ha-tooltip>
<div .id="icon-button-${repo.slug}">
<ha-icon-button
.disabled=${usedRepositories.includes(repo.slug)}
.slug=${repo.slug}
.path=${usedRepositories.includes(repo.slug)
? mdiDeleteOff
: mdiDelete}
@click=${this._removeRepository}
>
</ha-icon-button>
</div>
</ha-md-list-item>
`
)
@@ -159,18 +160,22 @@ class HassioRepositoriesDialog extends LitElement {
@keydown=${this._handleKeyAdd}
dialogInitialFocus
></ha-textfield>
<mwc-button @click=${this._addRepository}>
${this._processing
? html`<ha-spinner size="small"></ha-spinner>`
: this._dialogParams!.supervisor.localize(
"dialog.repositories.add"
)}
</mwc-button>
<ha-button
.loading=${this._processing}
@click=${this._addRepository}
appearance="filled"
size="small"
>
<ha-svg-icon slot="start" .path=${mdiPlus}></ha-svg-icon>
${this._dialogParams!.supervisor.localize(
"dialog.repositories.add"
)}
</ha-button>
</div>
</div>
<mwc-button slot="primaryAction" @click=${this.closeDialog}>
<ha-button slot="primaryAction" @click=${this.closeDialog}>
${this._dialogParams?.supervisor.localize("common.close")}
</mwc-button>
</ha-button>
</ha-dialog>
`;
}
@@ -191,16 +196,11 @@ class HassioRepositoriesDialog extends LitElement {
border-radius: 4px;
margin-top: 4px;
}
mwc-button {
ha-button {
margin-left: 8px;
margin-inline-start: 8px;
margin-inline-end: initial;
}
ha-spinner {
display: block;
margin: 32px;
text-align: center;
}
div.delete ha-icon-button {
color: var(--error-color);
}
@@ -249,6 +249,8 @@ class HassioRepositoriesDialog extends LitElement {
await addStoreRepository(this.hass, input.value);
await this._loadData();
fireEvent(this, "supervisor-collection-refresh", { collection: "store" });
input.value = "";
} catch (err: any) {
this._error = extractApiErrorMessage(err);
@@ -261,6 +263,8 @@ class HassioRepositoriesDialog extends LitElement {
try {
await removeStoreRepository(this.hass, slug);
await this._loadData();
fireEvent(this, "supervisor-collection-refresh", { collection: "store" });
} catch (err: any) {
this._error = extractApiErrorMessage(err);
}
@@ -159,7 +159,7 @@ class HassioSystemManagedDialog extends LitElement {
display: flex;
justify-content: center;
align-items: center;
gap: 16px;
gap: var(--ha-space-4);
--mdc-icon-size: 48px;
margin-bottom: 32px;
}
@@ -3,7 +3,7 @@ import type { PropertyValues, TemplateResult } from "lit";
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
import { fireEvent } from "../../../src/common/dom/fire_event";
import { navigate } from "../../../src/common/navigate";
import { goBack, navigate } from "../../../src/common/navigate";
import { extractSearchParam } from "../../../src/common/url/search-params";
import { nextRender } from "../../../src/common/util/render-status";
import "../../../src/components/ha-icon-button";
@@ -193,7 +193,7 @@ class HassioIngressView extends LitElement {
title: addon.name,
});
await nextRender();
history.back();
goBack();
return;
}
@@ -275,7 +275,7 @@ class HassioIngressView extends LitElement {
title: addon.name,
});
await nextRender();
history.back();
goBack();
return;
}
+1 -1
View File
@@ -31,7 +31,7 @@ export const hassioStyle = css`
.card-group {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
grid-gap: 8px;
grid-gap: var(--ha-space-2);
}
@media screen and (min-width: 640px) {
.card-group {
+8 -14
View File
@@ -1,10 +1,9 @@
import "@material/mwc-button";
import type { CSSResultGroup, TemplateResult } from "lit";
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
import { atLeastVersion } from "../../../src/common/config/version";
import "../../../src/components/buttons/ha-progress-button";
import "../../../src/components/ha-button";
import "../../../src/components/ha-button-menu";
import "../../../src/components/ha-card";
import "../../../src/components/ha-settings-row";
@@ -70,12 +69,12 @@ class HassioCoreInfo extends LitElement {
${!atLeastVersion(this.hass.config.version, 2021, 12) &&
this.supervisor.core.update_available
? html`
<a href="/hassio/update-available/core">
<mwc-button
.label=${this.supervisor.localize("common.show")}
>
</mwc-button>
</a>
<ha-button
appearance="plain"
href="/hassio/update-available/core"
>
${this.supervisor.localize("common.show")}
</ha-button>
`
: ""}
</ha-settings-row>
@@ -95,7 +94,7 @@ class HassioCoreInfo extends LitElement {
<div class="card-actions">
<ha-progress-button
slot="primaryAction"
class="warning"
variant="danger"
@click=${this._coreRestart}
.title=${this.supervisor.localize("common.restart_name", {
name: "Core",
@@ -188,11 +187,6 @@ class HassioCoreInfo extends LitElement {
white-space: normal;
color: var(--secondary-text-color);
}
.warning {
--mdc-theme-primary: var(--error-color);
}
ha-button-menu {
color: var(--secondary-text-color);
--mdc-menu-min-width: 200px;
+24 -28
View File
@@ -1,5 +1,3 @@
import "@material/mwc-button";
import { mdiDotsVertical } from "@mdi/js";
import type { CSSResultGroup, TemplateResult } from "lit";
import { css, html, LitElement } from "lit";
@@ -8,10 +6,11 @@ import memoizeOne from "memoize-one";
import { atLeastVersion } from "../../../src/common/config/version";
import { fireEvent } from "../../../src/common/dom/fire_event";
import "../../../src/components/buttons/ha-progress-button";
import "../../../src/components/ha-button";
import "../../../src/components/ha-button-menu";
import "../../../src/components/ha-card";
import "../../../src/components/ha-list-item";
import "../../../src/components/ha-icon-button";
import "../../../src/components/ha-list-item";
import "../../../src/components/ha-settings-row";
import {
extractApiErrorMessage,
@@ -77,24 +76,28 @@ class HassioHostInfo extends LitElement {
<span slot="description">
${this.supervisor.host.hostname}
</span>
<mwc-button
.label=${this.supervisor.localize("system.host.change")}
<ha-button
@click=${this._changeHostnameClicked}
appearance="plain"
size="small"
>
</mwc-button>
${this.supervisor.localize("system.host.change")}
</ha-button>
</ha-settings-row>`
: ""}
${this.supervisor.host.features.includes("network")
? html` <ha-settings-row>
? html`<ha-settings-row>
<span slot="heading">
${this.supervisor.localize("system.host.ip_address")}
</span>
<span slot="description"> ${primaryIpAddress} </span>
<mwc-button
.label=${this.supervisor.localize("system.host.change")}
<ha-button
@click=${this._changeNetworkClicked}
appearance="plain"
size="small"
>
</mwc-button>
${this.supervisor.localize("system.host.change")}
</ha-button>
</ha-settings-row>`
: ""}
@@ -108,12 +111,13 @@ class HassioHostInfo extends LitElement {
${!atLeastVersion(this.hass.config.version, 2021, 12) &&
this.supervisor.os.update_available
? html`
<a href="/hassio/update-available/os">
<mwc-button
.label=${this.supervisor.localize("common.show")}
>
</mwc-button>
</a>
<ha-button
appearance="plain"
size="small"
href="/hassio/update-available/os"
>
${this.supervisor.localize("common.show")}
</ha-button>
`
: ""}
</ha-settings-row>
@@ -139,16 +143,12 @@ class HassioHostInfo extends LitElement {
: ""}
</div>
<div>
${this.supervisor.host.disk_life_time !== "" &&
this.supervisor.host.disk_life_time >= 10
${this.supervisor.host.disk_life_time !== null
? html` <ha-settings-row>
<span slot="heading">
${this.supervisor.localize(
"system.host.emmc_lifetime_used"
)}
${this.supervisor.localize("system.host.lifetime_used")}
</span>
<span slot="description">
${this.supervisor.host.disk_life_time - 10} % -
${this.supervisor.host.disk_life_time} %
</span>
</ha-settings-row>`
@@ -167,7 +167,7 @@ class HassioHostInfo extends LitElement {
<div class="card-actions">
${this.supervisor.host.features.includes("reboot")
? html`
<ha-progress-button class="warning" @click=${this._hostReboot}>
<ha-progress-button variant="danger" @click=${this._hostReboot}>
${this.supervisor.localize("system.host.reboot_host")}
</ha-progress-button>
`
@@ -175,7 +175,7 @@ class HassioHostInfo extends LitElement {
${this.supervisor.host.features.includes("shutdown")
? html`
<ha-progress-button
class="warning"
variant="danger"
@click=${this._hostShutdown}
>
${this.supervisor.localize("system.host.shutdown_host")}
@@ -431,10 +431,6 @@ class HassioHostInfo extends LitElement {
color: var(--secondary-text-color);
}
.warning {
--mdc-theme-primary: var(--error-color);
}
ha-button-menu {
color: var(--secondary-text-color);
--mdc-menu-min-width: 200px;
+18 -15
View File
@@ -5,6 +5,7 @@ import { atLeastVersion } from "../../../src/common/config/version";
import { fireEvent } from "../../../src/common/dom/fire_event";
import "../../../src/components/buttons/ha-progress-button";
import "../../../src/components/ha-alert";
import "../../../src/components/ha-button";
import "../../../src/components/ha-card";
import "../../../src/components/ha-settings-row";
import "../../../src/components/ha-switch";
@@ -80,12 +81,13 @@ class HassioSupervisorInfo extends LitElement {
${!atLeastVersion(this.hass.config.version, 2021, 12) &&
this.supervisor.supervisor.update_available
? html`
<a href="/hassio/update-available/supervisor">
<mwc-button
.label=${this.supervisor.localize("common.show")}
>
</mwc-button>
</a>
<ha-button
appearance="plain"
size="small"
href="/hassio/update-available/supervisor"
>
${this.supervisor.localize("common.show")}
</ha-button>
`
: ""}
</ha-settings-row>
@@ -156,24 +158,28 @@ class HassioSupervisorInfo extends LitElement {
${this.supervisor.localize(
"system.supervisor.unsupported_title"
)}
<mwc-button
<ha-button
slot="action"
.label=${this.supervisor.localize("common.learn_more")}
@click=${this._unsupportedDialog}
variant="warning"
size="small"
>
</mwc-button>
${this.supervisor.localize("common.learn_more")}
</ha-button>
</ha-alert>`}
${!this.supervisor.supervisor.healthy
? html`<ha-alert alert-type="error">
${this.supervisor.localize(
"system.supervisor.unhealthy_title"
)}
<mwc-button
<ha-button
variant="danger"
size="small"
slot="action"
.label=${this.supervisor.localize("common.learn_more")}
@click=${this._unhealthyDialog}
>
</mwc-button>
${this.supervisor.localize("common.learn_more")}
</ha-button>
</ha-alert>`
: ""}
</div>
@@ -448,9 +454,6 @@ class HassioSupervisorInfo extends LitElement {
white-space: normal;
color: var(--secondary-text-color);
}
ha-alert mwc-button {
--mdc-theme-primary: var(--primary-text-color);
}
a {
text-decoration: none;
}
@@ -1,5 +1,3 @@
import "@material/mwc-button";
import type { CSSResultGroup, TemplateResult } from "lit";
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
@@ -208,14 +208,16 @@ class UpdateAvailableCard extends LitElement {
<div class="card-actions">
${changelog
? html`
<a href=${changelog} target="_blank" rel="noreferrer">
<ha-button
.label=${this.supervisor.localize(
"update_available.open_release_notes"
)}
>
</ha-button>
</a>
<ha-button
href=${changelog}
target="_blank"
rel="noreferrer"
appearance="plain"
>
${this.supervisor.localize(
"update_available.open_release_notes"
)}
</ha-button>
`
: nothing}
<span></span>
@@ -2,6 +2,7 @@ import type { TemplateResult } from "lit";
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
import type { Supervisor } from "../../../src/data/supervisor/supervisor";
import { goBack } from "../../../src/common/navigate";
import "../../../src/layouts/hass-subpage";
import type { HomeAssistant, Route } from "../../../src/types";
import "./update-available-card";
@@ -35,7 +36,7 @@ class UpdateAvailableDashboard extends LitElement {
}
private _updateComplete() {
history.back();
goBack();
}
static styles = css`
@@ -3,26 +3,26 @@ import { mdiArrowCollapseDown, mdiDownload } from "@mdi/js";
// eslint-disable-next-line import/extensions
import { IntersectionController } from "@lit-labs/observers/intersection-controller.js";
import { LitElement, type PropertyValues, css, html, nothing } from "lit";
import { classMap } from "lit/directives/class-map";
import { customElement, property, query, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { fireEvent } from "../../../src/common/dom/fire_event";
import type {
LandingPageKeys,
LocalizeFunc,
} from "../../../src/common/translations/localize";
import { waitForSeconds } from "../../../src/common/util/wait";
import "../../../src/components/ha-alert";
import "../../../src/components/ha-ansi-to-html";
import type { HaAnsiToHtml } from "../../../src/components/ha-ansi-to-html";
import "../../../src/components/ha-button";
import "../../../src/components/ha-icon-button";
import "../../../src/components/ha-svg-icon";
import "../../../src/components/ha-ansi-to-html";
import "../../../src/components/ha-alert";
import type { HaAnsiToHtml } from "../../../src/components/ha-ansi-to-html";
import { fileDownload } from "../../../src/util/file_download";
import {
getObserverLogs,
downloadUrl as observerLogsDownloadUrl,
} from "../data/observer";
import { fireEvent } from "../../../src/common/dom/fire_event";
import { fileDownload } from "../../../src/util/file_download";
import { getSupervisorLogs, getSupervisorLogsFollow } from "../data/supervisor";
import { waitForSeconds } from "../../../src/common/util/wait";
import { ASSUME_CORE_START_SECONDS } from "../ha-landing-page";
const ERROR_CHECK = /^[\d\s-:]+(ERROR|CRITICAL)(.*)/gm;
@@ -64,7 +64,7 @@ class LandingPageLogs extends LitElement {
protected render() {
return html`
<div class="actions">
<ha-button @click=${this._toggleLogDetails}>
<ha-button appearance="plain" @click=${this._toggleLogDetails}>
${this.localize(this._show ? "hide_details" : "show_details")}
</ha-button>
${this._show
@@ -81,7 +81,11 @@ class LandingPageLogs extends LitElement {
alert-type="error"
.title=${this.localize("logs.fetch_error")}
>
<ha-button @click=${this._startLogStream}>
<ha-button
size="small"
variant="danger"
@click=${this._startLogStream}
>
${this.localize("logs.retry")}
</ha-button>
</ha-alert>
@@ -104,14 +108,13 @@ class LandingPageLogs extends LitElement {
!this._scrolledToBottomController.value) ||
false,
})}"
size="small"
appearance="filled"
@click=${this._scrollToBottom}
>
<ha-svg-icon .path=${mdiArrowCollapseDown} slot="icon"></ha-svg-icon>
<ha-svg-icon .path=${mdiArrowCollapseDown} slot="start"></ha-svg-icon>
${this.localize("logs.scroll_down_button")}
<ha-svg-icon
.path=${mdiArrowCollapseDown}
slot="trailingIcon"
></ha-svg-icon>
<ha-svg-icon .path=${mdiArrowCollapseDown} slot="end"></ha-svg-icon>
</ha-button>
`;
}
@@ -308,21 +311,14 @@ class LandingPageLogs extends LitElement {
}
.new-logs-indicator {
--mdc-theme-primary: var(--text-primary-color);
overflow: hidden;
position: absolute;
bottom: 0;
left: 0;
right: 0;
bottom: 4px;
left: 4px;
height: 0;
background-color: var(--primary-color);
border-radius: 8px;
transition: height 0.4s ease-out;
display: flex;
justify-content: space-between;
align-items: center;
}
.new-logs-indicator.visible {
@@ -67,6 +67,7 @@ class LandingPageNetwork extends LitElement {
${ALTERNATIVE_DNS_SERVERS.map(
({ translationKey }, key) =>
html`<ha-button
size="small"
.index=${key}
.disabled=${!dnsPrimaryInterfaceNameservers}
@click=${this._setDns}
+1 -1
View File
@@ -213,7 +213,7 @@ class HaLandingPage extends LandingPageBaseElement {
ha-card .card-content {
display: flex;
flex-direction: column;
gap: 16px;
gap: var(--ha-space-4);
}
ha-alert p {
text-align: unset;
+2 -1
View File
@@ -19,8 +19,9 @@
height: auto;
padding: 32px 0;
}
.content {
max-width: 560px;
max-width: min(560px, calc(100vw - var(--safe-area-inset-right, 0px) - var(--safe-area-inset-left, 0px)));
margin: 0 auto;
padding: 0 16px;
box-sizing: content-box;
+1 -1
View File
@@ -1,6 +1,6 @@
export default {
"*.?(c|m){js,ts}": [
"eslint --flag unstable_config_lookup_from_file --cache --cache-strategy=content --cache-location=node_modules/.cache/eslint/.eslintcache --fix",
"eslint --flag v10_config_lookup_from_file --cache --cache-strategy=content --cache-location=node_modules/.cache/eslint/.eslintcache --fix",
"prettier --cache --write",
"lit-analyzer --quiet",
],
+65 -65
View File
@@ -8,8 +8,8 @@
"version": "1.0.0",
"scripts": {
"build": "script/build_frontend",
"lint:eslint": "eslint --flag unstable_config_lookup_from_file \"**/src/**/*.{js,ts,html}\" --cache --cache-strategy=content --cache-location=node_modules/.cache/eslint/.eslintcache --ignore-pattern=.gitignore --max-warnings=0",
"format:eslint": "eslint --flag unstable_config_lookup_from_file \"**/src/**/*.{js,ts,html}\" --cache --cache-strategy=content --cache-location=node_modules/.cache/eslint/.eslintcache --ignore-pattern=.gitignore --fix",
"lint:eslint": "eslint --flag v10_config_lookup_from_file \"**/src/**/*.{js,ts,html}\" --cache --cache-strategy=content --cache-location=node_modules/.cache/eslint/.eslintcache --ignore-pattern=.gitignore --max-warnings=0",
"format:eslint": "eslint --flag v10_config_lookup_from_file \"**/src/**/*.{js,ts,html}\" --cache --cache-strategy=content --cache-location=node_modules/.cache/eslint/.eslintcache --ignore-pattern=.gitignore --fix",
"lint:prettier": "prettier . --cache --check",
"format:prettier": "prettier . --cache --write",
"lint:types": "tsc",
@@ -26,15 +26,16 @@
"license": "Apache-2.0",
"type": "module",
"dependencies": {
"@babel/runtime": "7.27.6",
"@babel/runtime": "7.28.4",
"@braintree/sanitize-url": "7.1.1",
"@codemirror/autocomplete": "6.18.6",
"@codemirror/autocomplete": "6.19.0",
"@codemirror/commands": "6.8.1",
"@codemirror/language": "6.11.2",
"@codemirror/language": "6.11.3",
"@codemirror/legacy-modes": "6.5.1",
"@codemirror/search": "6.5.11",
"@codemirror/state": "6.5.2",
"@codemirror/view": "6.38.0",
"@codemirror/view": "6.38.3",
"@date-fns/tz": "1.4.1",
"@egjs/hammerjs": "2.0.17",
"@formatjs/intl-datetimeformat": "6.18.0",
"@formatjs/intl-displaynames": "6.8.11",
@@ -45,22 +46,22 @@
"@formatjs/intl-numberformat": "8.15.4",
"@formatjs/intl-pluralrules": "5.4.4",
"@formatjs/intl-relativetimeformat": "11.4.11",
"@fullcalendar/core": "6.1.18",
"@fullcalendar/daygrid": "6.1.18",
"@fullcalendar/interaction": "6.1.18",
"@fullcalendar/list": "6.1.18",
"@fullcalendar/luxon3": "6.1.18",
"@fullcalendar/timegrid": "6.1.18",
"@fullcalendar/core": "6.1.19",
"@fullcalendar/daygrid": "6.1.19",
"@fullcalendar/interaction": "6.1.19",
"@fullcalendar/list": "6.1.19",
"@fullcalendar/luxon3": "6.1.19",
"@fullcalendar/timegrid": "6.1.19",
"@home-assistant/webawesome": "3.0.0-beta.6.ha.0",
"@lezer/highlight": "1.2.1",
"@lit-labs/motion": "1.0.8",
"@lit-labs/observers": "2.0.5",
"@lit-labs/virtualizer": "2.1.0",
"@lit/context": "1.1.5",
"@lit/reactive-element": "2.1.0",
"@lit-labs/motion": "1.0.9",
"@lit-labs/observers": "2.0.6",
"@lit-labs/virtualizer": "2.1.1",
"@lit/context": "1.1.6",
"@lit/reactive-element": "2.1.1",
"@material/chips": "=14.0.0-canary.53b3cad2f.0",
"@material/data-table": "=14.0.0-canary.53b3cad2f.0",
"@material/mwc-base": "0.27.0",
"@material/mwc-button": "0.27.0",
"@material/mwc-checkbox": "0.27.0",
"@material/mwc-dialog": "0.27.0",
"@material/mwc-drawer": "0.27.0",
@@ -80,38 +81,37 @@
"@material/mwc-top-app-bar": "0.27.0",
"@material/mwc-top-app-bar-fixed": "0.27.0",
"@material/top-app-bar": "=14.0.0-canary.53b3cad2f.0",
"@material/web": "2.3.0",
"@material/web": "2.4.0",
"@mdi/js": "7.4.47",
"@mdi/svg": "7.4.47",
"@replit/codemirror-indentation-markers": "6.5.3",
"@shoelace-style/shoelace": "2.20.1",
"@swc/helpers": "0.5.17",
"@thomasloven/round-slider": "0.6.0",
"@tsparticles/engine": "3.8.1",
"@tsparticles/engine": "3.9.1",
"@tsparticles/preset-links": "3.2.0",
"@vaadin/combo-box": "24.7.9",
"@vaadin/vaadin-themable-mixin": "24.7.9",
"@vaadin/combo-box": "24.9.1",
"@vaadin/vaadin-themable-mixin": "24.9.1",
"@vibrant/color": "4.0.0",
"@vue/web-component-wrapper": "1.3.0",
"@webcomponents/scoped-custom-element-registry": "0.0.10",
"@webcomponents/webcomponentsjs": "2.8.0",
"app-datepicker": "5.1.1",
"barcode-detector": "3.0.5",
"color-name": "2.0.0",
"color-name": "2.0.2",
"comlink": "4.4.2",
"core-js": "3.43.0",
"core-js": "3.45.1",
"cropperjs": "1.6.2",
"culori": "4.0.2",
"date-fns": "4.1.0",
"date-fns-tz": "3.2.0",
"deep-clone-simple": "1.1.1",
"deep-freeze": "0.0.1",
"dialog-polyfill": "0.5.6",
"echarts": "5.6.0",
"echarts": "6.0.0",
"element-internals-polyfill": "3.0.2",
"fuse.js": "7.1.0",
"google-timezones-json": "1.2.0",
"gulp-zopfli-green": "6.0.2",
"hls.js": "1.6.6",
"hls.js": "1.6.13",
"home-assistant-js-websocket": "9.5.0",
"idb-keyval": "6.2.2",
"intl-messageformat": "10.7.16",
@@ -119,10 +119,10 @@
"leaflet": "1.9.4",
"leaflet-draw": "patch:leaflet-draw@npm%3A1.0.4#./.yarn/patches/leaflet-draw-npm-1.0.4-0ca0ebcf65.patch",
"leaflet.markercluster": "1.5.3",
"lit": "3.3.0",
"lit-html": "3.3.0",
"luxon": "3.6.1",
"marked": "16.0.0",
"lit": "3.3.1",
"lit-html": "3.3.1",
"luxon": "3.7.2",
"marked": "16.3.0",
"memoize-one": "6.0.0",
"node-vibrant": "4.0.3",
"object-hash": "3.0.0",
@@ -135,8 +135,7 @@
"stacktrace-js": "2.0.2",
"superstruct": "2.0.2",
"tinykeys": "3.0.0",
"ua-parser-js": "2.0.4",
"vis-data": "7.1.9",
"ua-parser-js": "2.0.5",
"vue": "2.7.16",
"vue2-daterange-picker": "0.6.8",
"weekstart": "2.0.0",
@@ -149,29 +148,30 @@
"xss": "1.0.15"
},
"devDependencies": {
"@babel/core": "7.28.0",
"@babel/core": "7.28.4",
"@babel/helper-define-polyfill-provider": "0.6.5",
"@babel/plugin-transform-runtime": "7.28.0",
"@babel/preset-env": "7.28.0",
"@bundle-stats/plugin-webpack-filter": "4.21.0",
"@lokalise/node-api": "14.9.1",
"@babel/plugin-transform-runtime": "7.28.3",
"@babel/preset-env": "7.28.3",
"@bundle-stats/plugin-webpack-filter": "4.21.3",
"@lokalise/node-api": "15.2.1",
"@octokit/auth-oauth-device": "8.0.1",
"@octokit/plugin-retry": "8.0.1",
"@octokit/rest": "22.0.0",
"@rsdoctor/rspack-plugin": "1.1.7",
"@rspack/cli": "1.4.4",
"@rspack/core": "1.4.4",
"@rsdoctor/rspack-plugin": "1.3.0",
"@rspack/core": "1.5.7",
"@rspack/dev-server": "1.1.4",
"@types/babel__plugin-transform-runtime": "7.9.5",
"@types/chromecast-caf-receiver": "6.0.22",
"@types/chromecast-caf-sender": "1.0.11",
"@types/color-name": "2.0.0",
"@types/culori": "4.0.1",
"@types/html-minifier-terser": "7.0.2",
"@types/js-yaml": "4.0.9",
"@types/leaflet": "1.9.19",
"@types/leaflet-draw": "1.0.12",
"@types/leaflet.markercluster": "1.5.5",
"@types/leaflet": "1.9.20",
"@types/leaflet-draw": "1.0.13",
"@types/leaflet.markercluster": "1.5.6",
"@types/lodash.merge": "4.6.9",
"@types/luxon": "3.6.2",
"@types/luxon": "3.7.1",
"@types/mocha": "10.0.10",
"@types/qrcode": "1.5.5",
"@types/sortablejs": "1.15.8",
@@ -182,18 +182,18 @@
"babel-loader": "10.0.0",
"babel-plugin-template-html-minifier": "4.1.0",
"browserslist-useragent-regexp": "4.1.3",
"del": "8.0.0",
"eslint": "9.30.1",
"del": "8.0.1",
"eslint": "9.36.0",
"eslint-config-airbnb-base": "15.0.0",
"eslint-config-prettier": "10.1.5",
"eslint-config-prettier": "10.1.8",
"eslint-import-resolver-webpack": "0.13.10",
"eslint-plugin-import": "2.32.0",
"eslint-plugin-lit": "2.1.1",
"eslint-plugin-lit-a11y": "5.1.0",
"eslint-plugin-unused-imports": "4.1.4",
"eslint-plugin-lit-a11y": "5.1.1",
"eslint-plugin-unused-imports": "4.2.0",
"eslint-plugin-wc": "3.0.1",
"fancy-log": "2.0.0",
"fs-extra": "11.3.0",
"fs-extra": "11.3.2",
"glob": "11.0.3",
"gulp": "5.0.1",
"gulp-brotli": "3.0.0",
@@ -201,23 +201,23 @@
"gulp-rename": "2.1.0",
"html-minifier-terser": "7.2.0",
"husky": "9.1.7",
"jsdom": "26.1.0",
"jsdom": "27.0.0",
"jszip": "3.10.1",
"lint-staged": "16.1.2",
"lint-staged": "16.2.1",
"lit-analyzer": "2.0.3",
"lodash.merge": "4.6.2",
"lodash.template": "4.5.0",
"map-stream": "0.0.7",
"pinst": "3.0.0",
"prettier": "3.6.2",
"rspack-manifest-plugin": "5.0.3",
"serve": "14.2.4",
"rspack-manifest-plugin": "5.1.0",
"serve": "14.2.5",
"sinon": "21.0.0",
"tar": "7.4.3",
"tar": "7.5.1",
"terser-webpack-plugin": "5.3.14",
"ts-lit-plugin": "2.0.2",
"typescript": "5.8.3",
"typescript-eslint": "8.35.1",
"typescript": "5.9.2",
"typescript-eslint": "8.44.1",
"vite-tsconfig-paths": "5.1.4",
"vitest": "3.2.4",
"webpack-stats-plugin": "1.1.3",
@@ -226,14 +226,14 @@
},
"resolutions": {
"@material/mwc-button@^0.25.3": "^0.27.0",
"lit": "3.3.0",
"lit-html": "3.3.0",
"lit": "3.3.1",
"lit-html": "3.3.1",
"clean-css": "5.3.3",
"@lit/reactive-element": "2.1.0",
"@fullcalendar/daygrid": "6.1.18",
"globals": "16.3.0",
"@lit/reactive-element": "2.1.1",
"@fullcalendar/daygrid": "6.1.19",
"globals": "16.4.0",
"tslib": "2.8.1",
"@material/mwc-list@^0.27.0": "patch:@material/mwc-list@npm%3A0.27.0#~/.yarn/patches/@material-mwc-list-npm-0.27.0-5344fc9de4.patch"
},
"packageManager": "yarn@4.9.2"
"packageManager": "yarn@4.10.3"
}
+8
View File
@@ -1,3 +1,11 @@
export default {
trailingComma: "es5",
overrides: [
{
files: "*.globals.ts",
options: {
printWidth: 9999, // Effectively disables line wrapping for these files
},
},
],
};
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

@@ -1,35 +1,31 @@
<svg width="160" height="160" viewBox="0 0 160 160" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1738_5532)">
<g clip-path="url(#clip0_3969_57097)">
<path d="M0 4C0 1.79086 1.79086 0 4 0H16C18.2091 0 20 1.79086 20 4V4C20 6.20914 18.2091 8 16 8H4C1.79086 8 0 6.20914 0 4V4Z" fill="white" fill-opacity="0.48"/>
<path d="M40 4C40 1.79086 41.7909 0 44 0V0C46.2091 0 48 1.79086 48 4V4C48 6.20914 46.2091 8 44 8V8C41.7909 8 40 6.20914 40 4V4Z" fill="white" fill-opacity="0.24"/>
<path d="M0 20C0 15.5817 3.58172 12 8 12H40C44.4183 12 48 15.5817 48 20V64C48 68.4183 44.4183 72 40 72H8C3.58172 72 0 68.4183 0 64V20Z" fill="#1C1C1C"/>
<path d="M8 12.5H40C44.1421 12.5 47.5 15.8579 47.5 20V64C47.5 68.1421 44.1421 71.5 40 71.5H8C3.85787 71.5 0.5 68.1421 0.5 64V20L0.509766 19.6143C0.704063 15.7792 3.77915 12.7041 7.61426 12.5098L8 12.5Z" stroke="white" stroke-opacity="0.24"/>
<path d="M18.9844 41.0156C18.9844 40.0781 18.7031 39.2656 18.1406 38.5781C17.5781 37.8594 16.8594 37.375 15.9844 37.125V36C15.9844 35.4375 16.125 34.9375 16.4062 34.5C16.6875 34.0312 17.0469 33.6719 17.4844 33.4219C17.9531 33.1406 18.4531 33 18.9844 33H29.0156C29.5469 33 30.0312 33.1406 30.4688 33.4219C30.9375 33.6719 31.3125 34.0312 31.5938 34.5C31.875 34.9375 32.0156 35.4375 32.0156 36V37.125C31.1406 37.375 30.4219 37.8594 29.8594 38.5781C29.2969 39.2656 29.0156 40.0781 29.0156 41.0156V42.9844H18.9844V41.0156ZM33 39C33.5625 39 34.0312 39.2031 34.4062 39.6094C34.8125 39.9844 35.0156 40.4531 35.0156 41.0156V45.9844C35.0156 46.5469 34.875 47.0625 34.5938 47.5312C34.3125 47.9688 33.9375 48.3281 33.4688 48.6094C33.0312 48.8594 32.5469 48.9844 32.0156 48.9844V50.0156C32.0156 50.2656 31.9062 50.5 31.6875 50.7188C31.5 50.9062 31.2656 51 30.9844 51C30.7344 51 30.5 50.9062 30.2812 50.7188C30.0938 50.5 30 50.2656 30 50.0156V48.9844H18V50.0156C18 50.2656 17.8906 50.5 17.6719 50.7188C17.4844 50.9062 17.2656 51 17.0156 51C16.7344 51 16.4844 50.9062 16.2656 50.7188C16.0781 50.5 15.9844 50.2656 15.9844 50.0156V48.9844C15.4531 48.9844 14.9531 48.8594 14.4844 48.6094C14.0469 48.3281 13.6875 47.9688 13.4062 47.5312C13.125 47.0625 12.9844 46.5469 12.9844 45.9844V41.0156C12.9844 40.4531 13.1719 39.9844 13.5469 39.6094C13.9531 39.2031 14.4375 39 15 39C15.5625 39 16.0312 39.2031 16.4062 39.6094C16.8125 39.9844 17.0156 40.4531 17.0156 41.0156V45H30.9844V41.0156C30.9844 40.4531 31.1719 39.9844 31.5469 39.6094C31.9531 39.2031 32.4375 39 33 39Z" fill="#03A9F4"/>
<path d="M56 4C56 1.79086 57.7909 0 60 0H72C74.2091 0 76 1.79086 76 4V4C76 6.20914 74.2091 8 72 8H60C57.7909 8 56 6.20914 56 4V4Z" fill="white" fill-opacity="0.48"/>
<path d="M96 4C96 1.79086 97.7909 0 100 0V0C102.209 0 104 1.79086 104 4V4C104 6.20914 102.209 8 100 8V8C97.7909 8 96 6.20914 96 4V4Z" fill="white" fill-opacity="0.24"/>
<path d="M56 20C56 15.5817 59.5817 12 64 12H96C100.418 12 104 15.5817 104 20V64C104 68.4183 100.418 72 96 72H64C59.5817 72 56 68.4183 56 64V20Z" fill="#1C1C1C"/>
<path d="M64 12.5H96C100.142 12.5 103.5 15.8579 103.5 20V64C103.5 68.1421 100.142 71.5 96 71.5H64C59.8579 71.5 56.5 68.1421 56.5 64V20L56.5098 19.6143C56.7041 15.7792 59.7792 12.7041 63.6143 12.5098L64 12.5Z" stroke="white" stroke-opacity="0.24"/>
<path d="M86 39.9844H89.9844V42H88.0156V50.0156H71.9844V42H70.0156V39.9844H74C73.4375 39.9844 72.9531 39.7969 72.5469 39.4219C72.1719 39.0156 71.9844 38.5469 71.9844 38.0156V33.9844H77.9844V38.0156C77.9844 38.5469 77.7812 39.0156 77.375 39.4219C77 39.7969 76.5469 39.9844 76.0156 39.9844H83.9844V36.9844C83.9844 36.7344 83.8906 36.5156 83.7031 36.3281C83.5156 36.1094 83.2812 36 83 36C82.7188 36 82.4844 36.1094 82.2969 36.3281C82.1094 36.5156 82.0156 36.7344 82.0156 36.9844H80C80 36.4531 80.125 35.9688 80.375 35.5312C80.6562 35.0625 81.0156 34.6875 81.4531 34.4062C81.9219 34.125 82.4375 33.9844 83 33.9844C83.5625 33.9844 84.0625 34.125 84.5 34.4062C84.9688 34.6875 85.3281 35.0625 85.5781 35.5312C85.8594 35.9688 86 36.4531 86 36.9844V39.9844ZM80.9844 48V42H79.0156V48H80.9844Z" fill="#03A9F4"/>
<path d="M112 4C112 1.79086 113.791 0 116 0H128C130.209 0 132 1.79086 132 4V4C132 6.20914 130.209 8 128 8H116C113.791 8 112 6.20914 112 4V4Z" fill="white" fill-opacity="0.48"/>
<path d="M152 4C152 1.79086 153.791 0 156 0V0C158.209 0 160 1.79086 160 4V4C160 6.20914 158.209 8 156 8V8C153.791 8 152 6.20914 152 4V4Z" fill="white" fill-opacity="0.24"/>
<path d="M112 20C112 15.5817 115.582 12 120 12H152C156.418 12 160 15.5817 160 20V64C160 68.4183 156.418 72 152 72H120C115.582 72 112 68.4183 112 64V20Z" fill="#1C1C1C"/>
<path d="M120 12.5H152C156.142 12.5 159.5 15.8579 159.5 20V64C159.5 68.1421 156.142 71.5 152 71.5H120C115.858 71.5 112.5 68.1421 112.5 64V20L112.51 19.6143C112.704 15.7792 115.779 12.7041 119.614 12.5098L120 12.5Z" stroke="white" stroke-opacity="0.24"/>
<path d="M142.984 36.9844C144.078 36.9844 145.016 37.3906 145.797 38.2031C146.609 38.9844 147.016 39.9219 147.016 41.0156V50.0156H145V47.0156H127V50.0156H124.984V35.0156H127V44.0156H135.016V36.9844H142.984ZM133.094 42.0938C132.5 42.6875 131.797 42.9844 130.984 42.9844C130.172 42.9844 129.469 42.6875 128.875 42.0938C128.281 41.5 127.984 40.7969 127.984 39.9844C127.984 39.1719 128.281 38.4688 128.875 37.875C129.469 37.2812 130.172 36.9844 130.984 36.9844C131.797 36.9844 132.5 37.2812 133.094 37.875C133.688 38.4688 133.984 39.1719 133.984 39.9844C133.984 40.7969 133.688 41.5 133.094 42.0938Z" fill="#03A9F4"/>
<path d="M0 84C0 81.7909 1.79086 80 4 80H16C18.2091 80 20 81.7909 20 84V84C20 86.2091 18.2091 88 16 88H4C1.79086 88 0 86.2091 0 84V84Z" fill="white" fill-opacity="0.48"/>
<path d="M28 84C28 81.7909 29.7909 80 32 80V80C34.2091 80 36 81.7909 36 84V84C36 86.2091 34.2091 88 32 88V88C29.7909 88 28 86.2091 28 84V84Z" fill="white" fill-opacity="0.24"/>
<path d="M40 84C40 81.7909 41.7909 80 44 80V80C46.2091 80 48 81.7909 48 84V84C48 86.2091 46.2091 88 44 88V88C41.7909 88 40 86.2091 40 84V84Z" fill="white" fill-opacity="0.24"/>
<path d="M0 100C0 95.5817 3.58172 92 8 92H40C44.4183 92 48 95.5817 48 100V144C48 148.418 44.4183 152 40 152H8C3.58172 152 0 148.418 0 144V100Z" fill="#1C1C1C"/>
<path d="M8 92.5H40C44.1421 92.5 47.5 95.8579 47.5 100V144C47.5 148.142 44.1421 151.5 40 151.5H8C3.85787 151.5 0.5 148.142 0.5 144V100L0.509766 99.6143C0.704063 95.7792 3.77915 92.7041 7.61426 92.5098L8 92.5Z" stroke="white" stroke-opacity="0.24"/>
<path d="M14.0156 116H33.9844V128H32.0156V125.984H27.9844V128H26.0156V118.016H15.9844V128H14.0156V116ZM32.0156 118.016H27.9844V119.984H32.0156V118.016ZM27.9844 124.016H32.0156V122H27.9844V124.016Z" fill="#03A9F4"/>
<path d="M56 84C56 81.7909 57.7909 80 60 80H72C74.2091 80 76 81.7909 76 84V84C76 86.2091 74.2091 88 72 88H60C57.7909 88 56 86.2091 56 84V84Z" fill="white" fill-opacity="0.48"/>
<path d="M84 84C84 81.7909 85.7909 80 88 80V80C90.2091 80 92 81.7909 92 84V84C92 86.2091 90.2091 88 88 88V88C85.7909 88 84 86.2091 84 84V84Z" fill="white" fill-opacity="0.24"/>
<path d="M96 84C96 81.7909 97.7909 80 100 80V80C102.209 80 104 81.7909 104 84V84C104 86.2091 102.209 88 100 88V88C97.7909 88 96 86.2091 96 84V84Z" fill="white" fill-opacity="0.24"/>
<path d="M56 100C56 95.5817 59.5817 92 64 92H96C100.418 92 104 95.5817 104 100V144C104 148.418 100.418 152 96 152H64C59.5817 152 56 148.418 56 144V100Z" fill="#1C1C1C"/>
<path d="M64 92.5H96C100.142 92.5 103.5 95.8579 103.5 100V144C103.5 148.142 100.142 151.5 96 151.5H64C59.8579 151.5 56.5 148.142 56.5 144V100L56.5098 99.6143C56.7041 95.7792 59.7792 92.7041 63.6143 92.5098L64 92.5Z" stroke="white" stroke-opacity="0.24"/>
<path d="M77.9844 121.016V122.984H80V121.016H77.9844ZM82.0156 116V131H71V128.984H73.0156V113H82.0156V113.984H86.9844V128.984H89V131H85.0156V116H82.0156Z" fill="#03A9F4"/>
<path d="M0 20C0 15.5817 3.58172 12 8 12H68C72.4183 12 76 15.5817 76 20V36C76 40.4183 72.4183 44 68 44H8C3.58172 44 0 40.4183 0 36V20Z" fill="#1C1C1C"/>
<path d="M8 12.5H68C72.1421 12.5 75.5 15.8579 75.5 20V36C75.5 40.1421 72.1421 43.5 68 43.5H8C3.85786 43.5 0.5 40.1421 0.5 36V20C0.5 15.8579 3.85786 12.5 8 12.5Z" stroke="white" stroke-opacity="0.24"/>
<path d="M32.9844 27.0156C32.9844 26.0781 32.7031 25.2656 32.1406 24.5781C31.5781 23.8594 30.8594 23.375 29.9844 23.125V22C29.9844 21.4375 30.125 20.9375 30.4062 20.5C30.6875 20.0312 31.0469 19.6719 31.4844 19.4219C31.9531 19.1406 32.4531 19 32.9844 19H43.0156C43.5469 19 44.0312 19.1406 44.4688 19.4219C44.9375 19.6719 45.3125 20.0312 45.5938 20.5C45.875 20.9375 46.0156 21.4375 46.0156 22V23.125C45.1406 23.375 44.4219 23.8594 43.8594 24.5781C43.2969 25.2656 43.0156 26.0781 43.0156 27.0156V28.9844H32.9844V27.0156ZM47 25C47.5625 25 48.0312 25.2031 48.4062 25.6094C48.8125 25.9844 49.0156 26.4531 49.0156 27.0156V31.9844C49.0156 32.5469 48.875 33.0625 48.5938 33.5312C48.3125 33.9688 47.9375 34.3281 47.4688 34.6094C47.0312 34.8594 46.5469 34.9844 46.0156 34.9844V36.0156C46.0156 36.2656 45.9062 36.5 45.6875 36.7188C45.5 36.9062 45.2656 37 44.9844 37C44.7344 37 44.5 36.9062 44.2812 36.7188C44.0938 36.5 44 36.2656 44 36.0156V34.9844H32V36.0156C32 36.2656 31.8906 36.5 31.6719 36.7188C31.4844 36.9062 31.2656 37 31.0156 37C30.7344 37 30.4844 36.9062 30.2656 36.7188C30.0781 36.5 29.9844 36.2656 29.9844 36.0156V34.9844C29.4531 34.9844 28.9531 34.8594 28.4844 34.6094C28.0469 34.3281 27.6875 33.9688 27.4062 33.5312C27.125 33.0625 26.9844 32.5469 26.9844 31.9844V27.0156C26.9844 26.4531 27.1719 25.9844 27.5469 25.6094C27.9531 25.2031 28.4375 25 29 25C29.5625 25 30.0312 25.2031 30.4062 25.6094C30.8125 25.9844 31.0156 26.4531 31.0156 27.0156V31H44.9844V27.0156C44.9844 26.4531 45.1719 25.9844 45.5469 25.6094C45.9531 25.2031 46.4375 25 47 25Z" fill="#03A9F4"/>
<path d="M0 56C0 51.5817 3.58172 48 8 48H68C72.4183 48 76 51.5817 76 56V72C76 76.4183 72.4183 80 68 80H8C3.58172 80 0 76.4183 0 72V56Z" fill="#1C1C1C"/>
<path d="M8 48.5H68C72.1421 48.5 75.5 51.8579 75.5 56V72C75.5 76.1421 72.1421 79.5 68 79.5H8C3.85786 79.5 0.5 76.1421 0.5 72V56C0.5 51.8579 3.85786 48.5 8 48.5Z" stroke="white" stroke-opacity="0.24"/>
<path d="M44 61.9844H47.9844V64H46.0156V72.0156H29.9844V64H28.0156V61.9844H32C31.4375 61.9844 30.9531 61.7969 30.5469 61.4219C30.1719 61.0156 29.9844 60.5469 29.9844 60.0156V55.9844H35.9844V60.0156C35.9844 60.5469 35.7812 61.0156 35.375 61.4219C35 61.7969 34.5469 61.9844 34.0156 61.9844H41.9844V58.9844C41.9844 58.7344 41.8906 58.5156 41.7031 58.3281C41.5156 58.1094 41.2812 58 41 58C40.7188 58 40.4844 58.1094 40.2969 58.3281C40.1094 58.5156 40.0156 58.7344 40.0156 58.9844H38C38 58.4531 38.125 57.9688 38.375 57.5312C38.6562 57.0625 39.0156 56.6875 39.4531 56.4062C39.9219 56.125 40.4375 55.9844 41 55.9844C41.5625 55.9844 42.0625 56.125 42.5 56.4062C42.9688 56.6875 43.3281 57.0625 43.5781 57.5312C43.8594 57.9688 44 58.4531 44 58.9844V61.9844ZM38.9844 70V64H37.0156V70H38.9844Z" fill="#03A9F4"/>
<path d="M0 92C0 87.5817 3.58172 84 8 84H68C72.4183 84 76 87.5817 76 92V108C76 112.418 72.4183 116 68 116H8C3.58172 116 0 112.418 0 108V92Z" fill="#1C1C1C"/>
<path d="M8 84.5H68C72.1421 84.5 75.5 87.8579 75.5 92V108C75.5 112.142 72.1421 115.5 68 115.5H8C3.85786 115.5 0.5 112.142 0.5 108V92C0.5 87.8579 3.85786 84.5 8 84.5Z" stroke="white" stroke-opacity="0.24"/>
<path d="M44.9844 94.9844C46.0781 94.9844 47.0156 95.3906 47.7969 96.2031C48.6094 96.9844 49.0156 97.9219 49.0156 99.0156V108.016H47V105.016H29V108.016H26.9844V93.0156H29V102.016H37.0156V94.9844H44.9844ZM35.0938 100.094C34.5 100.688 33.7969 100.984 32.9844 100.984C32.1719 100.984 31.4688 100.688 30.875 100.094C30.2812 99.5 29.9844 98.7969 29.9844 97.9844C29.9844 97.1719 30.2812 96.4688 30.875 95.875C31.4688 95.2812 32.1719 94.9844 32.9844 94.9844C33.7969 94.9844 34.5 95.2812 35.0938 95.875C35.6875 96.4688 35.9844 97.1719 35.9844 97.9844C35.9844 98.7969 35.6875 99.5 35.0938 100.094Z" fill="#03A9F4"/>
<path d="M0 128C0 123.582 3.58172 120 8 120H68C72.4183 120 76 123.582 76 128V144C76 148.418 72.4183 152 68 152H8C3.58172 152 0 148.418 0 144V128Z" fill="#1C1C1C"/>
<path d="M8 120.5H68C72.1421 120.5 75.5 123.858 75.5 128V144C75.5 148.142 72.1421 151.5 68 151.5H8C3.85786 151.5 0.5 148.142 0.5 144V128C0.5 123.858 3.85786 120.5 8 120.5Z" stroke="white" stroke-opacity="0.24"/>
<path d="M46.0156 136.984H47.9844V142.984C47.9844 143.516 47.7812 143.984 47.375 144.391C47 144.797 46.5469 145 46.0156 145C46.0156 145.281 45.9062 145.516 45.6875 145.703C45.5 145.891 45.2656 145.984 44.9844 145.984H31.0156C30.7344 145.984 30.4844 145.891 30.2656 145.703C30.0781 145.516 29.9844 145.281 29.9844 145C29.4531 145 28.9844 144.797 28.5781 144.391C28.2031 143.984 28.0156 143.516 28.0156 142.984V136.984H31.0156V136.234C31.0156 135.641 31.2344 135.125 31.6719 134.688C32.1406 134.219 32.6719 133.984 33.2656 133.984C33.8906 133.984 34.4531 134.234 34.9531 134.734L36.3125 136.281C36.5 136.5 36.7812 136.734 37.1562 136.984H44V128.828C44 128.609 43.9219 128.422 43.7656 128.266C43.6094 128.078 43.4062 127.984 43.1562 127.984C42.9375 127.984 42.75 128.062 42.5938 128.219L41.3281 129.484C41.3906 129.734 41.4219 129.906 41.4219 130C41.4219 130.344 41.3125 130.703 41.0938 131.078L38.3281 128.312C38.7031 128.094 39.0625 127.984 39.4062 127.984C39.5625 127.984 39.7344 128.016 39.9219 128.078L41.1875 126.812C41.7188 126.281 42.375 126.016 43.1562 126.016C43.9375 126.016 44.6094 126.297 45.1719 126.859C45.7344 127.391 46.0156 128.047 46.0156 128.828V136.984ZM31.5781 132.438C31.2031 132.031 31.0156 131.547 31.0156 130.984C31.0156 130.422 31.2031 129.953 31.5781 129.578C31.9531 129.203 32.4219 129.016 32.9844 129.016C33.5469 129.016 34.0156 129.203 34.3906 129.578C34.7969 129.953 35 130.422 35 130.984C35 131.547 34.7969 132.031 34.3906 132.438C34.0156 132.812 33.5469 133 32.9844 133C32.4219 133 31.9531 132.812 31.5781 132.438Z" fill="#03A9F4"/>
<path d="M84 4C84 1.79086 85.7909 0 88 0H100C102.209 0 104 1.79086 104 4V4C104 6.20914 102.209 8 100 8H88C85.7909 8 84 6.20914 84 4V4Z" fill="white" fill-opacity="0.48"/>
<path d="M84 20C84 15.5817 87.5817 12 92 12H152C156.418 12 160 15.5817 160 20V36C160 40.4183 156.418 44 152 44H92C87.5817 44 84 40.4183 84 36V20Z" fill="#1C1C1C"/>
<path d="M92 12.5H152C156.142 12.5 159.5 15.8579 159.5 20V36C159.5 40.1421 156.142 43.5 152 43.5H92C87.8579 43.5 84.5 40.1421 84.5 36V20C84.5 15.8579 87.8579 12.5 92 12.5Z" stroke="white" stroke-opacity="0.24"/>
<path d="M131.984 30.0156C131.984 30.7656 131.797 31.4531 131.422 32.0781C131.047 32.6719 130.562 33.1406 129.969 33.4844C129.844 34.2031 129.5 34.8125 128.938 35.3125C128.406 35.7812 127.766 36.0156 127.016 36.0156C126.359 36.0156 125.766 35.8281 125.234 35.4531C124.734 35.0781 124.391 34.5938 124.203 34H119.797C119.609 34.5938 119.25 35.0781 118.719 35.4531C118.219 35.8281 117.641 36.0156 116.984 36.0156C116.234 36.0156 115.578 35.7812 115.016 35.3125C114.484 34.8125 114.156 34.2031 114.031 33.4844C113.438 33.1406 112.953 32.6719 112.578 32.0781C112.203 31.4531 112.016 30.7656 112.016 30.0156C112.016 29.1094 112.266 28.3125 112.766 27.625C113.297 26.9375 113.969 26.4688 114.781 26.2188L113 24.3906L112.719 24.7188C112.5 24.9062 112.25 25 111.969 25C111.719 25 111.5 24.9062 111.312 24.7188C111.094 24.5312 110.984 24.2969 110.984 24.0156C110.984 23.7344 111.094 23.5 111.312 23.3125L113.281 21.2969C113.469 21.1094 113.703 21.0156 113.984 21.0156C114.266 21.0156 114.5 21.1094 114.688 21.2969C114.906 21.4844 115.016 21.7188 115.016 22C115.016 22.2812 114.906 22.5156 114.688 22.7031L114.406 22.9844L115.812 24.3906L116.609 22.0469C116.797 21.4219 117.156 20.9219 117.688 20.5469C118.219 20.1719 118.797 19.9844 119.422 19.9844H124.578C125.203 19.9844 125.781 20.1719 126.312 20.5469C126.844 20.9219 127.203 21.4219 127.391 22.0469L128.75 26.0781C129.375 26.2031 129.922 26.4531 130.391 26.8281C130.891 27.2031 131.281 27.6719 131.562 28.2344C131.844 28.7656 131.984 29.3594 131.984 30.0156ZM116.984 34C117.266 34 117.5 33.9062 117.688 33.7188C117.906 33.5 118.016 33.2656 118.016 33.0156C118.016 32.7344 117.906 32.5 117.688 32.3125C117.5 32.0938 117.266 31.9844 116.984 31.9844C116.734 31.9844 116.5 32.0938 116.281 32.3125C116.094 32.5 116 32.7344 116 33.0156C116 33.2656 116.094 33.5 116.281 33.7188C116.5 33.9062 116.734 34 116.984 34ZM121.016 25.9844V22H119.422C118.953 22 118.641 22.2344 118.484 22.7031L117.406 25.9844H121.016ZM122.984 22V25.9844H126.594L125.516 22.7031C125.359 22.2344 125.047 22 124.578 22H122.984ZM127.016 34C127.266 34 127.484 33.9062 127.672 33.7188C127.891 33.5 128 33.2656 128 33.0156C128 32.7344 127.891 32.5 127.672 32.3125C127.484 32.0938 127.266 31.9844 127.016 31.9844C126.734 31.9844 126.484 32.0938 126.266 32.3125C126.078 32.5 125.984 32.7344 125.984 33.0156C125.984 33.2656 126.078 33.5 126.266 33.7188C126.484 33.9062 126.734 34 127.016 34Z" fill="#03A9F4"/>
<path d="M84 56C84 51.5817 87.5817 48 92 48H152C156.418 48 160 51.5817 160 56V72C160 76.4183 156.418 80 152 80H92C87.5817 80 84 76.4183 84 72V56Z" fill="#1C1C1C"/>
<path d="M92 48.5H152C156.142 48.5 159.5 51.8579 159.5 56V72C159.5 76.1421 156.142 79.5 152 79.5H92C87.8579 79.5 84.5 76.1421 84.5 72V56C84.5 51.8579 87.8579 48.5 92 48.5Z" stroke="white" stroke-opacity="0.24"/>
<path d="M128.984 58.9844C130.078 58.9844 131.016 59.3906 131.797 60.2031C132.609 60.9844 133.016 61.9219 133.016 63.0156V72.0156H131V69.0156H113V72.0156H110.984V57.0156H113V66.0156H121.016V58.9844H128.984ZM119.094 64.0938C118.5 64.6875 117.797 64.9844 116.984 64.9844C116.172 64.9844 115.469 64.6875 114.875 64.0938C114.281 63.5 113.984 62.7969 113.984 61.9844C113.984 61.1719 114.281 60.4688 114.875 59.875C115.469 59.2812 116.172 58.9844 116.984 58.9844C117.797 58.9844 118.5 59.2812 119.094 59.875C119.688 60.4688 119.984 61.1719 119.984 61.9844C119.984 62.7969 119.688 63.5 119.094 64.0938Z" fill="#03A9F4"/>
<path d="M84 92C84 87.5817 87.5817 84 92 84H152C156.418 84 160 87.5817 160 92V108C160 112.418 156.418 116 152 116H92C87.5817 116 84 112.418 84 108V92Z" fill="#1C1C1C"/>
<path d="M92 84.5H152C156.142 84.5 159.5 87.8579 159.5 92V108C159.5 112.142 156.142 115.5 152 115.5H92C87.8579 115.5 84.5 112.142 84.5 108V92C84.5 87.8579 87.8579 84.5 92 84.5Z" stroke="white" stroke-opacity="0.24"/>
<path d="M112.016 94H131.984V106H130.016V103.984H125.984V106H124.016V96.0156H113.984V106H112.016V94ZM130.016 96.0156H125.984V97.9844H130.016V96.0156ZM125.984 102.016H130.016V100H125.984V102.016Z" fill="#03A9F4"/>
</g>
<defs>
<clipPath id="clip0_1738_5532">
<clipPath id="clip0_3969_57097">
<rect width="160" height="160" fill="white"/>
</clipPath>
</defs>

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 11 KiB

@@ -0,0 +1,76 @@
<svg width="160" height="160" viewBox="0 0 160 160" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_4744_40067)">
<path d="M0 6C0 2.68629 2.68629 0 6 0H28C31.3137 0 34 2.68629 34 6C34 9.31371 31.3137 12 28 12H6C2.68629 12 0 9.31371 0 6Z" fill="white" fill-opacity="0.48"/>
<path d="M0 28C0 23.5817 3.58172 20 8 20H42.6667C47.0849 20 50.6667 23.5817 50.6667 28V36C50.6667 40.4183 47.0849 44 42.6667 44H8.00001C3.58173 44 0 40.4183 0 36V28Z" fill="#1C1C1C"/>
<path d="M8 20.5H42.667C46.809 20.5002 50.167 23.858 50.167 28V36C50.167 40.142 46.809 43.4998 42.667 43.5H8C3.85787 43.5 0.5 40.1421 0.5 36V28C0.5 23.8579 3.85786 20.5 8 20.5Z" stroke="white" stroke-opacity="0.24"/>
<path d="M6 32C6 28.6863 8.68629 26 12 26C15.3137 26 18 28.6863 18 32C18 35.3137 15.3137 38 12 38C8.68629 38 6 35.3137 6 32Z" fill="white" fill-opacity="0.24"/>
<path d="M24 31C24 29.3431 25.3431 28 27 28H39.6667C41.3235 28 42.6667 29.3431 42.6667 31V33C42.6667 34.6569 41.3235 36 39.6667 36H27C25.3431 36 24 34.6569 24 33V31Z" fill="white" fill-opacity="0.24"/>
<path d="M54.6666 28C54.6666 23.5817 58.2483 20 62.6666 20H97.3333C101.752 20 105.333 23.5817 105.333 28V36C105.333 40.4183 101.752 44 97.3333 44H62.6666C58.2484 44 54.6666 40.4183 54.6666 36V28Z" fill="#1C1C1C"/>
<path d="M62.6666 20.5H97.3336C101.476 20.5002 104.834 23.858 104.834 28V36C104.834 40.142 101.476 43.4998 97.3336 43.5H62.6666C58.5245 43.5 55.1666 40.1421 55.1666 36V28C55.1666 23.8579 58.5245 20.5 62.6666 20.5Z" stroke="white" stroke-opacity="0.24"/>
<path d="M60.6666 32C60.6666 28.6863 63.3529 26 66.6666 26C69.9803 26 72.6666 28.6863 72.6666 32C72.6666 35.3137 69.9803 38 66.6666 38C63.3529 38 60.6666 35.3137 60.6666 32Z" fill="white" fill-opacity="0.24"/>
<path d="M78.6666 31C78.6666 29.3431 80.0098 28 81.6666 28H94.3333C95.9901 28 97.3333 29.3431 97.3333 31V33C97.3333 34.6569 95.9901 36 94.3333 36H81.6666C80.0098 36 78.6666 34.6569 78.6666 33V31Z" fill="white" fill-opacity="0.24"/>
<path d="M109.333 28C109.333 23.5817 112.915 20 117.333 20H152C156.418 20 160 23.5817 160 28V36C160 40.4183 156.418 44 152 44H117.333C112.915 44 109.333 40.4183 109.333 36V28Z" fill="#1C1C1C"/>
<path d="M117.333 20.5H152C156.142 20.5002 159.5 23.858 159.5 28V36C159.5 40.142 156.142 43.4998 152 43.5H117.333C113.191 43.5 109.833 40.1421 109.833 36V28C109.833 23.8579 113.191 20.5 117.333 20.5Z" stroke="white" stroke-opacity="0.24"/>
<path d="M115.333 32C115.333 28.6863 118.02 26 121.333 26C124.647 26 127.333 28.6863 127.333 32C127.333 35.3137 124.647 38 121.333 38C118.02 38 115.333 35.3137 115.333 32Z" fill="white" fill-opacity="0.24"/>
<path d="M133.333 31C133.333 29.3431 134.677 28 136.333 28H149C150.657 28 152 29.3431 152 31V33C152 34.6569 150.657 36 149 36H136.333C134.677 36 133.333 34.6569 133.333 33V31Z" fill="white" fill-opacity="0.24"/>
<path d="M0 56C0 53.7909 1.79086 52 4 52H29C31.2091 52 33 53.7909 33 56C33 58.2091 31.2091 60 29 60H4C1.79086 60 0 58.2091 0 56Z" fill="white" fill-opacity="0.48"/>
<path d="M0 72C0 67.5817 3.58172 64 8 64H29C33.4183 64 37 67.5817 37 72V96C37 100.418 33.4183 104 29 104H8C3.58172 104 0 100.418 0 96V72Z" fill="#1C1C1C"/>
<path d="M8 64.5H29C33.1421 64.5 36.5 67.8579 36.5 72V96C36.5 100.142 33.1421 103.5 29 103.5H8C3.85786 103.5 0.5 100.142 0.5 96V72C0.5 67.8579 3.85786 64.5 8 64.5Z" stroke="white" stroke-opacity="0.24"/>
<mask id="mask0_4744_40067" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="6" y="72" width="25" height="24">
<path d="M18.5 74C16.6435 74 14.863 74.7375 13.5503 76.0503C12.2375 77.363 11.5 79.1435 11.5 81C11.5 83.38 12.69 85.47 14.5 86.74V89C14.5 89.2652 14.6054 89.5196 14.7929 89.7071C14.9804 89.8946 15.2348 90 15.5 90H21.5C21.7652 90 22.0196 89.8946 22.2071 89.7071C22.3946 89.5196 22.5 89.2652 22.5 89V86.74C24.31 85.47 25.5 83.38 25.5 81C25.5 79.1435 24.7625 77.363 23.4497 76.0503C22.137 74.7375 20.3565 74 18.5 74ZM15.5 93C15.5 93.2652 15.6054 93.5196 15.7929 93.7071C15.9804 93.8946 16.2348 94 16.5 94H20.5C20.7652 94 21.0196 93.8946 21.2071 93.7071C21.3946 93.5196 21.5 93.2652 21.5 93V92H15.5V93Z" fill="black"/>
</mask>
<g mask="url(#mask0_4744_40067)">
<rect x="6.5" y="72" width="24" height="24" fill="#03A9F4"/>
</g>
<path d="M41 72C41 67.5817 44.5817 64 49 64H70C74.4183 64 78 67.5817 78 72V96C78 100.418 74.4183 104 70 104H49C44.5817 104 41 100.418 41 96V72Z" fill="#1C1C1C"/>
<path d="M49 64.5H70C74.1421 64.5 77.5 67.8579 77.5 72V96C77.5 100.142 74.1421 103.5 70 103.5H49C44.8579 103.5 41.5 100.142 41.5 96V72C41.5 67.8579 44.8579 64.5 49 64.5Z" stroke="white" stroke-opacity="0.24"/>
<mask id="mask1_4744_40067" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="47" y="72" width="25" height="24">
<path d="M66.5 80C67.61 80 68.5 80.9 68.5 82V88.76C69.11 89.31 69.5 90.11 69.5 91C69.5 92.66 68.16 94 66.5 94C64.84 94 63.5 92.66 63.5 91C63.5 90.11 63.89 89.31 64.5 88.76V82C64.5 80.9 65.4 80 66.5 80ZM66.5 81C65.95 81 65.5 81.45 65.5 82V83H67.5V82C67.5 81.45 67.05 81 66.5 81ZM52.5 92V84H49.5L59.5 75L63.9 78.96C63.04 79.69 62.5 80.78 62.5 82V88C61.87 88.83 61.5 89.87 61.5 91L61.6 92H52.5Z" fill="black"/>
</mask>
<g mask="url(#mask1_4744_40067)">
<rect x="47.5" y="72" width="24" height="24" fill="#03A9F4"/>
</g>
<path d="M82 72C82 67.5817 85.5817 64 90 64H111C115.418 64 119 67.5817 119 72V96C119 100.418 115.418 104 111 104H90C85.5817 104 82 100.418 82 96V72Z" fill="#1C1C1C"/>
<path d="M90 64.5H111C115.142 64.5 118.5 67.8579 118.5 72V96C118.5 100.142 115.142 103.5 111 103.5H90C85.8579 103.5 82.5 100.142 82.5 96V72C82.5 67.8579 85.8579 64.5 90 64.5Z" stroke="white" stroke-opacity="0.24"/>
<mask id="mask2_4744_40067" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="88" y="72" width="25" height="24">
<path d="M100.5 84H107.5C106.97 88.11 104.22 91.78 100.5 92.92V84H93.5V78.3L100.5 75.19M100.5 73L91.5 77V83C91.5 88.55 95.34 93.73 100.5 95C105.66 93.73 109.5 88.55 109.5 83V77L100.5 73Z" fill="black"/>
</mask>
<g mask="url(#mask2_4744_40067)">
<rect x="88.5" y="72" width="24" height="24" fill="#03A9F4"/>
</g>
<path d="M123 72C123 67.5817 126.582 64 131 64H152C156.418 64 160 67.5817 160 72V96C160 100.418 156.418 104 152 104H131C126.582 104 123 100.418 123 96V72Z" fill="#1C1C1C"/>
<path d="M131 64.5H152C156.142 64.5 159.5 67.8579 159.5 72V96C159.5 100.142 156.142 103.5 152 103.5H131C126.858 103.5 123.5 100.142 123.5 96V72C123.5 67.8579 126.858 64.5 131 64.5Z" stroke="white" stroke-opacity="0.24"/>
<mask id="mask3_4744_40067" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="129" y="72" width="25" height="24">
<path d="M145.5 84C145.5 83.4696 145.711 82.9609 146.086 82.5858C146.461 82.2107 146.97 82 147.5 82C148.03 82 148.539 82.2107 148.914 82.5858C149.289 82.9609 149.5 83.4696 149.5 84C149.5 84.5304 149.289 85.0391 148.914 85.4142C148.539 85.7893 148.03 86 147.5 86C146.97 86 146.461 85.7893 146.086 85.4142C145.711 85.0391 145.5 84.5304 145.5 84ZM139.5 84C139.5 83.4696 139.711 82.9609 140.086 82.5858C140.461 82.2107 140.97 82 141.5 82C142.03 82 142.539 82.2107 142.914 82.5858C143.289 82.9609 143.5 83.4696 143.5 84C143.5 84.5304 143.289 85.0391 142.914 85.4142C142.539 85.7893 142.03 86 141.5 86C140.97 86 140.461 85.7893 140.086 85.4142C139.711 85.0391 139.5 84.5304 139.5 84ZM133.5 84C133.5 83.4696 133.711 82.9609 134.086 82.5858C134.461 82.2107 134.97 82 135.5 82C136.03 82 136.539 82.2107 136.914 82.5858C137.289 82.9609 137.5 83.4696 137.5 84C137.5 84.5304 137.289 85.0391 136.914 85.4142C136.539 85.7893 136.03 86 135.5 86C134.97 86 134.461 85.7893 134.086 85.4142C133.711 85.0391 133.5 84.5304 133.5 84Z" fill="black"/>
</mask>
<g mask="url(#mask3_4744_40067)">
<rect x="129.5" y="72" width="24" height="24" fill="#03A9F4"/>
</g>
<path d="M0 116C0 113.791 1.79086 112 4 112H29C31.2091 112 33 113.791 33 116C33 118.209 31.2091 120 29 120H4C1.79086 120 0 118.209 0 116Z" fill="white" fill-opacity="0.48"/>
<path d="M0 132C0 127.582 3.58172 124 8 124H70C74.4183 124 78 127.582 78 132V160H0V132Z" fill="url(#paint0_linear_4744_40067)"/>
<path d="M8 124.5H70C74.1421 124.5 77.5 127.858 77.5 132V159.5H0.5V132C0.5 127.858 3.85786 124.5 8 124.5Z" stroke="url(#paint1_linear_4744_40067)" stroke-opacity="0.12"/>
<path d="M82 132C82 127.582 85.5817 124 90 124H152C156.418 124 160 127.582 160 132V160H82V132Z" fill="url(#paint2_linear_4744_40067)"/>
<path d="M90 124.5H152C156.142 124.5 159.5 127.858 159.5 132V159.5H82.5V132C82.5 127.858 85.8579 124.5 90 124.5Z" stroke="url(#paint3_linear_4744_40067)" stroke-opacity="0.12"/>
</g>
<defs>
<linearGradient id="paint0_linear_4744_40067" x1="39" y1="124" x2="39" y2="160" gradientUnits="userSpaceOnUse">
<stop offset="0.5" stop-color="#1C1C1C"/>
<stop offset="1" stop-color="#1C1C1C" stop-opacity="0"/>
</linearGradient>
<linearGradient id="paint1_linear_4744_40067" x1="39" y1="124" x2="39" y2="160" gradientUnits="userSpaceOnUse">
<stop offset="0.5" stop-color="white" stop-opacity="0.24"/>
<stop offset="1" stop-opacity="0"/>
</linearGradient>
<linearGradient id="paint2_linear_4744_40067" x1="121" y1="124" x2="121" y2="160" gradientUnits="userSpaceOnUse">
<stop offset="0.5" stop-color="#1C1C1C"/>
<stop offset="1" stop-color="#1C1C1C" stop-opacity="0"/>
</linearGradient>
<linearGradient id="paint3_linear_4744_40067" x1="121" y1="124" x2="121" y2="160" gradientUnits="userSpaceOnUse">
<stop offset="0.5" stop-color="white" stop-opacity="0.24"/>
<stop offset="1" stop-opacity="0"/>
</linearGradient>
<clipPath id="clip0_4744_40067">
<rect width="160" height="160" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 9.3 KiB

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

@@ -1,35 +1,31 @@
<svg width="160" height="160" viewBox="0 0 160 160" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1738_5531)">
<g clip-path="url(#clip0_3969_50764)">
<path d="M0 4C0 1.79086 1.79086 0 4 0H16C18.2091 0 20 1.79086 20 4V4C20 6.20914 18.2091 8 16 8H4C1.79086 8 0 6.20914 0 4V4Z" fill="black" fill-opacity="0.32"/>
<rect x="40" width="8" height="8" rx="4" fill="black" fill-opacity="0.12"/>
<path d="M0 20C0 15.5817 3.58172 12 8 12H40C44.4183 12 48 15.5817 48 20V64C48 68.4183 44.4183 72 40 72H8C3.58172 72 0 68.4183 0 64V20Z" fill="white"/>
<path d="M8 12.5H40C44.1421 12.5 47.5 15.8579 47.5 20V64C47.5 68.1421 44.1421 71.5 40 71.5H8C3.85787 71.5 0.5 68.1421 0.5 64V20L0.509766 19.6143C0.704063 15.7792 3.77915 12.7041 7.61426 12.5098L8 12.5Z" stroke="black" stroke-opacity="0.12"/>
<path d="M18.9844 41.0156C18.9844 40.0781 18.7031 39.2656 18.1406 38.5781C17.5781 37.8594 16.8594 37.375 15.9844 37.125V36C15.9844 35.4375 16.125 34.9375 16.4062 34.5C16.6875 34.0312 17.0469 33.6719 17.4844 33.4219C17.9531 33.1406 18.4531 33 18.9844 33H29.0156C29.5469 33 30.0312 33.1406 30.4688 33.4219C30.9375 33.6719 31.3125 34.0312 31.5938 34.5C31.875 34.9375 32.0156 35.4375 32.0156 36V37.125C31.1406 37.375 30.4219 37.8594 29.8594 38.5781C29.2969 39.2656 29.0156 40.0781 29.0156 41.0156V42.9844H18.9844V41.0156ZM33 39C33.5625 39 34.0312 39.2031 34.4062 39.6094C34.8125 39.9844 35.0156 40.4531 35.0156 41.0156V45.9844C35.0156 46.5469 34.875 47.0625 34.5938 47.5312C34.3125 47.9688 33.9375 48.3281 33.4688 48.6094C33.0312 48.8594 32.5469 48.9844 32.0156 48.9844V50.0156C32.0156 50.2656 31.9062 50.5 31.6875 50.7188C31.5 50.9062 31.2656 51 30.9844 51C30.7344 51 30.5 50.9062 30.2812 50.7188C30.0938 50.5 30 50.2656 30 50.0156V48.9844H18V50.0156C18 50.2656 17.8906 50.5 17.6719 50.7188C17.4844 50.9062 17.2656 51 17.0156 51C16.7344 51 16.4844 50.9062 16.2656 50.7188C16.0781 50.5 15.9844 50.2656 15.9844 50.0156V48.9844C15.4531 48.9844 14.9531 48.8594 14.4844 48.6094C14.0469 48.3281 13.6875 47.9688 13.4062 47.5312C13.125 47.0625 12.9844 46.5469 12.9844 45.9844V41.0156C12.9844 40.4531 13.1719 39.9844 13.5469 39.6094C13.9531 39.2031 14.4375 39 15 39C15.5625 39 16.0312 39.2031 16.4062 39.6094C16.8125 39.9844 17.0156 40.4531 17.0156 41.0156V45H30.9844V41.0156C30.9844 40.4531 31.1719 39.9844 31.5469 39.6094C31.9531 39.2031 32.4375 39 33 39Z" fill="#03A9F4"/>
<path d="M56 4C56 1.79086 57.7909 0 60 0H72C74.2091 0 76 1.79086 76 4V4C76 6.20914 74.2091 8 72 8H60C57.7909 8 56 6.20914 56 4V4Z" fill="black" fill-opacity="0.32"/>
<rect x="96" width="8" height="8" rx="4" fill="black" fill-opacity="0.12"/>
<path d="M56 20C56 15.5817 59.5817 12 64 12H96C100.418 12 104 15.5817 104 20V64C104 68.4183 100.418 72 96 72H64C59.5817 72 56 68.4183 56 64V20Z" fill="white"/>
<path d="M64 12.5H96C100.142 12.5 103.5 15.8579 103.5 20V64C103.5 68.1421 100.142 71.5 96 71.5H64C59.8579 71.5 56.5 68.1421 56.5 64V20L56.5098 19.6143C56.7041 15.7792 59.7792 12.7041 63.6143 12.5098L64 12.5Z" stroke="black" stroke-opacity="0.12"/>
<path d="M86 39.9844H89.9844V42H88.0156V50.0156H71.9844V42H70.0156V39.9844H74C73.4375 39.9844 72.9531 39.7969 72.5469 39.4219C72.1719 39.0156 71.9844 38.5469 71.9844 38.0156V33.9844H77.9844V38.0156C77.9844 38.5469 77.7812 39.0156 77.375 39.4219C77 39.7969 76.5469 39.9844 76.0156 39.9844H83.9844V36.9844C83.9844 36.7344 83.8906 36.5156 83.7031 36.3281C83.5156 36.1094 83.2812 36 83 36C82.7188 36 82.4844 36.1094 82.2969 36.3281C82.1094 36.5156 82.0156 36.7344 82.0156 36.9844H80C80 36.4531 80.125 35.9688 80.375 35.5312C80.6562 35.0625 81.0156 34.6875 81.4531 34.4062C81.9219 34.125 82.4375 33.9844 83 33.9844C83.5625 33.9844 84.0625 34.125 84.5 34.4062C84.9688 34.6875 85.3281 35.0625 85.5781 35.5312C85.8594 35.9688 86 36.4531 86 36.9844V39.9844ZM80.9844 48V42H79.0156V48H80.9844Z" fill="#03A9F4"/>
<path d="M112 4C112 1.79086 113.791 0 116 0H128C130.209 0 132 1.79086 132 4V4C132 6.20914 130.209 8 128 8H116C113.791 8 112 6.20914 112 4V4Z" fill="black" fill-opacity="0.32"/>
<rect x="152" width="8" height="8" rx="4" fill="black" fill-opacity="0.12"/>
<path d="M112 20C112 15.5817 115.582 12 120 12H152C156.418 12 160 15.5817 160 20V64C160 68.4183 156.418 72 152 72H120C115.582 72 112 68.4183 112 64V20Z" fill="white"/>
<path d="M120 12.5H152C156.142 12.5 159.5 15.8579 159.5 20V64C159.5 68.1421 156.142 71.5 152 71.5H120C115.858 71.5 112.5 68.1421 112.5 64V20L112.51 19.6143C112.704 15.7792 115.779 12.7041 119.614 12.5098L120 12.5Z" stroke="black" stroke-opacity="0.12"/>
<path d="M142.984 36.9844C144.078 36.9844 145.016 37.3906 145.797 38.2031C146.609 38.9844 147.016 39.9219 147.016 41.0156V50.0156H145V47.0156H127V50.0156H124.984V35.0156H127V44.0156H135.016V36.9844H142.984ZM133.094 42.0938C132.5 42.6875 131.797 42.9844 130.984 42.9844C130.172 42.9844 129.469 42.6875 128.875 42.0938C128.281 41.5 127.984 40.7969 127.984 39.9844C127.984 39.1719 128.281 38.4688 128.875 37.875C129.469 37.2812 130.172 36.9844 130.984 36.9844C131.797 36.9844 132.5 37.2812 133.094 37.875C133.688 38.4688 133.984 39.1719 133.984 39.9844C133.984 40.7969 133.688 41.5 133.094 42.0938Z" fill="#03A9F4"/>
<path d="M0 84C0 81.7909 1.79086 80 4 80H16C18.2091 80 20 81.7909 20 84V84C20 86.2091 18.2091 88 16 88H4C1.79086 88 0 86.2091 0 84V84Z" fill="black" fill-opacity="0.32"/>
<rect x="28" y="80" width="8" height="8" rx="4" fill="black" fill-opacity="0.12"/>
<rect x="40" y="80" width="8" height="8" rx="4" fill="black" fill-opacity="0.12"/>
<path d="M0 100C0 95.5817 3.58172 92 8 92H40C44.4183 92 48 95.5817 48 100V144C48 148.418 44.4183 152 40 152H8C3.58172 152 0 148.418 0 144V100Z" fill="white"/>
<path d="M8 92.5H40C44.1421 92.5 47.5 95.8579 47.5 100V144C47.5 148.142 44.1421 151.5 40 151.5H8C3.85787 151.5 0.5 148.142 0.5 144V100L0.509766 99.6143C0.704063 95.7792 3.77915 92.7041 7.61426 92.5098L8 92.5Z" stroke="black" stroke-opacity="0.12"/>
<path d="M14.0156 116H33.9844V128H32.0156V125.984H27.9844V128H26.0156V118.016H15.9844V128H14.0156V116ZM32.0156 118.016H27.9844V119.984H32.0156V118.016ZM27.9844 124.016H32.0156V122H27.9844V124.016Z" fill="#03A9F4"/>
<path d="M56 84C56 81.7909 57.7909 80 60 80H72C74.2091 80 76 81.7909 76 84V84C76 86.2091 74.2091 88 72 88H60C57.7909 88 56 86.2091 56 84V84Z" fill="black" fill-opacity="0.32"/>
<rect x="84" y="80" width="8" height="8" rx="4" fill="black" fill-opacity="0.12"/>
<rect x="96" y="80" width="8" height="8" rx="4" fill="black" fill-opacity="0.12"/>
<path d="M56 100C56 95.5817 59.5817 92 64 92H96C100.418 92 104 95.5817 104 100V144C104 148.418 100.418 152 96 152H64C59.5817 152 56 148.418 56 144V100Z" fill="white"/>
<path d="M64 92.5H96C100.142 92.5 103.5 95.8579 103.5 100V144C103.5 148.142 100.142 151.5 96 151.5H64C59.8579 151.5 56.5 148.142 56.5 144V100L56.5098 99.6143C56.7041 95.7792 59.7792 92.7041 63.6143 92.5098L64 92.5Z" stroke="black" stroke-opacity="0.12"/>
<path d="M77.9844 121.016V122.984H80V121.016H77.9844ZM82.0156 116V131H71V128.984H73.0156V113H82.0156V113.984H86.9844V128.984H89V131H85.0156V116H82.0156Z" fill="#03A9F4"/>
<path d="M0 20C0 15.5817 3.58172 12 8 12H68C72.4183 12 76 15.5817 76 20V36C76 40.4183 72.4183 44 68 44H8C3.58172 44 0 40.4183 0 36V20Z" fill="white"/>
<path d="M8 12.5H68C72.1421 12.5 75.5 15.8579 75.5 20V36C75.5 40.1421 72.1421 43.5 68 43.5H8C3.85786 43.5 0.5 40.1421 0.5 36V20C0.5 15.8579 3.85786 12.5 8 12.5Z" stroke="black" stroke-opacity="0.12"/>
<path d="M32.9844 27.0156C32.9844 26.0781 32.7031 25.2656 32.1406 24.5781C31.5781 23.8594 30.8594 23.375 29.9844 23.125V22C29.9844 21.4375 30.125 20.9375 30.4062 20.5C30.6875 20.0312 31.0469 19.6719 31.4844 19.4219C31.9531 19.1406 32.4531 19 32.9844 19H43.0156C43.5469 19 44.0312 19.1406 44.4688 19.4219C44.9375 19.6719 45.3125 20.0312 45.5938 20.5C45.875 20.9375 46.0156 21.4375 46.0156 22V23.125C45.1406 23.375 44.4219 23.8594 43.8594 24.5781C43.2969 25.2656 43.0156 26.0781 43.0156 27.0156V28.9844H32.9844V27.0156ZM47 25C47.5625 25 48.0312 25.2031 48.4062 25.6094C48.8125 25.9844 49.0156 26.4531 49.0156 27.0156V31.9844C49.0156 32.5469 48.875 33.0625 48.5938 33.5312C48.3125 33.9688 47.9375 34.3281 47.4688 34.6094C47.0312 34.8594 46.5469 34.9844 46.0156 34.9844V36.0156C46.0156 36.2656 45.9062 36.5 45.6875 36.7188C45.5 36.9062 45.2656 37 44.9844 37C44.7344 37 44.5 36.9062 44.2812 36.7188C44.0938 36.5 44 36.2656 44 36.0156V34.9844H32V36.0156C32 36.2656 31.8906 36.5 31.6719 36.7188C31.4844 36.9062 31.2656 37 31.0156 37C30.7344 37 30.4844 36.9062 30.2656 36.7188C30.0781 36.5 29.9844 36.2656 29.9844 36.0156V34.9844C29.4531 34.9844 28.9531 34.8594 28.4844 34.6094C28.0469 34.3281 27.6875 33.9688 27.4062 33.5312C27.125 33.0625 26.9844 32.5469 26.9844 31.9844V27.0156C26.9844 26.4531 27.1719 25.9844 27.5469 25.6094C27.9531 25.2031 28.4375 25 29 25C29.5625 25 30.0312 25.2031 30.4062 25.6094C30.8125 25.9844 31.0156 26.4531 31.0156 27.0156V31H44.9844V27.0156C44.9844 26.4531 45.1719 25.9844 45.5469 25.6094C45.9531 25.2031 46.4375 25 47 25Z" fill="#03A9F4"/>
<path d="M0 56C0 51.5817 3.58172 48 8 48H68C72.4183 48 76 51.5817 76 56V72C76 76.4183 72.4183 80 68 80H8C3.58172 80 0 76.4183 0 72V56Z" fill="white"/>
<path d="M8 48.5H68C72.1421 48.5 75.5 51.8579 75.5 56V72C75.5 76.1421 72.1421 79.5 68 79.5H8C3.85786 79.5 0.5 76.1421 0.5 72V56C0.5 51.8579 3.85786 48.5 8 48.5Z" stroke="black" stroke-opacity="0.12"/>
<path d="M44 61.9844H47.9844V64H46.0156V72.0156H29.9844V64H28.0156V61.9844H32C31.4375 61.9844 30.9531 61.7969 30.5469 61.4219C30.1719 61.0156 29.9844 60.5469 29.9844 60.0156V55.9844H35.9844V60.0156C35.9844 60.5469 35.7812 61.0156 35.375 61.4219C35 61.7969 34.5469 61.9844 34.0156 61.9844H41.9844V58.9844C41.9844 58.7344 41.8906 58.5156 41.7031 58.3281C41.5156 58.1094 41.2812 58 41 58C40.7188 58 40.4844 58.1094 40.2969 58.3281C40.1094 58.5156 40.0156 58.7344 40.0156 58.9844H38C38 58.4531 38.125 57.9688 38.375 57.5312C38.6562 57.0625 39.0156 56.6875 39.4531 56.4062C39.9219 56.125 40.4375 55.9844 41 55.9844C41.5625 55.9844 42.0625 56.125 42.5 56.4062C42.9688 56.6875 43.3281 57.0625 43.5781 57.5312C43.8594 57.9688 44 58.4531 44 58.9844V61.9844ZM38.9844 70V64H37.0156V70H38.9844Z" fill="#03A9F4"/>
<path d="M0 92C0 87.5817 3.58172 84 8 84H68C72.4183 84 76 87.5817 76 92V108C76 112.418 72.4183 116 68 116H8C3.58172 116 0 112.418 0 108V92Z" fill="white"/>
<path d="M8 84.5H68C72.1421 84.5 75.5 87.8579 75.5 92V108C75.5 112.142 72.1421 115.5 68 115.5H8C3.85786 115.5 0.5 112.142 0.5 108V92C0.5 87.8579 3.85786 84.5 8 84.5Z" stroke="black" stroke-opacity="0.12"/>
<path d="M44.9844 94.9844C46.0781 94.9844 47.0156 95.3906 47.7969 96.2031C48.6094 96.9844 49.0156 97.9219 49.0156 99.0156V108.016H47V105.016H29V108.016H26.9844V93.0156H29V102.016H37.0156V94.9844H44.9844ZM35.0938 100.094C34.5 100.688 33.7969 100.984 32.9844 100.984C32.1719 100.984 31.4688 100.688 30.875 100.094C30.2812 99.5 29.9844 98.7969 29.9844 97.9844C29.9844 97.1719 30.2812 96.4688 30.875 95.875C31.4688 95.2812 32.1719 94.9844 32.9844 94.9844C33.7969 94.9844 34.5 95.2812 35.0938 95.875C35.6875 96.4688 35.9844 97.1719 35.9844 97.9844C35.9844 98.7969 35.6875 99.5 35.0938 100.094Z" fill="#03A9F4"/>
<path d="M0 128C0 123.582 3.58172 120 8 120H68C72.4183 120 76 123.582 76 128V144C76 148.418 72.4183 152 68 152H8C3.58172 152 0 148.418 0 144V128Z" fill="white"/>
<path d="M8 120.5H68C72.1421 120.5 75.5 123.858 75.5 128V144C75.5 148.142 72.1421 151.5 68 151.5H8C3.85786 151.5 0.5 148.142 0.5 144V128C0.5 123.858 3.85786 120.5 8 120.5Z" stroke="black" stroke-opacity="0.12"/>
<path d="M46.0156 136.984H47.9844V142.984C47.9844 143.516 47.7812 143.984 47.375 144.391C47 144.797 46.5469 145 46.0156 145C46.0156 145.281 45.9062 145.516 45.6875 145.703C45.5 145.891 45.2656 145.984 44.9844 145.984H31.0156C30.7344 145.984 30.4844 145.891 30.2656 145.703C30.0781 145.516 29.9844 145.281 29.9844 145C29.4531 145 28.9844 144.797 28.5781 144.391C28.2031 143.984 28.0156 143.516 28.0156 142.984V136.984H31.0156V136.234C31.0156 135.641 31.2344 135.125 31.6719 134.688C32.1406 134.219 32.6719 133.984 33.2656 133.984C33.8906 133.984 34.4531 134.234 34.9531 134.734L36.3125 136.281C36.5 136.5 36.7812 136.734 37.1562 136.984H44V128.828C44 128.609 43.9219 128.422 43.7656 128.266C43.6094 128.078 43.4062 127.984 43.1562 127.984C42.9375 127.984 42.75 128.062 42.5938 128.219L41.3281 129.484C41.3906 129.734 41.4219 129.906 41.4219 130C41.4219 130.344 41.3125 130.703 41.0938 131.078L38.3281 128.312C38.7031 128.094 39.0625 127.984 39.4062 127.984C39.5625 127.984 39.7344 128.016 39.9219 128.078L41.1875 126.812C41.7188 126.281 42.375 126.016 43.1562 126.016C43.9375 126.016 44.6094 126.297 45.1719 126.859C45.7344 127.391 46.0156 128.047 46.0156 128.828V136.984ZM31.5781 132.438C31.2031 132.031 31.0156 131.547 31.0156 130.984C31.0156 130.422 31.2031 129.953 31.5781 129.578C31.9531 129.203 32.4219 129.016 32.9844 129.016C33.5469 129.016 34.0156 129.203 34.3906 129.578C34.7969 129.953 35 130.422 35 130.984C35 131.547 34.7969 132.031 34.3906 132.438C34.0156 132.812 33.5469 133 32.9844 133C32.4219 133 31.9531 132.812 31.5781 132.438Z" fill="#03A9F4"/>
<path d="M84 4C84 1.79086 85.7909 0 88 0H100C102.209 0 104 1.79086 104 4V4C104 6.20914 102.209 8 100 8H88C85.7909 8 84 6.20914 84 4V4Z" fill="black" fill-opacity="0.32"/>
<path d="M84 20C84 15.5817 87.5817 12 92 12H152C156.418 12 160 15.5817 160 20V36C160 40.4183 156.418 44 152 44H92C87.5817 44 84 40.4183 84 36V20Z" fill="white"/>
<path d="M92 12.5H152C156.142 12.5 159.5 15.8579 159.5 20V36C159.5 40.1421 156.142 43.5 152 43.5H92C87.8579 43.5 84.5 40.1421 84.5 36V20C84.5 15.8579 87.8579 12.5 92 12.5Z" stroke="black" stroke-opacity="0.12"/>
<path d="M131.984 30.0156C131.984 30.7656 131.797 31.4531 131.422 32.0781C131.047 32.6719 130.562 33.1406 129.969 33.4844C129.844 34.2031 129.5 34.8125 128.938 35.3125C128.406 35.7812 127.766 36.0156 127.016 36.0156C126.359 36.0156 125.766 35.8281 125.234 35.4531C124.734 35.0781 124.391 34.5938 124.203 34H119.797C119.609 34.5938 119.25 35.0781 118.719 35.4531C118.219 35.8281 117.641 36.0156 116.984 36.0156C116.234 36.0156 115.578 35.7812 115.016 35.3125C114.484 34.8125 114.156 34.2031 114.031 33.4844C113.438 33.1406 112.953 32.6719 112.578 32.0781C112.203 31.4531 112.016 30.7656 112.016 30.0156C112.016 29.1094 112.266 28.3125 112.766 27.625C113.297 26.9375 113.969 26.4688 114.781 26.2188L113 24.3906L112.719 24.7188C112.5 24.9062 112.25 25 111.969 25C111.719 25 111.5 24.9062 111.312 24.7188C111.094 24.5312 110.984 24.2969 110.984 24.0156C110.984 23.7344 111.094 23.5 111.312 23.3125L113.281 21.2969C113.469 21.1094 113.703 21.0156 113.984 21.0156C114.266 21.0156 114.5 21.1094 114.688 21.2969C114.906 21.4844 115.016 21.7188 115.016 22C115.016 22.2812 114.906 22.5156 114.688 22.7031L114.406 22.9844L115.812 24.3906L116.609 22.0469C116.797 21.4219 117.156 20.9219 117.688 20.5469C118.219 20.1719 118.797 19.9844 119.422 19.9844H124.578C125.203 19.9844 125.781 20.1719 126.312 20.5469C126.844 20.9219 127.203 21.4219 127.391 22.0469L128.75 26.0781C129.375 26.2031 129.922 26.4531 130.391 26.8281C130.891 27.2031 131.281 27.6719 131.562 28.2344C131.844 28.7656 131.984 29.3594 131.984 30.0156ZM116.984 34C117.266 34 117.5 33.9062 117.688 33.7188C117.906 33.5 118.016 33.2656 118.016 33.0156C118.016 32.7344 117.906 32.5 117.688 32.3125C117.5 32.0938 117.266 31.9844 116.984 31.9844C116.734 31.9844 116.5 32.0938 116.281 32.3125C116.094 32.5 116 32.7344 116 33.0156C116 33.2656 116.094 33.5 116.281 33.7188C116.5 33.9062 116.734 34 116.984 34ZM121.016 25.9844V22H119.422C118.953 22 118.641 22.2344 118.484 22.7031L117.406 25.9844H121.016ZM122.984 22V25.9844H126.594L125.516 22.7031C125.359 22.2344 125.047 22 124.578 22H122.984ZM127.016 34C127.266 34 127.484 33.9062 127.672 33.7188C127.891 33.5 128 33.2656 128 33.0156C128 32.7344 127.891 32.5 127.672 32.3125C127.484 32.0938 127.266 31.9844 127.016 31.9844C126.734 31.9844 126.484 32.0938 126.266 32.3125C126.078 32.5 125.984 32.7344 125.984 33.0156C125.984 33.2656 126.078 33.5 126.266 33.7188C126.484 33.9062 126.734 34 127.016 34Z" fill="#03A9F4"/>
<path d="M84 56C84 51.5817 87.5817 48 92 48H152C156.418 48 160 51.5817 160 56V72C160 76.4183 156.418 80 152 80H92C87.5817 80 84 76.4183 84 72V56Z" fill="white"/>
<path d="M92 48.5H152C156.142 48.5 159.5 51.8579 159.5 56V72C159.5 76.1421 156.142 79.5 152 79.5H92C87.8579 79.5 84.5 76.1421 84.5 72V56C84.5 51.8579 87.8579 48.5 92 48.5Z" stroke="black" stroke-opacity="0.12"/>
<path d="M128.984 58.9844C130.078 58.9844 131.016 59.3906 131.797 60.2031C132.609 60.9844 133.016 61.9219 133.016 63.0156V72.0156H131V69.0156H113V72.0156H110.984V57.0156H113V66.0156H121.016V58.9844H128.984ZM119.094 64.0938C118.5 64.6875 117.797 64.9844 116.984 64.9844C116.172 64.9844 115.469 64.6875 114.875 64.0938C114.281 63.5 113.984 62.7969 113.984 61.9844C113.984 61.1719 114.281 60.4688 114.875 59.875C115.469 59.2812 116.172 58.9844 116.984 58.9844C117.797 58.9844 118.5 59.2812 119.094 59.875C119.688 60.4688 119.984 61.1719 119.984 61.9844C119.984 62.7969 119.688 63.5 119.094 64.0938Z" fill="#03A9F4"/>
<path d="M84 92C84 87.5817 87.5817 84 92 84H152C156.418 84 160 87.5817 160 92V108C160 112.418 156.418 116 152 116H92C87.5817 116 84 112.418 84 108V92Z" fill="white"/>
<path d="M92 84.5H152C156.142 84.5 159.5 87.8579 159.5 92V108C159.5 112.142 156.142 115.5 152 115.5H92C87.8579 115.5 84.5 112.142 84.5 108V92C84.5 87.8579 87.8579 84.5 92 84.5Z" stroke="black" stroke-opacity="0.12"/>
<path d="M112.016 94H131.984V106H130.016V103.984H125.984V106H124.016V96.0156H113.984V106H112.016V94ZM130.016 96.0156H125.984V97.9844H130.016V96.0156ZM125.984 102.016H130.016V100H125.984V102.016Z" fill="#03A9F4"/>
</g>
<defs>
<clipPath id="clip0_1738_5531">
<clipPath id="clip0_3969_50764">
<rect width="160" height="160" fill="white"/>
</clipPath>
</defs>

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 11 KiB

@@ -0,0 +1,76 @@
<svg width="160" height="160" viewBox="0 0 160 160" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_4744_39984)">
<path d="M0 6C0 2.68629 2.68629 0 6 0H28C31.3137 0 34 2.68629 34 6C34 9.31371 31.3137 12 28 12H6C2.68629 12 0 9.31371 0 6Z" fill="black" fill-opacity="0.32"/>
<path d="M0 28C0 23.5817 3.58172 20 8 20H42.6667C47.0849 20 50.6667 23.5817 50.6667 28V36C50.6667 40.4183 47.0849 44 42.6667 44H8.00001C3.58173 44 0 40.4183 0 36V28Z" fill="white"/>
<path d="M8 20.5H42.667C46.809 20.5002 50.167 23.858 50.167 28V36C50.167 40.142 46.809 43.4998 42.667 43.5H8C3.85787 43.5 0.5 40.1421 0.5 36V28C0.5 23.8579 3.85786 20.5 8 20.5Z" stroke="black" stroke-opacity="0.12"/>
<rect x="6" y="26" width="12" height="12" rx="6" fill="black" fill-opacity="0.12"/>
<path d="M24 31C24 29.3431 25.3431 28 27 28H39.6667C41.3235 28 42.6667 29.3431 42.6667 31V33C42.6667 34.6569 41.3235 36 39.6667 36H27C25.3431 36 24 34.6569 24 33V31Z" fill="black" fill-opacity="0.12"/>
<path d="M54.6667 28C54.6667 23.5817 58.2484 20 62.6667 20H97.3333C101.752 20 105.333 23.5817 105.333 28V36C105.333 40.4183 101.752 44 97.3334 44H62.6667C58.2484 44 54.6667 40.4183 54.6667 36V28Z" fill="white"/>
<path d="M62.6667 20.5H97.3337C101.476 20.5002 104.834 23.858 104.834 28V36C104.834 40.142 101.476 43.4998 97.3337 43.5H62.6667C58.5246 43.5 55.1667 40.1421 55.1667 36V28C55.1667 23.8579 58.5246 20.5 62.6667 20.5Z" stroke="black" stroke-opacity="0.12"/>
<rect x="60.6667" y="26" width="12" height="12" rx="6" fill="black" fill-opacity="0.12"/>
<path d="M78.6667 31C78.6667 29.3431 80.0098 28 81.6667 28H94.3334C95.9902 28 97.3334 29.3431 97.3334 31V33C97.3334 34.6569 95.9902 36 94.3334 36H81.6667C80.0098 36 78.6667 34.6569 78.6667 33V31Z" fill="black" fill-opacity="0.12"/>
<path d="M109.333 28C109.333 23.5817 112.915 20 117.333 20H152C156.418 20 160 23.5817 160 28V36C160 40.4183 156.418 44 152 44H117.333C112.915 44 109.333 40.4183 109.333 36V28Z" fill="white"/>
<path d="M117.333 20.5H152C156.142 20.5002 159.5 23.858 159.5 28V36C159.5 40.142 156.142 43.4998 152 43.5H117.333C113.191 43.5 109.833 40.1421 109.833 36V28C109.833 23.8579 113.191 20.5 117.333 20.5Z" stroke="black" stroke-opacity="0.12"/>
<rect x="115.333" y="26" width="12" height="12" rx="6" fill="black" fill-opacity="0.12"/>
<path d="M133.333 31C133.333 29.3431 134.676 28 136.333 28H149C150.657 28 152 29.3431 152 31V33C152 34.6569 150.657 36 149 36H136.333C134.676 36 133.333 34.6569 133.333 33V31Z" fill="black" fill-opacity="0.12"/>
<path d="M0 56C0 53.7909 1.79086 52 4 52H29C31.2091 52 33 53.7909 33 56C33 58.2091 31.2091 60 29 60H4C1.79086 60 0 58.2091 0 56Z" fill="black" fill-opacity="0.32"/>
<path d="M0 72C0 67.5817 3.58172 64 8 64H29C33.4183 64 37 67.5817 37 72V96C37 100.418 33.4183 104 29 104H8C3.58172 104 0 100.418 0 96V72Z" fill="white"/>
<path d="M8 64.5H29C33.1421 64.5 36.5 67.8579 36.5 72V96C36.5 100.142 33.1421 103.5 29 103.5H8C3.85786 103.5 0.5 100.142 0.5 96V72C0.5 67.8579 3.85786 64.5 8 64.5Z" stroke="black" stroke-opacity="0.12"/>
<mask id="mask0_4744_39984" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="6" y="72" width="25" height="24">
<path d="M18.5 74C16.6435 74 14.863 74.7375 13.5503 76.0503C12.2375 77.363 11.5 79.1435 11.5 81C11.5 83.38 12.69 85.47 14.5 86.74V89C14.5 89.2652 14.6054 89.5196 14.7929 89.7071C14.9804 89.8946 15.2348 90 15.5 90H21.5C21.7652 90 22.0196 89.8946 22.2071 89.7071C22.3946 89.5196 22.5 89.2652 22.5 89V86.74C24.31 85.47 25.5 83.38 25.5 81C25.5 79.1435 24.7625 77.363 23.4497 76.0503C22.137 74.7375 20.3565 74 18.5 74ZM15.5 93C15.5 93.2652 15.6054 93.5196 15.7929 93.7071C15.9804 93.8946 16.2348 94 16.5 94H20.5C20.7652 94 21.0196 93.8946 21.2071 93.7071C21.3946 93.5196 21.5 93.2652 21.5 93V92H15.5V93Z" fill="black"/>
</mask>
<g mask="url(#mask0_4744_39984)">
<rect x="6.5" y="72" width="24" height="24" fill="#03A9F4"/>
</g>
<path d="M41 72C41 67.5817 44.5817 64 49 64H70C74.4183 64 78 67.5817 78 72V96C78 100.418 74.4183 104 70 104H49C44.5817 104 41 100.418 41 96V72Z" fill="white"/>
<path d="M49 64.5H70C74.1421 64.5 77.5 67.8579 77.5 72V96C77.5 100.142 74.1421 103.5 70 103.5H49C44.8579 103.5 41.5 100.142 41.5 96V72C41.5 67.8579 44.8579 64.5 49 64.5Z" stroke="black" stroke-opacity="0.12"/>
<mask id="mask1_4744_39984" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="47" y="72" width="25" height="24">
<path d="M66.5 80C67.61 80 68.5 80.9 68.5 82V88.76C69.11 89.31 69.5 90.11 69.5 91C69.5 92.66 68.16 94 66.5 94C64.84 94 63.5 92.66 63.5 91C63.5 90.11 63.89 89.31 64.5 88.76V82C64.5 80.9 65.4 80 66.5 80ZM66.5 81C65.95 81 65.5 81.45 65.5 82V83H67.5V82C67.5 81.45 67.05 81 66.5 81ZM52.5 92V84H49.5L59.5 75L63.9 78.96C63.04 79.69 62.5 80.78 62.5 82V88C61.87 88.83 61.5 89.87 61.5 91L61.6 92H52.5Z" fill="black"/>
</mask>
<g mask="url(#mask1_4744_39984)">
<rect x="47.5" y="72" width="24" height="24" fill="#03A9F4"/>
</g>
<path d="M82 72C82 67.5817 85.5817 64 90 64H111C115.418 64 119 67.5817 119 72V96C119 100.418 115.418 104 111 104H90C85.5817 104 82 100.418 82 96V72Z" fill="white"/>
<path d="M90 64.5H111C115.142 64.5 118.5 67.8579 118.5 72V96C118.5 100.142 115.142 103.5 111 103.5H90C85.8579 103.5 82.5 100.142 82.5 96V72C82.5 67.8579 85.8579 64.5 90 64.5Z" stroke="black" stroke-opacity="0.12"/>
<mask id="mask2_4744_39984" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="88" y="72" width="25" height="24">
<path d="M100.5 84H107.5C106.97 88.11 104.22 91.78 100.5 92.92V84H93.5V78.3L100.5 75.19M100.5 73L91.5 77V83C91.5 88.55 95.34 93.73 100.5 95C105.66 93.73 109.5 88.55 109.5 83V77L100.5 73Z" fill="black"/>
</mask>
<g mask="url(#mask2_4744_39984)">
<rect x="88.5" y="72" width="24" height="24" fill="#03A9F4"/>
</g>
<path d="M123 72C123 67.5817 126.582 64 131 64H152C156.418 64 160 67.5817 160 72V96C160 100.418 156.418 104 152 104H131C126.582 104 123 100.418 123 96V72Z" fill="white"/>
<path d="M131 64.5H152C156.142 64.5 159.5 67.8579 159.5 72V96C159.5 100.142 156.142 103.5 152 103.5H131C126.858 103.5 123.5 100.142 123.5 96V72C123.5 67.8579 126.858 64.5 131 64.5Z" stroke="black" stroke-opacity="0.12"/>
<mask id="mask3_4744_39984" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="129" y="72" width="25" height="24">
<path d="M145.5 84C145.5 83.4696 145.711 82.9609 146.086 82.5858C146.461 82.2107 146.97 82 147.5 82C148.03 82 148.539 82.2107 148.914 82.5858C149.289 82.9609 149.5 83.4696 149.5 84C149.5 84.5304 149.289 85.0391 148.914 85.4142C148.539 85.7893 148.03 86 147.5 86C146.97 86 146.461 85.7893 146.086 85.4142C145.711 85.0391 145.5 84.5304 145.5 84ZM139.5 84C139.5 83.4696 139.711 82.9609 140.086 82.5858C140.461 82.2107 140.97 82 141.5 82C142.03 82 142.539 82.2107 142.914 82.5858C143.289 82.9609 143.5 83.4696 143.5 84C143.5 84.5304 143.289 85.0391 142.914 85.4142C142.539 85.7893 142.03 86 141.5 86C140.97 86 140.461 85.7893 140.086 85.4142C139.711 85.0391 139.5 84.5304 139.5 84ZM133.5 84C133.5 83.4696 133.711 82.9609 134.086 82.5858C134.461 82.2107 134.97 82 135.5 82C136.03 82 136.539 82.2107 136.914 82.5858C137.289 82.9609 137.5 83.4696 137.5 84C137.5 84.5304 137.289 85.0391 136.914 85.4142C136.539 85.7893 136.03 86 135.5 86C134.97 86 134.461 85.7893 134.086 85.4142C133.711 85.0391 133.5 84.5304 133.5 84Z" fill="black"/>
</mask>
<g mask="url(#mask3_4744_39984)">
<rect x="129.5" y="72" width="24" height="24" fill="#18BCF2"/>
</g>
<path d="M0 116C0 113.791 1.79086 112 4 112H29C31.2091 112 33 113.791 33 116C33 118.209 31.2091 120 29 120H4C1.79086 120 0 118.209 0 116Z" fill="black" fill-opacity="0.32"/>
<path d="M0 132C0 127.582 3.58172 124 8 124H70C74.4183 124 78 127.582 78 132V160H0V132Z" fill="url(#paint0_linear_4744_39984)"/>
<path d="M8 124.5H70C74.1421 124.5 77.5 127.858 77.5 132V159.5H0.5V132C0.5 127.858 3.85786 124.5 8 124.5Z" stroke="url(#paint1_linear_4744_39984)" stroke-opacity="0.12"/>
<path d="M82 132C82 127.582 85.5817 124 90 124H152C156.418 124 160 127.582 160 132V160H82V132Z" fill="url(#paint2_linear_4744_39984)"/>
<path d="M90 124.5H152C156.142 124.5 159.5 127.858 159.5 132V159.5H82.5V132C82.5 127.858 85.8579 124.5 90 124.5Z" stroke="url(#paint3_linear_4744_39984)" stroke-opacity="0.12"/>
</g>
<defs>
<linearGradient id="paint0_linear_4744_39984" x1="39" y1="124" x2="39" y2="160" gradientUnits="userSpaceOnUse">
<stop offset="0.5" stop-color="white"/>
<stop offset="1" stop-color="white" stop-opacity="0"/>
</linearGradient>
<linearGradient id="paint1_linear_4744_39984" x1="39" y1="124" x2="39" y2="160" gradientUnits="userSpaceOnUse">
<stop offset="0.5" stop-opacity="0.12"/>
<stop offset="1" stop-opacity="0"/>
</linearGradient>
<linearGradient id="paint2_linear_4744_39984" x1="121" y1="124" x2="121" y2="160" gradientUnits="userSpaceOnUse">
<stop offset="0.5" stop-color="white"/>
<stop offset="1" stop-color="white" stop-opacity="0"/>
</linearGradient>
<linearGradient id="paint3_linear_4744_39984" x1="121" y1="124" x2="121" y2="160" gradientUnits="userSpaceOnUse">
<stop offset="0.5" stop-opacity="0.12"/>
<stop offset="1" stop-opacity="0"/>
</linearGradient>
<clipPath id="clip0_4744_39984">
<rect width="160" height="160" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 8.9 KiB

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB

+1 -1
View File
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "home-assistant-frontend"
version = "20250625.0"
version = "20250924.0"
license = "Apache-2.0"
license-files = ["LICENSE*"]
description = "The Home Assistant frontend"
+1 -1
View File
@@ -33,7 +33,7 @@ fi
docker run \
-v ${LOCAL_FILE}:/opt/src/${LOCAL_FILE} \
lokalise/lokalise-cli-2:v2.6.10 lokalise2 \
lokalise/lokalise-cli-2:v3.1.4 lokalise2 \
--token ${LOKALISE_TOKEN} \
--project-id ${PROJECT_ID} \
file upload \
+20 -22
View File
@@ -1,5 +1,4 @@
/* eslint-disable lit/prefer-static-styles */
import "@material/mwc-button";
import { genClientId } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
import { html, LitElement, nothing } from "lit";
@@ -7,6 +6,7 @@ import { keyed } from "lit/directives/keyed";
import { customElement, property, state } from "lit/decorators";
import type { LocalizeFunc } from "../common/translations/localize";
import "../components/ha-alert";
import "../components/ha-button";
import "../components/ha-checkbox";
import { computeInitialHaFormData } from "../components/ha-form/compute-initial-ha-form-data";
import "../components/ha-formfield";
@@ -173,15 +173,14 @@ export class HaAuthFlow extends LitElement {
return html`
${this._renderStep(this.step)}
<div class="action">
<mwc-button
raised
<ha-button
@click=${this._handleSubmit}
.disabled=${this._submitting}
>
${this.step.type === "form"
? this.localize("ui.panel.page-authorize.form.next")
: this.localize("ui.panel.page-authorize.form.start_over")}
</mwc-button>
</ha-button>
</div>
`;
case "error":
@@ -192,9 +191,9 @@ export class HaAuthFlow extends LitElement {
})}
</ha-alert>
<div class="action">
<mwc-button raised @click=${this._startOver}>
<ha-button @click=${this._startOver}>
${this.localize("ui.panel.page-authorize.form.start_over")}
</mwc-button>
</ha-button>
</div>
`;
case "loading":
@@ -238,10 +237,11 @@ export class HaAuthFlow extends LitElement {
@value-changed=${this._stepDataChanged}
></ha-auth-form>`
)}
${this.clientId === genClientId() &&
!["select_mfa_module", "mfa"].includes(step.step_id)
? html`
<div class="space-between">
<div class="space-between">
${this.clientId === genClientId() &&
!["select_mfa_module", "mfa"].includes(step.step_id)
? html`
<ha-formfield
class="store-token"
.label=${this.localize(
@@ -253,18 +253,16 @@ export class HaAuthFlow extends LitElement {
@change=${this._storeTokenChanged}
></ha-checkbox>
</ha-formfield>
<a
class="forgot-password"
href="https://www.home-assistant.io/docs/locked_out/#forgot-password"
target="_blank"
rel="noreferrer noopener"
>${this.localize(
"ui.panel.page-authorize.forgot_password"
)}</a
>
</div>
`
: ""}
`
: ""}
<a
class="forgot-password"
href="https://www.home-assistant.io/docs/locked_out/#forgot-password"
target="_blank"
rel="noreferrer noopener"
>${this.localize("ui.panel.page-authorize.forgot_password")}</a
>
</div>
`;
default:
return nothing;

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