Compare commits

..

1394 Commits

Author SHA1 Message Date
Bram Kragten
3d674cf237 20231027.0 (#18448) 2023-10-27 16:55:37 +02:00
Bram Kragten
9961a4ae3f Bumped version to 20231027.0 2023-10-27 16:33:32 +02:00
Bram Kragten
c25755bfcd Translate todo panel title, update assist title/icon (#18442) 2023-10-27 16:33:02 +02:00
Bram Kragten
40983619d6 Reload when entering safe mode (#18443) 2023-10-27 15:48:01 +02:00
Bram Kragten
54758b5962 Don't override ranges provided by parent (#18444) 2023-10-27 15:47:47 +02:00
Bram Kragten
4f09485b20 Update todo list items when entity changes, only refresh on shopping … (#18445) 2023-10-27 15:47:37 +02:00
Paul Bottein
9207f6c407 Fix unit of measurement not displayed in entity settings (#18440) 2023-10-27 13:29:41 +02:00
Paul Bottein
1a2312460a Disable resource panel in safe mode (#18437) 2023-10-27 13:29:00 +02:00
Simon Lamon
951b88ab4c Fix change entity in dev tools state (#18441) 2023-10-27 13:27:01 +02:00
Bram Kragten
d3cc57d8b4 Don't use lookbehind assertion in slugify (#18438) 2023-10-27 12:53:17 +02:00
karwosts
4e9b118728 Ensure energy card titles always displayed (#18432) 2023-10-27 10:42:01 +02:00
Paul Bottein
4e6e924a40 20231026.0 (#18431) 2023-10-26 15:57:36 +02:00
Paul Bottein
f1748e4dd5 Bumped version to 20231026.0 2023-10-26 15:39:36 +02:00
Paul Bottein
d491d8f5ac Quick fix for lovelace resources not loaded (#18430) 2023-10-26 15:37:31 +02:00
Bram Kragten
cf0fde0f3c Change move item todo API (#18410)
* Change move item todo API

* Handle entity unavailable, add link to more info, allow to delete local todo
2023-10-26 15:37:13 +02:00
Paul Bottein
a7dc2cfaa6 Reduce slider handle size (#18427) 2023-10-26 15:25:47 +02:00
Paul Bottein
d8c7db6ebf Add translations to tile state content options (#18428) 2023-10-26 10:32:09 +00:00
J. Nick Koston
c3743b57ea Speed up first load by preloading recorder info (#18412) 2023-10-25 19:29:44 +00:00
Steve Repsher
e16a101de8 Compress service worker (#18407) 2023-10-25 17:17:11 +02:00
Paul Bottein
94ad47c60e Hide reveal icon on edge for text-field (#18408) 2023-10-25 17:15:43 +02:00
Bram Kragten
184ef7b7ff Bar media player fixes (#18402) 2023-10-25 16:04:05 +02:00
karwosts
81053f2e07 Fix an undefined exception in more-info popup for history graph (#18404) 2023-10-25 15:48:05 +02:00
Paul Bottein
e8b4eeec67 Allow any number in above and below numeric condition (#18403) 2023-10-25 13:38:39 +00:00
karwosts
b0b7e77e28 Fix schedule form rendering after disconnect (#18401) 2023-10-25 13:21:05 +00:00
Bram Kragten
073ead5828 20231025.1 (#18399) 2023-10-25 13:59:53 +02:00
Bram Kragten
763f80b46a Bumped version to 20231025.1 2023-10-25 13:59:11 +02:00
Bram Kragten
0c2531a7ee Update todo list card (#18396) 2023-10-25 13:57:50 +02:00
Paul Bottein
8d2ec8098c Fix state not condition for condition card (#18397) 2023-10-25 11:09:28 +00:00
Bram Kragten
fdaefadd18 20231025.0 (#18395) 2023-10-25 12:17:22 +02:00
Bram Kragten
d2caed2b68 Merge branch 'master' into dev 2023-10-25 11:51:01 +02:00
Jan-Philipp Benecke
402d443843 Add mac and bluetooth address to the device info card (#18392)
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
2023-10-25 11:47:54 +02:00
Bram Kragten
399f12194a Bumped version to 20231025.0 2023-10-25 11:47:02 +02:00
Bram Kragten
a745539c33 fix height issue calendar, make default on mobile list (#18394) 2023-10-25 11:46:28 +02:00
Bram Kragten
f6fddbc6ec Add create todo list button (#18387) 2023-10-25 11:38:45 +02:00
Steve Repsher
01f51f3247 Cache brand images (#17840) 2023-10-25 09:28:28 +02:00
karwosts
80112bb662 Add Fields to Script UI (#18250) 2023-10-25 09:23:15 +02:00
Jan-Philipp Benecke
7ce7cbb755 Add serial number to the device info card (#18386)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-10-25 06:32:24 +02:00
karwosts
464ecffda7 Fix a crash in trace graph generation for if/else (#18390) 2023-10-24 23:18:21 +00:00
Paul Bottein
33e0c691c7 Use expansion panel for dashboard conditions (#18380) 2023-10-25 00:45:55 +02:00
c0ffeeca7
d94f7c90c0 Restart dialog description: consistently use indicative form (#18385)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-10-24 23:39:23 +02:00
Raman Gupta
d8d16c4d5f Add Z-Wave controller hard reset device action (certification req) (#18216)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-10-24 23:16:21 +02:00
Bram Kragten
1cb238ec2a Fixes for todo card (#18388) 2023-10-24 22:53:54 +02:00
karwosts
3e6ab8b179 Chart updates to improve stability, possible fix for infinite loop (#18329)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-10-24 20:41:34 +00:00
Bram Kragten
10bcaadcdb center icons in restart dialog 2023-10-24 21:21:02 +02:00
Bram Kragten
67517643ef Add safe mode theme and alert dialog 2023-10-24 21:08:23 +02:00
Paul Bottein
eb35eb3de5 Disable dashboard resources in safe mode (#18382) 2023-10-24 20:15:11 +02:00
Paul Bottein
8350d71f6e Add restart in safe mode in restart dialog (#18375) 2023-10-24 20:09:54 +02:00
Paul Bottein
c840f1cbb1 Redesign about page (#18383) 2023-10-24 20:07:12 +02:00
Bram Kragten
8efc0816bb Rename shopping-list-card to todo-list-card (#18378) 2023-10-24 20:06:03 +02:00
J. Nick Koston
b12e4989db Subscribe to the issue registry as early as possible (#18384) 2023-10-24 19:34:47 +02:00
Bram Kragten
2b67731906 Add resize observer to full calendar, fix missing styles (#18381) 2023-10-24 19:33:15 +02:00
Bram Kragten
ccba7a7623 Add button to create local calendar in calendar panel (#18377) 2023-10-24 19:33:03 +02:00
Bram Kragten
c0dfc9f73e Performance tweaks in energy dashboard (#18379)
* Remove unneeded refresh from energy panel

* Optimize energy-period-selector
2023-10-24 18:18:29 +02:00
Bram Kragten
be1624f66f Convert shopping list card editor to ha-form (#18376)
* Convert shopping list card editor to ha-form

* hide todo from generated dashboard
2023-10-24 18:14:14 +02:00
Steve Repsher
32edbd7b33 Remove js-yaml resource proxy (#18369) 2023-10-24 14:17:25 +02:00
Josh McCarty
18827db9ba Add bottom padding to code editor (#18368) 2023-10-24 12:59:14 +02:00
karwosts
191250a66a Fix complex attribute display in devtools (#18371) 2023-10-24 12:57:36 +02:00
Erik Montnemery
1fdf609606 Rename safe mode to recovery mode (#18374)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-10-24 12:56:27 +02:00
Paul Bottein
6ffc0625d3 Add support for state content customization in tile card (#18180)
* Add support for state content customization

* Add reorder option

* Do not display null attributes

* Always return a value

* Add hide state option

* Add missing attribute unit

* Fix sortable create and destroy
2023-10-24 12:08:11 +02:00
Allen Porter
c9f5d16745 Rename status code string for To-do List NEEDS-ACTION status (#18373) 2023-10-24 12:07:36 +02:00
renovate[bot]
eb4afedf2e Update dependency eslint to v8.52.0 (#18370) 2023-10-23 20:46:04 -04:00
Bram Kragten
2b9540fe03 Add support for todo component (#18289) 2023-10-23 22:53:09 +02:00
renovate[bot]
53b8d1bb0a Update dependency sinon to v17 (#18346)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-23 15:18:23 +00:00
Simon Lamon
0ff5bffd0c Make time condition translatable (#18298) 2023-10-23 17:02:51 +02:00
Paul Bottein
82a464f50f Add translation to numeric condition card 2023-10-23 16:37:27 +02:00
Paul Bottein
fdddc18291 Add numeric state condition for conditional card (#18288)
* Add numeric state condition for conditional card

* Add validate ui

* Clean entity data

* Check for numeric state
2023-10-23 14:17:23 +00:00
Bram Kragten
463a3244cf Add two pane view to calendar panel (#18286)
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
2023-10-23 14:13:38 +00:00
karwosts
6cae11f0a6 Update statistics chart to respect entity display precision, fix precision bug in history chart (#18334) 2023-10-23 16:03:42 +02:00
renovate[bot]
65112b36ce Update dependency @material/web to v1.0.1 (#18335)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-23 15:53:18 +02:00
renovate[bot]
58625d2a9d Update dependency core-js to v3.33.1 (#18339)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-23 15:50:55 +02:00
Paul Bottein
9bafbdd989 Allow multiple states in conditional card (#18273)
* Allow multiple states in conditional card

* Update src/panels/lovelace/editor/conditions/types/ha-card-condition-state.ts

Co-authored-by: Bram Kragten <mail@bramkragten.nl>

---------

Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-10-23 13:49:43 +00:00
Paul Bottein
eedb42b2f3 Add user condition to conditional card (#18265)
* Add user condition to conditional card

* Refactor user fetch

* Add validate ui

* Use ha-check-list-item
2023-10-23 13:49:27 +00:00
Paul Bottein
4354ad3807 Move condition editor into its own file (#18340) 2023-10-23 15:31:49 +02:00
Paul Bottein
aeaf091b50 Use sensor device class for graph and precision (#18099)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-10-23 15:01:24 +02:00
Paul Bottein
c6be4d6f4d Improve warning messages in conditional card (#18272)
* Improve warning messages in conditional card

* Update src/panels/lovelace/editor/conditions/ha-card-condition-editor.ts

Co-authored-by: Bram Kragten <mail@bramkragten.nl>

---------

Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-10-23 14:50:45 +02:00
Caius-Bonus
c48b620e03 Fix inconsistencies in slugify between frontend and core implementation (#18297) 2023-10-23 08:37:56 +00:00
Steve Repsher
77e05decdf Remove ondemand methods for CodeMirror and SortableJS (#18336) 2023-10-23 10:29:49 +02:00
Necroneco
b24e99c56c Fix oscillating handler in more info fan card (#18305) (#18306) 2023-10-23 10:26:31 +02:00
J. Nick Koston
768344c3f7 Fix double load of lovelace resources (#18332) 2023-10-23 10:05:26 +02:00
Bram Kragten
03a21d5519 Only calculate opening direction when we are opening the datepicker (#18313) 2023-10-23 09:58:20 +02:00
dependabot[bot]
1247a5c8d3 Bump home-assistant/wheels from 2023.10.4 to 2023.10.5 (#18338)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-23 09:54:53 +02:00
dependabot[bot]
db8287df89 Bump actions/checkout from 4.1.0 to 4.1.1 (#18337)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-23 09:03:17 +02:00
renovate[bot]
71edbd6352 Update dependency sinon to v16.1.3 (#18325)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-22 13:05:20 -04:00
renovate[bot]
9d87a66908 Update dependency lint-staged to v15.0.2 (#18326)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-22 13:03:45 -04:00
renovate[bot]
11d62cece2 Lock file maintenance (#18284)
* Lock file maintenance

* Add resolution to keep lit at v2

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <steverep@users.noreply.github.com>
2023-10-22 03:34:14 +00:00
renovate[bot]
f15a65f5a6 Update dependency sinon to v16.1.1 (#18322)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-21 22:41:15 -04:00
renovate[bot]
a03d3f796b Update dependency @types/ua-parser-js to v0.7.38 (#18321) 2023-10-21 22:26:22 -04:00
renovate[bot]
d0f5b0e864 Update dependency @types/tar to v6.1.7 (#18320) 2023-10-21 23:43:59 +00:00
renovate[bot]
e4a67dd555 Update dependency @types/sortablejs to v1.15.4 (#18319) 2023-10-21 19:33:02 -04:00
renovate[bot]
f72ab94742 Update dependency @types/qrcode to v1.5.4 (#18317)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-21 23:22:48 +00:00
renovate[bot]
b521be6d3b Update dependency @types/serve-handler to v6.1.3 (#18318)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-21 19:11:27 -04:00
renovate[bot]
3fa7001be6 Update dependency @types/mocha to v10.0.3 (#18316)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-21 20:37:21 +00:00
renovate[bot]
b45226509b Update dependency @types/js-yaml to v4.0.8 (#18309)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-21 20:31:43 +00:00
renovate[bot]
2a5f8097bc Update dependency @types/luxon to v3.3.3 (#18315)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-21 16:24:47 -04:00
renovate[bot]
0ffe0f38e1 Update dependency @types/leaflet to v1.9.7 (#18310)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-21 20:19:23 +00:00
renovate[bot]
c48491088e Update dependency @codemirror/state to v6.3.1 (#18307)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-21 16:15:23 -04:00
renovate[bot]
f115e4025d Update dependency @types/html-minifier-terser to v7.0.1 (#18308)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-21 16:06:07 -04:00
renovate[bot]
7be8a799aa Update dependency @types/leaflet-draw to v1.0.9 (#18311)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-21 16:04:54 -04:00
karwosts
d992b2d40b Fix missing range labels in date-range-picker (#18274)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-10-21 15:40:38 +00:00
karwosts
96fbd8aefb Don't round statistic values before plotting (#18312) 2023-10-21 17:19:03 +02:00
renovate[bot]
17df761a1b Update dependency @types/esprima to v4.0.5 (#18304) 2023-10-20 23:44:38 -04:00
renovate[bot]
79b2fa96ed Update dependency @types/chromecast-caf-receiver to v6.0.11 (#18302) 2023-10-21 03:08:33 +00:00
renovate[bot]
c14e3333cf Update dependency @types/chromecast-caf-sender to v1.0.7 (#18303) 2023-10-20 22:56:56 -04:00
renovate[bot]
4af0ecbaa8 Update dependency @types/babel__plugin-transform-runtime to v7.9.4 (#18301) 2023-10-20 22:50:11 -04:00
Bram Kragten
ce11301516 Fix initial theming (#18296) 2023-10-20 20:44:53 +02:00
Josh McCarty
16766f8878 Wrap dict attributes (#18290) 2023-10-20 17:07:14 +02:00
renovate[bot]
5e933e8e15 Update typescript-eslint monorepo to v6.8.0 (#18292)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-19 23:28:11 -04:00
renovate[bot]
7eb92be84a Update formatjs monorepo (#18285)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-19 23:26:56 -04:00
Kendell R
60ec4d31db Fix some minor inconsistencies/duplications (#18071) 2023-10-19 17:29:05 +02:00
Steve Repsher
3526ba308f Remove unused imports from ZHA card and alias editor (#18282) 2023-10-19 17:17:27 +02:00
Steve Repsher
02a212a47d Load and set Polymer settings asynchronously (#18278) 2023-10-19 17:09:35 +02:00
Simon Vallières
49f88a98a5 Add multi-path icon support and path attributes (#18189) 2023-10-19 15:35:50 +02:00
Steve Repsher
feb371839c Fix yarn lock file (#18283) 2023-10-19 01:27:57 +02:00
renovate[bot]
24c37f5293 Update dependency @rollup/plugin-replace to v5.0.4 (#18280)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-18 18:25:15 -04:00
renovate[bot]
8f3fea5a33 Update dependency vis-network to v9.1.8 (#18281)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-18 18:24:28 -04:00
renovate[bot]
b2bc529d7b Update dependency @rollup/plugin-commonjs to v25.0.7 (#18279)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-18 18:23:24 -04:00
Jonas Lang
ad68782b79 Typo automation (#18266) 2023-10-18 13:42:30 +00:00
renovate[bot]
f432528388 Update dependency lint-staged to v15 (#18267)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-18 15:29:38 +02:00
Kendell R
f98c0769b0 Fix "No visual editor support for action: " (#18271) 2023-10-18 15:24:36 +02:00
Josh McCarty
b2cb0d8e0f Fixes alarm dialog inputmode for code input (#18263) 2023-10-17 12:23:40 +02:00
renovate[bot]
4c7c04bdc0 Update dependency marked to v9.1.2 (#18259) 2023-10-16 21:46:43 -04:00
renovate[bot]
ffb7469a7e Update dependency webpack to v5.89.0 (#18260) 2023-10-16 21:44:07 -04:00
Steve Repsher
d88831b719 Enable CORS for legacy bundle loading (#18248) 2023-10-16 20:40:15 +02:00
Steve Repsher
3b2f6d71f5 Minify ha-style/Roboto and load asynchronously (#18226) 2023-10-16 20:37:50 +02:00
Simon Lamon
a08185a1a5 Migrate developer state tools to LitElement (#18134)
Co-authored-by: Steve Repsher <steverep@users.noreply.github.com>
2023-10-16 20:37:04 +02:00
renovate[bot]
7ee91ca8fc Update vaadinWebComponents monorepo to v24.2.0 (#18255)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-16 15:54:20 +02:00
Simon Lamon
b6fe0cfa1b Replace internal material/web usages (#18219)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-10-16 15:42:59 +02:00
karwosts
c3a9682861 An alias editor and overflow menu for choose options (#18183) 2023-10-16 14:02:34 +02:00
Simon Lamon
62d21bea4f Replace polymer paper-slider (#18168)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-10-16 13:35:13 +02:00
Steve Repsher
434b9595c0 Remove SystemJS loader from Webpack builds (#18249) 2023-10-16 12:42:46 +02:00
renovate[bot]
a0f1b7f365 Update dependency @codemirror/autocomplete to v6.10.2 (#18253)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-16 12:40:37 +02:00
dependabot[bot]
628c2c39cf Bump relative-ci/agent-action from 2.1.8 to 2.1.10 (#18252)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-16 09:04:34 +02:00
Bram Kragten
4b885cbd93 Remove narrow from strategies (#18201) 2023-10-16 00:20:36 -04:00
Simon Lamon
02d9786f8c Fix lokalise translation upload (#18221)
Fix translation upload
2023-10-15 23:52:12 -04:00
renovate[bot]
88d14cd7b5 Update dependency magic-string to v0.30.5 (#18238)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-15 16:53:32 -04:00
renovate[bot]
4ea8f599cf Update dependency @codemirror/state to v6.3.0 (#18228)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-15 16:52:50 -04:00
renovate[bot]
37ef444180 Update babel monorepo to v7.23.2 (#18223)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-15 01:10:47 +00:00
renovate[bot]
4253feb8a2 Update dependency marked to v9.1.1 (#18224)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-14 21:00:11 -04:00
renovate[bot]
ce33cf7ff3 Update dependency @codemirror/autocomplete to v6.10.1 (#18218)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-14 20:59:07 -04:00
renovate[bot]
faa4455951 Update dependency @bundle-stats/plugin-webpack-filter to v4.7.7 (#18220)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-14 15:57:36 -04:00
renovate[bot]
08d8b43f44 Update dependency @types/js-yaml to v4.0.7 (#18212) 2023-10-13 20:59:48 -04:00
Paul Bottein
15c67fe299 Improve state and name display on state-card-display (#18207) 2023-10-13 10:38:19 +02:00
renovate[bot]
a10ec1f53c Update typescript-eslint monorepo to v6.7.5 (#18203)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-12 15:47:12 -04:00
Bram Kragten
1b220abf70 run on all branches 2023-10-12 19:09:33 +02:00
Till
607175706b Add date range picker to energy period selector (#14337) 2023-10-12 18:29:04 +02:00
Bram Kragten
f8966a2114 Slug not needed for reactive ci (#18200) 2023-10-12 17:00:29 +02:00
G Johansson
4c94ac5dda CountrySelector (#18035) 2023-10-12 16:47:28 +02:00
Bram Kragten
6d1e923b83 Voice assistant dev: fix wake word continue (#18181)
Start wake word when continue when wake word was used the previous run
2023-10-12 16:10:14 +02:00
Bram Kragten
2c743b7b56 Update relative-ci.yaml (#18197) 2023-10-12 15:26:33 +02:00
tzagim
6686da1f24 Fix for RTL languages - Profile panel + weather forecast card (#18191) 2023-10-12 14:27:01 +02:00
renovate[bot]
6bdeb45f6b Update vaadinWebComponents monorepo to v24.1.11 (#18195)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-12 14:25:06 +02:00
Simon Lamon
9f05a9679b Fix RelativeCI input issues (#18196) 2023-10-12 14:17:13 +02:00
Simon Lamon
51a6376991 Fix RelativeCI format issues (#18194) 2023-10-12 12:35:11 +02:00
Simon Lamon
c5056eb4d2 Allow Multiple Entities for Numeric State Trigger (#18064) 2023-10-12 09:37:19 +02:00
Steve Repsher
79f3759756 Create webpack bundle stats for Relative CI (#18178) 2023-10-12 09:28:34 +02:00
renovate[bot]
6c3b748279 Update dependency @rollup/plugin-node-resolve to v15.2.3 (#18193) 2023-10-11 16:52:28 -04:00
Bram Kragten
4293192e74 Use progress button when adding/updating mount (#18182) 2023-10-11 13:22:56 +02:00
Bram Kragten
ceaceaf47b Move select clearing to ha-select (#18190) 2023-10-11 13:22:17 +02:00
Piero
479a625662 Update url on tab reorder (#18169)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-10-11 12:49:08 +02:00
fustom
095d171a61 Tile card current temperature for climate entity (#18143) 2023-10-11 09:01:34 +02:00
renovate[bot]
8c3a7de6d9 Update dependency @mdi/js to v7.3.67 (#18185)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-10 23:42:48 -04:00
renovate[bot]
84e743c4c0 Update dependency @mdi/svg to v7.3.67 (#18186)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-10 23:26:46 -04:00
Paul Bottein
51f8d91ddf Fix user name in config page (#18187) 2023-10-10 23:25:21 -04:00
Kendell R
8f1a6ef1b1 Improve password show/hide buttons (#18176) 2023-10-10 13:26:54 +00:00
Kendell R
b3f1783269 Say "log in" instead of "login" on the authorize page (#18175) 2023-10-10 12:47:31 +02:00
renovate[bot]
7e630d0fc5 Update dependency eslint to v8.51.0 (#18172) 2023-10-09 21:38:05 -04:00
renovate[bot]
a4533251a1 Update dependency vis-network to v9.1.7 (#18167)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-09 15:32:45 -04:00
renovate[bot]
659db109aa Update CodeMirror (#18166)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-09 15:31:34 -04:00
Kendell R
d3fd27910a Separate outline color (#18109) 2023-10-09 18:29:25 +02:00
Simon Lamon
eae3c1309f Localize durations using Intl.NumberFormat (#18067) 2023-10-09 18:28:08 +02:00
Thomas Konrad
4a5b67e320 Add 'max devices' config to Energy Devices Graph (#17553) 2023-10-09 17:27:22 +02:00
Paul Bottein
86c014b677 Add screen condition to conditional card. (#18041) 2023-10-09 15:06:58 +02:00
karwosts
5a6d6dc7d3 Fix period selector in statistic card (#18131) 2023-10-09 14:41:27 +02:00
Steve Repsher
294df396f4 Remove test language from production (really) (#18137) 2023-10-09 14:40:06 +02:00
renovate[bot]
cc01e8d6a8 Update dependency core-js to v3.33.0 (#18119)
* Update dependency core-js to v3.33.0

* Update babel setting

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <steverep@users.noreply.github.com>
2023-10-09 12:38:31 +00:00
Michael
a3532a41da Add before offset to sun condition description (#18152) 2023-10-09 14:36:16 +02:00
karwosts
ae35fd1eb8 Fix handling of negative zero in number selectors (#17127) 2023-10-09 14:34:16 +02:00
Simon Lamon
63095f1501 Replace paper-items in Scene Editor (#18101) 2023-10-09 14:29:58 +02:00
Steve Repsher
bf9e2cd404 Move polyfill time zone data out of bundles (#18142) 2023-10-09 14:28:16 +02:00
Bram Kragten
5b7ef941e4 Make it possible to clear an optional select (#18047) 2023-10-09 14:24:18 +02:00
ildar170975
352e721d0c Update state-badge.ts: change border-radius for media_player (#18066) 2023-10-09 14:11:29 +02:00
ildar170975
220b4794c5 Update developer-tools-state.js: fix alignment for ha-tips (#17608) 2023-10-09 13:59:09 +02:00
karwosts
811ebde42a Add per-set theme coloring to remainder of energy dashboard (#17826) 2023-10-09 13:55:21 +02:00
ildar170975
bfeee618f4 more-info: make long states "multilined" (#17649)
* align info when a state is multiline

* Enable multiline for long states

* Update state-info.ts

* Update state-card-display.ts
2023-10-09 13:52:03 +02:00
karwosts
db9b16e9f5 Change help link in statistics pickers in energy dashboard (#18138) 2023-10-09 13:47:46 +02:00
Philip Allgaier
7861d813b1 Add translations for voice assistant debug page (#17843)
* Add translations for voice assistant debug page

* Apply suggestions from code review

---------

Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-10-09 11:46:59 +00:00
breakthestatic
d7760c4b7a Expose history replace in action editor (#17740)
* Expose existing navigation history replace to the UI

* Remove navigation_replace from GUI editor

* Restore default value
2023-10-09 12:02:30 +02:00
dependabot[bot]
a60a721ea5 Bump home-assistant/wheels from 2023.10.1 to 2023.10.4 (#18162)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-09 08:40:14 +02:00
renovate[bot]
36219e1cb4 Update dependency marked to v9.1.0 (#18148)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-08 13:33:17 -04:00
renovate[bot]
7fdbc9dd32 Update dependency sinon to v16.1.0 (#18158)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-08 13:31:05 -04:00
renovate[bot]
334be93254 Update dependency @rollup/plugin-commonjs to v25.0.5 (#18154)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-08 17:28:14 +00:00
renovate[bot]
c14a6d59e2 Update dependency @rollup/plugin-replace to v5.0.3 (#18157)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-08 13:19:25 -04:00
renovate[bot]
7a8139b650 Update dependency @rollup/plugin-json to v6.0.1 (#18155)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-08 17:16:16 +00:00
renovate[bot]
9d2a443217 Update dependency @rollup/plugin-babel to v6.0.4 (#18153)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-08 13:07:16 -04:00
renovate[bot]
484b166233 Update dependency @rollup/plugin-node-resolve to v15.2.2 (#18156)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-08 13:04:52 -04:00
renovate[bot]
530208cb6a Update Yarn to v3.6.4 (#18139)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-07 00:01:49 -04:00
renovate[bot]
b534ff8ca3 Update dependency @codemirror/view to v6.21.2 (#18132) 2023-10-05 20:17:36 -04:00
renovate[bot]
02bd50c434 Update typescript-eslint monorepo to v6.7.4 (#18128) 2023-10-05 20:14:53 -04:00
Paul Bottein
9a84ce7b81 20231005.0 (#18126)
* Update dependency @material/web to v1.0.0 (#18070)

* Update dependency @material/web to v1.0.0

* Fix icon button size

* Remove unused ios override

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>

* Update dependency magic-string to v0.30.4 (#18089)

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

* Bump postcss from 8.4.30 to 8.4.31 (#18110)

Bumps [postcss](https://github.com/postcss/postcss) from 8.4.30 to 8.4.31.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.30...8.4.31)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: indirect
...

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

* Update CodeMirror (#18096)

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

* Update vaadinWebComponents monorepo to v24.1.10 (#18092)

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

* Make the "icon next/prev" series load faster (#18087)

* Preserve ancillary fields in a repeat action when modifying the form (#18068)

* Do not clear alias when editing automation action, condition or trigger (#18114)

* Use restart dialog confirmation for quick command (#18113)

* Add translations for restore backup dialogs (#18112)

Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>

* Hide tooltip after clicking on a chart to display more info (cosmetic change) (#18103)

* fix setting wake word to first option everytime (#18121)

* Fix class field for ha-icon-next/prev (#18118)

* Set border-radius to 0 for img in thread panel (#18124)

* Load Intl locale data in parallel (#18120)

* Load Intl locale data in parallel

* Switch to check result.ok

* Update dependency @codemirror/view to v6.21.1 (#18125)

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

* Bumped version to 20231005.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Kendell R <KTibow@users.noreply.github.com>
Co-authored-by: karwosts <32912880+karwosts@users.noreply.github.com>
Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>
Co-authored-by: K3A <966992+k3a@users.noreply.github.com>
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
Co-authored-by: Steve Repsher <steverep@users.noreply.github.com>
2023-10-05 18:29:15 +02:00
Paul Bottein
6e00be6684 Bumped version to 20231005.0 2023-10-05 18:28:19 +02:00
renovate[bot]
91ec43b9bc Update dependency @codemirror/view to v6.21.1 (#18125)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-05 18:19:22 +02:00
Steve Repsher
4a4d9a08d5 Load Intl locale data in parallel (#18120)
* Load Intl locale data in parallel

* Switch to check result.ok
2023-10-05 10:26:15 -04:00
Paul Bottein
0c32d1eb4e Set border-radius to 0 for img in thread panel (#18124) 2023-10-05 15:48:18 +02:00
Steve Repsher
f43171f91c Fix class field for ha-icon-next/prev (#18118) 2023-10-05 12:52:31 +00:00
Bram Kragten
48593eee0d fix setting wake word to first option everytime (#18121) 2023-10-05 11:30:05 +02:00
K3A
c106a0ac85 Hide tooltip after clicking on a chart to display more info (cosmetic change) (#18103) 2023-10-05 11:28:07 +02:00
Paul Bottein
e1a71fbfaa Add translations for restore backup dialogs (#18112)
Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>
2023-10-05 11:26:50 +02:00
Paul Bottein
0489d8922e Use restart dialog confirmation for quick command (#18113) 2023-10-05 11:24:43 +02:00
Paul Bottein
d7f1e9d091 Do not clear alias when editing automation action, condition or trigger (#18114) 2023-10-05 11:23:44 +02:00
karwosts
32bc8bd01d Preserve ancillary fields in a repeat action when modifying the form (#18068) 2023-10-04 14:36:58 +02:00
Kendell R
242b018ece Make the "icon next/prev" series load faster (#18087) 2023-10-04 13:59:51 +02:00
renovate[bot]
c25447d001 Update vaadinWebComponents monorepo to v24.1.10 (#18092)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-04 13:57:42 +02:00
renovate[bot]
d2d718475f Update CodeMirror (#18096)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-04 13:56:13 +02:00
dependabot[bot]
8e1e42cd50 Bump postcss from 8.4.30 to 8.4.31 (#18110)
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.30 to 8.4.31.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.30...8.4.31)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-04 03:29:36 +00:00
renovate[bot]
014f9b8b73 Update dependency magic-string to v0.30.4 (#18089)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-03 23:15:36 -04:00
renovate[bot]
774c7e275c Update dependency @material/web to v1.0.0 (#18070)
* Update dependency @material/web to v1.0.0

* Fix icon button size

* Remove unused ios override

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
2023-10-03 09:48:27 +00:00
Bram Kragten
75c43d15e1 20231002.0 (#18102) 2023-10-02 21:43:12 +02:00
Bram Kragten
e288b003d8 Bumped version to 20231002.0 2023-10-02 21:41:37 +02:00
yousaf465
4aa8518ed6 Change Urdu language to RTL (#18063)
Co-authored-by: karwosts <32912880+karwosts@users.noreply.github.com>
2023-10-02 21:26:07 +02:00
Bram Kragten
6acbf6395c Ignore prettier styling for tooltip of disk life time (#18097) 2023-10-02 21:23:13 +02:00
Bram Kragten
2030feabf7 Only set wakeword when not in new wakewords (#18095) 2023-10-02 21:23:02 +02:00
Bram Kragten
46d1dbcb47 Dont continue debug assist run when disconnected (#18098) 2023-10-02 21:22:50 +02:00
Bram Kragten
2f6297ec17 Always deduplicate found integrations in onboarding (#18091)
always deduplicate found integrations in onboarding
2023-10-02 14:30:28 +02:00
Paul Bottein
a3400a2f9c Prevent ha-form data lost if quick data updates (#18094) 2023-10-02 11:44:43 +02:00
Kendell R
c345f41416 Factor out style data to reduce bundle size (#18077) 2023-10-02 11:18:44 +02:00
Kendell R
292cdc7621 Fix clicking on radio buttons (and improve code) (#18078) 2023-10-02 10:58:10 +02:00
dependabot[bot]
c5ba74e0b4 Bump home-assistant/wheels from 2023.09.1 to 2023.10.1 (#18088)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-02 08:54:53 +02:00
renovate[bot]
41b24de559 Update dependency chai to v4.3.10 (#18082) 2023-10-01 20:24:14 -04:00
renovate[bot]
4fe7b18161 Update dependency chai to v4.3.9 (#18074)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-30 16:17:27 -04:00
renovate[bot]
399a979c33 Update dependency glob to v10.3.10 (#18072)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-30 16:16:20 -04:00
renovate[bot]
03c5482860 Update dependency @types/mocha to v10.0.2 (#18075)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-30 16:15:30 -04:00
Franck Nijhof
a116a50604 Hide shopping list from discovered onboarding integrations (#18069) 2023-09-29 22:39:57 +02:00
renovate[bot]
0dfa292c40 Update dependency glob to v10.3.9 (#18060)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-29 13:30:08 -04:00
Bram Kragten
5914a6c1a4 Clear wake word when new engine is picked, select first wake word. by… (#18058)
* Clear wake word when new engine is picked, select first wake word. by default

* Update assist-pipeline-detail-wakeword.ts
2023-09-29 12:38:11 +02:00
Bram Kragten
8daff17d6a Change linear-progress bar background color for dark mode (#18059) 2023-09-29 10:33:26 +02:00
renovate[bot]
59bd852e7a Update dependency @octokit/rest to v20.0.2 (#18053)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-28 22:51:10 -04:00
renovate[bot]
246fe2861e Update dependency eslint-plugin-wc to v2.0.4 (#18050)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-28 14:18:22 -04:00
renovate[bot]
dbf623ada2 Update typescript-eslint monorepo to v6.7.3 (#18051)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-28 14:17:33 -04:00
renovate[bot]
c848356a6d Update dependency @types/sortablejs to v1.15.3 (#18049)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-28 14:16:08 -04:00
Paul Bottein
47022d3a04 20230928.0 (#18052) 2023-09-28 20:15:04 +02:00
Paul Bottein
d732bd4776 Bumped version to 20230928.0 2023-09-28 20:12:59 +02:00
Raman Gupta
5a5265723c Handle breaking changes as result of zwave_js lib upgrade (#18009)
* Handle breaking changes as result of zwave_js lib upgrade

* fix capitalization
2023-09-28 20:00:21 +02:00
Bram Kragten
30c6e4e35e Link to docs when no wake word engines (#18046) 2023-09-28 19:34:31 +02:00
renovate[bot]
c5f909d89f Update dependency @types/serve-handler to v6.1.2 (#18048)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-28 13:19:14 -04:00
Simon Lamon
13a691606f Migrate developer events tools to LitElement (#17869) 2023-09-28 14:58:16 +00:00
Simon Lamon
44748df3ac Make numeric_state trigger and condition translatable (#18017) 2023-09-28 14:39:57 +02:00
dependabot[bot]
4f3dc82fd9 Bump get-func-name from 2.0.0 to 2.0.2 (#18043)
Bumps [get-func-name](https://github.com/chaijs/get-func-name) from 2.0.0 to 2.0.2.
- [Release notes](https://github.com/chaijs/get-func-name/releases)
- [Commits](https://github.com/chaijs/get-func-name/commits/v2.0.2)

---
updated-dependencies:
- dependency-name: get-func-name
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-27 23:26:34 -04:00
Paul Bottein
b2e260d6ba Use initial color param for favorite color dialog (#18039)
* Use initial color param for favorite color dialog

* Select right mode if light is off
2023-09-27 16:26:16 +02:00
imgbot[bot]
7111a21173 [ImgBot] Optimize images (#18038)
Co-authored-by: ImgBotApp <ImgBotHelp@gmail.com>
2023-09-27 14:31:05 +02:00
karwosts
ad51d313a1 Debug option to enable logging server calls (#17956) 2023-09-27 14:26:25 +02:00
Bram Kragten
60345f3fe8 20230926.0 (#18037) 2023-09-26 23:56:14 +02:00
Bram Kragten
956723cf15 Bumped version to 20230926.0 2023-09-26 23:51:50 +02:00
K3A
dd6a69ea03 State History Charts - Handle click to chart to open More Info for the clicked entity (#18036) 2023-09-26 21:19:11 +00:00
Bram Kragten
98bd08c9dd Update layout of hardware info (#18034) 2023-09-26 23:09:14 +02:00
karwosts
6b31c07459 Add an image fit mode to hui-image and picture-entity-card (#17959) 2023-09-26 23:08:56 +02:00
renovate[bot]
c3b41afb68 Update dependency @types/esprima to v4.0.4 (#18031)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 23:07:07 +02:00
renovate[bot]
46d8f2eefb Update dependency @lokalise/node-api to v12 (#18029)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 23:05:51 +02:00
karwosts
0ffc7b59d6 Prevent creating views with duplicate URL (#17871) 2023-09-26 22:54:27 +02:00
karwosts
74be4ae20a Enable reorder mode for choose options (#17422) 2023-09-26 22:52:20 +02:00
karwosts
5455ce2e0f Display an error message when disabling the button in devtools/service (#17519) 2023-09-26 22:49:57 +02:00
karwosts
01405d96b6 Fix too wide energy chart bars (#17787) 2023-09-26 22:49:04 +02:00
renovate[bot]
965f893a65 Update dependency @octokit/auth-oauth-device to v6.0.1 (#18033)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 22:44:02 +02:00
Simon Lamon
0b6813d9dc Update Add and Edit area dialog (#17711) 2023-09-26 22:41:02 +02:00
Paul Bottein
cbd424ff5a Fix aria label auth page (#18032) 2023-09-26 22:39:25 +02:00
Bram Kragten
b899e39a9e Fix markdown card template handling (#17851) 2023-09-26 22:37:27 +02:00
karwosts
49a66961e2 Fix adjust statistic dialog after a period of sensor unavailability (#17934)
* Fix adjust statistic dialog after a period of sensor unavailability

* Remove fetching an unnecessary datapoint
2023-09-26 22:00:39 +02:00
karwosts
c69fb77b62 Fix choose description when a non-list form of conditions is used (#18023) 2023-09-26 21:54:40 +02:00
Bram Kragten
d794ec3408 Update assist-pipeline-detail-wakeword.ts 2023-09-26 21:27:27 +02:00
Paul Bottein
d8c98d8f96 Move auth components from shadow DOM to light DOM (#18015) 2023-09-26 20:17:03 +02:00
karwosts
acb32ae5c8 Allow saving the light current color as a favorite (#17992) 2023-09-26 18:59:59 +02:00
Bram Kragten
c567a61dd7 Add wake word to assist pipeline settings (#18019)
* Add wake word to assist pipeline settings

* Update assist-pipeline-detail-wakeword.ts

* Add icon for wake word domain

* format state

* implement `wake_word/info` command
2023-09-26 12:17:45 -04:00
Bram Kragten
2a8d98307e Fix chart not able to setup because canvas in use (#18018)
* Fix chart not able to setup because canvas in use

* Update ha-chart-base.ts
2023-09-26 17:58:02 +02:00
Bram Kragten
5aaf0cd579 Update logo (#17964) 2023-09-26 15:33:40 +02:00
renovate[bot]
f38e4dcf54 Update dependency @octokit/plugin-retry to v6.0.1 (#18026)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 12:54:40 +00:00
Steve Repsher
1df1ce5423 Stop notifications for errors writing to system log (#18022) 2023-09-26 14:43:27 +02:00
Paul Bottein
a68381a4d9 Clear quick bar items with closing the quick bar dialog (#18025) 2023-09-26 14:27:27 +02:00
renovate[bot]
f7604b136e Update dependency eslint to v8.50.0 (#18021)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-25 18:35:42 -04:00
karwosts
362d950515 Ensure computeStateName returns a string type (#17928) 2023-09-25 18:11:02 +02:00
Bram Kragten
22f9dbd65d Add wake word to assist pipeline debug (#17897) 2023-09-25 17:51:12 +02:00
karwosts
579050bfc7 Add new config options for map entity markers (#17938) 2023-09-25 17:26:53 +02:00
Joost Lekkerkerker
6b33b4e656 Add label to location selector (#17402)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-09-25 13:38:47 +00:00
renovate[bot]
dac7c0f5fd Lock file maintenance (#17960)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-09-25 12:43:17 +00:00
renovate[bot]
aaceff0d23 Update dependency marked to v9 (#17914)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-25 14:13:27 +02:00
renovate[bot]
48e5cc6b63 Update dependency eslint-plugin-lit-a11y to v4 (#17143)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <steverep@users.noreply.github.com>
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
2023-09-25 14:11:42 +02:00
renovate[bot]
799a0933ba Update dependency chart.js to v4.4.0 (#17736)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-25 14:11:18 +02:00
dependabot[bot]
940618f72d Bump home-assistant/wheels from 2023.04.0 to 2023.09.1 (#18011)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-25 14:10:42 +02:00
renovate[bot]
d8ff69b65d Update fullcalendar monorepo to v6.1.9 (#18007)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-25 14:08:54 +02:00
Steve Repsher
391aca6388 Improve core script and default to upgrade (#17915) 2023-09-25 14:08:30 +02:00
Simon Lamon
071d078e84 Make some triggers translatable (#17692) 2023-09-25 14:07:31 +02:00
renovate[bot]
61982bcb77 Update CodeMirror (#17996)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-25 13:23:51 +02:00
Bram Kragten
1c79fcc244 Fix translations onboarding integration (#17980) 2023-09-25 12:58:54 +02:00
dependabot[bot]
f3513e3e52 Bump actions/checkout from 4.0.0 to 4.1.0 (#18010)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-25 11:20:50 +02:00
renovate[bot]
b3b10fa2ef Update dependency eslint-plugin-wc to v2.0.3 (#17999)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-24 16:48:26 -04:00
renovate[bot]
0ffabcc055 Update dependency glob to v10.3.5 (#18000)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-24 16:44:03 -04:00
renovate[bot]
9da8499004 Update dependency eslint-plugin-wc to v2 (#17966)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-23 00:50:32 -04:00
renovate[bot]
04d1fccb87 Update formatjs monorepo (#17975)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-23 00:27:33 -04:00
renovate[bot]
fdf1eb5170 Update dependency @lokalise/node-api to v11.1.0 (#17995)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-23 00:24:25 -04:00
renovate[bot]
4e2877b035 Update vaadinWebComponents monorepo to v24.1.9 (#17976) 2023-09-22 00:45:15 +00:00
renovate[bot]
467059f515 Update dependency cropperjs to v1.6.1 (#17968) 2023-09-21 20:38:02 -04:00
renovate[bot]
e6db63bb63 Update typescript-eslint monorepo to v6.7.2 (#17982) 2023-09-21 20:33:43 -04:00
Paul Bottein
78ddec2c8c Small fixes for tile features (#17983)
* Add missing translations

* Remove unused import
2023-09-21 21:33:32 +02:00
Paul Bottein
9217d5bf40 Refactor strategy foundation (#17921) 2023-09-21 20:22:52 +02:00
Paul Bottein
90d01e4b63 Add style and preset modes options to climate preset tile feature (#17977) 2023-09-21 18:41:09 +02:00
Joost Lekkerkerker
e7960bf8c0 Make pull request template more in line with core (#17441) 2023-09-21 17:23:31 +02:00
Thomas Aldrian
bf12eaa1b3 Add climate preset tile feature (#17946)
* Add climate preset tile feature

* Minor fixes

* Formatting fixes

* Update src/panels/lovelace/create-element/create-tile-feature-element.ts

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

---------

Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
2023-09-21 12:27:41 +02:00
Bram Kragten
6179c75182 don't round update entity images (#17972) 2023-09-20 20:39:54 +02:00
Paul Bottein
4b5c7021ff Add select option tile feature (#17971) 2023-09-20 12:43:21 +02:00
Paul Bottein
3349031cbd Simplify data table template (#17825)
* Simplify data table template

* Fix backup and gallery
2023-09-20 12:09:44 +02:00
renovate[bot]
5e107d43d7 Update babel monorepo to v7.22.20 (#17965)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-19 14:36:07 -04:00
Steve Repsher
e46f2cd9bf Adjust password manager polyfill for form injections (#17830) 2023-09-19 14:51:38 +02:00
Steve Repsher
713ebfcc22 Enable shipped proposals in Babel (#17909) 2023-09-19 13:56:55 +02:00
renovate[bot]
46e4eafe95 Update dependency @types/babel__plugin-transform-runtime to v7.9.3 (#17957) 2023-09-19 07:45:50 -04:00
renovate[bot]
e6fd18e23b Update dependency @types/js-yaml to v4.0.6 (#17958) 2023-09-19 07:43:55 -04:00
renovate[bot]
71cd71dfd5 Update formatjs monorepo (#17890)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-18 12:50:43 -04:00
renovate[bot]
1019ccfd26 Update dependency @lrnwebcomponents/simple-tooltip to v7.0.18 (#17905)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-18 12:41:29 -04:00
renovate[bot]
577c1d8522 Update dependency @lit-labs/context to v0.4.1 (#17935)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-18 12:35:46 -04:00
renovate[bot]
63f0b469cc Update dependency vis-data to v7.1.7 (#17939) 2023-09-18 12:25:23 -04:00
renovate[bot]
e688417863 Update dependency @babel/core to v7.22.19 (#17948) 2023-09-18 08:27:41 -04:00
renovate[bot]
a19633e2d4 Update CodeMirror (#17944) 2023-09-18 08:21:31 -04:00
renovate[bot]
8797142cca Update dependency sinon to v16 (#17940) 2023-09-18 08:15:40 -04:00
Madelena Mak
2a7403b6fd Added new logo design guidelines (#17951)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-09-17 22:29:53 +02:00
renovate[bot]
22efe14149 Update dependency @types/tar to v6.1.6 (#17931)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-15 18:57:25 -04:00
renovate[bot]
7cce24bcd1 Update typescript-eslint monorepo to v6.7.0 (#17923) 2023-09-14 20:25:46 -04:00
renovate[bot]
b8f0bb66cd Update dependency @codemirror/view to v6.18.1 (#17922)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-14 13:11:12 -04:00
renovate[bot]
b950f990b4 Update dependency @material/web to v1.0.0-pre.17 (#17882)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-13 10:11:13 +02:00
renovate[bot]
b511e7a37d Update vaadinWebComponents monorepo to v24.1.7 (#17894) 2023-09-12 20:38:23 -04:00
renovate[bot]
50f4b78f2e Update dependency ua-parser-js to v1.0.36 (#17912)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-12 11:45:17 -04:00
renovate[bot]
7b0b4cdfe4 Update dependency @codemirror/view to v6.18.0 (#17865) 2023-09-11 20:59:49 -04:00
renovate[bot]
c60e5c4c61 Update dependency eslint to v8.49.0 (#17904) 2023-09-11 20:41:20 -04:00
karwosts
709a63e6da Fix schedule helper form when resizing or dragging to or past midnight (#17900) 2023-09-11 22:54:45 +02:00
dependabot[bot]
f689eed073 Bump actions/checkout from 3.6.0 to 4.0.0 (#17891)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.6.0 to 4.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/v3.6.0...v4.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-11 15:22:18 -04:00
renovate[bot]
cd55eee2fc Update dependency @babel/core to v7.22.17 (#17899)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-11 15:19:05 -04:00
Bram Kragten
40bb6566b8 20230911.0 (#17901) 2023-09-11 18:30:42 +02:00
dependabot[bot]
cf27e68748 Bump actions/cache from 3.3.1 to 3.3.2 (#17892)
Bumps [actions/cache](https://github.com/actions/cache) from 3.3.1 to 3.3.2.
- [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/v3.3.1...v3.3.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-11 12:24:36 -04:00
Bram Kragten
472ed2fe82 Bumped version to 20230911.0 2023-09-11 18:19:34 +02:00
Paul Bottein
d0a60984ed Allow user to theme all cover states in tile card and more info. (#17898) 2023-09-11 18:18:39 +02:00
Bram Kragten
24d401061c Show error when set state fails (#17850) 2023-09-11 18:13:36 +02:00
Bram Kragten
2352d05573 Ignore errors during logging (#17893) 2023-09-11 13:24:08 +02:00
renovate[bot]
87d53e38c4 Update dependency tar to v6.2.0 (#17861)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-10 19:21:53 -04:00
renovate[bot]
db3c535884 Update dependency core-js to v3.32.2 (#17887)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-10 19:18:23 -04:00
renovate[bot]
158b24f902 Update dependency luxon to v3.4.3 (#17872)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-10 19:16:40 -04:00
Joakim Sørensen
19c4ed4690 Show alternative names in certificate dialog (#17839) 2023-09-08 19:55:27 +02:00
Bram Kragten
eae4ca1271 if select has multiple, make init value an array (#17868)
if multiple, make it an array
2023-09-08 19:46:40 +02:00
Bram Kragten
db272e3e18 20230908.0 (#17866) 2023-09-08 15:56:12 +02:00
Bram Kragten
0276430ab5 Bumped version to 20230908.0 2023-09-08 15:55:22 +02:00
karwosts
db7caf1c32 Fix default formatEntityState function (#17852) 2023-09-08 15:54:54 +02:00
karwosts
7176a51fec update hasChanged for formatEntityState, fix glance card shouldUpdate (#17854) 2023-09-08 15:54:11 +02:00
Bram Kragten
4a6539d75b Clear template result when template changes (#17849) 2023-09-07 20:48:57 -04:00
renovate[bot]
850699ea70 Update dependency @types/chromecast-caf-sender to v1.0.6 (#17857) 2023-09-08 00:01:27 +00:00
renovate[bot]
c17cc22f88 Update typescript-eslint monorepo to v6.6.0 (#17858) 2023-09-07 19:59:46 -04:00
renovate[bot]
9e3f2d5cb7 Update babel monorepo to v7.22.15 (#17853) 2023-09-07 19:56:59 -04:00
renovate[bot]
0677c9c7b0 Update dependency @types/chromecast-caf-receiver to v6.0.10 (#17856) 2023-09-07 19:47:22 -04:00
Bram Kragten
af7e385884 Fix tooltip graph overflow (#17848) 2023-09-07 19:12:35 +02:00
Bram Kragten
35496ead23 20230906.1 (#17838) 2023-09-06 13:47:02 +02:00
Bram Kragten
ba88fef09b Bumped version to 20230906.1 2023-09-06 13:41:40 +02:00
Paul Bottein
ad0e59c8f4 Fix no listener margin in flow preview template (#17837) 2023-09-06 13:41:16 +02:00
Bram Kragten
14e6f5e8ca Subscribe to config entries in helper config (#17835) 2023-09-06 13:39:20 +02:00
Bram Kragten
41403a5d35 20230906.0 (#17834) 2023-09-06 09:54:26 +02:00
Bram Kragten
3c48157793 Use report errors instead of strict for template subscription (#17824) 2023-09-06 09:53:54 +02:00
Bram Kragten
3a07af6ad2 Bumped version to 20230906.0 2023-09-06 09:42:29 +02:00
Bram Kragten
c1c05f8d22 Add listeners to template helper preview (#17833) 2023-09-06 09:37:38 +02:00
Bram Kragten
29aed5371c Move translation fetching to gulp action (#17827) 2023-09-06 00:28:26 +02:00
Bram Kragten
76c878df57 Report Unhandled promise rejection as debug for now (#17831) 2023-09-05 16:39:40 -04:00
Bram Kragten
8acf557137 20230905.0 (#17828) 2023-09-05 18:11:08 +02:00
Bram Kragten
d6e7ebe71d Bumped version to 20230905.0 2023-09-05 18:07:59 +02:00
Erik Montnemery
085b26d5ea Simplify entity sources (#17770) 2023-09-05 14:45:22 +02:00
Bram Kragten
32472ca627 Add weather forecast options to more info (#17823) 2023-09-05 13:29:56 +02:00
Bram Kragten
c3c4bb4421 Fix initial value of select selector (#17822) 2023-09-05 13:29:47 +02:00
Paul Bottein
f7f1a0c32d Add better localize keys typings for config pages (#17815)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-09-05 11:39:03 +02:00
Bram Kragten
d4872b177f Start improve restore backup in onboarding (#17813) 2023-09-04 20:08:33 +02:00
Simon Lamon
5bb8c51d25 Guard against empty application credential domain (#17786) 2023-09-04 19:21:56 +02:00
Bram Kragten
4e62370d18 20230904.0 (#17819) 2023-09-04 19:18:58 +02:00
Bram Kragten
77c08fd00f Bumped version to 20230904.0 2023-09-04 19:18:08 +02:00
Bram Kragten
d8894a0078 Don't report errors while not connected (#17818) 2023-09-04 19:16:11 +02:00
renovate[bot]
4fd9c63633 Update dependency hls.js to v1.4.12 (#17817)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-04 15:31:48 +00:00
Paul Bottein
5e1583f925 Add keyboard support to onboarding links (#17816) 2023-09-04 17:20:51 +02:00
renovate[bot]
5d5894cae6 Update dependency @babel/preset-env to v7.22.14 (#17791)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-04 14:59:44 +02:00
renovate[bot]
5417513f49 Update dependency hls.js to v1.4.11 (#17809)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-04 14:59:07 +02:00
renovate[bot]
546ba8f12f Update dependency @codemirror/view to v6.17.1 (#17760)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-04 14:58:32 +02:00
Bram Kragten
a398b37380 Fix combobox selecting wrong item on iOS (#17812) 2023-09-04 12:39:22 +02:00
Kendell R
321f35f30e Fix hide disabled entities button (#17806)
fix hide disabled entities button
2023-09-04 11:49:05 +02:00
renovate[bot]
82dfb06a04 Update dependency @lit-labs/virtualizer to v2.0.7 (#17794)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-03 16:27:39 -04:00
c0ffeeca7
e666aac1bd Fix typo (#17803) 2023-09-03 11:34:54 -04:00
renovate[bot]
9e9a0e377e Update dependency glob to v10.3.4 (#17802) 2023-09-03 11:19:50 -04:00
renovate[bot]
ba3f9a318b Update dependency @types/qrcode to v1.5.2 (#17799) 2023-09-03 11:14:41 -04:00
renovate[bot]
f3b4eefb72 Update dependency @types/luxon to v3.3.2 (#17798) 2023-09-03 15:02:08 +00:00
renovate[bot]
6ac1db6953 Update dependency @types/ua-parser-js to v0.7.37 (#17800) 2023-09-03 10:54:11 -04:00
renovate[bot]
1b42189dd6 Update dependency @types/leaflet-draw to v1.0.8 (#17797) 2023-09-03 10:51:01 -04:00
renovate[bot]
0d893b3d2b Update dependency del to v7.1.0 (#17792) 2023-09-02 18:29:33 -04:00
renovate[bot]
7b167a4d7e Update dependency @types/leaflet to v1.9.4 (#17795) 2023-09-02 18:26:28 -04:00
renovate[bot]
8e2f1026e7 Update dependency prettier to v3.0.3 (#17776)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-01 14:22:35 -04:00
Paul Bottein
fe3a63af80 Sort data using locale in data tables (#17781)
* Sort data using locale in data tables

* Only use string compare is both values are string
2023-09-01 17:33:41 +02:00
Bram Kragten
f90ab60354 20230901.0 (#17782) 2023-09-01 17:02:38 +02:00
Bram Kragten
5da4e1860a Rename CO2 signal -> Electricity Map 2023-09-01 17:02:14 +02:00
Bram Kragten
6dcb7f2273 Hide google translate in onboarding 2023-09-01 16:53:14 +02:00
Bram Kragten
53ae7e5a0c Bumped version to 20230901.0 2023-09-01 16:42:30 +02:00
Bram Kragten
56381f9914 Show helper config entries without entities (#17780) 2023-09-01 14:38:56 +00:00
Paul Bottein
be31aecf00 Use right supported features for tilt position in editor (#17779) 2023-09-01 15:54:35 +02:00
Paul Bottein
cc5fffc174 Use state icon for helpers (#17777) 2023-09-01 15:54:19 +02:00
Bram Kragten
dd8a50af31 Add state color to preview row (#17778) 2023-09-01 15:45:32 +02:00
Paul Bottein
c8feded4f2 Use format entity state helpers everywhere (#17757) 2023-09-01 15:26:46 +02:00
Paul Bottein
0d0fe75f4e Use slider for color temp instead of wheel (#17771) 2023-09-01 15:25:27 +02:00
Paul Bottein
fb69deb617 Fix target range temperature in tile feature (#17772) 2023-09-01 15:24:36 +02:00
Paul Bottein
c291af5d97 Improve disabled state for select and number button control (#17773) 2023-09-01 15:19:28 +02:00
Paul Bottein
6d63028406 Move tile card features logic into its own file (#17775) 2023-09-01 15:18:47 +02:00
karwosts
3917739ad2 Fix chart tooltip crash for disabled entity (#17767) 2023-09-01 11:36:43 +02:00
renovate[bot]
e98e59a265 Update typescript-eslint monorepo to v6.5.0 (#17762)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-31 19:40:36 -04:00
renovate[bot]
16ed60902d Update dependency @types/sortablejs to v1.15.2 (#17761)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-31 19:35:19 -04:00
Paul Bottein
6c7efc17c2 Fix more info type test (#17758) 2023-08-31 22:37:25 +02:00
Bram Kragten
d187aa0ac6 20230831.0 (#17756) 2023-08-31 14:38:24 +02:00
Bram Kragten
9c60a047c1 Bumped version to 20230831.0 2023-08-31 14:33:00 +02:00
Bram Kragten
1825749036 Get forecasts from large to small (#17755) 2023-08-31 14:32:30 +02:00
Bram Kragten
93846a2867 Fix unit and currency, always select first result of search (#17753)
* Fix unit and currency, always select first result of search

* Update onboarding-location.ts
2023-08-31 14:23:33 +02:00
Bram Kragten
f3ed0160af Fix tooltip error for climate charts (#17752) 2023-08-31 14:22:39 +02:00
Bram Kragten
38b275f7f9 Dont resize chart-timeline (#17751) 2023-08-31 14:21:35 +02:00
Bram Kragten
c3a36efaa4 Fix device energy graphs (#17754) 2023-08-31 14:20:57 +02:00
Paul Bottein
68fa67e77a Use entity translation for away mode (#17750)
* Use entity translation for away mode

* Remove keys
2023-08-31 14:19:40 +02:00
Paul Bottein
806cebb024 Fix more info translation keys (#17749) 2023-08-31 11:06:29 +00:00
Paul Bottein
fa788a8223 Use heat or cool slider mode for auto if there is only one mode (#17748) 2023-08-31 13:00:58 +02:00
Paul Bottein
dfbaee1649 Fix margin between buttons row and attributes in more info (#17738) 2023-08-31 11:02:04 +02:00
karwosts
cfb698d0a6 Fix more info weather forecast (#17747) 2023-08-31 09:42:57 +02:00
Simon Lamon
63c3d6406d Remove Polymer app layout (#17739)
* Remove legacy app layout

* Remove left over ha-app-layout import
2023-08-30 12:24:31 -04:00
Raman Gupta
d817e92a57 Remove node status from zwave_js device info card (#17732) 2023-08-30 15:52:11 +02:00
Bram Kragten
96597b3963 20230830.0 (#17737) 2023-08-30 15:48:10 +02:00
Bram Kragten
40c7bc08d9 Merge branch 'master' into dev 2023-08-30 15:29:55 +02:00
Bram Kragten
b8cd1760f7 Bumped version to 20230830.0 2023-08-30 15:27:57 +02:00
Bram Kragten
24dd45c8cd Bump ChartJS to version 4 (#15531) 2023-08-30 15:27:24 +02:00
Simon Lamon
e06bd41b5e Migrate mailbox to LitElement (#17690)
* migrate mailbox to lit

* Make some methods private

* Clean up
2023-08-30 15:21:20 +02:00
Bram Kragten
c0793fad83 Listen to change event on string form too for autofill (#17733)
* Listen to change event on string form too for autofill

* Update ha-password-manager-polyfill.ts
2023-08-30 14:58:38 +02:00
karwosts
e002c5d96c Allow theme colors for individual sets in energy-usage-graph-card (#17527)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-08-30 13:38:38 +02:00
karwosts
099e317d17 Fix zone dialog rendering wider than the window (#17642) 2023-08-30 13:37:50 +02:00
dependabot[bot]
ca1a183512 Bump actions/checkout from 3.5.3 to 3.6.0 (#17723)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-30 13:31:09 +02:00
renovate[bot]
c1cacf735e Update dependency eslint to v8.48.0 (#17726)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-30 13:30:23 +02:00
renovate[bot]
515cfdb6d1 Update dependency cropperjs to v1.6.0 (#17728)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-30 13:29:56 +02:00
renovate[bot]
3a6cffd6c1 Update CodeMirror (#17730)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-30 13:29:02 +02:00
renovate[bot]
c84a826937 Update dependency marked to v7.0.5 (#17731)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-30 13:28:35 +02:00
Bram Kragten
c485e8d03e Update onboarding (#17734)
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
2023-08-30 13:24:25 +02:00
Bram Kragten
2ab67328d4 Update upload element (#17654) 2023-08-30 13:24:11 +02:00
Bram Kragten
d350c35c4e Add preview for template (#17699) 2023-08-30 12:56:53 +02:00
karwosts
034ce56da5 Updates to alarm panel card configuration (#17598)
* Updates to alarm panel card configuration

* changes from feedback
2023-08-30 11:42:51 +02:00
karwosts
ae9fcebfd5 Add sortable options to input_select settings menu (#17706)
* Sortable options in input_select settings menu

* fix lint

* no ripple, default cursor

* Update src/panels/config/helpers/forms/ha-input_select-form.ts

Co-authored-by: Paul Bottein <paul.bottein@gmail.com>

* sortableStyles

* Use ha-list-item and mwc-list

---------

Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
2023-08-30 07:59:06 +00:00
renovate[bot]
6197b55da8 Update dependency luxon to v3.4.2 (#17710)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-30 09:54:39 +02:00
Bram Kragten
4e5d57b5f3 Ask user to logout all devices when changing password (#17523)
* Ask user to logout all devices when changing password

* missing import

* use core command
2023-08-29 17:09:17 +02:00
Paul Bottein
7040c6d469 Add target temperature tile feature for climate and water heater (#17697) 2023-08-29 16:36:07 +02:00
Paul Bottein
6f99a39b55 Adapt more info button layout depending of number of items and screen (#17691) 2023-08-29 15:13:08 +02:00
Paul Bottein
7483833dcd Use active color for position cover tile feature even if it's closed (#17685) 2023-08-29 15:11:30 +02:00
Sam Reed
38fb48b231 Add trailing full stop to visit_addon_page message (#17719) 2023-08-29 14:38:15 +02:00
karwosts
166acee1c6 Fix language picker in profile displaying wrong language (#17725)
* fix language picker when changing language sort order #16642

* alternative fix
2023-08-29 09:45:54 +02:00
renovate[bot]
916a6df39b Update vaadinWebComponents monorepo to v24.1.6 (#17724)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-28 18:03:02 +02:00
renovate[bot]
70f37158fb Update dependency @material/web to v1.0.0-pre.16 (#17703)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-28 18:01:28 +02:00
renovate[bot]
5011bba20e Update dependency typescript to v5.2.2 (#17720)
* Update dependency typescript to v5.2.2

* Remove expect error for URL.canParse

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <steverep@users.noreply.github.com>
2023-08-27 17:43:49 +00:00
renovate[bot]
8897bc703d Update babel monorepo to v7.22.11 (#17717)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-27 13:15:40 -04:00
renovate[bot]
ea6e7d441a Update dependency chai to v4.3.8 (#17718)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-27 13:10:52 -04:00
renovate[bot]
f91396c986 Update Yarn to v3.6.3 (#17715)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-27 13:09:28 -04:00
renovate[bot]
4598b530af Update dependency @lit-labs/virtualizer to v2.0.6 (#17702)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-26 13:14:25 -04:00
renovate[bot]
dfabb4bc36 Update dependency @rollup/plugin-node-resolve to v15.2.1 (#17704) 2023-08-25 21:18:32 -04:00
Bram Kragten
66e0100c95 Fix combobox picking first item with label on blur (#17701) 2023-08-24 16:22:26 -04:00
renovate[bot]
a08a989ef5 Update dependency lint-staged to v14.0.1 (#17694)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-24 15:18:37 -04:00
renovate[bot]
000c28abf9 Update dependency magic-string to v0.30.3 (#17695)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-24 15:16:40 -04:00
renovate[bot]
6b67397c83 Update typescript-eslint monorepo to v6.4.1 (#17700)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-24 15:15:50 -04:00
karwosts
f68823a09e Add for_each to repeat action UI. Convert repeat to ha-form (#17688)
* Add for_each to repeat action UI. Convert repeat to ha-form

* reordermode as a selector option

* css styling
2023-08-24 18:13:10 +02:00
Bram Kragten
fc1782e676 Use 1 element for all group previews (#17693) 2023-08-24 10:14:30 +00:00
Simon Lamon
b4975344a1 Don't show a battery if the entity domain is Number (#17631) 2023-08-24 11:56:03 +02:00
Joakim Sørensen
2dc08d782f Hide STT and TTS entities from generated dashboard (#17689) 2023-08-24 08:59:41 +02:00
Erik Montnemery
ed92958735 Add preview support to binary sensor group (#17682) 2023-08-23 14:52:45 +02:00
Paul Bottein
5ce31f3177 Adapt circular slider style for climate, water_heater and humidifier (#17677)
* Add more rendering mode for circular slider

* Improve transitions
2023-08-23 14:35:54 +02:00
Bram Kragten
370ec9cd98 Revert "Simplify onboarding integrations page (#17671)" (#17683) 2023-08-23 14:28:34 +02:00
Bram Kragten
52c12b5659 Simplify onboarding integrations page (#17671) 2023-08-23 10:52:44 +02:00
renovate[bot]
3de4cfbc00 Update dependency marked to v7.0.4 (#17680)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-23 10:14:39 +02:00
renovate[bot]
4215854414 Update dependency eslint-import-resolver-webpack to v0.13.7 (#17675)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-23 10:14:12 +02:00
Simon Lamon
88eba92f57 Migrate ha-service-call-button to LitElement (#17666) 2023-08-22 19:49:30 +02:00
Matthias Alphart
f773c968f9 Clear input element value of ha-file-upload (#17663) 2023-08-22 17:21:06 +02:00
Simon Lamon
bbb6fccaec Clean system health subscription after data is collected (#17665) 2023-08-22 17:20:13 +02:00
karwosts
aa2b2b0d16 Typo: lates -> latest (#17673) 2023-08-22 17:14:10 +02:00
Simon Lamon
5cc06ebf0b Migrate gallery pages to LitElement (#17667) 2023-08-22 17:10:26 +02:00
Paul Bottein
85977e505b Add cover tilt position to tile card (#17619)
Add cover tilt to tile card
2023-08-22 16:55:12 +02:00
Bram Kragten
3249a5225f Keep user signed in during onboarding (#17669) 2023-08-22 15:26:46 +02:00
Paul Bottein
7e7205627a Update return home and dock icon (#17672)
Update return home and docker icon
2023-08-22 15:24:30 +02:00
Paul Bottein
d33430e53f Reduce ha-icon-button-group height (#17664) 2023-08-22 11:09:18 +02:00
Bram Kragten
e3f53e90e2 Fix not showing multi day events on mobile (#17660) 2023-08-22 11:07:46 +02:00
Bram Kragten
811edfcc0f Add support for previews in data flows (#17533) 2023-08-22 10:30:31 +02:00
renovate[bot]
2483249b5f Update dependency eslint-plugin-import to v2.28.1 (#17661)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-21 18:57:19 -04:00
Bram Kragten
3534617f81 Fix initial data for select selector without labels (#17659) 2023-08-21 21:46:08 +02:00
renovate[bot]
216a3c4c7e Update dependency core-js to v3.32.1 (#17658)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-21 20:08:43 +02:00
Paul Bottein
567bd9831f Reduce control select menu component size (#17657) 2023-08-21 16:15:29 +02:00
Bram Kragten
98d1a55d35 fix tabindex for glance card (#17656) 2023-08-21 16:15:08 +02:00
karwosts
92358b4859 Don't show pointer for glance entity when there is no action (#17625) 2023-08-21 15:51:33 +02:00
Paul Bottein
eca3ec7f98 Tile feature lawn mower (#17655)
* Add lawn mower commands to tile card

* Rename state to action button
2023-08-21 15:49:33 +02:00
Simon Lamon
bfcdbbd70b Form fields should not init in the error state (#17615) 2023-08-21 15:49:27 +02:00
karwosts
e764076b1a Fix blueprint editor behavior for number and text with defaults (#17646) 2023-08-21 15:48:10 +02:00
Virenbar
693c77ce1c Fix AND condition description (#17630) 2023-08-21 13:41:26 +00:00
Simon Lamon
a725b6c9de Clear entityId before duplicate script (#17624) 2023-08-21 15:27:54 +02:00
ildar170975
014bbf12ce Update ha-config-person.ts: fix misaligned text (#17637) 2023-08-21 15:12:58 +02:00
ildar170975
07dceb8e6d Update ha-sidebar.ts: fix notification badge clipped (#17638) 2023-08-21 15:12:13 +02:00
karwosts
53f18bec53 Respect sensor precision setting when rendering line chart tooltips (#17648) 2023-08-21 15:04:23 +02:00
renovate[bot]
ac3e858738 Update dependency eslint-plugin-lit to v1.9.1 (#17556)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-21 13:46:07 +02:00
Erik Montnemery
c76b2fb357 Fix reselecting forecast type in weather forecast card editor (#17652)
Co-authored-by: Simon Lamon <32477463+silamon@users.noreply.github.com>
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-08-21 11:22:01 +00:00
Paul Bottein
5f015ac9af Add basic more info for lawn mower (#17601)
* Add basic more info for lawn mower

* Change buttons layout
2023-08-21 13:17:11 +02:00
renovate[bot]
ac7c354bfc Update dependency @lrnwebcomponents/simple-tooltip to v7.0.16 (#17651)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-21 13:12:02 +02:00
Paul Bottein
dddee87de3 Use gradient based on min/max color temp for tile card feature (#17612) 2023-08-21 13:03:20 +02:00
Paul Bottein
e8bd77a84e Add water heater more info to gallery (#17621) 2023-08-21 13:02:36 +02:00
Steve Repsher
46a036ddbe Improve frontend error messages written to system log (#17616) 2023-08-21 13:01:42 +02:00
Steve Repsher
bf912f7bd3 Add missing super calls to disconnectedCallback (#17641) 2023-08-21 12:57:38 +02:00
Michael Arthur
196c15ff3e Add lawn mower entity state, icon and color (#17558)
* start of lawn mower entity in the frontend

* added colours for states

* remove schedule states as no longer needed

* change mowing to teal

* remove docking as not included in architecture discussion and was missed
2023-08-21 12:19:15 +02:00
dependabot[bot]
d0a6e727f2 Bump actions/setup-node from 3.7.0 to 3.8.1 (#17650)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-21 10:58:07 +02:00
renovate[bot]
09697148cf Update Yarn to v3.6.2 (#17647)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-20 21:46:00 -04:00
Franck Nijhof
76093d898d Fix template selector usage in config flows (#17643) 2023-08-20 12:45:39 -04:00
renovate[bot]
00c69c0fc3 Lock file maintenance (#17634)
* Lock file maintenance

* Limit time period for lock file maintenance

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <steverep@users.noreply.github.com>
2023-08-20 02:11:09 +00:00
renovate[bot]
93dd119ce5 Update dependency @rollup/plugin-node-resolve to v15.2.0 (#17640)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-20 02:10:29 +00:00
renovate[bot]
e4f3211e9f Update dependency prettier to v3.0.2 (#17623)
* Update dependency prettier to v3.0.2

* Reformat

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <steverep@users.noreply.github.com>
2023-08-19 20:41:39 +00:00
renovate[bot]
c6ecdc9d5d Lock file maintenance (#17627)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-19 16:06:31 -04:00
renovate[bot]
6bdd2d234d Update dependency @codemirror/language to v6.9.0 (#17632)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-19 15:39:44 -04:00
renovate[bot]
9d169bcbeb Update dependency systemjs to v6.14.2 (#17629)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-19 15:36:45 -04:00
renovate[bot]
5c06ec1084 Update dependency eslint-import-resolver-webpack to v0.13.6 (#17628)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-19 15:35:05 -04:00
RoboMagus
38a317b7e7 Fix ha-tabs chevrons bug (#17620) 2023-08-18 13:01:13 +00:00
Bram Kragten
593b176ab8 Bump version to 20230802.1 2023-08-18 11:18:24 +02:00
karwosts
1a15c8da8c Fix default precision display in entity settings (#17491) 2023-08-18 11:15:18 +02:00
Bram Kragten
060e67397a Prevent voice settings to override entity registry settings dialog (#17485) 2023-08-18 11:14:42 +02:00
Bram Kragten
d6de29ca8a Change logic to determine if forecast is hourly (#17486) 2023-08-18 11:14:15 +02:00
Bram Kragten
220767b347 Use service translations in logbook (#17461) 2023-08-18 11:13:57 +02:00
karwosts
79e1fbe076 Fix device config dialog when disabled (#17464) 2023-08-18 11:13:38 +02:00
renovate[bot]
cd19894ab0 Update dependency @lit-labs/context to v0.4.0 (#17613)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-18 11:11:25 +02:00
Tomasz
705b6aeb4b Cover position tile feature (#16110)
* wip

* css + transtations

* Update types.ts

rollback changes done by VS Code

* fix

* Inverted slider

---------

Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
2023-08-18 08:40:41 +00:00
Paul Bottein
6e27fbe10f Add unit when formatting attribute for display (#17607) 2023-08-18 10:28:27 +02:00
renovate[bot]
bbb99a6eee Update typescript-eslint monorepo to v6.4.0 (#17611)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-17 17:53:39 -04:00
renovate[bot]
8411efc1c3 Update dependency marked to v7.0.3 (#17539)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-17 16:09:16 +00:00
Bram Kragten
88721df637 Bump marked (#17609) 2023-08-17 15:56:31 +00:00
renovate[bot]
265faddfa9 Update dependency @lit-labs/virtualizer to v2.0.5 (#17499)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-17 15:51:59 +00:00
PaoloTK
6584dc70b7 Added support for color temperature tile feature (#16515)
* Added support for color temperature tile feature

* Update src/panels/lovelace/tile-features/hui-light-color-temp-tile-feature.ts

---------

Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
2023-08-17 17:45:42 +02:00
renovate[bot]
d6b4dbe6a2 Update dependency @lit-labs/motion to v1.0.4 (#17498)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-17 15:37:03 +00:00
ildar170975
d579f93aa7 Update developer-tools-state.js: widen "Set state" controls (#17500) 2023-08-17 15:30:18 +00:00
renovate[bot]
b91261a789 Update dependency @lrnwebcomponents/simple-tooltip to v7.0.15 (#17324)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-17 17:27:22 +02:00
renovate[bot]
872128d9a8 Update dependency luxon to v3.4.0 (#17559)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-17 17:26:30 +02:00
renovate[bot]
4972db4648 Update dependency lint-staged to v14 (#17604)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-17 17:26:03 +02:00
Paul Bottein
821cd7fe05 Add operation modes to tile card (#17597) 2023-08-17 17:19:46 +02:00
Paul Bottein
8c24ffa710 Add water heater state colors to gallery (#17606) 2023-08-17 15:51:49 +02:00
karwosts
d50a130345 Add show_name to state label badge (#17603) 2023-08-17 08:56:51 +02:00
renovate[bot]
ee8997fbd2 Update dependency lint-staged to v13.3.0 (#17602) 2023-08-16 17:01:00 -04:00
Bram Kragten
613cf932b5 Delay showing connection message (#17595) 2023-08-16 12:56:44 +00:00
Paul Bottein
12b61aea2f Add hvac modes to tile card (#17592) 2023-08-16 14:56:24 +02:00
Bram Kragten
51d9271c83 Change wording and icon for default thread router (#17593) 2023-08-16 14:25:29 +02:00
Paul Bottein
bd5264308f Sync selected icon with selected value in new select component (#17573) 2023-08-16 12:47:35 +02:00
Bram Kragten
2c17d2fead Allow to set default router for thread network (#17584)
* Allow to set default router for thread network

* Update thread-config-panel.ts
2023-08-16 11:52:42 +02:00
Bram Kragten
9f0b9782a0 Round altitude from GPS result (#17591) 2023-08-16 11:49:53 +02:00
Steve Repsher
88ff4c2fa8 Fix synchronous loading for ES5 build (#17174) 2023-08-15 19:48:51 +02:00
Steve Repsher
cba246fc7f Fix source URLs in source maps (#17585) 2023-08-15 15:10:12 +00:00
Bruce Fitzsimons
f4d575f456 Improve grammar for single periodic second/minute/hour (#17572) 2023-08-15 14:20:35 +02:00
karwosts
6dff2f691e Hide alert toggle when idle in more-info (#17563) 2023-08-15 14:18:35 +02:00
Simon Lamon
917b7bd1dd Fix the mailbox (#17582) 2023-08-15 14:04:23 +02:00
karwosts
54a9f4592c Fix sort/filter on statistics issues (#17545) 2023-08-15 14:03:50 +02:00
Paul Bottein
baba02f563 Improve disabled state in more info (#17570) 2023-08-15 13:50:44 +02:00
Erik Montnemery
f6087f3805 Adjust to otbr info including extended address (#17581) 2023-08-15 07:51:13 +00:00
Erik Montnemery
4979e89251 Update some thread related types (#17574) 2023-08-15 07:45:44 +00:00
renovate[bot]
b1c826326b Update vaadinWebComponents monorepo to v24.1.5 (#17569) 2023-08-14 22:11:04 -04:00
renovate[bot]
961e8bc149 Update dependency @rollup/plugin-commonjs to v25.0.4 (#17577) 2023-08-14 22:07:33 -04:00
renovate[bot]
3b3a37dc81 Update dependency eslint to v8.47.0 (#17576) 2023-08-14 20:11:09 -04:00
Bram Kragten
c98cdb91e2 Fix cleanup of logbook when switching entities (#17575) 2023-08-14 18:10:22 +02:00
renovate[bot]
255137992b Update dependency @material/web to v1.0.0-pre.15 (#17567)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-14 15:57:07 +02:00
Raman Gupta
b8fcb9272a Update zwave_js config parameters page (#17529) 2023-08-14 09:59:51 +02:00
karwosts
fa3625985c Show statistics bands when charting min/max only (#17549) 2023-08-14 09:52:38 +02:00
Simon Lamon
3f05712c18 Make some conditions translatable (#17234) 2023-08-14 09:48:53 +02:00
Simon Lamon
67441a63b4 Replace paper-items from ha-config-area-page (#17550) 2023-08-14 09:44:13 +02:00
karwosts
c561df70dd Fix multiline select text in zwave info (#17564) 2023-08-14 09:39:25 +02:00
Paul Bottein
aa85b87e11 Update water heater more info (#17544) 2023-08-14 09:31:06 +02:00
Paul Bottein
25b4d91d72 Use new select component for effect for more info light (#17542) 2023-08-14 09:29:58 +02:00
Paul Bottein
134d1978f8 Use new select component for direction for more info fan (#17540) 2023-08-14 09:29:04 +02:00
Paul Bottein
43ac8f9a27 Update Material web to 1.0.0-pre.14 (#17543) 2023-08-14 09:26:52 +02:00
renovate[bot]
bfad8a07c5 Update dependency eslint-import-resolver-webpack to v0.13.4 (#17520)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-11 12:27:37 -04:00
renovate[bot]
d5cc5bd6c2 Update babel monorepo to v7.22.10 (#17546)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-10 16:06:26 -04:00
renovate[bot]
2af3a68f94 Update typescript-eslint monorepo to v6.3.0 (#17547)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-10 16:02:35 -04:00
renovate[bot]
14c84c3d75 Update tsparticles to v2.12.0 (#17510)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-10 16:00:45 +02:00
Paul Bottein
4992007f13 Drop aux heat from more info climate (#17541) 2023-08-10 14:12:07 +02:00
karwosts
9e31b2bb29 Filter duplicate entries in energy solar/battery/gas/water/devices (#17538) 2023-08-10 10:59:07 +02:00
Paul Bottein
5dee92b214 Redesign mode buttons for fan more-info (#17537) 2023-08-10 09:59:06 +02:00
Paul Bottein
ebee8f670e Add format state/attribute to hass (#17249) 2023-08-10 09:57:56 +02:00
Paul Bottein
023f13cd12 Redesign mode buttons for climate more-info (#17535) 2023-08-10 09:57:03 +02:00
karwosts
416661f3d1 Filter energy grid sources to not allow duplicates (#17381) 2023-08-09 16:18:57 +02:00
Paul Bottein
a2b1be754f Redesign mode buttons for humidifier more-info (#17530) 2023-08-09 14:35:59 +02:00
Paul Bottein
ade430f326 Update target humidity control for climate more info (#17531) 2023-08-09 14:35:00 +02:00
renovate[bot]
782e41dcda Update dependency eslint-config-prettier to v9 (#17528)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-09 00:28:16 -04:00
Bram Kragten
ac20cf292a Auth: Make it clearer where you are logging in to (#17459) 2023-08-08 14:43:55 +02:00
Paul Bottein
4986b013a2 Add new humidity control in humidifier more info (#17011)
* Add new humidity control in humidifier more info

* Fix humidifier card

* Some adjustments

* Add current label

* Some adjustments

* Clean code

* Remove unused code

* Fix merge

* Add current to main screen

* Remove toggle

* Add action

* Update buttons

* Add gallery

* Some fixes

* Add overflow

* Update src/dialogs/more-info/components/humidifier/ha-more-info-humidifier-humidity.ts

* Update src/dialogs/more-info/controls/more-info-humidifier.ts

Co-authored-by: Bram Kragten <mail@bramkragten.nl>

* Use climate translation

---------

Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-08-08 11:07:46 +00:00
Paul Bottein
89e96e4681 Add new temperature control in climate more info (#17002)
* Add circular slider as temperature control

* Move climate icons and mode mapping

* Update icon

* Add mode icon

* Improve colors

* Add temperature control buttons

* Call service

* Remove climate control

* Some fixes

* Add current temp and humidity

* Fix default mode

* Swap state and current

* Some adjustments

* prettier

* Simplify color rules

* refactor cool mode

* Color button when dual climate

* Add current temp and humidity

* Fix opacity

* Hide current temp is below min or above max

* Adjust button size

* Add action label

* Better off and unavailable state

* Improve current color

* Add gallery

* Fix dark mode

* Add overflow

* Update src/dialogs/more-info/controls/more-info-climate.ts

Co-authored-by: Bram Kragten <mail@bramkragten.nl>

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

Co-authored-by: Bram Kragten <mail@bramkragten.nl>

* Update src/dialogs/more-info/components/climate/ha-more-info-climate-temperature.ts

---------

Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-08-08 12:50:21 +02:00
karwosts
85733655c2 Localize developer-tools/assist (#17489)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-08-08 12:11:02 +02:00
G Johansson
7a446ba2ad Prefer modern weather forecast over legacy (#17518)
weather entity select modern types
2023-08-08 08:27:11 +02:00
renovate[bot]
e40bdd5d91 Update dependency @codemirror/search to v6.5.1 (#17514)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-07 12:29:08 -04:00
karwosts
accc8bc644 Disable ?edit=1 for non-admin users (#17493) 2023-08-07 12:01:46 +02:00
karwosts
4884108123 Fix default precision display in entity settings (#17491) 2023-08-07 12:01:04 +02:00
karwosts
827a57499b Fix unit label for static grid energy price (#17508) 2023-08-07 12:00:04 +02:00
Steve Repsher
945c8e0320 Minify and compress Intl locale data (#17506) 2023-08-07 11:59:02 +02:00
Steve Repsher
edcdc865c4 Remove test language from production (#17507) 2023-08-07 11:54:40 +02:00
karwosts
c2123a0a90 Dismiss configuration check result on leaving page (#17466) 2023-08-07 11:53:31 +02:00
Paul Bottein
e9e31d51ec Update circular slider design (#17490) 2023-08-07 11:00:43 +02:00
renovate[bot]
2bbce135bb Update dependency lit to v2.8.0 (#17501)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-07 00:08:17 -04:00
renovate[bot]
27e93d63fe Update dependency @braintree/sanitize-url to v6.0.4 (#17509) 2023-08-06 18:23:44 -04:00
renovate[bot]
068708578e Update dependency prettier to v3.0.1 (#17504)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-06 11:28:31 -04:00
renovate[bot]
8da7eef88d Update dependency eslint-config-prettier to v8.10.0 (#17505)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-06 11:26:25 -04:00
renovate[bot]
e3da4d7c39 Update dependency @braintree/sanitize-url to v6.0.3 (#17492)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-05 13:49:01 -04:00
renovate[bot]
ccfa5c782d Update dependency @codemirror/view to v6.16.0 (#17477) 2023-08-04 11:56:47 -04:00
Steve Repsher
716e68fc5e Add crosshairs, destroy globals, and tweak updates for code editor (#17302)
* Add crosshairs, destroy globals, and tweak updates for code editor

* Define update listener as arrow function

* Ensure editor is recreated on reconnection

* Don't create code mirror multiple times

* Remove creation in update

* Leverage lit lifecycle for editor creation and destruction

* Bump @codemirror packages

---------

Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
2023-08-04 09:16:37 -04:00
Bram Kragten
0d630aa5f5 Prevent voice settings to override entity registry settings dialog (#17485) 2023-08-04 15:09:20 +02:00
Bram Kragten
7b6d9106d4 Change logic to determine if forecast is hourly (#17486) 2023-08-04 15:06:41 +02:00
Paul Bottein
7dbae75e50 Remove hot reload for gallery (#17484) 2023-08-04 09:45:32 +00:00
Bram Kragten
40141923b6 Use service translations in logbook (#17461) 2023-08-04 11:11:54 +02:00
renovate[bot]
725c8685fd Update dependency core-js to v3.32.0 (#17433)
* Update dependency core-js to v3.32.0

* Update Babel setting

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <steverep@users.noreply.github.com>
2023-08-04 03:54:58 +00:00
renovate[bot]
e01dda4379 Update dependency instant-mocha to v1.5.2 (#17480)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-04 03:21:13 +00:00
renovate[bot]
052ffbb1d6 Update dependency magic-string to v0.30.2 (#17434)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-03 23:09:44 -04:00
renovate[bot]
bfb439c776 Update dependency tsparticles-engine to v2.11.1 (#17424)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-03 23:08:34 -04:00
renovate[bot]
2fdd1464f8 Update typescript-eslint monorepo to v6.2.1 (#17476)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-03 23:05:44 -04:00
Paul Bottein
b4e2f4b0f5 Allow to sort options in select selector (#17468) 2023-08-03 21:49:31 +02:00
c0ffeeca7
a8debb8daa Strings: apply sentence-style capitalization (#17469) 2023-08-03 11:32:01 +02:00
karwosts
a81050182e Fix device config dialog when disabled (#17464) 2023-08-03 09:58:06 +02:00
c0ffeeca7
f49e103f17 Onboarding strings: fix capitalization (#17467) 2023-08-03 09:57:17 +02:00
Bram Kragten
7d80eb06b0 20230802.0 (#17457) 2023-08-02 14:12:28 +02:00
karwosts
6653a8f634 Fix some minor issues with cost display in energy sources table (#17452) 2023-08-02 13:55:51 +02:00
karwosts
bde93c44bd Fix statistic-picker filter behavior (#17453) 2023-08-02 13:53:05 +02:00
Bram Kragten
788e48a5a6 Bumped version to 20230802.0 2023-08-02 13:52:27 +02:00
Bram Kragten
0f56e8f985 Update ha-panel-shopping-list.ts 2023-08-02 13:52:03 +02:00
Bram Kragten
5f95968c8f Make event entity row show time as relative by default, hide in gener… (#17456) 2023-08-02 13:48:48 +02:00
Simon Lamon
e8aa08b717 Replace paper-input elements in supervisor network dialog (#17387) 2023-08-02 10:39:51 +02:00
Bram Kragten
a181189a49 20230801.0 (#17450) 2023-08-01 11:16:30 +02:00
Bram Kragten
f792e708a3 Bumped version to 20230801.0 2023-08-01 11:12:56 +02:00
Bram Kragten
41643b20e7 Change event logbook message (#17449) 2023-08-01 10:44:15 +02:00
Joost Lekkerkerker
ece676e3dc Make required asterisk consistent (#17403) 2023-08-01 09:41:34 +02:00
karwosts
85c3d8ecd8 Add missing states in media_player state picker (#17418) 2023-08-01 09:41:00 +02:00
karwosts
3c62f5597a Display choose option alias if configured (#17429) 2023-08-01 09:39:32 +02:00
renovate[bot]
76388114aa Update dependency eslint to v8.46.0 (#17443) 2023-07-31 20:08:49 -04:00
Bram Kragten
3e60d2e850 Don't show wrong info in logbook (#17439) 2023-07-31 20:25:57 +02:00
Bram Kragten
2a9ef7d91f Align event state display (#17442) 2023-07-31 18:27:35 +02:00
Bram Kragten
4612099e88 Fix weather more info date display (#17440) 2023-07-31 17:54:39 +02:00
renovate[bot]
f953ec6e1c Update dependency eslint-plugin-import to v2.28.0 (#17437)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-31 09:34:48 -04:00
Joost Lekkerkerker
a5cd350d25 Fix unknown event type bug (#17426)
* Fix unknown event type bug

* Update src/data/logbook.ts

Co-authored-by: Bram Kragten <mail@bramkragten.nl>

---------

Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-07-31 13:31:39 +02:00
Bram Kragten
0ee231ee85 Fix demo (#17438)
* Fix demo

Fix energy and notification in demo

* Update config_entries.ts
2023-07-31 06:16:46 -04:00
renovate[bot]
b154607552 Update dependency eslint-config-prettier to v8.9.0 (#17432) 2023-07-30 10:47:55 -04:00
renovate[bot]
d3ba19b0e0 Update typescript-eslint monorepo to v6.2.0 (#17419) 2023-07-27 21:20:44 -04:00
Franck Nijhof
626b51112f 20230725.0 (#17407) 2023-07-25 18:02:12 +02:00
Franck Nijhof
de4d517918 Bumped version to 20230725.0 2023-07-25 17:35:49 +02:00
renovate[bot]
89b5a082e5 Update CodeMirror (#17376)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-24 11:54:57 -04:00
Franck Nijhof
5ed767804c Complete service translation support in service dev tools (#17399) 2023-07-24 17:43:31 +02:00
Franck Nijhof
17c9e91092 Adjust default icon of event entity (#17401) 2023-07-24 17:43:20 +02:00
renovate[bot]
02f01aba0e Update vaadinWebComponents monorepo to v24.1.4 (#17397) 2023-07-24 10:35:43 -04:00
Franck Nijhof
4fd5dfd6ae Add My support for companion app settings (#17398) 2023-07-24 15:57:13 +02:00
renovate[bot]
2c7e17ce89 Update dependency @types/luxon to v3.3.1 (#17396) 2023-07-24 01:17:23 -04:00
Miguel Camba
d6e279e8f4 Add device_class PH, including default icon (#17385) 2023-07-23 18:50:40 +02:00
Steve Repsher
e21f951368 Enable cache in CI and locally for ESLint and Prettier (#17384) 2023-07-22 19:52:57 +02:00
renovate[bot]
c7cf49de05 Update dependency hls.js to v1.4.10 (#17383)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-21 23:25:23 -04:00
G Johansson
ec58862f3e Implement forecast types for Weather (#15028)
* Implement forecast types

* editor

* Fix twice_daily

* All cards

* Review comments

* hasforecast

* card-editor

* forecast default

* Review comments

* fix entity row

* Remove legacy option

* Check if selected forecast is supported when picking entity

* Always show weather_to_show selector

* comments

* Update types.ts

* Hourly before twice-daily

* Expose forecast via WS instead of as state attributes

* Unsubscribe on disconnect

* lint

* prettier

* Fix _forecastSupported

* Improve conditions for subscribing to forecast updates

* Teach weather entity row and more info to subscribe

* Fix subscribing

* Deduplicate code in getForecast

* Simplify

* Tweak subscribe logic

* Address review comments

---------

Co-authored-by: Erik <erik@montnemery.com>
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-07-21 17:30:59 +02:00
Franck Nijhof
0eebc9095c Add event entity (#17332) 2023-07-21 12:18:32 +02:00
karwosts
3189ef0701 Fix dialog-edit-view yaml editor (#17374) 2023-07-21 08:51:41 +02:00
karwosts
308d4b0a62 Fix Options flow missing submit button & finish button. (#17361)
* Fix missing submit button in options flow

* Fix missing header and finish button at end of options flow

* load config translations for options flow

* one more revert
2023-07-20 21:02:08 -04:00
renovate[bot]
795831d4cf Update typescript-eslint monorepo to v6.1.0 (#17370) 2023-07-20 20:47:12 -04:00
renovate[bot]
406f868642 Update dependency webpack to v5.88.2 (#17372) 2023-07-20 20:36:44 -04:00
karwosts
a1748260d3 Always show translated labels for ha-form-multi_select (#17360) 2023-07-20 16:15:59 +02:00
karwosts
09e26c8fd7 Missing translation in data-table (#17356) 2023-07-20 16:15:19 +02:00
karwosts
11fa9d1ed8 Fix guiMode toggle bugs in element-editor (#17282) 2023-07-20 16:14:32 +02:00
renovate[bot]
38ea25cf5a Lock file maintenance (#17357)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-19 23:10:47 -04:00
Franck Nijhof
3ce0fc0a2a Add My support for Assist dev tools (#17342) 2023-07-19 17:45:38 -04:00
karwosts
e6a3bd4b8c Add a missing translation (#17351) 2023-07-19 18:11:20 +02:00
renovate[bot]
f8fcf304d4 Lock file maintenance (#17344)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-19 13:35:47 +02:00
renovate[bot]
efc442da5b Lock file maintenance (#17341)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-19 13:08:09 +02:00
Erik Montnemery
8171b02b75 Allow changing channel from the thread configuration panel (#17285) 2023-07-19 10:48:43 +02:00
renovate[bot]
88259c8de0 Update dependency @rollup/plugin-commonjs to v25.0.3 (#17337)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-18 13:42:30 -04:00
Paul Bottein
61ab08519f Use device battery entity for vacuum more info (#17328) 2023-07-18 17:21:03 +02:00
Paul Bottein
1250eac11b Use ha-outlined icon button in lock more info (#17339) 2023-07-18 17:18:05 +02:00
Will Adler
d323db8479 Update self-sufficiency card title and tooltip (#17241) 2023-07-18 17:17:31 +02:00
Steve Repsher
c71fd055a4 Expand use of prettier to all tracked files (#17311) 2023-07-18 17:16:33 +02:00
renovate[bot]
493f1d1b50 Update dependency @material/web to v1.0.0-pre.13 (#17303)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-18 16:45:10 +02:00
Paul Bottein
38b68bffa6 Hide no theme option when required (#17338) 2023-07-18 16:08:04 +02:00
puddly
11b2cf9e22 Use the user-provided name when sorting devices (#17297) 2023-07-18 15:23:39 +02:00
Paul Bottein
4a044fc40e Improve default theme wording (#17336)
* Improve default theme wording

* Remove home assistant translation
2023-07-18 13:22:20 +00:00
Paul Bottein
000288aecb Change button to plus and minus to inc/dec position (#17194) 2023-07-18 15:01:00 +02:00
Bram Kragten
d56273ec25 Use nominatim from openstreetmap for location search in onboarding (#17287)
* Use nominatim from openstreetmap for location search in onboarding

* Update text, add user agent

* Handle errors better, add email address

* remove detect text

* Use `ui.common.search`

* Update attribution location

* Apply suggestions from code review

Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>

* Update src/translations/en.json

Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>

* Remove unused style

* Increase line-height

* Apply suggestions

---------

Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>
2023-07-18 15:00:41 +02:00
Franck Nijhof
bc3295d851 Add prefix support to text selector (#17335) 2023-07-18 11:57:20 +02:00
Bram Kragten
d7e58a00ca Add support for registering config panels (#17296) 2023-07-18 09:56:07 +02:00
renovate[bot]
0ce93263e9 Update typescript-eslint monorepo to v6 (major) (#17299)
* Update typescript-eslint monorepo to v6

* Remove duplicate values from log severity enum

* Rename ActionHandler interface to avoid class conflict

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <steverep@users.noreply.github.com>
2023-07-17 20:26:40 +00:00
Paul Bottein
4946c00d34 Add last_used option for pipeline and explicit default (#17329)
* Add last-used option for pipeline and explicit default

* Default to last used
2023-07-17 12:57:43 -04:00
renovate[bot]
4c9066a4b0 Update dependency eslint to v8.45.0 (#17330)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-17 12:37:31 -04:00
renovate[bot]
486cfd1d91 Update dependency hls.js to v1.4.9 (#17326)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-17 09:37:41 -04:00
dependabot[bot]
2564fb91db Bump actions/labeler from 4.2.0 to 4.3.0 (#17327) 2023-07-17 07:55:20 -04:00
renovate[bot]
4b40405cc4 Update tsparticles to v2.11.0 (#17318) 2023-07-16 20:52:13 -04:00
Skyler Carlson
3d0f2adf9f Update wording in UI when restoring partial backup (#17319) 2023-07-16 18:09:48 +00:00
renovate[bot]
bcfdb27e25 Update dependency eslint-config-airbnb-typescript to v17.1.0 (#17320) 2023-07-16 12:43:16 -04:00
renovate[bot]
c173ffd181 Update dependency google-timezones-json to v1.2.0 (#17321) 2023-07-16 12:41:06 -04:00
renovate[bot]
e81cac0d03 Update babel monorepo to v7.22.9 (#17317) 2023-07-15 16:08:15 -04:00
renovate[bot]
d756daded4 Update dependency eslint-plugin-unused-imports to v3 (#17312)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-14 22:21:56 -04:00
renovate[bot]
cb0bc762b1 Update dependency prettier to v3 (#17215)
* Update dependency prettier to v3

* Update config and remove .prettierignore

* Reformat

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <steverep@users.noreply.github.com>
2023-07-14 17:40:17 +00:00
renovate[bot]
9bf76a07b8 Update dependency @octokit/rest to v20 (#17307)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-14 12:10:52 -04:00
karwosts
7546d1950e Make action-choose options collapsible (#17239)
* Make action-choose options collapsible

* padding changes
2023-07-14 10:01:00 +02:00
renovate[bot]
5e197334f6 Update octokit monorepo to v6 (major) (#17269)
Update octokit monorepo to v6

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-14 04:57:20 +00:00
renovate[bot]
27bfa130f3 Update typescript-eslint monorepo to v5.62.0 (#17298) 2023-07-13 18:56:45 -04:00
Simon Lamon
9b3710f8bd Use translation keys for Network configuration pages (#17261)
* Network labels

* Remove quotes

* Update translations to include data and linting

* IPV6 => IPv6
2023-07-13 18:32:36 +02:00
Denis Shulyaka
1fe02e8d6c Add current humidity to humidifier history chart (#17288)
* Add current humidity to humidifier history chart

* state-humidifier-on-color
2023-07-13 17:04:04 +02:00
Paul Bottein
8bb2cbe767 Refactor lock and alarm panel code dialog (#17254) 2023-07-13 16:42:08 +02:00
Paul Bottein
510f9dbb12 Don't show paste from clipboard card when user search for a card (#17295) 2023-07-13 16:36:18 +02:00
Paul Bottein
df765515ec Use icon button to switch between code and editor (#17294) 2023-07-13 16:35:53 +02:00
Paul Bottein
56e82eab03 Add icon to edit card overflow menu (#17293) 2023-07-13 16:34:42 +02:00
Paul Bottein
efc8ed5c94 Add condition selector for blueprint (#17278) 2023-07-13 16:33:56 +02:00
Paul Bottein
e2ec3b63ce Fix autocorrect and spellcheck for ha-textfield (#17274) 2023-07-13 16:33:12 +02:00
karwosts
158a816f7a Consistently treat standby as a non-active state for media_player (#17289)
Consistently treat standby as an off state for media_player
2023-07-13 13:20:51 +02:00
Domantas Petrauskas
3a4d2db8ff Fix overflow on sensor card (#17284) 2023-07-13 09:34:20 +02:00
Paulus Schoutsen
5ed348aa56 Add download button to assist sentence parser dev tool (#17265)
* Add download button to assist sentence parser dev tool

* Use outlined button

* BLOCK
2023-07-12 11:54:33 -04:00
renovate[bot]
52d717a86b Update dependency glob to v10.3.3 (#17281)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-12 09:10:21 -04:00
Paul Bottein
606b96f6fd Fix history issue when closing more info dialog by clicking update (#17257)
* Fix history issue when closing more info dialog by clicking update

* Remove hideMoreInfoDialog function
2023-07-11 13:00:12 +00:00
Bram Kragten
33b9786ae7 start_pause is only supported on entities that don't have STATE sup… (#17147)
* `start_pause` is only support on entities that don't have `STATE` support

* Update hui-vacuum-commands-tile-feature.ts

* Add comment
2023-07-11 14:54:38 +02:00
karwosts
04ec380ce0 Prune empty value_template field from numeric_state (#17272) 2023-07-11 14:38:36 +02:00
Paul Bottein
9866a3217e Prevent items in add integration dialog from flickering (#17260) 2023-07-11 14:35:37 +02:00
renovate[bot]
9f55c06dfc Update dependency glob to v10.3.2 (#17270)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-10 21:44:18 -04:00
dependabot[bot]
2298d2b7ca Bump semver from 5.7.1 to 5.7.2 (#17271)
Bumps [semver](https://github.com/npm/node-semver) from 5.7.1 to 5.7.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/v5.7.2/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v5.7.1...v5.7.2)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-10 21:42:49 -04:00
Bram Kragten
e46f0224c6 Add support for service translations (#17264)
* Add support for service translations

* Add selector translation support
2023-07-10 20:37:04 -04:00
Paulus Schoutsen
bf4cf310f3 Bump HAWS to 8.2.0 (#17263) 2023-07-10 18:37:15 +00:00
renovate[bot]
b1a909d302 Update dependency babel-loader to v9.1.3 (#17262)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-10 14:09:07 -04:00
Paul Bottein
bffdfcf61c Fix notification error when calling service (#17255) 2023-07-10 15:01:16 +02:00
Paul Bottein
228b75ae83 Simplify script/automation action description with nested conditions/triggers (#17252) 2023-07-10 13:33:50 +02:00
Bram Kragten
35a427afad Update download-translations.js 2023-07-10 13:17:35 +02:00
Bram Kragten
1f5a8b4e7e Merge branch 'master' into dev 2023-07-10 13:16:32 +02:00
renovate[bot]
f98eaf0c2d Update vaadinWebComponents monorepo to v24.1.3 (#17250)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-10 13:15:43 +02:00
karwosts
d66a8a65b6 Fix a browser hang with charts in grids (#17244) 2023-07-10 13:13:46 +02:00
Till
3bf8739a7c Fix missing autocomplete in energy settings (#17218) 2023-07-10 13:12:15 +02:00
Steve Repsher
456eba1d88 Add pull request labeler (#17199) 2023-07-10 13:08:46 +02:00
Philip Allgaier
a1771cc919 Clearly show if there are no ignored or disabled integrations (#17251) 2023-07-10 13:08:15 +02:00
Paul Bottein
289c380a6a Remove unused device class translations (#17253) 2023-07-10 10:30:03 +00:00
Denis Shulyaka
f35b493d2e humidifier cards: support null target humidity (#17240)
remove target humidity if not provided
2023-07-10 11:15:27 +02:00
dependabot[bot]
e01ad86da9 Bump actions/setup-node from 3.6.0 to 3.7.0 (#17246)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-10 09:51:30 +02:00
renovate[bot]
f8e09921c3 Update dependency @lit-labs/virtualizer to v2.0.4 (#17219)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-09 19:40:21 -04:00
karwosts
0974d86bfd Localize the statistics search label (#17223)
* Localize the statistics search label

* switch to common search
2023-07-09 18:39:51 -04:00
renovate[bot]
fdf5abd0f9 Update dependency @codemirror/view to v6.14.1 (#17225)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-09 17:37:14 -04:00
renovate[bot]
487ff4afcf Update babel monorepo (#17233)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-09 17:35:21 -04:00
renovate[bot]
13d686bd67 Update dependency core-js to v3.31.1 (#17224) 2023-07-09 00:09:31 -04:00
renovate[bot]
4ea88613bd Update dependency lit to v2.7.6 (#17220) 2023-07-08 20:22:26 -04:00
karwosts
e8c7f8cffc Don't automatically capitalize climate states (#17217)
* Don't auto-capitalize climate states

* more states
2023-07-08 14:03:21 -04:00
Franck Nijhof
1beab0449f Fix missing translations of password field in cloud signup (#17213) 2023-07-08 13:23:30 -04:00
renovate[bot]
3191801fa7 Update babel monorepo to v7.22.6 (#17201)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-07 11:04:15 -04:00
renovate[bot]
6a22503285 Update dependency magic-string to v0.30.1 (#17202)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-07 11:00:31 -04:00
renovate[bot]
6b66b7f1fa Update dependency hls.js to v1.4.8 (#17197) 2023-07-06 19:57:08 -04:00
renovate[bot]
0b31d9b943 Update dependency @octokit/plugin-retry to v5.0.5 (#17196) 2023-07-06 19:51:37 -04:00
renovate[bot]
e1be4751a1 Update typescript-eslint monorepo to v5.61.0 (#17195) 2023-07-06 16:07:56 -04:00
puddly
155e9d9e95 Default the ZHA channel change dialog's preferred channel to auto (#17178) 2023-07-06 09:55:31 +02:00
karwosts
3d2734eb88 Fix sensor card to not crash when it finds no state history (#17181) 2023-07-06 09:46:42 +02:00
Philip Allgaier
9ac3f745b3 Show "Configured" header on integrations dashboard for clarity (#17115) 2023-07-06 09:42:15 +02:00
Bram Kragten
9f74af56ed Update download-translations.js 2023-07-05 17:32:08 +02:00
Bram Kragten
b1f5776eb3 Merge branch 'dev' 2023-07-05 17:23:55 +02:00
Bram Kragten
c95232fecb Update download-translations.js 2023-07-05 17:23:24 +02:00
Bram Kragten
c60a235ad2 Merge branch 'dev' 2023-07-05 17:08:21 +02:00
Bram Kragten
cc8ab184e3 Update download-translations.js 2023-07-05 17:05:13 +02:00
Bram Kragten
ad8d3c7fa8 Fix non optional response service, variable field disabled (#17171) 2023-07-05 14:53:19 +00:00
Bram Kragten
507f22a5cd Update of core or OS will disconnect (#17170) 2023-07-05 16:49:35 +02:00
Bram Kragten
d7e0dac4e7 20230705.1 (#17169) 2023-07-05 15:47:43 +02:00
Bram Kragten
1b0423eb42 Bumped version to 20230705.1 2023-07-05 15:36:47 +02:00
Bram Kragten
9125520d8f Patch leaflet draw (#17168) 2023-07-05 15:22:50 +02:00
Bram Kragten
3390dda7be Fix integration card design gallery (#17167) 2023-07-05 15:22:22 +02:00
renovate[bot]
dcae8b9790 Pin dependency @types/luxon to 3.3.0 (#17164)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-05 11:43:13 +00:00
Bram Kragten
1b503a6af1 Convert and filter backend translations to old format (#17161) 2023-07-05 13:29:42 +02:00
Bram Kragten
8bd09edec0 Fix automation translations + gallery (#17166) 2023-07-05 13:27:38 +02:00
Bram Kragten
c8de1ff74c 20230705.0 (#17165) 2023-07-05 09:18:17 +02:00
Bram Kragten
44aca9688d Bumped version to 20230705.0 2023-07-05 09:11:23 +02:00
Bram Kragten
9d457d52e8 Fix schedule and calendar timezone handling (#17157) 2023-07-05 09:10:01 +02:00
Bram Kragten
72dbe8e7ab Guard for missing translations (#17160) 2023-07-05 09:01:02 +02:00
renovate[bot]
371dadfeeb Update vaadinWebComponents monorepo to v24.1.2 (#17142)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-05 00:05:38 -04:00
Simon Lamon
9cf8ec4cbb Make voice assistant translatable in dialog (#17163) 2023-07-04 20:42:36 +02:00
Bram Kragten
7584404d31 Fix cast build (#17162) 2023-07-04 20:41:40 +02:00
Bram Kragten
75b6b9cfd9 Ask confirmation before deleting a schedule item (#17158) 2023-07-04 12:13:26 +02:00
renovate[bot]
94808b75b3 Update Yarn to v3.6.1 (#17153)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-04 09:37:59 +02:00
renovate[bot]
dc19f94bfa Update dependency @types/qrcode to v1.5.1 (#17154)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-04 09:37:00 +02:00
renovate[bot]
9374e38db2 Update dependency eslint to v8.44.0 (#17156)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-04 09:36:13 +02:00
Bram Kragten
b309c64d7b 20230703.0 (#17150) 2023-07-03 19:05:09 +02:00
Bram Kragten
db78dd8762 Bumped version to 20230703.0 2023-07-03 19:03:32 +02:00
Joakim Sørensen
4588eb3b75 Send undefined as version if auto is selected (#17148) 2023-07-03 17:04:36 +02:00
Bram Kragten
d427d9e7f6 Integrations header: center warning/error text (#17141)
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
2023-07-03 13:36:29 +00:00
Bram Kragten
a3b87a6e7b Fix supervisor not loading Firefox (#17146) 2023-07-03 13:25:59 +00:00
Bram Kragten
6a2cad1af3 Fix device automations from device page (#17145) 2023-07-03 15:24:19 +02:00
Bram Kragten
21caac4240 Don't show fractions in energy percentage gauges (#17140) 2023-07-03 10:56:40 +02:00
renovate[bot]
0735b6475a Update dependency @material/web to v1.0.0-pre.12 (#17138)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-02 14:42:59 +02:00
Simon Lamon
7dbb419c30 Make automation editor card headers translateable (actions) (#17027) 2023-07-02 14:29:54 +02:00
renovate[bot]
a477120f13 Update dependency typescript to v5.1.6 (#17139)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-01 23:30:29 -04:00
renovate[bot]
a7ed71d404 Update dependency @lrnwebcomponents/simple-tooltip to v7.0.11 (#17124) 2023-07-01 18:31:58 -04:00
karwosts
08716c8e11 Gauge card form fields can be decimal (#17123) 2023-07-01 16:02:20 -04:00
Bram Kragten
4b8d7b27e3 Fix device automation description (#17133) 2023-07-01 15:54:30 -04:00
renovate[bot]
c29a2f35c3 Update dependency typescript to v5.1.5 (#17129)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-01 15:41:06 -04:00
renovate[bot]
f8b9888636 Update dependency webpack to v5.88.1 (#17135)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-01 15:40:16 -04:00
renovate[bot]
2d45532707 Update dependency glob to v10.3.1 (#17128)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-01 15:36:58 -04:00
renovate[bot]
5d4402a53b Update dependency hls.js to v1.4.7 (#17130)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-01 15:36:15 -04:00
renovate[bot]
60af8c7303 Update dependency lint-staged to v13.2.3 (#17131)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-01 15:34:42 -04:00
Bram Kragten
8f3d89da4f 20230630.0 (#17120) 2023-06-30 17:18:39 +02:00
Bram Kragten
ff59e31530 Bumped version to 20230630.0 2023-06-30 17:16:29 +02:00
Paul Bottein
23ac7501b3 Reorder config entries in device pages (#17105) 2023-06-30 17:15:49 +02:00
Bram Kragten
d6f8941098 Warn when punctuation is used in conversation trigger (#17119) 2023-06-30 17:14:58 +02:00
Philip Allgaier
e5146512d5 Fix disabled domain text color in entity settings (#17114) 2023-06-30 17:14:04 +02:00
Allen Porter
b43c6f9fa3 Allow changing a single event to recurring event (#17112) 2023-06-30 17:13:21 +02:00
renovate[bot]
5579713ed5 Update typescript-eslint monorepo to v5.60.1 (#17109)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-30 17:12:38 +02:00
karwosts
e7c47ef65c Name field in helper forms should not init in the error state (#17111) 2023-06-30 17:06:46 +02:00
renovate[bot]
ede7daad1a Update dependency @lrnwebcomponents/simple-tooltip to v7.0.10 (#17116)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-30 17:05:44 +02:00
Bram Kragten
5e84f2a173 Fix ignoring config flow (#17118) 2023-06-30 16:37:53 +02:00
Kevin
90df43c205 Fix ignoring dicovered devices (#17117) 2023-06-30 16:15:32 +02:00
Bram Kragten
3563541f8f 20230629.0 (#17108) 2023-06-29 18:50:03 +02:00
Bram Kragten
a09d71291b Update discovered/disabled/ignored integrations (#17107) 2023-06-29 18:47:24 +02:00
Bram Kragten
a7100b9678 Bumped version to 20230629.0 2023-06-29 18:33:59 +02:00
Bram Kragten
42d6e6dc51 Replace integration error/warning banner with subtitle (#17103) 2023-06-29 17:26:51 +02:00
Bram Kragten
a5c7f261c8 dont split a string 2023-06-29 17:14:05 +02:00
Bram Kragten
f712b76ccf Update compute_state_display.ts 2023-06-29 16:56:24 +02:00
Paul Bottein
82a8b8fd5d Same order in device dashboard and device page for config entries (#17104) 2023-06-29 16:09:27 +02:00
Bram Kragten
a227d7a2cf Fix ha-menu-button not hidden (#17102) 2023-06-29 15:09:58 +02:00
Philip Allgaier
b5eb18e163 Ensure domain titles are loaded for quick reload items (#17100) 2023-06-29 14:53:08 +02:00
Bram Kragten
82ae04e070 Integration dashboard: don't stretch items (#17099) 2023-06-29 10:51:14 +00:00
Paul Bottein
8f617fe754 Allow to search statistic by statistics id and name (#17098) 2023-06-29 12:51:00 +02:00
Paul Bottein
77d24f4129 Show position on sidebar card and hide arrow on panel card (#17092) 2023-06-29 09:27:49 +00:00
Bram Kragten
6cc207752f Empty response when changing service (#17091) 2023-06-29 10:31:16 +02:00
karwosts
b96ad65f48 Add summations to gas/solar/water energy graph tooltips (#17084) 2023-06-29 09:57:37 +02:00
karwosts
ab1759f11d Clear template-not-supported error when switching services in devtools (#17090) 2023-06-29 09:54:18 +02:00
Philip Allgaier
b539a939b4 Pass missing time zone info to dev tool state (#17087) 2023-06-29 09:48:53 +02:00
Philip Allgaier
82cc667012 Add min/max support for prompt dialog (e.g. used for card moving) (#17085) 2023-06-29 09:40:55 +02:00
Philip Allgaier
fc86c82540 Remove weird colon from integration setup error text (#17086) 2023-06-29 09:40:09 +02:00
karwosts
6d1ea41449 Fab spacer for zha table (#17082) 2023-06-28 15:50:25 +00:00
Bram Kragten
50f4a1abc5 20230628.0 (#17080) 2023-06-28 17:30:13 +02:00
Bram Kragten
f6d06f5e26 Remove time from assist dev tools (#17079) 2023-06-28 17:19:47 +02:00
Bram Kragten
de7f055419 Bumped version to 20230628.0 2023-06-28 17:19:04 +02:00
Paul Bottein
c3c6c63169 Add move card to position on dashboard editor (#17077)
* Add move card to position on dashboard editor

* Feedbacks
2023-06-28 15:14:10 +00:00
Bram Kragten
6fea7a7106 Move integration sections into their own container (#17078) 2023-06-28 14:58:32 +00:00
Bram Kragten
ce88c594b7 Submit assist dev tools on enter (#17073) 2023-06-28 16:48:32 +02:00
Bram Kragten
e2daa89941 Add space for FAB on addon page (#17076) 2023-06-28 16:48:06 +02:00
Denis Shulyaka
81bd4a247b Humidifier action (#17056)
* Add action attribute to humidifier

* Humidifier: Use action instead of state if that is available

* rebase

---------

Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-06-28 16:47:39 +02:00
karwosts
345aef8d65 Add fab spacer for backups table (#17075) 2023-06-28 14:37:18 +00:00
Paul Bottein
eaeb37da4d Update humidifier Ui with current humidity and action (#17072) 2023-06-28 16:14:18 +02:00
Bram Kragten
c0613545e7 Make helper forms lazy load (#17068) 2023-06-28 15:55:46 +02:00
Bram Kragten
e6d77af438 Make space for fab (#17070) 2023-06-28 15:55:12 +02:00
Bram Kragten
625da46da9 Fix assist devtools default language (#17071) 2023-06-28 15:50:43 +02:00
Bram Kragten
7727bf7901 Tweak lovelace editor position badge (#17069) 2023-06-28 15:10:33 +02:00
Philip Allgaier
24e531a16c Catch exception if diagnostics are not supported for domain (#17067) 2023-06-28 12:48:37 +00:00
Philip Allgaier
32a9b13af0 Translate message that script/automation is unavailable (#17066) 2023-06-28 12:38:10 +00:00
Bram Kragten
c90c4d88af Fix discovery flow title (#17065) 2023-06-28 14:29:35 +02:00
Bram Kragten
cd3bec08f7 Refactor integration card (#17061) 2023-06-28 14:09:02 +02:00
karwosts
8945650b62 Show card positions in edit dashboard mode (#17055) 2023-06-28 14:01:21 +02:00
karwosts
5ac9a6c9cc Sort tooltips in energy graphs and filter zeros (#17057) 2023-06-28 14:00:10 +02:00
Bram Kragten
ce9380e4d7 Fix menu button when sidebar is always_hidden (#17059) 2023-06-28 13:34:48 +02:00
Bram Kragten
927c6dd778 Fix state display in vacuum more info (#17063) 2023-06-28 13:31:26 +02:00
Philip Allgaier
952bcff8c8 Handle "unknown" for date, time and datetime entities (#17043) 2023-06-28 10:45:34 +00:00
Paul Bottein
73e1b4b1d1 Add basic assist dev tools (#17062) 2023-06-28 10:40:59 +00:00
Bram Kragten
cbe8be1573 Add response variable support to service action (#17046) 2023-06-27 17:12:38 +00:00
Bram Kragten
6b4300950d Add response UI to stop action (#17045) 2023-06-27 19:02:05 +02:00
Bram Kragten
c3c062cc29 Unsubscribe from supervisor collection immediately (#17047)
* Unsubscribe from supervisor collection immediately

* bump home-assistant-js-websocket
2023-06-27 18:57:08 +02:00
Bram Kragten
b15754a6a7 Ingress: offer to start addon on ingress page (#16458)
Co-authored-by: Joakim Sørensen <ludeeus@ludeeus.dev>
2023-06-27 18:49:24 +02:00
Paul Bottein
343708cdaa Align humidifier thermostat card (#17054) 2023-06-27 18:36:56 +02:00
Bram Kragten
3b8ea5edbe Add keyfunction to datatable virtualizer (#17049) 2023-06-27 18:29:37 +02:00
Bram Kragten
4761036816 Show if script is unavailable and why (#17051) 2023-06-27 18:28:53 +02:00
Bram Kragten
3bb5e95c50 Show if automation is unavailable and why (#17048) 2023-06-27 18:28:20 +02:00
Bram Kragten
9e5774525f Add service response support to dev tools (#17044)
* Add service response support to dev tools

* Change to `response_variable`
2023-06-27 18:22:02 +02:00
Denis Shulyaka
349311a18d humidifier card: display the current humidity (#14645)
* humidifier card: display the value of current humidity sensor

Signed-off-by: Denis Shulyaka <Shulyaka@gmail.com>

* rename set-values and current-humidity to main-humidity and secondary-humidity

* removed more-info dialog for current-humidity

* swap target and current humidity

* remove current humidity rounding

* use current_humidity attribute

* Add current_humidity attribute

* prettier

* Revert hui-humidifier-card-editor.ts

* Revert types.ts

* Revert en.json

* Update hui-humidifier-card.ts

* Update hui-humidifier-card.ts

* prettier

* Use formatNumber

* Apply suggestions from code review

* Swap back current humidity and target humidity

---------

Signed-off-by: Denis Shulyaka <Shulyaka@gmail.com>
2023-06-27 17:24:45 +02:00
Paul Bottein
48b6c2a925 Add animation for locking and unlocking state (#17053) 2023-06-27 15:23:46 +00:00
karwosts
381c9f97d6 Bar chart should start from zero (#16815) 2023-06-27 17:21:23 +02:00
Simon Lamon
9a116d4022 Update dialog-add-user input fields (#17039) 2023-06-27 17:19:56 +02:00
Simon Lamon
d63d3a681c Fix split area into separate devices and entities (#17017) 2023-06-27 17:19:19 +02:00
karwosts
3111c29049 Fix group more-info to show the state of the group entity (#17052) 2023-06-27 16:54:18 +02:00
Bram Kragten
87aad75cc7 Add UI for conversation trigger (#17037) 2023-06-27 10:58:27 +02:00
Paulus Schoutsen
d656269d75 Remove attribution from Assist dialog (#17038) 2023-06-26 23:18:57 +02:00
Marc Mueller
d169ff6a96 Update build system (#17040) 2023-06-26 19:24:03 +00:00
Franck Nijhof
06d9517e27 Add identify device class to button (#17036) 2023-06-26 15:47:06 +02:00
Paulus Schoutsen
a637b7db75 Automatically refresh when showing debug for a pipeline in progress (#17030) 2023-06-26 13:15:20 +00:00
Philip Allgaier
96a6261a09 Automatic casing of nouns based on language (#17035) 2023-06-26 14:58:14 +02:00
ildar170975
a3f0c428f8 Update hui-glance-card.ts: fix padding & margin for a focused entity (#17005)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-06-26 12:25:14 +00:00
Philip Allgaier
b40a3224fc Add "Clear" button to template editor + confirmation dialog (#17020) 2023-06-26 12:21:08 +00:00
Philip Allgaier
68fb98454f Fix logbook for binary sensor (missing device class) (#17034) 2023-06-26 10:50:51 +00:00
Philip Allgaier
3803bdc8da Add missing aria-label to integration configure button (#17033) 2023-06-26 10:33:05 +00:00
Paul Bottein
1dfd859a2d Circular slider improvements (#17008) 2023-06-26 11:49:11 +02:00
karwosts
f77f7b3c36 Catch errors when describeTrigger throws an exception (#17022) 2023-06-26 11:47:22 +02:00
karwosts
82463c2ef6 Fix overview failing to render in some cases with toUpperCase exception (#17021) 2023-06-26 11:42:32 +02:00
karwosts
e53ae0b333 Add plant domain to enumerated states list (#17026) 2023-06-26 11:39:13 +02:00
karwosts
b6ed8acd02 Dont mark blueprint fields with defaults as required (#16785) 2023-06-26 11:38:39 +02:00
renovate[bot]
897f118547 Update dependency @material/web to v1.0.0-pre.11 (#17012)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 11:35:13 +02:00
renovate[bot]
d961f5be5f Update typescript-eslint monorepo to v5.60.0 (#17004)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 11:34:30 +02:00
renovate[bot]
96d6687724 Update dependency sinon to v15.2.0 (#17013)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 11:33:39 +02:00
renovate[bot]
a77167e9d9 Update dependency @lrnwebcomponents/simple-tooltip to v7.0.5 (#17014)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 11:32:51 +02:00
renovate[bot]
d2199dfa34 Update dependency webpack to v5.88.0 (#17025)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 11:29:07 +02:00
renovate[bot]
0f0d1d6e6f Update dependency glob to v10.3.0 (#17024)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 11:26:52 +02:00
karwosts
9bcbb6f914 Support cut/copy/paste in dashboard UI editor (#16707) 2023-06-26 11:14:14 +02:00
renovate[bot]
2929bf5b1a Update CodeMirror (#17031)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 08:50:53 +00:00
karwosts
976fcab146 Don't apply brightness filter to plant icons (#17029) 2023-06-26 10:02:41 +02:00
karwosts
655cf053c7 Include blueprint type in row id key (#16998) 2023-06-26 09:59:43 +02:00
Philip Allgaier
152ca75499 Adjust codemirror gutter background color (#17018) 2023-06-26 09:58:59 +02:00
Joakim Sørensen
1645208f62 Export base create config functions (#17007) 2023-06-26 09:50:43 +02:00
karwosts
3528f5c7aa Fix dialog-device-registry-detail missing labels (#17001) 2023-06-26 09:50:21 +02:00
J. Nick Koston
76490cc690 Fix media player list when there are entities not in the registry (#17015) 2023-06-24 08:37:38 +02:00
renovate[bot]
bf18deb83c Update dependency @rollup/plugin-commonjs to v25.0.2 (#17000)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-23 00:28:22 +02:00
Petro31
f19dcba1ce Update _dismissAll to use persistent_notification.dismiss_all service (#16997) 2023-06-22 14:28:07 +02:00
Bram Kragten
b3fa134198 Add haStyleScrollbar to hass-tabs-subpage (#16993) 2023-06-22 09:53:06 +00:00
Bram Kragten
80c57fa326 Don't allow to change the domain in entity registry settings (#16800) 2023-06-22 11:09:02 +02:00
Joakim Sørensen
b748fee321 Allow selecting CIFS version in mount dialog (#16833) 2023-06-22 10:58:26 +02:00
Paul Bottein
1ee67937ec Simplify usage on clipboard for automations and scripts (#16989) 2023-06-22 10:55:39 +02:00
Bram Kragten
eb552530e2 Add support for image entity (#16877) 2023-06-21 17:46:40 +02:00
Paul Bottein
1fe5d66a68 Allow cards and tile features to provide a schema to create the editor (#16142)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-06-21 17:22:33 +02:00
Bram Kragten
7faa165558 Refactor Storage decorator (#16987) 2023-06-21 17:22:10 +02:00
karwosts
752bc192cd Fix types selection for statistics-graph-card (#16988) 2023-06-21 15:10:00 +00:00
Paul Bottein
e9961b93f9 Add circular slider (#16981)
* WIP Create round slider

* Fix interaction on iOS

* Add dual and simple gauge

* Add events

* Rename events

* Use low and high

* Improve dual slider selection

* Add min and max

* Rename component

* Prevents setting a high value lower than low and vice versa

* Add keyboard support

* Fix typings

* Use html

* Update current indicator

* Improve doc

* Fix keyboard focus after mouse interaction

* Don't fallback to value
2023-06-21 15:01:45 +00:00
c0ffeeca7
bbdcc021d4 TTS and STT: standardize spelling (#16685) 2023-06-21 13:46:08 +02:00
Vasilis Koulis
3d6cfc4037 open option for lock (#14852)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-06-21 09:59:28 +00:00
RoboMagus
9b35c06eef Add persistent_notification trigger (#16967)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-06-21 11:55:55 +02:00
Joakim Sørensen
b46c74fe76 Add haStyleScrollbar to hass-subpage (#16745) 2023-06-21 11:35:17 +02:00
Joakim Sørensen
5aa6ffe2e4 Map GitHub block quotes to our ha-alert component (#16757) 2023-06-21 11:35:02 +02:00
karwosts
07d37dd89f Handle multiple triggers in trigger condition UI (#16983) 2023-06-21 08:50:01 +02:00
Lasse Bang Mikkelsen
33d6ad1b0b Add copy-to-clipboard button for long-lived tokens (#16956) 2023-06-21 06:19:25 +00:00
Simon Lamon
386ed2167f Make automation editor card headers translateable (triggers partly) (#16969) 2023-06-21 08:12:04 +02:00
karwosts
221f4f34a7 Use new automation dialog for new scripts (#16933) 2023-06-21 08:04:39 +02:00
karwosts
c63c717d9f Add 'Default' option to theme-picker (#16915) 2023-06-21 08:03:17 +02:00
Paul Bottein
1cb1bcf274 Open assist from dashboard (#16829) 2023-06-21 08:02:09 +02:00
karwosts
1cf24ffc8d Allow continue_on_error in the UI action editor (#16834) 2023-06-20 14:53:13 +00:00
Paul Bottein
13b864e261 Use ha-icon-button-group in more info cover (#16911) 2023-06-20 16:45:45 +02:00
Paul Bottein
7bc2ca3b65 Add more info lock (#15995)
* Add more info lock

* Use same height for pending state

* Fix attributes

* Add unlocking/locking to switch

* Improve code support
2023-06-20 15:25:26 +02:00
Christoph Wen, B.Sc
922e95b895 Fix time and date-time 12h formats (#16692) (#16805)
* Fix time and date-time 12h formats  (#16692)

- am/pm check possible for other languages
- adjusted date format gallery page for consistency
- added gallery pages for date-time and time formats

* Fix typo in am/pm check (#16692)
2023-06-20 12:52:53 +02:00
renovate[bot]
baaa012101 Update octokit monorepo (#16979)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-20 12:07:01 +02:00
breakthestatic
3888b1c48b Use fuzzy filter/sort for target pickers (#16912)
* Use fuzzy filter/sort for target pickers

* PR suggestions

* Restore missed sort
2023-06-20 12:03:55 +02:00
karwosts
332af4003e History graph should start at requested time even if sensor is unavailable (#16850)
History graph should start at consistent time if sensor is unavailable
2023-06-20 12:00:33 +02:00
renovate[bot]
044a44e114 Update dependency @lit-labs/context to v0.3.3 (#16975)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-20 11:56:05 +02:00
c0ffeeca7
13c932a8f8 Thread: Rename "My network" to "Preferred network" (#16980)
- All networks in my household are my networks. Otherwise they are my neighbor's.
- within my networks, this one is my preferred one (as opposed to other networks)
2023-06-20 10:43:28 +02:00
renovate[bot]
be1089302f Update dependency @octokit/rest to v19.0.12 (#16973)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-19 17:52:51 +00:00
Steve Repsher
540df024d9 Upgrade to python 3.11 (#16948) 2023-06-19 19:50:45 +02:00
Bram Kragten
e7c8bd4c41 Bump Vaadin (#16971) 2023-06-19 13:48:54 -04:00
renovate[bot]
7c15a65bba Update dependency @lit-labs/virtualizer to v2.0.3 (#16761)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-06-19 14:21:08 +00:00
karwosts
5381a467e5 Fix blueprint script editor erroneously setting mode field (#16934) 2023-06-19 13:43:04 +00:00
renovate[bot]
a96d3594ba Update dependency typescript to v5 (#15877)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-06-19 13:03:48 +00:00
Steve Repsher
1d0d4755d0 Update lit-analyzer and ts-lit-plugin to version 2 (#16954) 2023-06-19 14:30:16 +02:00
Till
fa75b18a6b Add self-sufficiency gauge card (#15704)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-06-19 13:59:20 +02:00
Joakim Sørensen
cdd29c8bf7 Add help button to get documentation from mount dialog (#16932) 2023-06-19 11:54:47 +00:00
Paul Bottein
215f5e341a Put color wheel at the root level for more info light (#16909) 2023-06-19 13:50:37 +02:00
Franck Nijhof
8abb58ae7d Add preheating HVAC action to climate (#16922) 2023-06-19 13:36:19 +02:00
karwosts
40c8301df0 Allow templates in service template/object selector (#16925) 2023-06-19 13:33:28 +02:00
Simon Lamon
80f3d6aacb Change all occurrences to use Intl.ListFormat (#16897) 2023-06-19 12:52:28 +02:00
dependabot[bot]
41310007fe Bump dessant/lock-threads from 4.0.0 to 4.0.1 (#16962)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-19 09:39:22 +02:00
renovate[bot]
195b1eef02 Lock file maintenance (#16961)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-19 05:26:18 +00:00
renovate[bot]
8e9b5ea66b Update dependency tsparticles-preset-links to v2.10.1 (#16802)
* Update dependency tsparticles-preset-links to v2.10.1

* Group future tsparticles updates

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <steverep@users.noreply.github.com>
2023-06-19 05:10:21 +00:00
renovate[bot]
827d89628d Update dependency tsparticles-engine to v2.10.1 (#16790)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-18 23:52:23 -04:00
renovate[bot]
cac341a938 Update dependency hls.js to v1.4.6 (#16960)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-18 23:31:13 -04:00
J. Nick Koston
2b51228665 Fix notifications subscription leak when in narrow mode (#16953)
Fix persistent notifications subscription leak on mobile/narrow
2023-06-17 20:41:41 -04:00
renovate[bot]
79c010eb7b Update dependency webpack to v5.87.0 (#16949) 2023-06-17 20:34:43 -04:00
renovate[bot]
2a4356ce86 Update dependency tinykeys to v2.1.0 (#16951) 2023-06-17 20:33:36 -04:00
renovate[bot]
afdeb36258 Update vaadinWebComponents monorepo to v24.1.0 (#16844)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-17 14:56:35 -04:00
renovate[bot]
d4f4ee1e59 Update dependency tinykeys to v2 (#16873)
* Update dependency tinykeys to v2

* Switch to named import

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <steverep@users.noreply.github.com>
2023-06-17 16:53:36 +00:00
renovate[bot]
bcceef30bb Update dependency @octokit/auth-oauth-device to v5 (#16947)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-17 12:46:30 -04:00
renovate[bot]
356935fefc Update formatjs monorepo (#16945)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-17 15:28:29 +00:00
renovate[bot]
49f59d7162 Update CodeMirror (#16942)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-17 11:17:37 -04:00
renovate[bot]
67e8357bb9 Update dependency sinon to v15.1.2 (#16940)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-17 11:15:05 -04:00
renovate[bot]
b8da712186 Update typescript-eslint monorepo to v5.59.11 (#16941)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-17 11:13:30 -04:00
renovate[bot]
a409f494a2 Update dependency @types/leaflet-draw to v1.0.7 (#16939)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-17 05:55:36 +00:00
renovate[bot]
3b32825e2a Update dependency @octokit/plugin-retry to v5.0.3 (#16938)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-17 05:47:46 +00:00
renovate[bot]
12b7b903bc Update dependency core-js to v3.31.0 (#16913)
* Update dependency core-js to v3.31.0

* Update babel setting

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <steverep@users.noreply.github.com>
2023-06-17 05:40:10 +00:00
Joakim Sørensen
3be601a3b9 Add location to backups table (#16813) 2023-06-15 16:08:32 +02:00
renovate[bot]
d0641d64bd Update dependency eslint-plugin-lit-a11y to v3 (#16910)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-14 16:03:53 -04:00
renovate[bot]
3a64f64894 Update dependency @material/web to v1.0.0-pre.10 (#16841)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-14 18:08:19 +02:00
karwosts
7182abfec5 Fix history chart when final sensor state is unavailable (#16852) 2023-06-14 17:45:57 +02:00
JakobDNS
2076a083d3 en.json: Fix typo "recieved" -> "received" (#16903) 2023-06-14 16:18:02 +02:00
renovate[bot]
73317a48ee Update dependency rollup-plugin-visualizer to v5.9.2 (#16899)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-13 17:27:30 -04:00
renovate[bot]
b891c53994 Update dependency webpack-dev-server to v4.15.1 (#16900)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-13 17:26:26 -04:00
renovate[bot]
c1c18affbc Update dependency webpack to v5.86.0 (#16749)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-13 16:09:57 -04:00
renovate[bot]
3bea2cf7f9 Update dependency @rollup/plugin-commonjs to v25.0.1 (#16892)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-13 15:28:58 -04:00
Steve Repsher
fa1a6affa7 Use ES modules and dynamic import for Webpack latest builds (#16849) 2023-06-13 18:12:44 +02:00
Bram Kragten
197638b282 Fix date demo in gallery (#16894) 2023-06-13 15:27:21 +00:00
karwosts
6e3cf0975b Fix mqtt debug info dialog too big (#16893) 2023-06-13 17:22:45 +02:00
Paul Bottein
9875cb2723 Only catch event inside color wheel (#16890) 2023-06-13 17:21:01 +02:00
Paul Bottein
f8ea7e0ef2 Make actions available as event (#16839) 2023-06-13 15:24:36 +02:00
renovate[bot]
c821f4296e Update dependency @octokit/auth-oauth-device to v4.0.5 (#16891)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-13 09:23:14 -04:00
Simon Lamon
5fc4e7a95d Introduce Intl.ListFormat (#16857)
Co-authored-by: Steve Repsher <steverep@users.noreply.github.com>
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-06-13 15:22:23 +02:00
Paul Bottein
49fa7ec4ed Clear more info content when switching entity (#16846) 2023-06-13 12:20:02 +02:00
Bram Kragten
780de42e4b Allow to show times in the UI in the timezone of the server (#16799) 2023-06-13 12:12:13 +02:00
Paul Bottein
f7722a270f Add safe zone to reach min and max temperature easily with temperature (#16880)
Add safe zone to reach min and max temperature easily with temperature picker
2023-06-13 11:55:52 +02:00
Paul Bottein
e3faa618bf Use esm module for hls.js (#16878) 2023-06-12 07:49:39 -04:00
dependabot[bot]
655b630fa5 Bump actions/checkout from 3.5.2 to 3.5.3 (#16876)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-12 11:46:54 +02:00
renovate[bot]
983bba357a Update babel monorepo to v7.22.5 (#16872)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-11 17:42:06 -04:00
renovate[bot]
17a2560d94 Update dependency webpack-cli to v5.1.4 (#16862)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-11 13:28:12 -04:00
renovate[bot]
eaffed9ff8 Update dependency @octokit/plugin-retry to v5.0.2 (#16861)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-11 13:27:10 -04:00
Matthias Alphart
273992c8e9 Consolidate dependency updates in release-drafter (#16856) 2023-06-10 16:39:43 +02:00
renovate[bot]
c77905bd22 Update dependency glob to v10.2.7 (#16851) 2023-06-09 20:45:14 -04:00
renovate[bot]
15132783d4 Update formatjs monorepo (#16843)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-09 10:49:59 -04:00
Paul Bottein
2b6cf55638 Add paste to else automation action (#16840) 2023-06-09 16:38:01 +02:00
renovate[bot]
e4eaa52d53 Update dependency webpack-cli to v5.1.3 (#16809)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-09 09:04:55 -04:00
renovate[bot]
e1f73dac02 Update dependency hls.js to v1.4.5 (#16842)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-09 13:02:14 +00:00
renovate[bot]
36de0e5c8c Update CodeMirror (#16820)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-09 08:55:19 -04:00
renovate[bot]
549e4e7fb3 Update typescript-eslint monorepo to v5.59.9 (#16832)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-09 08:48:34 -04:00
renovate[bot]
dd9c4e35bf Update dependency @octokit/plugin-retry to v5.0.1 (#16835)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-09 08:46:50 -04:00
Paul Bottein
cc41dbcb0b 20230608.0 (#16825) 2023-06-08 15:09:26 +02:00
Paul Bottein
8580d3f9bf Bumped version to 20230608.0 2023-06-08 15:08:18 +02:00
Bram Kragten
6d29b764d3 Integration page fixes (#16822) 2023-06-08 14:11:52 +02:00
Joakim Sørensen
78cff3a921 Use menu_options instead of menu_issues for translation (#16823) 2023-06-08 11:13:12 +00:00
Paul Bottein
e3c312feaf Sort related entities by name (#16821) 2023-06-08 13:01:46 +02:00
Paul Bottein
31e4166248 Make to full integration card header clickable (#16819) 2023-06-08 10:42:26 +02:00
Bram Kragten
fcffa1a750 20230607.0 (#16812) 2023-06-07 12:17:34 +02:00
Bram Kragten
0442e3e06e Bumped version to 20230607.0 2023-06-07 12:15:32 +02:00
english-ra
0a8252c16a Fixed issue where the cursor would not change to grabbing when a user… (#16808) 2023-06-07 09:44:54 +00:00
puddly
0a62d711f2 Allow the ZHA serial port path to wrap if it is too long (#16806)
Allow the serial port path to wrap if it is too long
2023-06-07 11:34:17 +02:00
karwosts
d7c3ff3e9d Fix cancel button in automation row alias rename dialog (#16810) 2023-06-07 11:27:50 +02:00
renovate[bot]
2767f866f3 Update dependency @octokit/plugin-retry to v5 (#16803)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-06 19:53:57 +00:00
renovate[bot]
040d5af0aa Update dependency eslint to v8.42.0 (#16789)
* Update dependency eslint to v8.42.0

* Update resize-observer.polyfill.ts

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-06-06 19:44:54 +00:00
renovate[bot]
06c6e312b0 Update workbox monorepo to v7 (major) (#16747)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-06 21:41:04 +02:00
renovate[bot]
841dffe563 Update Yarn to v3.6.0 (#16759)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-06 21:39:10 +02:00
renovate[bot]
a41e0d446f Update vaadinWebComponents monorepo to v24.0.8 (#16768)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-06 21:38:08 +02:00
renovate[bot]
9a0f24cd8b Update dependency @lrnwebcomponents/simple-tooltip to v7.0.2 (#16758)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-06 21:37:20 +02:00
puddly
2e531a9006 Add channel 26 to ZHA channel changing dialog dropdown (#16801)
Add 26 to list of valid ZHA network channels
2023-06-06 19:31:50 +00:00
karwosts
76255f2efb Fix ha-devices-picker when changing or deleting devices (#16739) 2023-06-06 21:28:07 +02:00
Bram Kragten
e3ee8f307a 20230606.0 (#16798) 2023-06-06 16:40:21 +02:00
karwosts
19fc92419a Add miscellaneous UI elements for translation (#16797) 2023-06-06 16:37:58 +02:00
Bram Kragten
e7c2625cf1 Bumped version to 20230606.0 2023-06-06 16:32:45 +02:00
Bram Kragten
c39fdcda6e Fix 403 on state-badge connect (#16795) 2023-06-06 13:42:45 +02:00
Paul Bottein
fd1381ab3b Update history chart when entity change in the more info dialog (#16794) 2023-06-06 11:14:11 +02:00
Paul Bottein
7b8f4d1e72 Fix label for cover button mode (#16791) 2023-06-06 09:07:53 +02:00
renovate[bot]
b0a278df97 Update dependency @octokit/plugin-retry to v4.1.6 (#16788)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-06 01:25:59 -04:00
Bram Kragten
871f0f9e0d 20230605.0 (#16787) 2023-06-05 19:19:02 +02:00
Bram Kragten
93e31df106 Use integration_type as header for config entries (#16786) 2023-06-05 19:18:42 +02:00
Bram Kragten
47fdae764f Improve display of disabled config entries (#16784) 2023-06-05 19:00:06 +02:00
Bram Kragten
b8efc06caa Bumped version to 20230605.0 2023-06-05 18:22:38 +02:00
Bram Kragten
fcacdf6534 Add all devices and entities link to integration page (#16781) 2023-06-05 15:52:11 +00:00
Paul Bottein
45d260f0ce Move add config entry button to card (#16783) 2023-06-05 15:49:05 +00:00
renovate[bot]
d5f46a69b0 Update dependency @octokit/plugin-retry to v4.1.5 (#16782)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-05 17:45:44 +02:00
Bram Kragten
fe8eb333b9 Limit integration card to 1 action row (#16780) 2023-06-05 17:23:28 +02:00
Paul Bottein
677cd2de10 Fix integration card tooltip (#16779)
* Fix integration card tooltip

* Update src/panels/config/integrations/ha-integration-header.ts

Co-authored-by: Bram Kragten <mail@bramkragten.nl>

---------

Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-06-05 14:13:27 +00:00
Bram Kragten
1470eb484f Add more info controls for date/time/datetime (#16775)
* Add more info controls for date/time/datetime

* Discard changes to src/panels/lovelace/entity-rows/hui-date-entity-row.ts

* handle unavailable
2023-06-05 16:10:38 +02:00
Bram Kragten
10ee8fda5b Improve protocol integration add device / integration (#16767) 2023-06-05 14:08:55 +00:00
Bram Kragten
e044ddcb57 Align+fix date time entity rows (#16774) 2023-06-05 13:55:15 +00:00
Bram Kragten
29c564bb69 Fix maps card with location sources (#16778) 2023-06-05 15:53:57 +02:00
Bram Kragten
1bf03f020e Fix closing notification drawer (#16769) 2023-06-05 14:26:51 +02:00
Bram Kragten
6c684fd8ee Show number config entries when no devices/entities (#16766) 2023-06-05 14:17:03 +02:00
Simon Lamon
ddaf403378 Fix dropdown selection in General Settings (#16754) 2023-06-05 11:57:20 +00:00
Paul Bottein
b337074758 Fix collapsed masonry view in safari (#16772) 2023-06-05 13:48:16 +02:00
Bram Kragten
a96eff4d25 Fix padding on thread config panel (#16770) 2023-06-05 13:06:54 +02:00
puddly
e6bdc3a15e Disable ZHA channel changing when multi-PAN is in use (#16731)
* Show baudrate and port in the ZHA network info

* Do not allow changing the Zigbee channel with the multiprotocol addon

* Include translations as well

* Update src/translations/en.json

---------

Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-06-05 10:27:36 +00:00
renovate[bot]
33e15eec22 Update dependency @lit-labs/context to v0.3.2 (#16760)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-05 09:50:00 +02:00
renovate[bot]
3c0afd6cde Update dependency lit to v2.7.5 (#16763)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-05 09:48:45 +02:00
Joakim Sørensen
31a3fa02d9 Allow for lazy loading images in markdown (#16746) 2023-06-05 09:46:38 +02:00
Paul Bottein
71954f545c Fix white brightness effect on color wheel (#16738) 2023-06-05 09:39:53 +02:00
Paul Bottein
9f3e8abe69 Don't show edit favorite colors button if the light doesn't support it (#16750) 2023-06-05 09:39:36 +02:00
renovate[bot]
21f983572c Update dependency @octokit/plugin-retry to v4.1.4 (#16762)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-05 01:20:24 -04:00
renovate[bot]
5667d71b02 Update dependency @rollup/plugin-node-resolve to v15.1.0 (#16741)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-02 23:40:50 -04:00
Bram Kragten
0d0e5fdaaa Hide ignored entries (#16737) 2023-06-02 12:08:02 +02:00
karwosts
b1f5ff26d9 Fix device selector when picking devices with no entities (#16734) 2023-06-02 11:26:07 +02:00
renovate[bot]
27451ca30e Update typescript-eslint monorepo to v5.59.8 (#16730) 2023-06-01 22:09:45 -04:00
Paul Bottein
928b4e6f1e Add native color picker option (fix for firefox) (#16729) 2023-06-01 16:31:18 +00:00
Bram Kragten
82fd56efe7 20230601.1 (#16728) 2023-06-01 18:07:46 +02:00
Paul Bottein
b63a32109e Add native color picker option (#16726) 2023-06-01 18:06:26 +02:00
Bram Kragten
efb0098eac Merge branch 'master' into dev 2023-06-01 18:04:54 +02:00
Bram Kragten
a67b845812 Bumped version to 20230601.1 2023-06-01 18:01:55 +02:00
renovate[bot]
d29b7626f3 Update babel monorepo to v7.22.4 (#16724) 2023-06-01 17:13:30 +02:00
Paul Bottein
47ac7062dc Increase size of color wheel cursor on mobile (#16723) 2023-06-01 16:36:32 +02:00
Paul Bottein
e7f5d927b1 Open right mode when editing favorite color (#16719)
* Open right mode when editing favorite color

* Add missing type
2023-06-01 16:35:24 +02:00
Paul Bottein
6b06393559 Fix outlined button margin on iOS app (#16717) 2023-06-01 14:20:56 +02:00
Paul Bottein
efa02c309b Put button menu above toolbar in automation editor (#16716) 2023-06-01 13:35:23 +02:00
Bram Kragten
9b2e77e781 Align integration card, limit height of logo (#16714) 2023-06-01 12:01:09 +02:00
Joakim Sørensen
24b4060c97 Add missing imports in backup dialogs (#16715) 2023-06-01 09:54:53 +00:00
Paul Bottein
5e4c1ab4fc Share clipboard between automation and script (#16713) 2023-06-01 09:40:02 +00:00
Paul Bottein
287e6dbb60 Fix define variables action (#16712) 2023-06-01 11:38:59 +02:00
Paul Bottein
40c9292e16 Improve padding on integration logo (#16711) 2023-06-01 11:35:42 +02:00
Paul Bottein
d51dd00ec7 Add domain icon for time and datetime (#16710) 2023-06-01 09:07:18 +00:00
Paul Bottein
0db50d13d3 Clean helper config entry fetching in settings (#16709) 2023-06-01 10:37:34 +02:00
Paulus Schoutsen
9eb3618d97 20230601.0 (#16705)
* Fix fetching helper config entry (#16704)

* Fix fetching helper config entry

* willUpdate

* Bumped version to 20230601.0

---------

Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-05-31 20:54:02 -04:00
Paulus Schoutsen
03eee9c7d5 Bumped version to 20230601.0 2023-05-31 20:49:41 -04:00
Bram Kragten
a49d59f4c6 Fix fetching helper config entry (#16704)
* Fix fetching helper config entry

* willUpdate
2023-06-01 00:58:03 +02:00
Bram Kragten
990ade4294 20230531.0 (#16697) 2023-05-31 15:45:11 +02:00
Patrick ZAJDA
a4c57f09ad Set alt attribute to Assistant name in the exposed entities settings (#16698) 2023-05-31 13:36:16 +00:00
Bram Kragten
c1fa6d6f8c Merge branch 'master' into dev 2023-05-31 15:20:23 +02:00
Bram Kragten
3bfcb808f5 Bumped version to 20230531.0 2023-05-31 15:17:21 +02:00
Paul Bottein
9a30fe81c6 Use delete instead of remove for favorite colors (#16696) 2023-05-31 13:16:00 +00:00
Paul Bottein
c864edee72 Reset edit mode when closing more info dialog (#16695) 2023-05-31 13:11:10 +00:00
Bram Kragten
36268d5048 fix error messages of addon mount picker (#16694) 2023-05-31 15:00:32 +02:00
karwosts
5217d427e9 Support to|from null in UI for ha-automation-trigger-state (#15071)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-05-31 12:28:16 +00:00
karwosts
aea668e754 Minor UI bugfixes for selector-datetime and dialog-date-picker (#15759)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-05-31 12:26:01 +00:00
Bram Kragten
2219c9bbd3 Throttle replace state in restore scroll (#16693) 2023-05-31 12:18:48 +00:00
Bram Kragten
9b896c63b6 Fix my link for config flow start (#16689) 2023-05-31 14:05:11 +02:00
Bram Kragten
30af576ff5 Remove unused old code (#16691) 2023-05-31 12:04:45 +00:00
Bram Kragten
585db6ab3f Close dialog when clicked on link (#16690) 2023-05-31 14:01:47 +02:00
karwosts
046475e7ac Fix blueprint script editor defaults handling (#16196) 2023-05-31 12:58:22 +02:00
karwosts
648383addd Fix ha-combo-box open direction (#16119) 2023-05-31 12:55:44 +02:00
Paul Bottein
10018b4c32 Update default colors for more info light favorite colors (#16688)
Update default favorite color for more-info-light
2023-05-31 12:48:49 +02:00
Philip Allgaier
872d3e4875 Make badge colors use the generic error/warning/success/info colors (#14728) 2023-05-31 12:44:48 +02:00
Bram Kragten
881f5e5012 Fix energy compare (#16687) 2023-05-31 12:42:03 +02:00
Bram Kragten
9797950f32 Use memoize in formatDateNumeric (#16686) 2023-05-31 12:36:52 +02:00
Bram Kragten
25986f239e Blueprints: show error in alert dialog when clicked (#16684) 2023-05-31 12:35:38 +02:00
Raman Gupta
b586210ff1 Support zwave config parameters not on endpoint 0 (#16597)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-05-31 12:11:26 +02:00
karwosts
748925ede9 Localize time string in time trigger and condition (#16681) 2023-05-31 12:07:30 +02:00
Paul Bottein
a9f1c4a198 Add button bar for light modes (#16683)
* Add button bar for light modes

* Add disabled style

* Fix favorite colors display condition

* Fix color temp button
2023-05-31 11:48:22 +02:00
Bram Kragten
d914fb0cfc Revert "Use ES modules and dynamic import for Webpack latest builds (… (#16679)
Revert "Use ES modules and dynamic import for Webpack latest builds (#16620)"

This reverts commit 7b350e31dd.
2023-05-30 17:56:38 -04:00
Bram Kragten
5218e1352e async cleanup 2023-05-30 23:43:13 +02:00
Bram Kragten
eb0759a3b3 Fix integration translations (#16678) 2023-05-30 23:20:12 +02:00
Bram Kragten
88522ed155 change order 2023-05-30 22:59:34 +02:00
Bram Kragten
64e7fc6591 Fix my link for integration (#16676) 2023-05-30 22:02:52 +02:00
Christoph Wen, B.Sc
2ad6253b72 Add setting to localize numeric dates independent from language (#15770) (#16489) 2023-05-30 19:39:27 +00:00
Bram Kragten
7e5a85dbe7 Allow to change switch as x (#16671) 2023-05-30 21:32:06 +02:00
Paul Bottein
0771a780d9 Light more info enhancement (#16673)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-05-30 18:41:12 +00:00
Steve Repsher
7b350e31dd Use ES modules and dynamic import for Webpack latest builds (#16620) 2023-05-30 18:27:49 +00:00
Bram Kragten
70fbf68603 Overhaul Integrations page, add integration page (#16640)
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
2023-05-30 20:09:26 +02:00
Bram Kragten
2b4f199337 Tweak style of related items (#16672) 2023-05-30 16:12:41 +00:00
Bram Kragten
a70d7d8de3 Related blueprints (#16618) 2023-05-30 15:04:45 +02:00
renovate[bot]
e0c1f98803 Update babel monorepo to v7.22.3 (#16668)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-30 10:40:14 +00:00
Bram Kragten
4b7a517d98 Fix async update localize (#16667) 2023-05-30 10:25:21 +00:00
renovate[bot]
26d4839dfd Update dependency @types/chromecast-caf-receiver to v6 (#15724)
* Update dependency @types/chromecast-caf-receiver to v6

* Import cast namespace from receiver for receiver/media entry

* Use sender event types in manager and remove anonymous listeners

* Apply suggestions from code review

* prettier

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <steverep@users.noreply.github.com>
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-05-30 09:30:04 +00:00
Jonas Bergler
c358d724a7 update hidden_description to explain the behavior of the visible setting more clearly. (#16662)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-05-30 09:27:22 +00:00
Allen Porter
0ab7934c09 Add a vertical scrollbar for the calendar list (#16657) 2023-05-30 10:49:14 +02:00
Allen Porter
6eac229901 Disable calendar selection when editing existing Calendar Events (#16656) 2023-05-30 10:48:34 +02:00
Joakim Sørensen
5006dfc138 Use __STATIC_PATH__ in more places so the supervisor panel can reach paths (#16665)
Use __STATIC_PATH__ in more places so the supervisor panel can reach paths
2023-05-30 10:45:58 +02:00
renovate[bot]
d9d38efd93 Update babel monorepo (#16658)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-30 00:40:11 -04:00
renovate[bot]
9fe3a500d5 Update workbox monorepo to v6.6.0 (#16659)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-30 00:29:12 -04:00
Raman Gupta
3df7c50690 Add frontend support for datetime platform (#14391)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-05-29 23:32:57 +02:00
Bram Kragten
38cf774a0d Use ESM version of hls.js (#16655) 2023-05-29 20:38:21 +02:00
renovate[bot]
98d22d38c3 Update vaadinWebComponents monorepo to v24.0.7 (#16653)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-29 16:30:29 +02:00
renovate[bot]
357dbb591b Update babel monorepo to v7.22.0 (#16654)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-29 16:29:54 +02:00
renovate[bot]
aa5df06bc3 Update dependency @lezer/highlight to v1.1.6 (#16652)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-29 16:28:24 +02:00
rtm516
07a66b4bff Fix topbar overflowing card for add-on store (#16637) 2023-05-29 14:22:03 +00:00
renovate[bot]
f466196fa8 Update dependency hls.js to v1.4.4 (#16651)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-29 16:10:15 +02:00
Marvin Wichmann
04ae0b34af Update WS commands for config entries (#16647) 2023-05-29 16:08:25 +02:00
Joakim Sørensen
6f48267dae Include share as mount usage option (#16636) 2023-05-29 11:43:12 +02:00
renovate[bot]
be1f5d99c8 Update dependency webpack to v5.84.1 (#16649) 2023-05-28 20:46:25 +00:00
renovate[bot]
27b9b4dcc5 Update fullcalendar monorepo to v6.1.8 (#16644)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-28 13:48:53 -04:00
renovate[bot]
08b57d6168 Update dependency webpack to v5.84.0 (#16641)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-28 13:46:32 -04:00
renovate[bot]
3e474daa32 Update dependency @lezer/highlight to v1.1.5 (#16638) 2023-05-27 13:11:42 -04:00
renovate[bot]
48c1e8b56c Update dependency @codemirror/state to v6.2.1 (#16632) 2023-05-27 13:09:19 -04:00
karwosts
fd0c0a95ca Add a description for time condition (#16499) 2023-05-27 18:27:24 +02:00
Paul Bottein
83570f2419 Add missing translations for effect and preset translation in more info (#16634) 2023-05-26 23:01:52 +02:00
Paul Bottein
633c6cfc9b Use colored slider background for more info (#16633) 2023-05-26 17:45:57 +02:00
Paul Bottein
54b4c9f347 Add favorite colors to more info light (#16592)
* Add default favorite colors

* Don't show favorite colors if no entity registry entry

* Move color picker in its own component

* Fix more info dialog width

* Make favorite color editable

* Don't include white mode as favorite

* Add label for favorite color button

* Add support for hs, rgbw and rgbww colors

* Adapt color wheel color according to white value

* Add translation

* Add keyboard control to color temp wheel

* Use bottom sheet style for edit favorite dialog

* Fix listener

* Edit color temp icon

* Disable favorite color when available

* Only admin can edit a color

* Refactor close action

* Clean css

* Use ha button

* Fix ha-border-radius for bottom sheet
2023-05-26 17:23:49 +02:00
starkillerOG
85e7986b44 Always show "polling for updates" switch (#16629)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-05-26 15:52:57 +02:00
Paul Bottein
da0cf9d950 Create outlined button component (#16631)
* Create outlined button component

* Fix css comment

* Don't use Md classes

* Simplify
2023-05-26 15:28:49 +02:00
Bram Kragten
ef51336770 Don't set name for entities that use device name already (#16613) 2023-05-26 14:54:49 +02:00
Bram Kragten
a09db75980 Bumped version to 20230526.0 2023-05-26 09:00:02 +02:00
J. Nick Koston
77d1b19ecb Complete persistent notifications migration (#16476)
* Complete migration of persistent notifications

* Complete migration of persistent notifications

* revert
2023-05-25 23:09:04 -04:00
renovate[bot]
fba12f35ac Update typescript-eslint monorepo to v5.59.7 (#16627) 2023-05-25 22:50:21 +00:00
renovate[bot]
00198c6937 Update vaadinWebComponents monorepo to v24.0.6 (#16621) 2023-05-25 18:35:51 -04:00
Paul Bottein
71bb540352 Use key instead of keycode for key event (#16625) 2023-05-25 18:47:57 +02:00
Bram Kragten
c4ff1a8646 fix keypress in code editor causing flow to submit (#16623) 2023-05-25 18:01:46 +02:00
Bram Kragten
a9c27ad8dd Save automation clipboard in session storage (#16624) 2023-05-25 17:58:05 +02:00
Joakim Sørensen
dacdc62672 Change OS version for mounts to placeholder (#16607) 2023-05-25 09:51:09 +02:00
karwosts
cccce5711c Fix displayed unit for fixed water price (#16616) 2023-05-24 18:21:41 +02:00
Joakim Sørensen
50bd9da94c Att tip to manage media dialog about network storage (#16612) 2023-05-24 17:18:46 +02:00
Bram Kragten
dde27c3524 Support entity reg id in device automations (#15387) 2023-05-24 14:37:45 +02:00
Joakim Sørensen
85acafe8a8 Fix reload mounts callback when doing changes in dialog (#16615) 2023-05-24 12:31:41 +00:00
Bram Kragten
c1748138a8 fix links to scripts from device and area pages (#16611)
Fixes #16602
2023-05-24 14:20:36 +02:00
Joakim Sørensen
9111f58e52 Add dialog to change default backup location (#16610)
* Add dialog to change default backup location

* Add guard

* Update src/components/ha-mount-picker.ts

Co-authored-by: Bram Kragten <mail@bramkragten.nl>

---------

Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-05-24 12:03:14 +02:00
karwosts
cefaaadf95 Fix line chart tooltips to use XY mode (#16605) 2023-05-24 11:52:26 +02:00
karwosts
29846a168e Add cut / copy / paste support to automation & script editor (#16488) 2023-05-24 11:47:33 +02:00
renovate[bot]
31c89d70c5 Update dependency @octokit/rest to v19.0.11 (#16606)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-23 22:37:51 -04:00
renovate[bot]
d5cea75fe4 Update dependency glob to v10.2.6 (#16608)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-23 22:36:12 -04:00
renovate[bot]
35d212e850 Update dependency @octokit/rest to v19.0.9 (#16598) 2023-05-23 12:07:01 -04:00
karwosts
aea098ff17 Fix compare button for energy cards on manual dashboard (#16579) 2023-05-23 14:55:12 +02:00
karwosts
c5205ae8db Add a description for time pattern trigger (#16520) 2023-05-23 14:47:41 +02:00
Paul Bottein
303087d049 Fix documentation form (#16601) 2023-05-23 14:45:53 +02:00
Paul Bottein
e9d9d89d79 New color picker for HS and color temp (#16549)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-05-23 14:45:23 +02:00
Bram Kragten
a5b5e61ed4 Add backup location selector (#16567)
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
2023-05-23 13:35:31 +02:00
Joakim Sørensen
22dc757382 Add guards for network storage (#16591) 2023-05-23 12:33:12 +02:00
Bram Kragten
4ccfd6a3fc Add options flow button to conversation agent in assist pipeline dialog (#16595) 2023-05-23 12:32:18 +02:00
Erik Montnemery
5a36f100a9 Add WS command for getting a config entry (#16600)
* Add WS command for getting a config entry

* Correct typing
2023-05-23 10:43:53 +02:00
renovate[bot]
847c8407de Update dependency eslint to v8.41.0 (#16596) 2023-05-22 20:21:48 -04:00
J. Nick Koston
ed1784b70f Avoid entity registry subscribe for the media browser (#16537) 2023-05-22 19:43:01 +02:00
Trevor North
e8521c59eb Add sensor device class volatile_organic_compounds_parts (#16576)
Add support for volatile_organic_compounds_parts
2023-05-22 08:42:15 +00:00
Bram Kragten
34e59e543b Add support for offline db migration (#16566) 2023-05-22 10:39:06 +02:00
Steve Repsher
330aa23801 Use .nvmrc for GitHub actions (#16569) 2023-05-22 10:38:54 +02:00
Steve Repsher
06db338a15 Upgrade node to v18 (LTS) (#16589) 2023-05-22 10:38:24 +02:00
renovate[bot]
8cff4cda47 Update dependency sinon to v15.1.0 (#16587)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-21 22:25:40 -04:00
renovate[bot]
f7e7c916ba Update dependency @types/marked to v4.3.1 (#16588)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-21 22:24:02 -04:00
renovate[bot]
13ab5ab70a Update dependency leaflet to v1.9.4 (#16586)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-21 22:22:56 -04:00
renovate[bot]
cc61131e4b Lock file maintenance (#16578)
* Lock file maintenance

* Update @codemirror/language to eliminate issue with duplicate

* Update @codemirror/view to eliminate issue with duplicate

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <steverep@users.noreply.github.com>
2023-05-21 04:15:17 +00:00
Bram Kragten
099aa54b80 Add support for external assist (#16556)
* Add support for external assist

* Update hui-root.ts
2023-05-20 21:37:08 -04:00
renovate[bot]
e35d795ba8 Update dependency terser-webpack-plugin to v5.3.9 (#16585) 2023-05-21 00:58:31 +00:00
renovate[bot]
39de8cd6ba Update dependency webpack to v5.83.1 (#16583) 2023-05-20 18:26:53 -04:00
renovate[bot]
fdddf27162 Update dependency glob to v10.2.5 (#16584) 2023-05-20 18:23:33 -04:00
renovate[bot]
cec7a24234 Update dependency @lrnwebcomponents/simple-tooltip to v7 (#16548)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-20 18:10:19 +02:00
renovate[bot]
ea2e9de37a Update dependency @codemirror/view to v6.11.3 (#16582) 2023-05-20 11:52:58 -04:00
renovate[bot]
d9cb288c1d Update dependency tar to v6.1.15 (#16581) 2023-05-20 10:48:03 -04:00
renovate[bot]
53bd4298e7 Update typescript-eslint monorepo to v5.59.6 (#16577) 2023-05-18 17:08:14 -04:00
renovate[bot]
5bea929c1e Update dependency glob to v10.2.4 (#16573)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-18 08:39:40 -04:00
Bram Kragten
eb220fa1a0 Fix overflow menu being above dialogs (#16558)
Fix device actions being above dialogs
2023-05-17 10:23:30 -04:00
Franck Nijhof
67b64b2d5c Add entity attribute value translations for media_player (#16559)
Add entity attribute translations for media_player
2023-05-17 15:27:32 +02:00
Franck Nijhof
42aa4ab7c2 Add entity attribute value translations for vacuum (#16564) 2023-05-17 15:27:05 +02:00
Franck Nijhof
d873f26db3 Add entity attribute value translations for humidifier (#16565) 2023-05-17 15:26:16 +02:00
Franck Nijhof
e354f5de12 Add entity attribute value translations for remote (#16563) 2023-05-17 15:25:21 +02:00
Bram Kragten
92ed62985d Focus pin input when adding zwave device (#16557) 2023-05-17 12:53:01 +02:00
Bram Kragten
cbcca6e190 Increase weight of name and domain in add integration search (#16562) 2023-05-17 12:51:31 +02:00
Franck Nijhof
2ed48d67c6 Exclude device trackers from person more info (#16554) 2023-05-17 08:33:19 +02:00
renovate[bot]
8fb2bf472a Update dependency @octokit/rest to v19.0.8 (#16555)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 23:47:09 -04:00
renovate[bot]
51bdf85642 Update dependency @codemirror/view to v6.11.2 (#16553)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 21:39:30 +00:00
renovate[bot]
b7a4eb33cf Update dependency @rollup/plugin-commonjs to v25 (#16551) 2023-05-16 09:53:59 -04:00
renovate[bot]
3c2d326b54 Update dependency @codemirror/autocomplete to v6.7.1 (#16547) 2023-05-16 07:51:05 -04:00
renovate[bot]
24e6d19e18 Update vaadinWebComponents monorepo to v24.0.5 (#16544)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 02:22:28 +00:00
renovate[bot]
9370411019 Update CodeMirror (#16545)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 02:22:09 +00:00
renovate[bot]
d5c7e7849e Update fullcalendar monorepo to v6.1.7 (#16542) 2023-05-15 22:09:45 -04:00
renovate[bot]
c5e62248b9 Update typescript-eslint monorepo to v5.59.5 (#16543) 2023-05-15 22:07:29 -04:00
renovate[bot]
c5e0efb8e0 Update dependency webpack to v5.82.1 (#16540) 2023-05-16 01:53:51 +00:00
renovate[bot]
82f88ca7d7 Update dependency webpack-cli to v5.1.1 (#16541) 2023-05-15 21:38:39 -04:00
renovate[bot]
c676cddb13 Update dependency glob to v10.2.3 (#16538) 2023-05-15 19:53:55 -04:00
renovate[bot]
036e2a9e46 Update dependency hls.js to v1.4.3 (#16539) 2023-05-15 19:51:44 -04:00
renovate[bot]
319d8bec29 Update dependency @types/tar to v6.1.5 (#16535)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-15 21:35:46 +00:00
renovate[bot]
aa864cf0b6 Update dependency @lit-labs/virtualizer to v2.0.2 (#16534)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-15 21:22:52 +00:00
Steve Repsher
eabd8b54f4 Correct Terser ECMA option (#16518) 2023-05-15 09:54:59 +02:00
Bram Kragten
aa063d0a3e Replace onboarding inputs with default inputs (#16514) 2023-05-12 13:15:28 +02:00
Paul Bottein
75f080ee85 Add last-changed date to more-info (#16509) 2023-05-12 10:58:52 +00:00
Bruno Luvizotto
557fe33807 Add interval duration to history tooltip (#16486) 2023-05-12 12:50:34 +02:00
Paul Bottein
5bd49c18d1 Update more info light actions (#16512) 2023-05-12 00:17:02 +02:00
Paul Bottein
a461d58df2 Fix more info dialog margin for material web button (#16513) 2023-05-11 17:16:15 +02:00
karwosts
ae8eafe8f9 Honor entity ordering in statistics graph card (#16504) 2023-05-11 11:21:18 +02:00
Paul Bottein
450565799e Allow adding variable action in the automation UI (#16502) 2023-05-11 11:19:36 +02:00
Erik Montnemery
72403f4276 Remove calculation of change from frontend (#16477) 2023-05-11 10:17:12 +02:00
renovate[bot]
d66ca0467e Update dependency webpack-dev-server to v4.15.0 (#16501) 2023-05-10 18:12:00 -04:00
Bram Kragten
d46201ebd8 fix supervisor ingress routing (#16474) 2023-05-10 16:03:19 +02:00
Bram Kragten
689d123890 Add search to add-ons page (#16459) 2023-05-10 14:59:24 +02:00
Bram Kragten
bcdb24849d Add support for filtering service fields (#16004)
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
2023-05-10 14:59:13 +02:00
Paul Bottein
3838d76094 Ha dialog header (#16485) 2023-05-10 14:34:19 +02:00
Bram Kragten
3325cbfa28 Use entity id as label in entity picker dev tools (#16484) 2023-05-10 10:23:33 +02:00
renovate[bot]
24fc2a0ccc Update dependency webpack-cli to v5.1.0 (#16495)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-10 00:29:02 -04:00
renovate[bot]
d6ea6f8041 Update dependency terser-webpack-plugin to v5.3.8 (#16493) 2023-05-09 22:11:35 -04:00
renovate[bot]
8384ef7a5c Update dependency webpack-dev-server to v4.14.0 (#16494) 2023-05-09 22:09:49 -04:00
renovate[bot]
2869c5f26b Update dependency core-js to v3.30.2 (#16490) 2023-05-09 20:04:47 -04:00
renovate[bot]
c098c55b8f Update dependency idb-keyval to v6.2.1 (#16487)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-09 16:20:53 -04:00
Bram Kragten
fec974712f Add any to number selector step typing (#16483) 2023-05-09 14:30:52 +02:00
Bruno Luvizotto
0be5aa108c Fix history redraw timer (#16472) 2023-05-09 12:32:13 +02:00
Joakim Sørensen
ec36d4a381 Use "any" as step for add-on configuration floats (#16478) 2023-05-09 12:22:17 +02:00
Joakim Sørensen
ccf3238318 Fix link to new automation (#16479) 2023-05-09 11:12:00 +02:00
renovate[bot]
bcfa6c5a4b Update dependency eslint to v8.40.0 (#16475) 2023-05-08 18:51:17 -04:00
G Johansson
e371f5d406 Lock entity options (#16344) 2023-05-08 22:06:21 +02:00
Bram Kragten
6d4e3a0de3 Allow supervisor panel to unsubscribe, cleanup (#16470) 2023-05-08 15:56:05 -04:00
renovate[bot]
b845c54948 Update dependency open to v9 (#15909)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-08 16:11:05 +00:00
renovate[bot]
87951ebf82 Pin dependency @types/babel__plugin-transform-runtime to 7.9.2 (#16471)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-08 16:10:15 +00:00
Steve Repsher
586079917d Convert remaining gulp modules to ESM (#16430) 2023-05-08 17:43:29 +02:00
Steve Repsher
aa3fd70966 Use Babel runtime for helpers and regenerator (33%+ bundle reduction) (#16466) 2023-05-08 14:47:53 +02:00
bikeshop45
a5ba2499c0 Fix attribute url links (#16462) 2023-05-08 09:13:35 +00:00
Joakim Sørensen
36a87da1fe Add UI for network mounts (#16357)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-05-08 10:18:09 +02:00
Bram Kragten
8f75c314f5 Fix supervisor loading race (#16460) 2023-05-07 22:48:16 -04:00
renovate[bot]
d04fc53f08 Update dependency hls.js to v1.4.1 (#16461) 2023-05-07 17:36:26 -04:00
renovate[bot]
c65c6f8767 Update dependency lit to v2.7.4 (#16464)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-07 21:59:44 +02:00
renovate[bot]
b81668fbce Update dependency @codemirror/autocomplete to v6.6.1 (#16452)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-06 14:17:03 -04:00
renovate[bot]
2d8e23ba48 Update dependency eslint-plugin-wc to v1.5.0 (#16448) 2023-05-06 13:20:54 -04:00
renovate[bot]
e947f8120c Update dependency eslint to v8.39.0 (#16447) 2023-05-06 13:14:16 -04:00
renovate[bot]
6424020f64 Update dependency date-fns to v2.30.0 (#16446) 2023-05-06 17:06:08 +02:00
renovate[bot]
a611930fa7 Update formatjs monorepo (#16449) 2023-05-06 17:05:17 +02:00
renovate[bot]
f0e990f330 Update CodeMirror (#16443) 2023-05-06 10:13:27 -04:00
renovate[bot]
8c1d2362a4 Update CodeMirror (#16441) 2023-05-06 02:37:14 -04:00
renovate[bot]
69067010a3 Update dependency @types/marked to v4.3.0 (#16442) 2023-05-06 06:32:32 +00:00
renovate[bot]
0b0ba97aee Update fullcalendar monorepo to v6.1.6 (#16439) 2023-05-06 03:22:08 +00:00
renovate[bot]
792fe15dac Update typescript-eslint monorepo to v5.59.2 (#16440) 2023-05-06 03:21:24 +00:00
renovate[bot]
d5b8fa482c Update dependency lit to v2.7.3 (#16435) 2023-05-05 23:11:04 -04:00
renovate[bot]
2fefbbfe24 Update dependency tar to v6.1.14 (#16438) 2023-05-06 03:05:58 +00:00
renovate[bot]
22c509533a Update dependency qrcode to v1.5.3 (#16437) 2023-05-05 23:02:41 -04:00
renovate[bot]
544dfa0973 Update dependency @babel/core to v7.21.8 (#16432) 2023-05-05 22:56:07 -04:00
renovate[bot]
aac3ec353b Update dependency prettier to v2.8.8 (#16436) 2023-05-05 22:45:35 -04:00
renovate[bot]
efbc6d9069 Update dependency lint-staged to v13.2.2 (#16433) 2023-05-05 22:44:19 -04:00
renovate[bot]
4e390b4c57 Update dependency @lit-labs/virtualizer to v2 (#15932)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-05-05 15:51:12 +00:00
renovate[bot]
849e65a2b3 Update dependency @lit-labs/context to v0.3.1 (#16428)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-05 17:35:27 +02:00
renovate[bot]
a6fdb54697 Update dependency glob to v10.2.2 (#16429)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-05 15:32:34 +00:00
Sven Serlier
aa196704b7 Update URL (#16427) 2023-05-05 15:16:49 +00:00
renovate[bot]
c93fcb8a2a Update dependency @material/web to v1.0.0-pre.7 (#15940)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-05-05 15:13:25 +00:00
renovate[bot]
5768764282 Update babel monorepo to v7.21.5 (#16426)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-05 14:55:01 +00:00
renovate[bot]
e6c8881b21 Update Yarn to v3.5.1 (#16425)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-05 14:48:45 +00:00
renovate[bot]
ac30335fc2 Update vaadinWebComponents monorepo to v24 (major) (#15778)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-05 16:33:29 +02:00
renovate[bot]
1e5c30a259 Update dependency @lrnwebcomponents/simple-tooltip to v4.2.0 (#16024)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-05 16:32:06 +02:00
renovate[bot]
1da009b473 Update dependency hls.js to v1.4.0 (#16191)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-05 16:31:07 +02:00
Bram Kragten
bc81499e7c Bumped version to 20230503.3 2023-05-05 16:26:53 +02:00
Paul Bottein
c31378ad75 Fetch entries integration onboarding (#16424)
* Fetch loaded entries in integration onboarding

* Proper fix
2023-05-05 16:26:44 +02:00
Paul Bottein
02542e528e Fetch entries integration onboarding (#16424)
* Fetch loaded entries in integration onboarding

* Proper fix
2023-05-05 14:24:32 +00:00
Paul Bottein
8ce8b63cfc Adapt unsupported microphone message (#16419) 2023-05-05 16:15:23 +02:00
puddly
c7ec6903fe ZHA channel changing dialog and settings redesign (#16381) 2023-05-05 15:05:08 +02:00
Raman Gupta
ecb2a73e2b Add frontend support for date platform (#14389)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-05-05 15:01:47 +02:00
Raman Gupta
59db31cdb5 Remove CSS component from time entity row (#16416) 2023-05-05 15:01:13 +02:00
Paul Bottein
643556ded3 Adapt unsupported microphone message (#16419) 2023-05-05 00:18:18 +02:00
Bram Kragten
4e5a18d272 Remove polymer types, cleanups (#16385)
* Remove polymer types, cleanups

* Delete updated.ts
2023-05-04 15:24:24 +00:00
Raman Gupta
ab237f19c0 Add frontend support for time platform (#14390) 2023-05-04 17:05:30 +02:00
Joe
3fa3d333c4 Collapse empty Masonry columns (#5315, #6632) (#16351) 2023-05-04 17:04:03 +02:00
Bram Kragten
1cb7e798da Bump webpack to 5.82 (#16412) 2023-05-04 11:02:31 -04:00
Bram Kragten
11640b31f6 Update tts media browser to use voices (#16362) 2023-05-04 16:33:52 +02:00
Steve Repsher
4740ce685f Redefine browser requirements for legacy (ES5) builds (#16384) 2023-05-04 16:33:13 +02:00
Steve Repsher
d2321b535c Refactor Intl polyfills and remove from ES5 entrypoints (#16349) 2023-05-04 15:49:56 +02:00
Steve Repsher
f185e886c3 Convert top gulp modules to ESM (#16387) 2023-05-04 15:49:41 +02:00
Bram Kragten
8695bbc490 Move globalThis polyfill to compatibility, add more compatibility (#16386) 2023-05-04 15:49:28 +02:00
Bram Kragten
11f77b09e6 Bumped version to 20230503.2 2023-05-04 15:46:34 +02:00
Bram Kragten
ba7d7556a8 fix expose view for yaml config (#16408) 2023-05-04 15:42:14 +02:00
Bram Kragten
31da0d8678 Fix codemirror selection color (#16409) 2023-05-04 15:41:57 +02:00
Bram Kragten
9f195534b5 Fix entity areas in expose (#16402) 2023-05-04 15:41:40 +02:00
Bram Kragten
060f6ce3d8 fix expose view for yaml config (#16408) 2023-05-04 15:30:47 +02:00
Bram Kragten
ed19cfeaaa Fix codemirror selection color (#16409) 2023-05-04 15:13:32 +02:00
Paul Bottein
79d6453c7e Don't hide battery entities in compute card function (#16373) 2023-05-03 19:44:01 +02:00
Bram Kragten
694fc7d4ba Fix entity areas in expose (#16402) 2023-05-03 19:02:20 +02:00
Bram Kragten
a293e7b91c 20230503.1 (#16399) 2023-05-03 16:15:27 +02:00
Bram Kragten
8205a30baf Bumped version to 20230503.1 2023-05-03 16:14:23 +02:00
Bram Kragten
25af9a9770 Enable Google assistant no 2fa for all entities (#16397) 2023-05-03 16:12:49 +02:00
Paul Bottein
6c25e23ad2 RTL fixes for voice assistant page (#16398) 2023-05-03 13:14:02 +00:00
Paul Bottein
a39c2a314a Branding adjustment for cloud discover (#16396)
* Branding adjustment for cloud discover

* Amazing
2023-05-03 14:59:35 +02:00
Bram Kragten
1ea70f3191 20230503.0 (#16395) 2023-05-03 14:14:02 +02:00
Bram Kragten
02a94c04af Bumped version to 20230503.0 2023-05-03 14:13:12 +02:00
Bram Kragten
fc97ca324c Add support for native names for other languages than HA has (#16393)
* Add support for native names for other languages than HA has

* catch unsupported locales
2023-05-03 13:54:59 +02:00
Paul Bottein
4a0d84d2f6 Open more info from voice settings (#16392)
* Open more info from voice settings

* review
2023-05-03 10:58:43 +00:00
Bram Kragten
b550c67a9f Fetch supported items when startup is done (#16390) 2023-05-03 12:36:16 +02:00
Bram Kragten
a3ec83a684 Only count exposed entities with a state (#16391)
Only count entities with a state
2023-05-03 11:47:58 +02:00
Bram Kragten
822f47143b keep expose entity dialog modal longer (#16389) 2023-05-03 10:59:36 +02:00
c0ffeeca7
da1df9d8cc Fix minor typo on expose entities dialog (#16388)
- slight rephrasing suggestion.
2023-05-03 10:38:26 +02:00
Bram Kragten
aa155261f5 Update ha-integration-card.ts 2023-05-02 22:39:56 +02:00
Bram Kragten
29aa762f7c 20230502.0 (#16382) 2023-05-02 22:01:32 +02:00
Bram Kragten
d56e4afe92 Bumped version to 20230502.0 2023-05-02 21:58:23 +02:00
Bram Kragten
e766c277f5 Update expose for entities not in the entity registry (#16377) 2023-05-02 21:57:51 +02:00
Bram Kragten
6c0011fb45 fix race in assist pipeline dialog (#16380) 2023-05-02 21:41:44 +02:00
Bram Kragten
a6e71f4c0a Optimise supervisor entrypoint (#16379) 2023-05-02 20:45:35 +02:00
Bram Kragten
d6382e59c6 Add name for google translate tts (#16378) 2023-05-02 20:34:52 +02:00
Paul Bottein
ab308af61f Improve assist dialog (#16371)
* Improve RTL, style and interaction

* Add message for microphone not supported

* Fix style

* Add explanation as a message

* Update message

* Update translation variable
2023-05-02 16:54:25 +00:00
Paul Bottein
15eab18e07 Reduce height for config entry list in integration page (#16370) 2023-05-02 11:12:13 +02:00
Paul Bottein
c8e0227a5c Fix dashboard theme background (#16368) 2023-05-02 11:11:44 +02:00
Bram Kragten
f2a8528429 Use language picker for cloud tts language (#16363)
* Use language picker for cloud tts language

* Update ha-browse-media-tts.ts
2023-05-02 10:49:01 +02:00
Steve Repsher
3ed3dab0a1 Clean up imports for some layouts (#16365) 2023-05-01 20:34:21 +02:00
Bram Kragten
d0c7f65256 20230501.0 (#16364) 2023-05-01 19:55:38 +02:00
Bram Kragten
f99f554f19 Bumped version to 20230501.0 2023-05-01 19:54:40 +02:00
Bram Kragten
e069b5eed1 Update en.json 2023-05-01 17:15:26 +02:00
Allen Porter
3a481ebb1a Fix edits for single instance of all day recurring event (#16354) 2023-05-01 14:48:57 +02:00
Steve Repsher
a209fadf18 List Core JS polyfills for browserslist environments (#16356) 2023-05-01 14:47:57 +02:00
Bram Kragten
9f1bd1e085 Fix unused entities (#16359) 2023-05-01 14:46:54 +02:00
Bram Kragten
edc6da04f7 Make sure stt_binary_handler_id is reset (#16360) 2023-05-01 14:46:44 +02:00
Bram Kragten
2fb1dd0ec1 Add icon at unsupported message in voice settings (#16358) 2023-05-01 14:28:26 +02:00
Paul Bottein
3f2aac0842 Fix cloud subscription message in pipeline creation (#16348) 2023-04-28 17:03:34 -04:00
Paul Bottein
71dd822978 20230428.0 (#16347) 2023-04-28 17:40:58 +02:00
Paul Bottein
d1877595a5 Bumped version to 20230428.0 2023-04-28 17:19:43 +02:00
Paul Bottein
6379713f57 Fix drag and drop with sortablejs (#16343) 2023-04-28 14:40:01 +02:00
Paul Bottein
3b33195ff6 Add camera view support to image element (#16346) 2023-04-28 14:17:33 +02:00
c0ffeeca7
c7f1f1bcd1 Fix typo (#16341)
* Fix typo

* Fix typo
2023-04-28 08:01:24 +00:00
Paul Bottein
c50aad8403 20230427.0 (#16338) 2023-04-27 17:31:29 +02:00
Paul Bottein
fac4795f14 Bumped version to 20230427.0 2023-04-27 17:16:04 +02:00
Bram Kragten
062e402ef1 Show if entity is supported in expose list (#16335)
* Show if entity is supported in expose list

* Add translations and refactor code

---------

Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
2023-04-27 17:12:12 +02:00
Bram Kragten
29be64a858 Add not supported warning in entity voice settings (#16336)
* Add not supported warning in entity voice settings

* Add alexa support and improve style

* Only toggle supported

---------

Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
2023-04-27 17:11:49 +02:00
Paul Bottein
b3b74b8328 Move debug and preferred button to top (#16337) 2023-04-27 15:02:57 +02:00
Paul Bottein
37ba34cb0d Virtualize the add exposed entity list (#16333) 2023-04-27 13:22:37 +02:00
dependabot[bot]
8ecdde3507 Bump yaml from 2.2.1 to 2.2.2 (#16310) 2023-04-27 10:12:03 +02:00
Paul Bottein
04d34aa80c Improve search and filtering in expose entity page (#16330) 2023-04-27 09:50:19 +02:00
J. Nick Koston
26bb1ba146 Revert "Avoid fetching unused stats state column for more info" (#16328)
Revert "Avoid fetching unused stats state column for more info (#16141)"

This reverts commit 49a14a7265.
2023-04-27 09:31:06 +02:00
Bram Kragten
b7667d2cbf 20230426.0 (#16327) 2023-04-26 18:31:51 +02:00
Bram Kragten
0c36600a81 Merge branch 'master' into dev 2023-04-26 18:17:33 +02:00
Bram Kragten
feaf61a0ae Bumped version to 20230426.0 2023-04-26 18:15:53 +02:00
Bram Kragten
3e2844a65a Only show assistants that are active (#16325)
* Only show assistants that are active

* also use in texts

* Add entity id

* Update ha-config-voice-assistants-expose.ts

* remove voiceAssistantKeys

* Update entity-voice-settings.ts

* update styling

* search case
2023-04-26 18:15:10 +02:00
Paul Bottein
3a2d7baa25 Fix empty translation (#16326) 2023-04-26 18:14:57 +02:00
Paul Bottein
349cca5ff2 Update icons to expose/unexpose entity (#16323) 2023-04-26 17:08:15 +02:00
Paul Bottein
5cd3ce66f6 Keep area field next to use device area field (#16324) 2023-04-26 14:54:59 +00:00
Bram Kragten
8cf8c41698 Show number of exposed entities (#16321) 2023-04-26 14:23:23 +00:00
Bram Kragten
ff4c01e15c Replace paper-item in integration card (#16317) 2023-04-26 16:11:54 +02:00
Paul Bottein
addb66f21d Inform user that subscription is needed for cloud services (#16318) 2023-04-26 13:42:44 +00:00
Bram Kragten
a5759e36b2 Fix helper entity settings (removing) (#16320) 2023-04-26 15:29:59 +02:00
Bram Kragten
9852186ff7 Update my link for voice assistants (#16319
Making it consistant with others and match

https://github.com/home-assistant/my.home-assistant.io/pull/353
2023-04-26 14:51:31 +02:00
Bram Kragten
19c9486351 Update entity settings, combine basic editor with normal editor (#16297) 2023-04-26 12:23:53 +02:00
Bram Kragten
8c06712ab7 Allow to select a pipeline in voice command dialog (#16291) 2023-04-26 12:10:17 +02:00
Bram Kragten
63de324224 Fix my link add integration: search for discovered items (#16315)
* fix my link add integration

* add confirm back

* Update dialog-add-integration.ts
2023-04-26 12:02:50 +02:00
Bram Kragten
10d476195d Ask to use cloud pipeline as preferred (#16286)
* Ask to use cloud pipeline as preferred

* Update
2023-04-26 00:36:51 -04:00
Johan Frick
e0c4b85ef1 Fix options typo for ha-form in gallery (#16305) 2023-04-25 19:59:58 +00:00
Bram Kragten
3441a86613 Update general step description of pipeline dialog (#16307)
update general step description of pipeline dialog
2023-04-25 21:44:51 +02:00
Paul Bottein
643b168c69 Add icon and state formatting for tts and stt domain (#16304) 2023-04-25 21:40:22 +02:00
Paul Bottein
db0e5a8a41 Add translations to pipeline UI (#16303) 2023-04-25 20:01:48 +02:00
Ben Randall
64a693332b Fix height of main automation trace element (#16283)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-04-25 13:46:15 +00:00
Bram Kragten
327927baa7 Update expose mobile view (#16302) 2023-04-25 13:33:21 +00:00
karwosts
ce8fc17ef8 Markdown feature parity for blueprint scripts vs automations (#16250) 2023-04-25 15:31:52 +02:00
Paul Bottein
62ed1d54b0 Voice assistant cloud upsell (#16299) 2023-04-25 12:41:53 +02:00
Bram Kragten
2498f1db41 Fix tts in voice command for iOS (#16300) 2023-04-25 10:02:31 +00:00
Bram Kragten
8a50bb058d Fix audio playing on iOS (#16298) 2023-04-25 09:38:14 +00:00
Bram Kragten
e793675c47 Fix dialog text colors theme (#16296)
* Fix dialog text colors theme

* fix drawer border
2023-04-25 00:23:08 +02:00
Paul Bottein
07cef18918 Try TTS in pipeline form (#16292) 2023-04-24 19:39:16 +02:00
Bram Kragten
a0263f25c4 Improve tts playback in voice command dialog (#16288) 2023-04-24 18:45:00 +02:00
Paul Bottein
52546ab567 Fix media browser bar position (#16293)
Fixes media browser bar position
2023-04-24 18:09:21 +02:00
Bram Kragten
c0ec7e4f09 Remove wrong language from stt event (#16285) 2023-04-24 18:08:36 +02:00
renovate[bot]
8b61390e19 Update vaadinWebComponents monorepo to v23.3.11 (#16289) 2023-04-24 11:55:11 +00:00
Steve Repsher
9ba114777e Add browserslist config and use for Babel preset environment (#16267) 2023-04-24 11:28:27 +02:00
Steve Repsher
4e1e76ccc2 Add module preload to demo page (#16274) 2023-04-24 11:27:40 +02:00
dependabot[bot]
609300f40b Bump home-assistant/wheels from 2022.10.1 to 2023.04.0 (#16284)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-24 11:10:41 +02:00
renovate[bot]
eac9ac4757 Update dependency google-timezones-json to v1.1.0 (#16282) 2023-04-23 19:37:23 -04:00
Bram Kragten
708d1b81da Mark lang and country required in onboarding (#16277) 2023-04-23 19:33:44 -04:00
Bram Kragten
35baf4c779 Fix audio recorder (#16280)
FIx audio recorder
2023-04-23 13:48:46 -04:00
renovate[bot]
8d1ae71741 Update dependency sinon to v15.0.4 (#16278)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-23 13:20:24 -04:00
Bram Kragten
9b32c9c6b4 Voice picker: Guard for select undefined, update debug pipelines (#16279)
* Voice picker: Guard for select undefined

* Update types, make debug a little nicer

* Add type to stt-start event

* Add language to STT data in render pipeline

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2023-04-23 17:04:43 +00:00
renovate[bot]
439f34f724 Update dependency @codemirror/commands to v6.2.3 (#16276) 2023-04-22 16:50:59 +00:00
Bram Kragten
cef3b99e16 fix add assist dialog (#16275) 2023-04-22 12:43:04 -04:00
renovate[bot]
9dbdf611c5 Update formatjs monorepo (#16273) 2023-04-22 12:31:03 -04:00
Bram Kragten
86f8d2d737 remove underline, format language 2023-04-22 15:42:46 +02:00
Bram Kragten
1ded47d368 Use assist_pipeline in voice command dialog (#16257)
* Remove speech recognition, add basic pipeline support

* Add basic voice support

* cleanup

* only use tts if pipeline supports it

* Update ha-voice-command-dialog.ts

* Fix types

* handle stop during stt

* Revert "Fix types"

This reverts commit 741781e392.

* active read only

* Update ha-voice-command-dialog.ts

---------

Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
2023-04-21 21:50:30 -04:00
Bram Kragten
85a27e8bb1 Update add assistant dialog (#16266)
* Update add assistant dialog

* fix default agent to ha when no supported

* Update ha-tts-voice-picker.ts

* Update assist-pipeline-detail-conversation.ts

* Update ha-dialog.ts

* dont override config

* Update ha-language-picker.ts
2023-04-21 20:41:30 -04:00
renovate[bot]
878f3b8df4 Update typescript-eslint monorepo to v5.59.0 (#16271)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-21 23:26:24 +00:00
renovate[bot]
50c25a8276 Update dependency glob to v10.2.1 (#16268)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-21 19:07:25 -04:00
renovate[bot]
c0de3b8269 Update formatjs monorepo (#16254)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-21 13:15:18 -04:00
Bram Kragten
09f4e19d4c Pipelines: Add voice selector, implement supported languages (#16261) 2023-04-20 22:53:05 +02:00
Bram Kragten
6e91ac2a34 fix css selector 2023-04-20 18:53:28 +02:00
Paul Bottein
49b0c7c3d1 Move error outside ha form for assist pipeline form (#16258) 2023-04-20 18:49:27 +02:00
Paul Bottein
be1867900e Use supported_languages for stt, tts and conversation (#16256)
* Use supported_languages for stt, tts and conversation

* Fix disabled condition
2023-04-20 18:01:42 +02:00
Yosi Levy
a43f49f4af Fix some RTL aligments (#16252) 2023-04-20 17:05:24 +02:00
Paul Bottein
ea0f29782d Assist pipeline language voice (#16255)
* Update types

* Split form into multiple components

* Improve design

* Send all data

* Update wording
2023-04-20 11:02:48 -04:00
Paul Bottein
65161ce581 Language selector (#16253)
* Add language selector

* Use intl display names

* Use language picker in general settings and profile

* Add nativeName option

* Add format language util

* Add display-name polyfill

* Add native name to selector

* Rename variable
2023-04-20 10:12:49 -04:00
Bram Kragten
088cc69083 Add pipeline picker/selector (#16224)
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
2023-04-20 09:41:47 +00:00
Bram Kragten
be005b4c88 Add language to conversation agent picker (#16244) 2023-04-20 11:26:42 +02:00
Steve Repsher
aac28efd32 Streamline HTML generation and consolidate templates (#16117) 2023-04-20 11:10:12 +02:00
Bram Kragten
0d020e0300 Fix stt/tts pickers (#16241) 2023-04-20 11:03:47 +02:00
Steve Repsher
eeb84f65b9 Remove unnecessary Babel plugins from dependencies (#16251) 2023-04-20 11:00:04 +02:00
Steve Repsher
22f5d6cacb Migrate Babel loose options to assumptions (#16245) 2023-04-20 10:59:08 +02:00
renovate[bot]
52a7b41096 Lock file maintenance (#16248)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-20 03:18:13 +00:00
renovate[bot]
f9f87d1147 Lock file maintenance (#16246) 2023-04-19 19:00:16 -04:00
Paul Bottein
0b3dff00df Revert "Add language selector" (#16247)
Revert "Add language selector (#16242)"

This reverts commit d89ac0f30d.
2023-04-19 23:58:58 +02:00
renovate[bot]
d48a4ab00a Lock file maintenance (#16231)
* Lock file maintenance

* bump @codemirror/view and eslint-plugin-lit to remove duplicates

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Steve Repsher <steverep@users.noreply.github.com>
2023-04-19 21:08:48 +00:00
Paul Bottein
d89ac0f30d Add language selector (#16242) 2023-04-19 21:21:27 +02:00
Paul Bottein
3cb3f8d352 Add aliases description in voice dialog (#16233)
* Add aliases description in voice dialog

* Update style

* Remove duplicate margin
2023-04-19 13:52:55 +00:00
Bram Kragten
f507a7b8b3 Use yaml to show raw pipeline debug data (#16234) 2023-04-19 15:27:01 +02:00
Paul Bottein
910244f751 Fix sidebar tooltip (#16238) 2023-04-19 14:23:04 +02:00
Bram Kragten
a998465600 Fix demo deployment (#16178
Update demo_deployment.yaml
2023-04-13 21:37:03 +02:00
Bram Kragten
21645c2361 Bumped version to 20230411.1 2023-04-13 11:01:42 +02:00
Bram Kragten
e781be885d Fix context provider not updated on initializing of hass object (#16159) 2023-04-13 11:01:37 +02:00
akston
b15b0e25d6 Fix cropped person image transparency (#16112) 2023-04-13 11:01:18 +02:00
Paul Bottein
2d74873db0 Prevent edit and move view button triggered in the same time (#16143) 2023-04-13 11:00:57 +02:00
Bram Kragten
d50f2bf38c 20230411.0 (#16136) 2023-04-11 10:53:02 +02:00
1116 changed files with 68849 additions and 30242 deletions

39
.browserslistrc Normal file
View File

@@ -0,0 +1,39 @@
[modern]
# Support for dynamic import is the main litmus test for serving modern builds.
# Although officially a ES2020 feature, browsers implemented it early, so this
# enables all of ES2017 and some features in ES2018.
supports es6-module-dynamic-import
# Exclude Safari 11-12 because of a bug in tagged template literals
# https://bugs.webkit.org/show_bug.cgi?id=190756
# Note: Dropping version 11 also enables several more ES2018 features
not Safari < 13
not iOS < 13
# Exclude KaiOS, QQ, and UC browsers due to lack of sufficient feature support data
# Babel ignores these automatically, but we need here for Webpack to output ESM with dynamic imports
not KaiOS > 0
not QQAndroid > 0
not UCAndroid > 0
# Exclude unsupported browsers
not dead
[legacy]
# Legacy builds are served when modern requirements are not met and support browsers:
# - released in the last 7 years + current alpha/beta versionss
# - with global utilization above 0.05%
# The lattermost query ensures that support for popular old browsers is not dropped too early
# (e.g. IE 11, Android 4.4, or Samsung 4).
#
# In addition, legacy browsers must support some minimum features that cannot be polyfilled:
# - ES5 (strict mode)
# - web sockets to communicate with backend
# - inline SVG used widely in buttons, widgets, etc.
# - custom events used for most user interactions
# - CSS flexbox used in the majority of the layout
# Nearly all of these are redundant with the above rules.
# As of May 2023, only web sockets must be added to the query.
unreleased versions
last 7 years
> 0.05% and supports websockets

View File

@@ -1,13 +1,7 @@
# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.148.1/containers/python-3/.devcontainer/base.Dockerfile
FROM mcr.microsoft.com/vscode/devcontainers/python:0-3.10
FROM mcr.microsoft.com/vscode/devcontainers/python:0-3.11
ENV \
DEBIAN_FRONTEND=noninteractive \
DEVCONTAINER=true \
PATH=$PATH:./node_modules/.bin
# Install nvm
COPY .nvmrc /tmp/.nvmrc
RUN \
su vscode -c \
"source /usr/local/share/nvm/nvm.sh && nvm install $(cat /tmp/.nvmrc) 2>&1"

View File

@@ -5,7 +5,7 @@
"context": ".."
},
"appPort": "8124:8123",
"postCreateCommand": "script/bootstrap",
"postStartCommand": "script/bootstrap",
"containerEnv": {
"WORKSPACE_DIRECTORY": "${containerWorkspaceFolder}"
},

View File

@@ -2,9 +2,7 @@
You are amazing! Thanks for contributing to our project!
Please, DO NOT DELETE ANY TEXT from this template! (unless instructed).
-->
## Breaking change
<!--
If your PR contains a breaking change for existing users, it is important
to tell them what breaks, how to make it work again and why we did this.
@@ -13,8 +11,8 @@
Note: Remove this section if this PR is NOT a breaking change.
-->
## Proposed change
## Proposed change
<!--
Describe the big picture of your changes here to communicate to the
maintainers why we should accept this pull request. If it fixes a bug
@@ -22,8 +20,8 @@
in the additional information section.
-->
## Type of change
## Type of change
<!--
What type of change does your PR introduce to the Home Assistant frontend?
NOTE: Please, check only 1! box!
@@ -38,7 +36,6 @@
- [ ] Code quality improvements to existing code or addition of tests
## Example configuration
<!--
Supplying a configuration snippet, makes it easier for a maintainer to test
your PR.
@@ -49,7 +46,6 @@
```
## Additional information
<!--
Details are important, and help maintainers processing your PR.
Please be sure to fill out additional details, if applicable.
@@ -60,7 +56,6 @@
- Link to documentation pull request:
## Checklist
<!--
Put an `x` in the boxes that apply. You can also fill these out after
creating the PR. If you're unsure about any of them, don't hesitate to ask.

View File

@@ -6,3 +6,6 @@ updates:
interval: weekly
time: "06:00"
open-pull-requests-limit: 10
labels:
- Dependencies
- GitHub Actions

31
.github/labeler.yml vendored Normal file
View File

@@ -0,0 +1,31 @@
Build:
- build-scripts/**
- .browserslistrc
- gulpfile.js
Cast:
- cast/src/**
- src/cast/**
Demo:
- demo/src/**
- src/fake_data/**
Design:
- gallery/src/**
- src/fake_data/**
Dependencies:
- package.json
- renovate.json
- yarn.lock
- .yarn/**
- .yarnrc.yml
- .nvmrc
GitHub Actions:
- .github/workflows/**
- .github/*.yml
Supervisor:
- hassio/src/**

View File

@@ -1,3 +1,8 @@
categories:
- title: "Dependency updates"
collapse-after: 3
labels:
- "Dependencies"
template: |
## What's Changed

View File

@@ -9,7 +9,6 @@ on:
- master
env:
NODE_VERSION: 16
NODE_OPTIONS: --max_old_space_size=6144
jobs:
@@ -22,14 +21,14 @@ jobs:
url: ${{ steps.deploy.outputs.NETLIFY_LIVE_URL || steps.deploy.outputs.NETLIFY_URL }}
steps:
- name: Check out files from GitHub
uses: actions/checkout@v3.5.2
uses: actions/checkout@v4.1.1
with:
ref: dev
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3.6.0
- name: Setup Node
uses: actions/setup-node@v3.8.1
with:
node-version: ${{ env.NODE_VERSION }}
node-version-file: ".nvmrc"
cache: yarn
- name: Install dependencies
@@ -58,14 +57,14 @@ jobs:
url: ${{ steps.deploy.outputs.NETLIFY_LIVE_URL || steps.deploy.outputs.NETLIFY_URL }}
steps:
- name: Check out files from GitHub
uses: actions/checkout@v3.5.2
uses: actions/checkout@v4.1.1
with:
ref: master
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3.6.0
- name: Setup Node
uses: actions/setup-node@v3.8.1
with:
node-version: ${{ env.NODE_VERSION }}
node-version-file: ".nvmrc"
cache: yarn
- name: Install dependencies

View File

@@ -11,7 +11,6 @@ on:
- master
env:
NODE_VERSION: 16
NODE_OPTIONS: --max_old_space_size=6144
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -25,11 +24,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out files from GitHub
uses: actions/checkout@v3.5.2
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3.6.0
uses: actions/checkout@v4.1.1
- name: Setup Node
uses: actions/setup-node@v3.8.1
with:
node-version: ${{ env.NODE_VERSION }}
node-version-file: ".nvmrc"
cache: yarn
- name: Install dependencies
run: yarn install --immutable
@@ -37,6 +36,14 @@ jobs:
run: yarn dedupe --check
- 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@v3.3.2
with:
path: |
node_modules/.cache/prettier
node_modules/.cache/eslint
key: lint-${{ github.sha }}
restore-keys: lint-
- name: Run eslint
run: yarn run lint:eslint --quiet
- name: Run tsc
@@ -48,11 +55,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out files from GitHub
uses: actions/checkout@v3.5.2
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3.6.0
uses: actions/checkout@v4.1.1
- name: Setup Node
uses: actions/setup-node@v3.8.1
with:
node-version: ${{ env.NODE_VERSION }}
node-version-file: ".nvmrc"
cache: yarn
- name: Install dependencies
run: yarn install --immutable
@@ -66,11 +73,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out files from GitHub
uses: actions/checkout@v3.5.2
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3.6.0
uses: actions/checkout@v4.1.1
- name: Setup Node
uses: actions/setup-node@v3.8.1
with:
node-version: ${{ env.NODE_VERSION }}
node-version-file: ".nvmrc"
cache: yarn
- name: Install dependencies
run: yarn install --immutable
@@ -78,17 +85,23 @@ jobs:
run: ./node_modules/.bin/gulp build-app
env:
IS_TEST: "true"
- name: Upload bundle stats
uses: actions/upload-artifact@v3.1.3
with:
name: frontend-bundle-stats
path: build/stats/*.json
if-no-files-found: error
supervisor:
name: Build supervisor
needs: [lint, test]
runs-on: ubuntu-latest
steps:
- name: Check out files from GitHub
uses: actions/checkout@v3.5.2
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3.6.0
uses: actions/checkout@v4.1.1
- name: Setup Node
uses: actions/setup-node@v3.8.1
with:
node-version: ${{ env.NODE_VERSION }}
node-version-file: ".nvmrc"
cache: yarn
- name: Install dependencies
run: yarn install --immutable
@@ -96,3 +109,9 @@ jobs:
run: ./node_modules/.bin/gulp build-hassio
env:
IS_TEST: "true"
- name: Upload bundle stats
uses: actions/upload-artifact@v3.1.3
with:
name: supervisor-bundle-stats
path: build/stats/*.json
if-no-files-found: error

View File

@@ -17,44 +17,44 @@ jobs:
matrix:
# Override automatic language detection by changing the below list
# Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python']
language: ['javascript']
language: ["javascript"]
# Learn more...
# https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection
steps:
- name: Checkout repository
uses: actions/checkout@v3.5.2
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
fetch-depth: 2
- name: Checkout repository
uses: actions/checkout@v4.1.1
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
fetch-depth: 2
# If this run was triggered by a pull request event, then checkout
# the head of the pull request instead of the merge commit.
- run: git checkout HEAD^2
if: ${{ github.event_name == 'pull_request' }}
# If this run was triggered by a pull request event, then checkout
# the head of the pull request instead of the merge commit.
- run: git checkout HEAD^2
if: ${{ github.event_name == 'pull_request' }}
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2

View File

@@ -10,7 +10,6 @@ on:
- master
env:
NODE_VERSION: 16
NODE_OPTIONS: --max_old_space_size=6144
jobs:
@@ -23,14 +22,14 @@ jobs:
url: ${{ steps.deploy.outputs.NETLIFY_LIVE_URL || steps.deploy.outputs.NETLIFY_URL }}
steps:
- name: Check out files from GitHub
uses: actions/checkout@v3.5.2
uses: actions/checkout@v4.1.1
with:
ref: dev
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3.6.0
- name: Setup Node
uses: actions/setup-node@v3.8.1
with:
node-version: ${{ env.NODE_VERSION }}
node-version-file: ".nvmrc"
cache: yarn
- name: Install dependencies
@@ -59,14 +58,14 @@ jobs:
url: ${{ steps.deploy.outputs.NETLIFY_LIVE_URL || steps.deploy.outputs.NETLIFY_URL }}
steps:
- name: Check out files from GitHub
uses: actions/checkout@v3.5.2
uses: actions/checkout@v4.1.1
with:
ref: master
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3.6.0
- name: Setup Node
uses: actions/setup-node@v3.8.1
with:
node-version: ${{ env.NODE_VERSION }}
node-version-file: ".nvmrc"
cache: yarn
- name: Install dependencies

View File

@@ -6,7 +6,6 @@ on:
- cron: "0 0 * * *"
env:
NODE_VERSION: 16
NODE_OPTIONS: --max_old_space_size=6144
jobs:
@@ -17,12 +16,12 @@ jobs:
url: ${{ steps.deploy.outputs.NETLIFY_LIVE_URL || steps.deploy.outputs.NETLIFY_URL }}
steps:
- name: Check out files from GitHub
uses: actions/checkout@v3.5.2
uses: actions/checkout@v4.1.1
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3.6.0
- name: Setup Node
uses: actions/setup-node@v3.8.1
with:
node-version: ${{ env.NODE_VERSION }}
node-version-file: ".nvmrc"
cache: yarn
- name: Install dependencies

View File

@@ -11,7 +11,6 @@ on:
- dev
env:
NODE_VERSION: 16
NODE_OPTIONS: --max_old_space_size=6144
jobs:
@@ -22,12 +21,12 @@ 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@v3.5.2
uses: actions/checkout@v4.1.1
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3.6.0
- name: Setup Node
uses: actions/setup-node@v3.8.1
with:
node-version: ${{ env.NODE_VERSION }}
node-version-file: ".nvmrc"
cache: yarn
- name: Install dependencies

15
.github/workflows/labeler.yaml vendored Normal file
View File

@@ -0,0 +1,15 @@
name: "Pull Request Labeler"
on: pull_request_target
jobs:
triage:
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest
steps:
- name: Apply labels
uses: actions/labeler@v4.3.0
with:
sync-labels: true

View File

@@ -9,7 +9,7 @@ jobs:
lock:
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@v4.0.0
- uses: dessant/lock-threads@v4.0.1
with:
github-token: ${{ github.token }}
issue-lock-inactive-days: "30"

View File

@@ -6,8 +6,7 @@ on:
- cron: "0 1 * * *"
env:
PYTHON_VERSION: "3.10"
NODE_VERSION: 16
PYTHON_VERSION: "3.11"
NODE_OPTIONS: --max_old_space_size=6144
permissions:
@@ -21,17 +20,17 @@ jobs:
contents: write
steps:
- name: Checkout the repository
uses: actions/checkout@v3.5.2
uses: actions/checkout@v4.1.1
- name: Set up Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3.6.0
- name: Setup Node
uses: actions/setup-node@v3.8.1
with:
node-version: ${{ env.NODE_VERSION }}
node-version-file: ".nvmrc"
cache: yarn
- name: Install dependencies
@@ -58,14 +57,14 @@ jobs:
run: tar -czvf translations.tar.gz translations
- name: Upload build artifacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v3.1.3
with:
name: wheels
path: dist/home_assistant_frontend*.whl
if-no-files-found: error
- name: Upload translations
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v3.1.3
with:
name: translations
path: translations.tar.gz

25
.github/workflows/relative-ci.yaml vendored Normal file
View File

@@ -0,0 +1,25 @@
name: RelativeCI
on:
workflow_run:
workflows: [CI]
types:
- completed
jobs:
upload:
name: Upload stats
if: ${{ github.event.workflow_run.conclusion == 'success' }}
strategy:
matrix:
bundle: [frontend, supervisor]
build: [modern, legacy]
runs-on: ubuntu-latest
steps:
- name: Send bundle stats and build information to RelativeCI
uses: relative-ci/agent-action@v2.1.10
with:
key: ${{ secrets[format('RELATIVE_CI_KEY_{0}_{1}', matrix.bundle, matrix.build)] }}
token: ${{ github.token }}
artifactName: ${{ format('{0}-bundle-stats', matrix.bundle) }}
webpackStatsFile: ${{ format('{0}-{1}.json', matrix.bundle, matrix.build) }}

View File

@@ -5,8 +5,17 @@ on:
branches:
- dev
permissions:
contents: read
jobs:
update_release_draft:
permissions:
# write permission for contents is required to create a github release
contents: write
# write permission for pull-requests is required for autolabeler
# otherwise, read permission is required at least
pull-requests: read
runs-on: ubuntu-latest
steps:
- uses: release-drafter/release-drafter@v5

View File

@@ -6,8 +6,7 @@ on:
- published
env:
PYTHON_VERSION: "3.10"
NODE_VERSION: 16
PYTHON_VERSION: "3.11"
NODE_OPTIONS: --max_old_space_size=6144
# Set default workflow permissions
@@ -24,7 +23,7 @@ jobs:
contents: write # Required to upload release assets
steps:
- name: Checkout the repository
uses: actions/checkout@v3.5.2
uses: actions/checkout@v4.1.1
- name: Verify version
uses: home-assistant/actions/helpers/verify-version@master
@@ -34,10 +33,10 @@ jobs:
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Set up Node ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3.6.0
- name: Setup Node
uses: actions/setup-node@v3.8.1
with:
node-version: ${{ env.NODE_VERSION }}
node-version-file: ".nvmrc"
cache: yarn
- name: Install dependencies
@@ -75,9 +74,9 @@ jobs:
echo "home-assistant-frontend==$version" > ./requirements.txt
- name: Build wheels
uses: home-assistant/wheels@2022.10.1
uses: home-assistant/wheels@2023.10.5
with:
abi: cp310
abi: cp311
tag: musllinux_1_2
arch: amd64
wheels-key: ${{ secrets.WHEELS_KEY }}

View File

@@ -7,19 +7,15 @@ on:
paths:
- src/translations/en.json
env:
NODE_VERSION: 16
jobs:
upload:
name: Upload
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v3.5.2
uses: actions/checkout@v4.1.1
- name: Upload Translations
run: |
export LOKALISE_TOKEN="${{ secrets.LOKALISE_TOKEN }}"
./script/translations_upload_base

3
.gitignore vendored
View File

@@ -47,3 +47,6 @@ src/cast/dev_const.ts
# Home Assistant config
/config/
# Jetbrains
/.idea/

2
.nvmrc
View File

@@ -1 +1 @@
16
18

View File

@@ -1,9 +1,4 @@
build
translations/*
node_modules/*
hass_frontend/*
pip-selfcheck.json
# vscode
.vscode/*
!.vscode/extensions.json
CLA.md
CODE_OF_CONDUCT.md
LICENSE.md
PULL_REQUEST_TEMPLATE.md

6
.vscode/launch.json vendored
View File

@@ -9,9 +9,7 @@
"webRoot": "${workspaceFolder}/hass_frontend",
"disableNetworkCache": true,
"preLaunchTask": "Develop Frontend",
"outFiles": [
"${workspaceFolder}/hass_frontend/frontend_latest/*.js"
]
"outFiles": ["${workspaceFolder}/hass_frontend/frontend_latest/*.js"]
},
{
"name": "Debug Gallery",
@@ -39,6 +37,6 @@
"webRoot": "${workspaceFolder}/cast/dist",
"disableNetworkCache": true,
"preLaunchTask": "Develop Cast"
},
}
]
}

2
.vscode/tasks.json vendored
View File

@@ -197,7 +197,7 @@
"type": "gulp",
"task": "setup-and-fetch-nightly-translations",
"problemMatcher": []
}
}
],
"inputs": [
{

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,39 @@
diff --git a/modular/sortable.complete.esm.js b/modular/sortable.complete.esm.js
index 02e9f2d6bebeb430fe6e7c1cc3f9c3c9df051f14..bb8268b0844a1faa4108cc92c0be2a3dbaf23f83 100644
--- a/modular/sortable.complete.esm.js
+++ b/modular/sortable.complete.esm.js
@@ -1657,7 +1657,7 @@ Sortable.prototype =
target = parent; // store last element
}
/* jshint boss:true */
- while (parent = parent.parentNode);
+ while (parent = parent.parentNode || parent.getRootNode().host);
}
_unhideGhostForTarget();
diff --git a/modular/sortable.core.esm.js b/modular/sortable.core.esm.js
index b04c8b4634f7c6b4ef1aadbb48afe6564306dea9..39a107163c8c336ebd669b5ea8a936af87e1c1e7 100644
--- a/modular/sortable.core.esm.js
+++ b/modular/sortable.core.esm.js
@@ -1657,7 +1657,7 @@ Sortable.prototype =
target = parent; // store last element
}
/* jshint boss:true */
- while (parent = parent.parentNode);
+ while (parent = parent.parentNode || parent.getRootNode().host);
}
_unhideGhostForTarget();
diff --git a/modular/sortable.esm.js b/modular/sortable.esm.js
index 6ec7ed1bb557e21c2578200161e989c65d23150b..0a05475a22904472fac6c13f524c674da76584b0 100644
--- a/modular/sortable.esm.js
+++ b/modular/sortable.esm.js
@@ -1657,7 +1657,7 @@ Sortable.prototype =
target = parent; // store last element
}
/* jshint boss:true */
- while (parent = parent.parentNode);
+ while (parent = parent.parentNode || parent.getRootNode().host);
}
_unhideGhostForTarget();

File diff suppressed because one or more lines are too long

View File

@@ -8,4 +8,4 @@ plugins:
- path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
spec: "@yarnpkg/plugin-interactive-tools"
yarnPath: .yarn/releases/yarn-3.5.0.cjs
yarnPath: .yarn/releases/yarn-3.6.4.cjs

View File

@@ -8,7 +8,7 @@ module.exports.sourceMapURL = () => {
const ref = env.version().endsWith("dev")
? process.env.GITHUB_SHA || "dev"
: env.version();
return `https://raw.githubusercontent.com/home-assistant/frontend/${ref}`;
return `https://raw.githubusercontent.com/home-assistant/frontend/${ref}/`;
};
// Files from NPM Packages that should not be imported
@@ -76,7 +76,8 @@ module.exports.htmlMinifierOptions = {
module.exports.terserOptions = ({ latestBuild, isTestBuild }) => ({
safari10: !latestBuild,
ecma: latestBuild ? undefined : 5,
ecma: latestBuild ? 2015 : 5,
module: latestBuild,
format: { comments: false },
sourceMap: !isTestBuild,
});
@@ -84,17 +85,26 @@ module.exports.terserOptions = ({ latestBuild, isTestBuild }) => ({
module.exports.babelOptions = ({ latestBuild, isProdBuild, isTestBuild }) => ({
babelrc: false,
compact: false,
assumptions: {
privateFieldsAsProperties: true,
setPublicClassFields: true,
setSpreadProperties: true,
},
browserslistEnv: latestBuild ? "modern" : "legacy",
// Must be unambiguous because some dependencies are CommonJS only
sourceType: "unambiguous",
presets: [
!latestBuild && [
[
"@babel/preset-env",
{
useBuiltIns: "entry",
corejs: { version: "3.30", proposals: true },
useBuiltIns: latestBuild ? false : "entry",
corejs: latestBuild ? false : { version: "3.33", proposals: true },
bugfixes: true,
shippedProposals: true,
},
],
"@babel/preset-typescript",
].filter(Boolean),
],
plugins: [
[
path.resolve(
@@ -106,22 +116,6 @@ module.exports.babelOptions = ({ latestBuild, isProdBuild, isTestBuild }) => ({
ignoreModuleNotFound: true,
},
],
// Part of ES2018. Converts {...a, b: 2} to Object.assign({}, a, {b: 2})
!latestBuild && [
"@babel/plugin-proposal-object-rest-spread",
{ loose: true, useBuiltIns: true },
],
// Only support the syntax, Webpack will handle it.
"@babel/plugin-syntax-import-meta",
"@babel/plugin-syntax-dynamic-import",
"@babel/plugin-syntax-top-level-await",
// Support various proposals
"@babel/plugin-proposal-optional-chaining",
"@babel/plugin-proposal-nullish-coalescing-operator",
["@babel/plugin-proposal-decorators", { decoratorsBeforeExport: true }],
["@babel/plugin-proposal-private-methods", { loose: true }],
["@babel/plugin-proposal-private-property-in-object", { loose: true }],
["@babel/plugin-proposal-class-properties", { loose: true }],
// Minify template literals for production
isProdBuild && [
"template-html-minifier",
@@ -139,6 +133,13 @@ module.exports.babelOptions = ({ latestBuild, isProdBuild, isTestBuild }) => ({
failOnError: true, // we can turn this off in case of false positives
},
],
// Import helpers and regenerator from runtime package
[
"@babel/plugin-transform-runtime",
{ version: require("../package.json").dependencies["@babel/runtime"] },
],
// Support some proposals still in TC39 process
["@babel/plugin-proposal-decorators", { decoratorsBeforeExport: true }],
].filter(Boolean),
exclude: [
// \\ for Windows, / for Mac OS and Linux
@@ -148,7 +149,7 @@ module.exports.babelOptions = ({ latestBuild, isProdBuild, isTestBuild }) => ({
sourceMaps: !isTestBuild,
});
const nameSuffix = (latestBuild) => (latestBuild ? "-latest" : "-es5");
const nameSuffix = (latestBuild) => (latestBuild ? "-modern" : "-legacy");
const outputPath = (outputRoot, latestBuild) =>
path.resolve(outputRoot, latestBuild ? "frontend_latest" : "frontend_es5");
@@ -157,32 +158,32 @@ const publicPath = (latestBuild, root = "") =>
latestBuild ? `${root}/frontend_latest/` : `${root}/frontend_es5/`;
/*
BundleConfig {
// Object with entrypoints that need to be bundled
entry: { [name: string]: pathToFile },
// Folder where bundled files need to be written
outputPath: string,
// absolute url-path where bundled files can be found
publicPath: string,
// extra definitions that we need to replace in source
defineOverlay: {[name: string]: value },
// if this is a production build
isProdBuild: boolean,
// If we're targeting latest browsers
latestBuild: boolean,
// If we're doing a stats build (create nice chunk names)
isStatsBuild: boolean,
// If it's just a test build in CI, skip time on source map generation
isTestBuild: boolean,
// Names of entrypoints that should not be hashed
dontHash: Set<string>
}
*/
BundleConfig {
// Object with entrypoints that need to be bundled
entry: { [name: string]: pathToFile },
// Folder where bundled files need to be written
outputPath: string,
// absolute url-path where bundled files can be found
publicPath: string,
// extra definitions that we need to replace in source
defineOverlay: {[name: string]: value },
// if this is a production build
isProdBuild: boolean,
// If we're targeting latest browsers
latestBuild: boolean,
// If we're doing a stats build (create nice chunk names)
isStatsBuild: boolean,
// If it's just a test build in CI, skip time on source map generation
isTestBuild: boolean,
// Names of entrypoints that should not be hashed
dontHash: Set<string>
}
*/
module.exports.config = {
app({ isProdBuild, latestBuild, isStatsBuild, isTestBuild, isWDS }) {
return {
name: "app" + nameSuffix(latestBuild),
name: "frontend" + nameSuffix(latestBuild),
entry: {
service_worker: "./src/entrypoints/service_worker.ts",
app: "./src/entrypoints/app.ts",
@@ -260,6 +261,7 @@ module.exports.config = {
isHassioBuild: true,
defineOverlay: {
__SUPERVISOR__: true,
__STATIC_PATH__: `"${paths.hassio_publicPath}/static/"`,
},
};
},

View File

@@ -1,18 +1,16 @@
// Run HA develop mode
const gulp = require("gulp");
const env = require("../env.cjs");
require("./clean.cjs");
require("./translations.cjs");
require("./locale-data.cjs");
require("./gen-icons-json.cjs");
require("./gather-static.cjs");
require("./compress.cjs");
require("./webpack.cjs");
require("./service-worker.cjs");
require("./entry-html.cjs");
require("./rollup.cjs");
require("./wds.cjs");
import gulp from "gulp";
import env from "../env.cjs";
import "./clean.js";
import "./compress.js";
import "./entry-html.js";
import "./gather-static.js";
import "./gen-icons-json.js";
import "./locale-data.js";
import "./rollup.js";
import "./service-worker.js";
import "./translations.js";
import "./wds.js";
import "./webpack.js";
gulp.task(
"develop-app",
@@ -24,8 +22,7 @@ gulp.task(
gulp.parallel(
"gen-service-worker-app-dev",
"gen-icons-json",
"gen-pages-dev",
"gen-index-app-dev",
"gen-pages-app-dev",
"build-translations",
"build-locale-data"
),
@@ -48,12 +45,8 @@ gulp.task(
gulp.parallel("gen-icons-json", "build-translations", "build-locale-data"),
"copy-static-app",
env.useRollup() ? "rollup-prod-app" : "webpack-prod-app",
gulp.parallel("gen-pages-app-prod", "gen-service-worker-app-prod"),
// Don't compress running tests
...(env.isTestBuild() ? [] : ["compress-app"]),
gulp.parallel(
"gen-pages-prod",
"gen-index-app-prod",
"gen-service-worker-app-prod"
)
...(env.isTestBuild() ? [] : ["compress-app"])
)
);

View File

@@ -1,13 +1,12 @@
const gulp = require("gulp");
const env = require("../env.cjs");
require("./clean.cjs");
require("./translations.cjs");
require("./gather-static.cjs");
require("./webpack.cjs");
require("./service-worker.cjs");
require("./entry-html.cjs");
require("./rollup.cjs");
import gulp from "gulp";
import env from "../env.cjs";
import "./clean.js";
import "./entry-html.js";
import "./gather-static.js";
import "./rollup.js";
import "./service-worker.js";
import "./translations.js";
import "./webpack.js";
gulp.task(
"develop-cast",
@@ -19,7 +18,7 @@ gulp.task(
"translations-enable-merge-backend",
gulp.parallel("gen-icons-json", "build-translations", "build-locale-data"),
"copy-static-cast",
"gen-index-cast-dev",
"gen-pages-cast-dev",
env.useRollup() ? "rollup-dev-server-cast" : "webpack-dev-server-cast"
)
);
@@ -35,6 +34,6 @@ gulp.task(
gulp.parallel("gen-icons-json", "build-translations", "build-locale-data"),
"copy-static-cast",
env.useRollup() ? "rollup-prod-cast" : "webpack-prod-cast",
"gen-index-cast-prod"
"gen-pages-cast-prod"
)
);

View File

@@ -1,37 +1,37 @@
const del = import("del");
const gulp = require("gulp");
const paths = require("../paths.cjs");
require("./translations.cjs");
import { deleteSync } from "del";
import gulp from "gulp";
import paths from "../paths.cjs";
import "./translations.js";
gulp.task(
"clean",
gulp.parallel("clean-translations", async () =>
(await del).deleteSync([paths.app_output_root, paths.build_dir])
deleteSync([paths.app_output_root, paths.build_dir])
)
);
gulp.task(
"clean-demo",
gulp.parallel("clean-translations", async () =>
(await del).deleteSync([paths.demo_output_root, paths.build_dir])
deleteSync([paths.demo_output_root, paths.build_dir])
)
);
gulp.task(
"clean-cast",
gulp.parallel("clean-translations", async () =>
(await del).deleteSync([paths.cast_output_root, paths.build_dir])
deleteSync([paths.cast_output_root, paths.build_dir])
)
);
gulp.task("clean-hassio", async () =>
(await del).deleteSync([paths.hassio_output_root, paths.build_dir])
deleteSync([paths.hassio_output_root, paths.build_dir])
);
gulp.task(
"clean-gallery",
gulp.parallel("clean-translations", async () =>
(await del).deleteSync([
deleteSync([
paths.gallery_output_root,
paths.gallery_build,
paths.build_dir,

View File

@@ -1,45 +0,0 @@
// Tasks to compress
const gulp = require("gulp");
const zopfli = require("gulp-zopfli-green");
const merge = require("merge-stream");
const path = require("path");
const paths = require("../paths.cjs");
const zopfliOptions = { threshold: 150 };
gulp.task("compress-app", function compressApp() {
const jsLatest = gulp
.src(path.resolve(paths.app_output_latest, "**/*.js"))
.pipe(zopfli(zopfliOptions))
.pipe(gulp.dest(paths.app_output_latest));
const jsEs5 = gulp
.src(path.resolve(paths.app_output_es5, "**/*.js"))
.pipe(zopfli(zopfliOptions))
.pipe(gulp.dest(paths.app_output_es5));
const polyfills = gulp
.src(path.resolve(paths.app_output_static, "polyfills/*.js"))
.pipe(zopfli(zopfliOptions))
.pipe(gulp.dest(path.resolve(paths.app_output_static, "polyfills")));
const translations = gulp
.src(path.resolve(paths.app_output_static, "translations/**/*.json"))
.pipe(zopfli(zopfliOptions))
.pipe(gulp.dest(path.resolve(paths.app_output_static, "translations")));
const icons = gulp
.src(path.resolve(paths.app_output_static, "mdi/*.json"))
.pipe(zopfli(zopfliOptions))
.pipe(gulp.dest(path.resolve(paths.app_output_static, "mdi")));
return merge(jsLatest, jsEs5, polyfills, translations, icons);
});
gulp.task("compress-hassio", function compressApp() {
return gulp
.src(path.resolve(paths.hassio_output_root, "**/*.js"))
.pipe(zopfli(zopfliOptions))
.pipe(gulp.dest(paths.hassio_output_root));
});

View File

@@ -0,0 +1,16 @@
// Tasks to compress
import gulp from "gulp";
import zopfli from "gulp-zopfli-green";
import paths from "../paths.cjs";
const zopfliOptions = { threshold: 150 };
const compressDist = (rootDir) =>
gulp
.src([`${rootDir}/**/*.{js,json,css,svg}`])
.pipe(zopfli(zopfliOptions))
.pipe(gulp.dest(rootDir));
gulp.task("compress-app", () => compressDist(paths.app_output_root));
gulp.task("compress-hassio", () => compressDist(paths.hassio_output_root));

View File

@@ -1,15 +1,13 @@
// Run demo develop mode
const gulp = require("gulp");
const env = require("../env.cjs");
require("./clean.cjs");
require("./translations.cjs");
require("./gen-icons-json.cjs");
require("./gather-static.cjs");
require("./webpack.cjs");
require("./service-worker.cjs");
require("./entry-html.cjs");
require("./rollup.cjs");
import gulp from "gulp";
import env from "../env.cjs";
import "./clean.js";
import "./entry-html.js";
import "./gather-static.js";
import "./gen-icons-json.js";
import "./rollup.js";
import "./service-worker.js";
import "./translations.js";
import "./webpack.js";
gulp.task(
"develop-demo",
@@ -21,7 +19,7 @@ gulp.task(
"translations-enable-merge-backend",
gulp.parallel(
"gen-icons-json",
"gen-index-demo-dev",
"gen-pages-demo-dev",
"build-translations",
"build-locale-data"
),
@@ -42,6 +40,6 @@ gulp.task(
gulp.parallel("gen-icons-json", "build-translations", "build-locale-data"),
"copy-static-demo",
env.useRollup() ? "rollup-prod-demo" : "webpack-prod-demo",
"gen-index-demo-prod"
"gen-pages-demo-prod"
)
);

View File

@@ -0,0 +1,176 @@
import fs from "fs/promises";
import gulp from "gulp";
import path from "path";
import mapStream from "map-stream";
import transform from "gulp-json-transform";
import { LokaliseApi } from "@lokalise/node-api";
import JSZip from "jszip";
const inDir = "translations";
const inDirFrontend = `${inDir}/frontend`;
const inDirBackend = `${inDir}/backend`;
const srcMeta = "src/translations/translationMetadata.json";
const encoding = "utf8";
function hasHtml(data) {
return /<[a-z][\s\S]*>/i.test(data);
}
function recursiveCheckHasHtml(file, data, errors, recKey) {
Object.keys(data).forEach(function (key) {
if (typeof data[key] === "object") {
const nextRecKey = recKey ? `${recKey}.${key}` : key;
recursiveCheckHasHtml(file, data[key], errors, nextRecKey);
} else if (hasHtml(data[key])) {
errors.push(`HTML found in ${file.path} at key ${recKey}.${key}`);
}
});
}
function checkHtml() {
const errors = [];
return mapStream(function (file, cb) {
const content = file.contents;
let error;
if (content) {
if (hasHtml(String(content))) {
const data = JSON.parse(String(content));
recursiveCheckHasHtml(file, data, errors);
if (errors.length > 0) {
error = errors.join("\r\n");
}
}
}
cb(error, file);
});
}
function convertBackendTranslations(data, _file) {
const output = { component: {} };
if (!data.component) {
return output;
}
Object.keys(data.component).forEach((domain) => {
if (!("entity_component" in data.component[domain])) {
return;
}
output.component[domain] = { entity_component: {} };
Object.keys(data.component[domain].entity_component).forEach((key) => {
output.component[domain].entity_component[key] =
data.component[domain].entity_component[key];
});
});
return output;
}
gulp.task("convert-backend-translations", function () {
return gulp
.src([`${inDirBackend}/*.json`])
.pipe(transform((data, file) => convertBackendTranslations(data, file)))
.pipe(gulp.dest(inDirBackend));
});
gulp.task("check-translations-html", function () {
return gulp
.src([`${inDirFrontend}/*.json`, `${inDirBackend}/*.json`])
.pipe(checkHtml());
});
gulp.task("check-all-files-exist", async function () {
const file = await fs.readFile(srcMeta, { encoding });
const meta = JSON.parse(file);
const writings = [];
Object.keys(meta).forEach((lang) => {
writings.push(
fs.writeFile(`${inDirFrontend}/${lang}.json`, JSON.stringify({}), {
flag: "wx",
}),
fs.writeFile(`${inDirBackend}/${lang}.json`, JSON.stringify({}), {
flag: "wx",
})
);
});
await Promise.allSettled(writings);
});
const lokaliseProjects = {
backend: "130246255a974bd3b5e8a1.51616605",
frontend: "3420425759f6d6d241f598.13594006",
};
gulp.task("fetch-lokalise", async function () {
let apiKey;
try {
apiKey =
process.env.LOKALISE_TOKEN ||
(await fs.readFile(".lokalise_token", { encoding }));
} catch {
throw new Error(
"An Administrator Lokalise API token is required to download the latest set of translations. Place your token in a new file `.lokalise_token` in the repo root directory."
);
}
const lokaliseApi = new LokaliseApi({ apiKey });
const mkdirPromise = Promise.all([
fs.mkdir(inDirFrontend, { recursive: true }),
fs.mkdir(inDirBackend, { recursive: true }),
]);
await Promise.all(
Object.entries(lokaliseProjects).map(([project, projectId]) =>
lokaliseApi
.files()
.download(projectId, {
format: "json",
original_filenames: false,
replace_breaks: false,
json_unescaped_slashes: true,
export_empty_as: "skip",
})
.then((download) => fetch(download.bundle_url))
.then((response) => {
if (response.status === 200 || response.status === 0) {
return response.arrayBuffer();
}
throw new Error(response.statusText);
})
.then(JSZip.loadAsync)
.then(async (contents) => {
await mkdirPromise;
return Promise.all(
Object.keys(contents.files).map(async (filename) => {
const file = contents.file(filename);
if (!file) {
// no file, probably a directory
return Promise.resolve();
}
return file
.async("nodebuffer")
.then((content) =>
fs.writeFile(
path.join(
inDir,
project,
filename.split("/").splice(-1)[0]
),
content,
{ flag: "w", encoding }
)
);
})
);
})
)
);
});
gulp.task(
"download-translations",
gulp.series(
"fetch-lokalise",
"convert-backend-translations",
"check-translations-html",
"check-all-files-exist"
)
);

View File

@@ -1,69 +0,0 @@
const gulp = require("gulp");
const fs = require("fs/promises");
const mapStream = require("map-stream");
const inDirFrontend = "translations/frontend";
const inDirBackend = "translations/backend";
const srcMeta = "src/translations/translationMetadata.json";
const encoding = "utf8";
function hasHtml(data) {
return /<[a-z][\s\S]*>/i.test(data);
}
function recursiveCheckHasHtml(file, data, errors, recKey) {
Object.keys(data).forEach(function (key) {
if (typeof data[key] === "object") {
const nextRecKey = recKey ? `${recKey}.${key}` : key;
recursiveCheckHasHtml(file, data[key], errors, nextRecKey);
} else if (hasHtml(data[key])) {
errors.push(`HTML found in ${file.path} at key ${recKey}.${key}`);
}
});
}
function checkHtml() {
const errors = [];
return mapStream(function (file, cb) {
const content = file.contents;
let error;
if (content) {
if (hasHtml(String(content))) {
const data = JSON.parse(String(content));
recursiveCheckHasHtml(file, data, errors);
if (errors.length > 0) {
error = errors.join("\r\n");
}
}
}
cb(error, file);
});
}
// Backend translations do not currently pass HTML check so are excluded here for now
gulp.task("check-translations-html", function () {
return gulp.src([`${inDirFrontend}/*.json`]).pipe(checkHtml());
});
gulp.task("check-all-files-exist", async function () {
const file = await fs.readFile(srcMeta, { encoding });
const meta = JSON.parse(file);
const writings = [];
Object.keys(meta).forEach((lang) => {
writings.push(
fs.writeFile(`${inDirFrontend}/${lang}.json`, JSON.stringify({}), {
flag: "wx",
}),
fs.writeFile(`${inDirBackend}/${lang}.json`, JSON.stringify({}), {
flag: "wx",
})
);
});
await Promise.allSettled(writings);
});
gulp.task(
"check-downloaded-translations",
gulp.series("check-translations-html", "check-all-files-exist")
);

View File

@@ -1,351 +0,0 @@
// Tasks to generate entry HTML
const gulp = require("gulp");
const fs = require("fs-extra");
const path = require("path");
const template = require("lodash.template");
const { minify } = require("html-minifier-terser");
const paths = require("../paths.cjs");
const env = require("../env.cjs");
const { htmlMinifierOptions, terserOptions } = require("../bundle.cjs");
const templatePath = (tpl) =>
path.resolve(paths.polymer_dir, "src/html/", `${tpl}.html.template`);
const readFile = (pth) => fs.readFileSync(pth).toString();
const renderTemplate = (pth, data = {}, pathFunc = templatePath) => {
const compiled = template(readFile(pathFunc(pth)));
return compiled({
...data,
useRollup: env.useRollup(),
useWDS: env.useWDS(),
renderTemplate,
});
};
const renderDemoTemplate = (pth, data = {}) =>
renderTemplate(pth, data, (tpl) =>
path.resolve(paths.demo_dir, "src/html/", `${tpl}.html.template`)
);
const renderCastTemplate = (pth, data = {}) =>
renderTemplate(pth, data, (tpl) =>
path.resolve(paths.cast_dir, "src/html/", `${tpl}.html.template`)
);
const renderGalleryTemplate = (pth, data = {}) =>
renderTemplate(pth, data, (tpl) =>
path.resolve(paths.gallery_dir, "src/html/", `${tpl}.html.template`)
);
const minifyHtml = (content) =>
minify(content, {
...htmlMinifierOptions,
conservativeCollapse: false,
minifyJS: terserOptions({
latestBuild: false, // Shared scripts should be ES5
isTestBuild: true, // Don't need source maps
}),
});
const PAGES = ["onboarding", "authorize"];
gulp.task("gen-pages-dev", (done) => {
for (const page of PAGES) {
const content = renderTemplate(page, {
latestPageJS: `/frontend_latest/${page}.js`,
es5PageJS: `/frontend_es5/${page}.js`,
});
fs.outputFileSync(
path.resolve(paths.app_output_root, `${page}.html`),
content
);
}
done();
});
gulp.task("gen-pages-prod", async () => {
const latestManifest = require(path.resolve(
paths.app_output_latest,
"manifest.json"
));
const es5Manifest = require(path.resolve(
paths.app_output_es5,
"manifest.json"
));
const minifiedHTML = [];
for (const page of PAGES) {
const content = renderTemplate(page, {
latestPageJS: latestManifest[`${page}.js`],
es5PageJS: es5Manifest[`${page}.js`],
});
minifiedHTML.push(
minifyHtml(content).then((minified) =>
fs.outputFileSync(
path.resolve(paths.app_output_root, `${page}.html`),
minified
)
)
);
}
await Promise.all(minifiedHTML);
});
gulp.task("gen-index-app-dev", (done) => {
let latestAppJS;
let latestCoreJS;
let latestCustomPanelJS;
if (env.useWDS()) {
latestAppJS = "http://localhost:8000/src/entrypoints/app.ts";
latestCoreJS = "http://localhost:8000/src/entrypoints/core.ts";
latestCustomPanelJS =
"http://localhost:8000/src/entrypoints/custom-panel.ts";
} else {
latestAppJS = "/frontend_latest/app.js";
latestCoreJS = "/frontend_latest/core.js";
latestCustomPanelJS = "/frontend_latest/custom-panel.js";
}
const content = renderTemplate("index", {
latestAppJS,
latestCoreJS,
latestCustomPanelJS,
es5AppJS: "/frontend_es5/app.js",
es5CoreJS: "/frontend_es5/core.js",
es5CustomPanelJS: "/frontend_es5/custom-panel.js",
}).replace(/#THEMEC/g, "{{ theme_color }}");
fs.outputFileSync(path.resolve(paths.app_output_root, "index.html"), content);
done();
});
gulp.task("gen-index-app-prod", async () => {
const latestManifest = require(path.resolve(
paths.app_output_latest,
"manifest.json"
));
const es5Manifest = require(path.resolve(
paths.app_output_es5,
"manifest.json"
));
const content = renderTemplate("index", {
latestAppJS: latestManifest["app.js"],
latestCoreJS: latestManifest["core.js"],
latestCustomPanelJS: latestManifest["custom-panel.js"],
es5AppJS: es5Manifest["app.js"],
es5CoreJS: es5Manifest["core.js"],
es5CustomPanelJS: es5Manifest["custom-panel.js"],
});
const minified = (await minifyHtml(content)).replace(
/#THEMEC/g,
"{{ theme_color }}"
);
fs.outputFileSync(
path.resolve(paths.app_output_root, "index.html"),
minified
);
});
gulp.task("gen-index-cast-dev", (done) => {
const contentReceiver = renderCastTemplate("receiver", {
latestReceiverJS: "/frontend_latest/receiver.js",
});
fs.outputFileSync(
path.resolve(paths.cast_output_root, "receiver.html"),
contentReceiver
);
const contentMedia = renderCastTemplate("media", {
latestMediaJS: "/frontend_latest/media.js",
es5MediaJS: "/frontend_es5/media.js",
});
fs.outputFileSync(
path.resolve(paths.cast_output_root, "media.html"),
contentMedia
);
const contentFAQ = renderCastTemplate("launcher-faq", {
latestLauncherJS: "/frontend_latest/launcher.js",
es5LauncherJS: "/frontend_es5/launcher.js",
});
fs.outputFileSync(
path.resolve(paths.cast_output_root, "faq.html"),
contentFAQ
);
const contentLauncher = renderCastTemplate("launcher", {
latestLauncherJS: "/frontend_latest/launcher.js",
es5LauncherJS: "/frontend_es5/launcher.js",
});
fs.outputFileSync(
path.resolve(paths.cast_output_root, "index.html"),
contentLauncher
);
done();
});
gulp.task("gen-index-cast-prod", (done) => {
const latestManifest = require(path.resolve(
paths.cast_output_latest,
"manifest.json"
));
const es5Manifest = require(path.resolve(
paths.cast_output_es5,
"manifest.json"
));
const contentReceiver = renderCastTemplate("receiver", {
latestReceiverJS: latestManifest["receiver.js"],
});
fs.outputFileSync(
path.resolve(paths.cast_output_root, "receiver.html"),
contentReceiver
);
const contentMedia = renderCastTemplate("media", {
latestMediaJS: latestManifest["media.js"],
es5MediaJS: es5Manifest["media.js"],
});
fs.outputFileSync(
path.resolve(paths.cast_output_root, "media.html"),
contentMedia
);
const contentFAQ = renderCastTemplate("launcher-faq", {
latestLauncherJS: latestManifest["launcher.js"],
es5LauncherJS: es5Manifest["launcher.js"],
});
fs.outputFileSync(
path.resolve(paths.cast_output_root, "faq.html"),
contentFAQ
);
const contentLauncher = renderCastTemplate("launcher", {
latestLauncherJS: latestManifest["launcher.js"],
es5LauncherJS: es5Manifest["launcher.js"],
});
fs.outputFileSync(
path.resolve(paths.cast_output_root, "index.html"),
contentLauncher
);
done();
});
gulp.task("gen-index-demo-dev", (done) => {
const content = renderDemoTemplate("index", {
latestDemoJS: "/frontend_latest/main.js",
es5DemoJS: "/frontend_es5/main.js",
});
fs.outputFileSync(
path.resolve(paths.demo_output_root, "index.html"),
content
);
done();
});
gulp.task("gen-index-demo-prod", async () => {
const latestManifest = require(path.resolve(
paths.demo_output_latest,
"manifest.json"
));
const es5Manifest = require(path.resolve(
paths.demo_output_es5,
"manifest.json"
));
const content = renderDemoTemplate("index", {
latestDemoJS: latestManifest["main.js"],
es5DemoJS: es5Manifest["main.js"],
});
const minified = await minifyHtml(content);
fs.outputFileSync(
path.resolve(paths.demo_output_root, "index.html"),
minified
);
});
gulp.task("gen-index-gallery-dev", (done) => {
const content = renderGalleryTemplate("index", {
latestGalleryJS: "./frontend_latest/entrypoint.js",
});
fs.outputFileSync(
path.resolve(paths.gallery_output_root, "index.html"),
content
);
done();
});
gulp.task("gen-index-gallery-prod", async () => {
const latestManifest = require(path.resolve(
paths.gallery_output_latest,
"manifest.json"
));
const content = renderGalleryTemplate("index", {
latestGalleryJS: latestManifest["entrypoint.js"],
});
const minified = await minifyHtml(content);
fs.outputFileSync(
path.resolve(paths.gallery_output_root, "index.html"),
minified
);
});
gulp.task("gen-index-hassio-dev", async () => {
writeHassioEntrypoint(
`${paths.hassio_publicPath}/frontend_latest/entrypoint.js`,
`${paths.hassio_publicPath}/frontend_es5/entrypoint.js`
);
});
gulp.task("gen-index-hassio-prod", async () => {
const latestManifest = require(path.resolve(
paths.hassio_output_latest,
"manifest.json"
));
const es5Manifest = require(path.resolve(
paths.hassio_output_es5,
"manifest.json"
));
writeHassioEntrypoint(
latestManifest["entrypoint.js"],
es5Manifest["entrypoint.js"]
);
});
function writeHassioEntrypoint(latestEntrypoint, es5Entrypoint) {
fs.mkdirSync(paths.hassio_output_root, { recursive: true });
// Safari 12 and below does not have a compliant ES2015 implementation of template literals, so we ship ES5
fs.writeFileSync(
path.resolve(paths.hassio_output_root, "entrypoint.js"),
`
function loadES5() {
var el = document.createElement('script');
el.src = '${es5Entrypoint}';
document.body.appendChild(el);
}
if (/.*Version\\/(?:11|12)(?:\\.\\d+)*.*Safari\\//.test(navigator.userAgent)) {
loadES5();
} else {
try {
new Function("import('${latestEntrypoint}')")();
} catch (err) {
loadES5();
}
}
`,
{ encoding: "utf-8" }
);
}

View File

@@ -0,0 +1,233 @@
// Tasks to generate entry HTML
import fs from "fs-extra";
import gulp from "gulp";
import { minify } from "html-minifier-terser";
import template from "lodash.template";
import path from "path";
import { htmlMinifierOptions, terserOptions } from "../bundle.cjs";
import env from "../env.cjs";
import paths from "../paths.cjs";
const renderTemplate = (templateFile, data = {}) => {
const compiled = template(
fs.readFileSync(templateFile, { encoding: "utf-8" })
);
return compiled({
...data,
useRollup: env.useRollup(),
useWDS: env.useWDS(),
// Resolve any child/nested templates relative to the parent and pass the same data
renderTemplate: (childTemplate) =>
renderTemplate(
path.resolve(path.dirname(templateFile), childTemplate),
data
),
});
};
const WRAP_TAGS = { ".js": "script", ".css": "style" };
const minifyHtml = (content, ext) => {
const wrapTag = WRAP_TAGS[ext] || "";
const begTag = wrapTag && `<${wrapTag}>`;
const endTag = wrapTag && `</${wrapTag}>`;
return minify(begTag + content + endTag, {
...htmlMinifierOptions,
conservativeCollapse: false,
minifyJS: terserOptions({
latestBuild: false, // Shared scripts should be ES5
isTestBuild: true, // Don't need source maps
}),
}).then((wrapped) =>
wrapTag ? wrapped.slice(begTag.length, -endTag.length) : wrapped
);
};
// Function to generate a dev task for each project's configuration
// Note Currently WDS paths are hard-coded to only work for app
const genPagesDevTask =
(
pageEntries,
inputRoot,
outputRoot,
useWDS = false,
inputSub = "src/html",
publicRoot = ""
) =>
async () => {
for (const [page, entries] of Object.entries(pageEntries)) {
const content = renderTemplate(
path.resolve(inputRoot, inputSub, `${page}.template`),
{
latestEntryJS: entries.map((entry) =>
useWDS
? `http://localhost:8000/src/entrypoints/${entry}.ts`
: `${publicRoot}/frontend_latest/${entry}.js`
),
es5EntryJS: entries.map(
(entry) => `${publicRoot}/frontend_es5/${entry}.js`
),
latestCustomPanelJS: useWDS
? "http://localhost:8000/src/entrypoints/custom-panel.ts"
: `${publicRoot}/frontend_latest/custom-panel.js`,
es5CustomPanelJS: `${publicRoot}/frontend_es5/custom-panel.js`,
}
);
fs.outputFileSync(path.resolve(outputRoot, page), content);
}
};
// Same as previous but for production builds
// (includes minification and hashed file names from manifest)
const genPagesProdTask =
(
pageEntries,
inputRoot,
outputRoot,
outputLatest,
outputES5,
inputSub = "src/html"
) =>
async () => {
const latestManifest = fs.readJsonSync(
path.resolve(outputLatest, "manifest.json")
);
const es5Manifest = outputES5
? fs.readJsonSync(path.resolve(outputES5, "manifest.json"))
: {};
const minifiedHTML = [];
for (const [page, entries] of Object.entries(pageEntries)) {
const content = renderTemplate(
path.resolve(inputRoot, inputSub, `${page}.template`),
{
latestEntryJS: entries.map((entry) => latestManifest[`${entry}.js`]),
es5EntryJS: entries.map((entry) => es5Manifest[`${entry}.js`]),
latestCustomPanelJS: latestManifest["custom-panel.js"],
es5CustomPanelJS: es5Manifest["custom-panel.js"],
}
);
minifiedHTML.push(
minifyHtml(content, path.extname(page)).then((minified) =>
fs.outputFileSync(path.resolve(outputRoot, page), minified)
)
);
}
await Promise.all(minifiedHTML);
};
// Map HTML pages to their required entrypoints
const APP_PAGE_ENTRIES = {
"authorize.html": ["authorize"],
"onboarding.html": ["onboarding"],
"index.html": ["core", "app"],
};
gulp.task(
"gen-pages-app-dev",
genPagesDevTask(
APP_PAGE_ENTRIES,
paths.polymer_dir,
paths.app_output_root,
env.useWDS()
)
);
gulp.task(
"gen-pages-app-prod",
genPagesProdTask(
APP_PAGE_ENTRIES,
paths.polymer_dir,
paths.app_output_root,
paths.app_output_latest,
paths.app_output_es5
)
);
const CAST_PAGE_ENTRIES = {
"faq.html": ["launcher"],
"index.html": ["launcher"],
"media.html": ["media"],
"receiver.html": ["receiver"],
};
gulp.task(
"gen-pages-cast-dev",
genPagesDevTask(CAST_PAGE_ENTRIES, paths.cast_dir, paths.cast_output_root)
);
gulp.task(
"gen-pages-cast-prod",
genPagesProdTask(
CAST_PAGE_ENTRIES,
paths.cast_dir,
paths.cast_output_root,
paths.cast_output_latest,
paths.cast_output_es5
)
);
const DEMO_PAGE_ENTRIES = { "index.html": ["main"] };
gulp.task(
"gen-pages-demo-dev",
genPagesDevTask(DEMO_PAGE_ENTRIES, paths.demo_dir, paths.demo_output_root)
);
gulp.task(
"gen-pages-demo-prod",
genPagesProdTask(
DEMO_PAGE_ENTRIES,
paths.demo_dir,
paths.demo_output_root,
paths.demo_output_latest,
paths.demo_output_es5
)
);
const GALLERY_PAGE_ENTRIES = { "index.html": ["entrypoint"] };
gulp.task(
"gen-pages-gallery-dev",
genPagesDevTask(
GALLERY_PAGE_ENTRIES,
paths.gallery_dir,
paths.gallery_output_root
)
);
gulp.task(
"gen-pages-gallery-prod",
genPagesProdTask(
GALLERY_PAGE_ENTRIES,
paths.gallery_dir,
paths.gallery_output_root,
paths.gallery_output_latest
)
);
const HASSIO_PAGE_ENTRIES = { "entrypoint.js": ["entrypoint"] };
gulp.task(
"gen-pages-hassio-dev",
genPagesDevTask(
HASSIO_PAGE_ENTRIES,
paths.hassio_dir,
paths.hassio_output_root,
undefined,
"src",
paths.hassio_publicPath
)
);
gulp.task(
"gen-pages-hassio-prod",
genPagesProdTask(
HASSIO_PAGE_ENTRIES,
paths.hassio_dir,
paths.hassio_output_root,
paths.hassio_output_latest,
paths.hassio_output_es5,
"src"
)
);

View File

@@ -1,15 +1,15 @@
// Task to download the latest Lokalise translations from the nightly workflow artifacts
const del = import("del");
const fs = require("fs/promises");
const path = require("path");
const process = require("process");
const gulp = require("gulp");
const jszip = require("jszip");
const tar = require("tar");
const { Octokit } = require("@octokit/rest");
const { retry } = require("@octokit/plugin-retry");
const { createOAuthDeviceAuth } = require("@octokit/auth-oauth-device");
import { createOAuthDeviceAuth } from "@octokit/auth-oauth-device";
import { retry } from "@octokit/plugin-retry";
import { Octokit } from "@octokit/rest";
import { deleteAsync } from "del";
import { mkdir, readFile, writeFile } from "fs/promises";
import gulp from "gulp";
import jszip from "jszip";
import path from "path";
import process from "process";
import tar from "tar";
const MAX_AGE = 24; // hours
const OWNER = "home-assistant";
@@ -38,7 +38,7 @@ gulp.task("fetch-nightly-translations", async function () {
// and stop if they are not old enough
let currentArtifact;
try {
currentArtifact = JSON.parse(await fs.readFile(ARTIFACT_FILE, "utf-8"));
currentArtifact = JSON.parse(await readFile(ARTIFACT_FILE, "utf-8"));
const currentAge =
(Date.now() - Date.parse(currentArtifact.created_at)) / 3600000;
if (currentAge < MAX_AGE) {
@@ -53,7 +53,7 @@ gulp.task("fetch-nightly-translations", async function () {
}
// To store file writing promises
const createExtractDir = fs.mkdir(EXTRACT_DIR, { recursive: true });
const createExtractDir = mkdir(EXTRACT_DIR, { recursive: true });
const writings = [];
// Authenticate to GitHub using GitHub action token if it exists,
@@ -63,7 +63,7 @@ gulp.task("fetch-nightly-translations", async function () {
tokenAuth = { token: process.env.GITHUB_TOKEN };
} else {
try {
tokenAuth = JSON.parse(await fs.readFile(TOKEN_FILE, "utf-8"));
tokenAuth = JSON.parse(await readFile(TOKEN_FILE, "utf-8"));
} catch {
if (!allowTokenSetup) {
console.log("No token found so build wil continue with English only");
@@ -88,7 +88,7 @@ gulp.task("fetch-nightly-translations", async function () {
tokenAuth = await auth({ type: "oauth" });
writings.push(
createExtractDir.then(
fs.writeFile(TOKEN_FILE, JSON.stringify(tokenAuth, null, 2))
writeFile(TOKEN_FILE, JSON.stringify(tokenAuth, null, 2))
)
);
}
@@ -132,17 +132,13 @@ gulp.task("fetch-nightly-translations", async function () {
}
writings.push(
createExtractDir.then(
fs.writeFile(ARTIFACT_FILE, JSON.stringify(latestArtifact, null, 2))
writeFile(ARTIFACT_FILE, JSON.stringify(latestArtifact, null, 2))
)
);
// Remove the current translations
const deleteCurrent = Promise.all(writings).then(
(await del).deleteAsync([
`${EXTRACT_DIR}/*`,
`!${ARTIFACT_FILE}`,
`!${TOKEN_FILE}`,
])
deleteAsync([`${EXTRACT_DIR}/*`, `!${ARTIFACT_FILE}`, `!${TOKEN_FILE}`])
);
// Get the download URL and follow the redirect to download (stored as ArrayBuffer)

View File

@@ -1,22 +1,19 @@
// Run demo develop mode
const gulp = require("gulp");
const fs = require("fs");
const path = require("path");
const { marked } = require("marked");
const { glob } = require("glob");
const yaml = require("js-yaml");
const env = require("../env.cjs");
const paths = require("../paths.cjs");
require("./clean.cjs");
require("./translations.cjs");
require("./gen-icons-json.cjs");
require("./gather-static.cjs");
require("./webpack.cjs");
require("./service-worker.cjs");
require("./entry-html.cjs");
require("./rollup.cjs");
import fs from "fs";
import { glob } from "glob";
import gulp from "gulp";
import yaml from "js-yaml";
import { marked } from "marked";
import path from "path";
import env from "../env.cjs";
import paths from "../paths.cjs";
import "./clean.js";
import "./entry-html.js";
import "./gather-static.js";
import "./gen-icons-json.js";
import "./rollup.js";
import "./service-worker.js";
import "./translations.js";
import "./webpack.js";
gulp.task("gather-gallery-pages", async function gatherPages() {
const pageDir = path.resolve(paths.gallery_dir, "src/pages");
@@ -159,7 +156,7 @@ gulp.task(
"gather-gallery-pages"
),
"copy-static-gallery",
"gen-index-gallery-dev",
"gen-pages-gallery-dev",
gulp.parallel(
env.useRollup()
? "rollup-dev-server-gallery"
@@ -193,6 +190,6 @@ gulp.task(
),
"copy-static-gallery",
env.useRollup() ? "rollup-prod-gallery" : "webpack-prod-gallery",
"gen-index-gallery-prod"
"gen-pages-gallery-prod"
)
);

View File

@@ -1,9 +1,10 @@
// Gulp task to gather all static files.
const gulp = require("gulp");
const path = require("path");
const fs = require("fs-extra");
const paths = require("../paths.cjs");
import fs from "fs-extra";
import gulp from "gulp";
import path from "path";
import paths from "../paths.cjs";
import env from "../env.cjs";
const npmPath = (...parts) =>
path.resolve(paths.polymer_dir, "node_modules", ...parts);
@@ -62,6 +63,9 @@ function copyPolyfills(staticDir) {
}
function copyLoaderJS(staticDir) {
if (!env.useRollup()) {
return;
}
const staticPath = genStaticPath(staticDir);
copyFileDir(npmPath("systemjs/dist/s.min.js"), staticPath("js"));
copyFileDir(npmPath("systemjs/dist/s.min.js.map"), staticPath("js"));
@@ -111,9 +115,10 @@ gulp.task("copy-translations-supervisor", async () => {
copyTranslations(staticDir);
});
gulp.task("copy-locale-data-supervisor", async () => {
gulp.task("copy-static-supervisor", async () => {
const staticDir = paths.hassio_output_static;
copyLocaleData(staticDir);
copyFonts(staticDir);
});
gulp.task("copy-static-app", async () => {

View File

@@ -1,17 +1,15 @@
const gulp = require("gulp");
const path = require("path");
const fs = require("fs");
const hash = require("object-hash");
import fs from "fs";
import gulp from "gulp";
import hash from "object-hash";
import path from "path";
import paths from "../paths.cjs";
const ICON_PACKAGE_PATH = path.resolve(
__dirname,
"../../node_modules/@mdi/svg/"
);
const ICON_PACKAGE_PATH = path.resolve("node_modules/@mdi/svg/");
const META_PATH = path.resolve(ICON_PACKAGE_PATH, "meta.json");
const PACKAGE_PATH = path.resolve(ICON_PACKAGE_PATH, "package.json");
const ICON_PATH = path.resolve(ICON_PACKAGE_PATH, "svg");
const OUTPUT_DIR = path.resolve(__dirname, "../../build/mdi");
const REMOVED_ICONS_PATH = path.resolve(__dirname, "../removedIcons.json");
const OUTPUT_DIR = path.resolve(paths.build_dir, "mdi");
const REMOVED_ICONS_PATH = new URL("../removedIcons.json", import.meta.url);
const encoding = "utf8";

View File

@@ -1,13 +1,13 @@
const gulp = require("gulp");
const env = require("../env.cjs");
require("./clean.cjs");
require("./compress.cjs");
require("./entry-html.cjs");
require("./gather-static.cjs");
require("./gen-icons-json.cjs");
require("./rollup.cjs");
require("./translations.cjs");
require("./webpack.cjs");
import gulp from "gulp";
import env from "../env.cjs";
import "./clean.js";
import "./compress.js";
import "./entry-html.js";
import "./gather-static.js";
import "./gen-icons-json.js";
import "./rollup.js";
import "./translations.js";
import "./webpack.js";
gulp.task(
"develop-hassio",
@@ -17,11 +17,11 @@ gulp.task(
},
"clean-hassio",
"gen-dummy-icons-json",
"gen-index-hassio-dev",
"gen-pages-hassio-dev",
"build-supervisor-translations",
"copy-translations-supervisor",
"build-locale-data",
"copy-locale-data-supervisor",
"copy-static-supervisor",
env.useRollup() ? "rollup-watch-hassio" : "webpack-watch-hassio"
)
);
@@ -37,9 +37,9 @@ gulp.task(
"build-supervisor-translations",
"copy-translations-supervisor",
"build-locale-data",
"copy-locale-data-supervisor",
"copy-static-supervisor",
env.useRollup() ? "rollup-prod-hassio" : "webpack-prod-hassio",
"gen-index-hassio-prod",
"gen-pages-hassio-prod",
...// Don't compress running tests
(env.isTestBuild() ? [] : ["compress-hassio"])
)

View File

@@ -1,72 +0,0 @@
const del = import("del");
const path = require("path");
const gulp = require("gulp");
const fs = require("fs");
const paths = require("../paths.cjs");
const outDir = "build/locale-data";
gulp.task("clean-locale-data", async () => (await del).deleteSync([outDir]));
gulp.task("ensure-locale-data-build-dir", (done) => {
if (!fs.existsSync(outDir)) {
fs.mkdirSync(outDir, { recursive: true });
}
done();
});
const modules = {
"intl-relativetimeformat": "RelativeTimeFormat",
"intl-datetimeformat": "DateTimeFormat",
"intl-numberformat": "NumberFormat",
};
gulp.task("create-locale-data", (done) => {
const translationMeta = JSON.parse(
fs.readFileSync(
path.join(paths.translations_src, "translationMetadata.json")
)
);
Object.entries(modules).forEach(([module, className]) => {
Object.keys(translationMeta).forEach((lang) => {
try {
const localeData = String(
fs.readFileSync(
require.resolve(`@formatjs/${module}/locale-data/${lang}.js`)
)
)
.replace(
new RegExp(
`\\/\\*\\s*@generated\\s*\\*\\/\\s*\\/\\/\\s*prettier-ignore\\s*if\\s*\\(Intl\\.${className}\\s*&&\\s*typeof\\s*Intl\\.${className}\\.__addLocaleData\\s*===\\s*'function'\\)\\s*{\\s*Intl\\.${className}\\.__addLocaleData\\(`,
"im"
),
""
)
.replace(/\)\s*}/im, "");
// make sure we have valid JSON
JSON.parse(localeData);
if (!fs.existsSync(path.join(outDir, module))) {
fs.mkdirSync(path.join(outDir, module), { recursive: true });
}
fs.writeFileSync(
path.join(outDir, `${module}/${lang}.json`),
localeData
);
} catch (e) {
if (e.code !== "MODULE_NOT_FOUND") {
throw e;
}
}
});
done();
});
});
gulp.task(
"build-locale-data",
gulp.series(
"clean-locale-data",
"ensure-locale-data-build-dir",
"create-locale-data"
)
);

View File

@@ -0,0 +1,86 @@
import { deleteSync } from "del";
import { mkdir, readFile, writeFile } from "fs/promises";
import gulp from "gulp";
import { join, resolve } from "node:path";
import paths from "../paths.cjs";
const formatjsDir = join(paths.polymer_dir, "node_modules", "@formatjs");
const outDir = join(paths.build_dir, "locale-data");
const INTL_POLYFILLS = {
"intl-datetimeformat": "DateTimeFormat",
"intl-displaynames": "DisplayNames",
"intl-listformat": "ListFormat",
"intl-numberformat": "NumberFormat",
"intl-relativetimeformat": "RelativeTimeFormat",
};
const convertToJSON = async (
pkg,
lang,
subDir = "locale-data",
addFunc = "__addLocaleData",
skipMissing = true
) => {
let localeData;
try {
localeData = await readFile(
join(formatjsDir, pkg, subDir, `${lang}.js`),
"utf-8"
);
} catch (e) {
// Ignore if language is missing (i.e. not supported by @formatjs)
if (e.code === "ENOENT" && skipMissing) {
console.warn(`Skipped missing data for language ${lang} from ${pkg}`);
return;
}
throw e;
}
// Convert to JSON
const obj = INTL_POLYFILLS[pkg];
const dataRegex = new RegExp(
`Intl\\.${obj}\\.${addFunc}\\((?<data>.*)\\)`,
"s"
);
localeData = localeData.match(dataRegex)?.groups?.data;
if (!localeData) {
throw Error(`Failed to extract data for language ${lang} from ${pkg}`);
}
// Parse to validate JSON, then stringify to minify
localeData = JSON.stringify(JSON.parse(localeData));
await writeFile(join(outDir, `${pkg}/${lang}.json`), localeData);
};
gulp.task("clean-locale-data", async () => deleteSync([outDir]));
gulp.task("create-locale-data", async () => {
const translationMeta = JSON.parse(
await readFile(
resolve(paths.translations_src, "translationMetadata.json"),
"utf-8"
)
);
const conversions = [];
for (const pkg of Object.keys(INTL_POLYFILLS)) {
// eslint-disable-next-line no-await-in-loop
await mkdir(join(outDir, pkg), { recursive: true });
for (const lang of Object.keys(translationMeta)) {
conversions.push(convertToJSON(pkg, lang));
}
}
conversions.push(
convertToJSON(
"intl-datetimeformat",
"add-all-tz",
".",
"__addTZData",
false
)
);
await Promise.all(conversions);
});
gulp.task(
"build-locale-data",
gulp.series("clean-locale-data", "create-locale-data")
);

View File

@@ -1,13 +1,14 @@
// Tasks to run Rollup
const path = require("path");
const gulp = require("gulp");
const rollup = require("rollup");
const handler = require("serve-handler");
const http = require("http");
const log = require("fancy-log");
const open = require("open");
const rollupConfig = require("../rollup.cjs");
const paths = require("../paths.cjs");
import log from "fancy-log";
import gulp from "gulp";
import http from "http";
import open from "open";
import path from "path";
import { rollup } from "rollup";
import handler from "serve-handler";
import paths from "../paths.cjs";
import rollupConfig from "../rollup.cjs";
const bothBuilds = (createConfigFunc, params) =>
gulp.series(

View File

@@ -1,11 +1,12 @@
// Generate service worker.
// Based on manifest, create a file with the content as service_worker.js
const gulp = require("gulp");
const path = require("path");
const fs = require("fs-extra");
const workboxBuild = require("workbox-build");
const sourceMapUrl = require("source-map-url");
const paths = require("../paths.cjs");
import fs from "fs-extra";
import gulp from "gulp";
import path from "path";
import sourceMapUrl from "source-map-url";
import workboxBuild from "workbox-build";
import paths from "../paths.cjs";
const swDest = path.resolve(paths.app_output_root, "service_worker.js");
@@ -28,10 +29,9 @@ self.addEventListener('install', (event) => {
gulp.task("gen-service-worker-app-prod", async () => {
// Read bundled source file
const bundleManifestLatest = require(path.resolve(
paths.app_output_latest,
"manifest.json"
));
const bundleManifestLatest = fs.readJsonSync(
path.resolve(paths.app_output_latest, "manifest.json")
);
let serviceWorkerContent = fs.readFileSync(
paths.app_output_root + bundleManifestLatest["service_worker.js"],
"utf-8"
@@ -46,10 +46,9 @@ gulp.task("gen-service-worker-app-prod", async () => {
);
// Remove ES5
const bundleManifestES5 = require(path.resolve(
paths.app_output_es5,
"manifest.json"
));
const bundleManifestES5 = fs.readJsonSync(
path.resolve(paths.app_output_es5, "manifest.json")
);
fs.removeSync(paths.app_output_root + bundleManifestES5["service_worker.js"]);
fs.removeSync(
paths.app_output_root + bundleManifestES5["service_worker.js.map"]

View File

@@ -1,19 +1,19 @@
const del = import("del");
const crypto = require("crypto");
const path = require("path");
const source = require("vinyl-source-stream");
const vinylBuffer = require("vinyl-buffer");
const gulp = require("gulp");
const fs = require("fs");
const flatmap = require("gulp-flatmap");
const merge = require("gulp-merge-json");
const rename = require("gulp-rename");
const transform = require("gulp-json-transform");
const { mapFiles } = require("../util.cjs");
const env = require("../env.cjs");
const paths = require("../paths.cjs");
require("./fetch-nightly-translations.cjs");
import { createHash } from "crypto";
import { deleteSync } from "del";
import { mkdirSync, readdirSync, readFileSync, renameSync } from "fs";
import { writeFile } from "node:fs/promises";
import gulp from "gulp";
import flatmap from "gulp-flatmap";
import transform from "gulp-json-transform";
import merge from "gulp-merge-json";
import rename from "gulp-rename";
import path from "path";
import vinylBuffer from "vinyl-buffer";
import source from "vinyl-source-stream";
import env from "../env.cjs";
import paths from "../paths.cjs";
import { mapFiles } from "../util.cjs";
import "./fetch-nightly-translations.js";
const inFrontendDir = "translations/frontend";
const inBackendDir = "translations/backend";
@@ -33,7 +33,12 @@ gulp.task(
// Panel translations which should be split from the core translations.
const TRANSLATION_FRAGMENTS = Object.keys(
require("../../src/translations/en.json").ui.panel
JSON.parse(
readFileSync(
path.resolve(paths.polymer_dir, "src/translations/en.json"),
"utf-8"
)
).ui.panel
);
function recursiveFlatten(prefix, data) {
@@ -120,36 +125,29 @@ function lokaliseTransform(data, original, file) {
return output;
}
gulp.task("clean-translations", async () => (await del).deleteSync([workDir]));
gulp.task("clean-translations", async () => deleteSync([workDir]));
gulp.task("ensure-translations-build-dir", (done) => {
if (!fs.existsSync(workDir)) {
fs.mkdirSync(workDir, { recursive: true });
}
done();
gulp.task("ensure-translations-build-dir", async () => {
mkdirSync(workDir, { recursive: true });
});
gulp.task("create-test-metadata", (cb) => {
fs.writeFile(
workDir + "/testMetadata.json",
JSON.stringify({
test: {
nativeName: "Test",
},
}),
cb
);
});
gulp.task("create-test-metadata", () =>
env.isProdBuild()
? Promise.resolve()
: writeFile(
workDir + "/testMetadata.json",
JSON.stringify({ test: { nativeName: "Test" } })
)
);
gulp.task(
"create-test-translation",
gulp.series("create-test-metadata", () =>
gulp
.src(path.join(paths.translations_src, "en.json"))
.pipe(transform((data, _file) => recursiveEmpty(data)))
.pipe(rename("test.json"))
.pipe(gulp.dest(workDir))
)
gulp.task("create-test-translation", () =>
env.isProdBuild()
? Promise.resolve()
: gulp
.src(path.join(paths.translations_src, "en.json"))
.pipe(transform((data, _file) => recursiveEmpty(data)))
.pipe(rename("test.json"))
.pipe(gulp.dest(workDir))
);
/**
@@ -181,16 +179,11 @@ gulp.task("build-master-translation", () => {
gulp.task("build-merged-translations", () =>
gulp
.src(
[
inFrontendDir + "/*.json",
"!" + inFrontendDir + "/en.json",
workDir + "/test.json",
],
{
allowEmpty: true,
}
)
.src([
inFrontendDir + "/*.json",
"!" + inFrontendDir + "/en.json",
...(env.isProdBuild() ? [] : [workDir + "/test.json"]),
])
.pipe(transform((data, file) => lokaliseTransform(data, data, file)))
.pipe(
flatmap((stream, file) => {
@@ -303,15 +296,14 @@ const fingerprints = {};
gulp.task("build-translation-fingerprints", () => {
// Fingerprint full file of each language
const files = fs.readdirSync(fullDir);
const files = readdirSync(fullDir);
for (let i = 0; i < files.length; i++) {
fingerprints[files[i].split(".")[0]] = {
// In dev we create fake hashes
hash: env.isProdBuild()
? crypto
.createHash("md5")
.update(fs.readFileSync(path.join(fullDir, files[i]), "utf-8"))
? createHash("md5")
.update(readFileSync(path.join(fullDir, files[i]), "utf-8"))
.digest("hex")
: "dev",
};
@@ -327,7 +319,7 @@ gulp.task("build-translation-fingerprints", () => {
throw new Error(`Unable to find hash for ${filename}`);
}
fs.renameSync(
renameSync(
filename,
`${parsed.dir}/${parsed.name}-${fingerprints[parsed.name].hash}${
parsed.ext
@@ -371,14 +363,11 @@ gulp.task("build-translation-flatten-supervisor", () =>
gulp.task("build-translation-write-metadata", () =>
gulp
.src(
[
path.join(paths.translations_src, "translationMetadata.json"),
workDir + "/testMetadata.json",
workDir + "/translationFingerprints.json",
],
{ allowEmpty: true }
)
.src([
path.join(paths.translations_src, "translationMetadata.json"),
...(env.isProdBuild() ? [] : [workDir + "/testMetadata.json"]),
workDir + "/translationFingerprints.json",
])
.pipe(merge({}))
.pipe(
transform((data) => {
@@ -409,7 +398,7 @@ gulp.task("build-translation-write-metadata", () =>
gulp.task(
"create-translations",
gulp.series(
env.isProdBuild() ? (done) => done() : "create-test-translation",
gulp.parallel("create-test-metadata", "create-test-translation"),
"build-master-translation",
"build-merged-translations",
gulp.parallel(...splitTasks),

View File

@@ -1,11 +0,0 @@
// Tasks to run Rollup
const gulp = require("gulp");
const { startDevServer } = require("@web/dev-server");
gulp.task("wds-watch-app", () => {
startDevServer({
config: {
watch: true,
},
});
});

10
build-scripts/gulp/wds.js Normal file
View File

@@ -0,0 +1,10 @@
import gulp from "gulp";
import { startDevServer } from "@web/dev-server";
gulp.task("wds-watch-app", async () => {
startDevServer({
config: {
watch: true,
},
});
});

View File

@@ -1,19 +1,20 @@
// Tasks to run webpack.
const fs = require("fs");
const gulp = require("gulp");
const webpack = require("webpack");
const WebpackDevServer = require("webpack-dev-server");
const log = require("fancy-log");
const path = require("path");
const env = require("../env.cjs");
const paths = require("../paths.cjs");
const {
import fs from "fs";
import path from "path";
import log from "fancy-log";
import gulp from "gulp";
import webpack from "webpack";
import WebpackDevServer from "webpack-dev-server";
import env from "../env.cjs";
import paths from "../paths.cjs";
import {
createAppConfig,
createDemoConfig,
createCastConfig,
createHassioConfig,
createDemoConfig,
createGalleryConfig,
} = require("../webpack.cjs");
createHassioConfig,
} from "../webpack.cjs";
const bothBuilds = (createConfigFunc, params) => [
createConfigFunc({ ...params, latestBuild: true }),
@@ -43,6 +44,7 @@ const runDevServer = async ({
}) => {
const server = new WebpackDevServer(
{
hot: false,
open: true,
host: listenHost,
port,

View File

@@ -0,0 +1,83 @@
#!/usr/bin/env node
// Script to print Babel plugins and Core JS polyfills that will be used by browserslist environments
import { version as babelVersion } from "@babel/core";
import presetEnv from "@babel/preset-env";
import compilationTargets from "@babel/helper-compilation-targets";
import coreJSCompat from "core-js-compat";
import { logPlugin } from "@babel/preset-env/lib/debug.js";
// eslint-disable-next-line import/no-relative-packages
import shippedPolyfills from "../node_modules/babel-plugin-polyfill-corejs3/lib/shipped-proposals.js";
import { babelOptions } from "./bundle.cjs";
const detailsOpen = (heading) =>
`<details>\n<summary><h4>${heading}</h4></summary>\n`;
const detailsClose = "</details>\n";
const dummyAPI = {
version: babelVersion,
assertVersion: () => {},
caller: (callback) =>
callback({
name: "Dummy Bundler",
supportsStaticESM: true,
supportsDynamicImport: true,
supportsTopLevelAwait: true,
supportsExportNamespaceFrom: true,
}),
targets: () => ({}),
};
// Generate filter function based on proposal/method inputs
// Copied and adapted from babel-plugin-polyfill-corejs3/esm/index.mjs
const polyfillFilter = (method, proposals, shippedProposals) => (name) => {
if (proposals || method === "entry-global") return true;
if (shippedProposals && shippedPolyfills.default.has(name)) {
return true;
}
if (name.startsWith("esnext.")) {
const esName = `es.${name.slice(7)}`;
// If its imaginative esName is not in latest compat data, it means the proposal is not stage 4
return esName in coreJSCompat.data;
}
return true;
};
// Log the plugins and polyfills for each build environment
for (const buildType of ["Modern", "Legacy"]) {
const browserslistEnv = buildType.toLowerCase();
const babelOpts = babelOptions({ latestBuild: browserslistEnv === "modern" });
const presetEnvOpts = babelOpts.presets[0][1];
// Invoking preset-env in debug mode will log the included plugins
console.log(detailsOpen(`${buildType} Build Babel Plugins`));
presetEnv.default(dummyAPI, {
...presetEnvOpts,
browserslistEnv,
debug: true,
});
console.log(detailsClose);
// Manually log the Core-JS polyfills using the same technique
if (presetEnvOpts.useBuiltIns) {
console.log(detailsOpen(`${buildType} Build Core-JS Polyfills`));
const targets = compilationTargets.default(babelOpts?.targets, {
browserslistEnv,
});
const polyfillList = coreJSCompat({ targets }).list.filter(
polyfillFilter(
`${presetEnvOpts.useBuiltIns}-global`,
presetEnvOpts?.corejs?.proposals,
presetEnvOpts?.shippedProposals
)
);
console.log(
"The following %i polyfills may be injected by Babel:\n",
polyfillList.length
);
for (const polyfill of polyfillList) {
logPlugin(polyfill, targets, coreJSCompat.data);
}
console.log(detailsClose);
}
}

View File

@@ -142,4 +142,5 @@ module.exports = {
createCastConfig,
createHassioConfig,
createGalleryConfig,
createRollupConfig,
};

View File

@@ -1,5 +1,8 @@
const webpack = require("webpack");
const { existsSync } = require("fs");
const path = require("path");
const webpack = require("webpack");
const { StatsWriterPlugin } = require("webpack-stats-plugin");
const filterStats = require("@bundle-stats/plugin-webpack-filter").default;
const TerserPlugin = require("terser-webpack-plugin");
const { WebpackManifestPlugin } = require("webpack-manifest-plugin");
const log = require("fancy-log");
@@ -41,7 +44,7 @@ const createWebpackConfig = ({
return {
name,
mode: isProdBuild ? "production" : "development",
target: ["web", latestBuild ? "es2017" : "es5"],
target: `browserslist:${latestBuild ? "modern" : "legacy"}`,
// For tests/CI, source maps are skipped to gain build speed
// For production, generate source maps for accurate stack traces without source code
// For development, generate "cheap" versions that can map to original line numbers
@@ -84,6 +87,13 @@ const createWebpackConfig = ({
],
moduleIds: isProdBuild && !isStatsBuild ? "deterministic" : "named",
chunkIds: isProdBuild && !isStatsBuild ? "deterministic" : "named",
splitChunks: {
// Disable splitting for web workers with ESM output
// Imports of external chunks are broken
chunks: latestBuild
? (chunk) => !chunk.canBeInitial() && !/^.+-worker$/.test(chunk.name)
: undefined,
},
},
plugins: [
!isStatsBuild && new WebpackBar({ fancy: !isProdBuild }),
@@ -132,7 +142,27 @@ const createWebpackConfig = ({
),
path.resolve(paths.polymer_dir, "src/util/empty.js")
),
// See `src/resources/intl-polyfill-legacy.ts` for explanation
!latestBuild &&
new webpack.NormalModuleReplacementPlugin(
new RegExp(
path.resolve(paths.polymer_dir, "src/resources/intl-polyfill.ts")
),
path.resolve(
paths.polymer_dir,
"src/resources/intl-polyfill-legacy.ts"
)
),
!isProdBuild && new LogStartCompilePlugin(),
isProdBuild &&
new StatsWriterPlugin({
filename: path.relative(
outputPath,
path.join(paths.build_dir, "stats", `${name}.json`)
),
stats: { assets: true, chunks: true, modules: true },
transform: (stats) => JSON.stringify(filterStats(stats)),
}),
].filter(Boolean),
resolve: {
extensions: [".ts", ".js", ".json"],
@@ -146,12 +176,18 @@ const createWebpackConfig = ({
"lit/directives/guard$": "lit/directives/guard.js",
"lit/directives/cache$": "lit/directives/cache.js",
"lit/directives/repeat$": "lit/directives/repeat.js",
"lit/directives/live$": "lit/directives/live.js",
"lit/polyfill-support$": "lit/polyfill-support.js",
"@lit-labs/virtualizer/layouts/grid":
"@lit-labs/virtualizer/layouts/grid.js",
"@lit-labs/virtualizer/polyfills/resize-observer-polyfill/ResizeObserver":
"@lit-labs/virtualizer/polyfills/resize-observer-polyfill/ResizeObserver.js",
"@lit-labs/observers/resize-controller":
"@lit-labs/observers/resize-controller.js",
},
},
output: {
module: latestBuild,
filename: ({ chunk }) =>
!isProdBuild || isStatsBuild || dontHash.has(chunk.name)
? "[name].js"
@@ -160,6 +196,7 @@ const createWebpackConfig = ({
isProdBuild && !isStatsBuild ? "[id]-[contenthash].js" : "[name].js",
assetModuleFilename:
isProdBuild && !isStatsBuild ? "[id]-[contenthash][ext]" : "[id][ext]",
crossOriginLoading: "use-credentials",
hashFunction: "xxhash64",
hashDigest: "base64url",
hashDigestLength: 11, // full length of 64 bit base64url
@@ -170,22 +207,29 @@ const createWebpackConfig = ({
// Since production source maps don't include sources, we need to point to them elsewhere
// For dependencies, just provide the path (no source in browser)
// Otherwise, point to the raw code on GitHub for browser to load
devtoolModuleFilenameTemplate:
!isTestBuild && isProdBuild
? (info) => {
const sourcePath = info.resourcePath.replace(/^\.\//, "");
if (
sourcePath.startsWith("node_modules") ||
sourcePath.startsWith("webpack")
) {
return `no-source/${sourcePath}`;
...Object.fromEntries(
["", "Fallback"].map((v) => [
`devtool${v}ModuleFilenameTemplate`,
!isTestBuild && isProdBuild
? (info) => {
if (
!path.isAbsolute(info.absoluteResourcePath) ||
!existsSync(info.resourcePath) ||
info.resourcePath.startsWith("./node_modules")
) {
// Source URLs are unknown for dependencies, so we use a relative URL with a
// non - existent top directory. This results in a clean source tree in browser
// dev tools, and they stay happy getting 404s with valid requests.
return `/unknown${path.resolve("/", info.resourcePath)}`;
}
return new URL(info.resourcePath, bundle.sourceMapURL()).href;
}
return `${bundle.sourceMapURL()}/${sourcePath}`;
}
: undefined,
: undefined,
])
),
},
experiments: {
topLevelAwait: true,
outputModule: true,
},
};
};
@@ -232,4 +276,5 @@ module.exports = {
createCastConfig,
createHassioConfig,
createGalleryConfig,
createWebpackConfig,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -1,3 +1,3 @@
self.addEventListener("fetch", function(event) {
self.addEventListener("fetch", (event) => {
event.respondWith(fetch(event.request));
});

View File

@@ -0,0 +1,24 @@
<meta property="fb:app_id" content="338291289691179" />
<meta property="og:title" content="Home Assistant Cast" />
<meta property="og:site_name" content="Home Assistant Cast" />
<meta property="og:url" content="https://cast.home-assistant.io/" />
<meta property="og:type" content="website" />
<meta
property="og:description"
content="Show Home Assistant on your Chromecast or Google Assistant devices with a screen."
/>
<meta
property="og:image"
content="https://cast.home-assistant.io/images/google-nest-hub.png"
/>
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@home_assistant" />
<meta name="twitter:title" content="Home Assistant Cast" />
<meta
name="twitter:description"
content="Show Home Assistant on your Chromecast or Google Assistant devices with a screen."
/>
<meta
name="twitter:image"
content="https://cast.home-assistant.io/images/google-nest-hub.png"
/>

View File

@@ -3,7 +3,7 @@
<head>
<title>Home Assistant Cast - FAQ</title>
<link rel="icon" href="/images/ha-cast-icon.png" type="image/png" />
<%= renderTemplate('_style_base') %>
<%= renderTemplate("../../../src/html/_style_base.html.template") %>
<style>
body {
background-color: #e5e5e5;
@@ -35,25 +35,14 @@
/>
</head>
<body>
<%= renderTemplate('_js_base') %>
<%= renderTemplate("../../../src/html/_js_base.html.template") %>
<script>
import("<%= latestLauncherJS %>");
<% for (const entry of latestEntryJS) { %>
import("<%= entry %>");
<% } %>
window.latestJS = true;
</script>
<script>
if (!window.latestJS) {
<% if (useRollup) { %>
_ls("/static/js/s.min.js").onload = function() {
System.import("<%= es5LauncherJS %>");
};
<% } else { %>
_ls("<%= es5LauncherJS %>");
<% } %>
}
</script>
<%= renderTemplate("../../../src/html/_script_load_es5.html.template") %>
<hc-layout subtitle="FAQ">
<style>
a {

View File

@@ -0,0 +1,35 @@
<!DOCTYPE html>
<html>
<head>
<title>Home Assistant Cast</title>
<link rel="manifest" href="/manifest.json" />
<link rel="icon" href="/images/ha-cast-icon.png" type="image/png" />
<%= renderTemplate("../../../src/html/_style_base.html.template") %>
<style>
body {
background-color: #e5e5e5;
}
</style>
<%= renderTemplate("_social_meta.html.template") %>
</head>
<body>
<%= renderTemplate("../../../src/html/_js_base.html.template") %>
<hc-connect></hc-connect>
<script>
<% for (const entry of latestEntryJS) { %>
import("<%= entry %>");
<% } %>
window.latestJS = true;
</script>
<%= renderTemplate("../../../src/html/_script_load_es5.html.template") %>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-57927901-9', 'auto');
ga('send', 'pageview', location.pathname.includes("auth_callback") === -1 ? location.pathname : "/");
</script>
</body>
</html>

View File

@@ -1,57 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Home Assistant Cast</title>
<link rel="manifest" href="/manifest.json" />
<link rel="icon" href="/images/ha-cast-icon.png" type="image/png" />
<%= renderTemplate('_style_base') %>
<style>
body {
background-color: #e5e5e5;
}
</style>
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Home Assistant Cast">
<meta property="og:site_name" content="Home Assistant Cast">
<meta property="og:url" content="https://cast.home-assistant.io/">
<meta property="og:type" content="website">
<meta property="og:description" content="Show Home Assistant on your Chromecast or Google Assistant devices with a screen.">
<meta property="og:image" content="https://cast.home-assistant.io/images/google-nest-hub.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@home_assistant">
<meta name="twitter:title" content="Home Assistant Cast">
<meta name="twitter:description" content="Show Home Assistant on your Chromecast or Google Assistant devices with a screen.">
<meta name="twitter:image" content="https://cast.home-assistant.io/images/google-nest-hub.png">
</head>
<body>
<%= renderTemplate('_js_base') %>
<hc-connect></hc-connect>
<script>
import("<%= latestLauncherJS %>");
window.latestJS = true;
</script>
<script>
if (!window.latestJS) {
<% if (useRollup) { %>
_ls("/static/js/s.min.js").onload = function() {
System.import("<%= es5LauncherJS %>");
};
<% } else { %>
_ls("<%= es5LauncherJS %>");
<% } %>
}
</script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-57927901-9', 'auto');
ga('send', 'pageview', location.pathname.includes("auth_callback") === -1 ? location.pathname : "/");
</script>
</body>
</html>

View File

@@ -22,25 +22,14 @@
</script>
</head>
<body>
<%= renderTemplate('_js_base') %>
<%= renderTemplate("../../../src/html/_js_base.html.template") %>
<cast-media-player></cast-media-player>
<script>
import("<%= latestMediaJS %>");
<% for (const entry of latestEntryJS) { %>
import("<%= entry %>");
<% } %>
window.latestJS = true;
</script>
<script>
if (!window.latestJS) {
<% if (useRollup) { %>
_ls("/static/js/s.min.js").onload = function() {
System.import("<%= es5MediaJS %>");
};
<% } else { %>
_ls("<%= es5MediaJS %>");
<% } %>
}
</script>
<%= renderTemplate("../../../src/html/_script_load_es5.html.template") %>
</body>
</html>

View File

@@ -1,8 +1,10 @@
<!DOCTYPE html>
<html>
<script src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
<script type="module" src="<%= latestReceiverJS %>"></script>
<%= renderTemplate('_style_base') %>
<% for (const entry of latestEntryJS) { %>
<script type="module" src="<%= entry %>"></script>
<% } %>
<%= renderTemplate("../../../src/html/_style_base.html.template") %>
<style>
body {
background-color: white;

View File

@@ -1,4 +1,4 @@
import "../../../src/resources/safari-14-attachshadow-patch";
import "../../../src/resources/ha-style";
import "../../../src/resources/roboto";
import "./layout/hc-connect";
import("../../../src/resources/ha-style");

View File

@@ -190,7 +190,7 @@ export class HcConnect extends LitElement {
private _handleInputKeyDown(ev: KeyboardEvent) {
// Handle pressing enter.
if (ev.keyCode === 13) {
if (ev.key === "Enter") {
this._handleConnect();
}
}

View File

@@ -1,19 +1,21 @@
const castContext = cast.framework.CastReceiverContext.getInstance();
import { framework } from "../receiver/cast_framework";
const castContext = framework.CastReceiverContext.getInstance();
const playerManager = castContext.getPlayerManager();
playerManager.setMessageInterceptor(
cast.framework.messages.MessageType.LOAD,
framework.messages.MessageType.LOAD,
(loadRequestData) => {
const media = loadRequestData.media;
// Special handling if it came from Google Assistant
if (media.entity) {
media.contentId = media.entity;
media.streamType = cast.framework.messages.StreamType.LIVE;
media.streamType = framework.messages.StreamType.LIVE;
media.contentType = "application/vnd.apple.mpegurl";
// @ts-ignore
media.hlsVideoSegmentFormat =
cast.framework.messages.HlsVideoSegmentFormat.FMP4;
framework.messages.HlsVideoSegmentFormat.FMP4;
}
return loadRequestData;
}

View File

@@ -1,2 +1,3 @@
/* eslint-disable no-undef */
export const castContext = cast.framework.CastReceiverContext.getInstance();
import { framework } from "./cast_framework";
export const castContext = framework.CastReceiverContext.getInstance();

View File

@@ -0,0 +1,3 @@
import type { cast as ReceiverCast } from "chromecast-caf-receiver";
export const framework = (cast as unknown as typeof ReceiverCast).framework;

View File

@@ -1,4 +1,4 @@
/* eslint-disable no-undef */
import { framework } from "./cast_framework";
import { CAST_NS } from "../../../src/cast/const";
import { HassMessage } from "../../../src/cast/receiver_messages";
import "../../../src/resources/custom-card-support";
@@ -34,14 +34,14 @@ const setTouchControlsVisibility = (visible: boolean) => {
let timeOut: number | undefined;
const playDummyMedia = (viewTitle?: string) => {
const loadRequestData = new cast.framework.messages.LoadRequestData();
const loadRequestData = new framework.messages.LoadRequestData();
loadRequestData.autoplay = true;
loadRequestData.media = new cast.framework.messages.MediaInformation();
loadRequestData.media = new framework.messages.MediaInformation();
loadRequestData.media.contentId =
"https://cast.home-assistant.io/images/google-nest-hub.png";
loadRequestData.media.contentType = "image/jpeg";
loadRequestData.media.streamType = cast.framework.messages.StreamType.NONE;
const metadata = new cast.framework.messages.GenericMediaMetadata();
loadRequestData.media.streamType = framework.messages.StreamType.NONE;
const metadata = new framework.messages.GenericMediaMetadata();
metadata.title = viewTitle;
loadRequestData.media.metadata = metadata;
@@ -86,10 +86,10 @@ const showMediaPlayer = () => {
}
};
const options = new cast.framework.CastReceiverOptions();
const options = new framework.CastReceiverOptions();
options.disableIdleTimeout = true;
options.customNamespaces = {
[CAST_NS]: cast.framework.system.MessageType.JSON,
[CAST_NS]: framework.system.MessageType.JSON,
};
castContext.addCustomMessageListener(
@@ -98,8 +98,7 @@ castContext.addCustomMessageListener(
(ev: ReceivedMessage<HassMessage>) => {
// We received a show Lovelace command, stop media from playing, hide media player and show Lovelace controller
if (
playerManager.getPlayerState() !==
cast.framework.messages.PlayerState.IDLE
playerManager.getPlayerState() !== framework.messages.PlayerState.IDLE
) {
playerManager.stop();
} else {
@@ -114,7 +113,7 @@ castContext.addCustomMessageListener(
const playerManager = castContext.getPlayerManager();
playerManager.setMessageInterceptor(
cast.framework.messages.MessageType.LOAD,
framework.messages.MessageType.LOAD,
(loadRequestData) => {
if (
loadRequestData.media.contentId ===
@@ -128,25 +127,24 @@ playerManager.setMessageInterceptor(
// Special handling if it came from Google Assistant
if (media.entity) {
media.contentId = media.entity;
media.streamType = cast.framework.messages.StreamType.LIVE;
media.streamType = framework.messages.StreamType.LIVE;
media.contentType = "application/vnd.apple.mpegurl";
// @ts-ignore
media.hlsVideoSegmentFormat =
cast.framework.messages.HlsVideoSegmentFormat.FMP4;
framework.messages.HlsVideoSegmentFormat.FMP4;
}
return loadRequestData;
}
);
playerManager.addEventListener(
cast.framework.events.EventType.MEDIA_STATUS,
framework.events.EventType.MEDIA_STATUS,
(event) => {
if (
event.mediaStatus?.playerState ===
cast.framework.messages.PlayerState.IDLE &&
event.mediaStatus?.playerState === framework.messages.PlayerState.IDLE &&
event.mediaStatus?.idleReason &&
event.mediaStatus?.idleReason !==
cast.framework.messages.IdleReason.INTERRUPTED
framework.messages.IdleReason.INTERRUPTED
) {
// media finished or stopped, return to default Lovelace
showLovelaceController();

View File

@@ -32,6 +32,8 @@ import { HassElement } from "../../../../src/state/hass-element";
import { castContext } from "../cast_context";
import "./hc-launch-screen";
const DEFAULT_STRATEGY = "original-states";
let resourcesLoaded = false;
@customElement("hc-main")
export class HcMain extends HassElement {
@@ -98,7 +100,9 @@ export class HcMain extends HassElement {
protected firstUpdated(changedProps) {
super.firstUpdated(changedProps);
import("../second-load");
import("./hc-lovelace");
import("../../../../src/resources/ha-style");
window.addEventListener("location-changed", () => {
const panelPath = `/${this._urlPath || "lovelace"}/`;
if (location.pathname.startsWith(panelPath)) {
@@ -258,7 +262,6 @@ export class HcMain extends HassElement {
{
strategy: {
type: "energy",
options: { show_date_selection: true },
},
},
],
@@ -306,7 +309,7 @@ export class HcMain extends HassElement {
? await fetchResources(this.hass!.connection)
: (this._lovelaceConfig as LegacyLovelaceConfig).resources;
if (resources) {
loadLovelaceResources(resources, this.hass!.auth.data.hassUrl);
loadLovelaceResources(resources, this.hass!);
}
}
@@ -320,10 +323,9 @@ export class HcMain extends HassElement {
this._handleNewLovelaceConfig(
await generateLovelaceDashboardStrategy(
{
hass: this.hass!,
narrow: false,
type: DEFAULT_STRATEGY,
},
"original-states"
this.hass!
)
);
}

View File

@@ -1,3 +0,0 @@
import "../../../src/resources/ha-style";
import "../../../src/resources/roboto";
import "./layout/hc-lovelace";

View File

@@ -8,25 +8,67 @@
"src": "/static/icons/favicon-192x192.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "maskable any"
"purpose": "any"
},
{
"src": "/static/icons/favicon-384x384.png",
"sizes": "384x384",
"type": "image/png",
"purpose": "maskable any"
"purpose": "any"
},
{
"src": "/static/icons/favicon-512x512.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable any"
"purpose": "any"
},
{
"src": "/static/icons/favicon-1024x1024.png",
"sizes": "1024x1024",
"type": "image/png",
"purpose": "maskable any"
"purpose": "any"
},
{
"src": "/static/icons/maskable_icon-48x48.png",
"sizes": "48x48",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "/static/icons/maskable_icon-72x72.png",
"sizes": "72x72",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "/static/icons/maskable_icon-96x96.png",
"sizes": "96x96",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "/static/icons/maskable_icon-128x128.png",
"sizes": "128x128",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "/static/icons/maskable_icon-192x192.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "/static/icons/maskable_icon-384x384.png",
"sizes": "384x384",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "/static/icons/maskable_icon-512x512.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable"
}
],
"lang": "en-US",

View File

@@ -1,3 +1,3 @@
self.addEventListener("fetch", function(event) {
self.addEventListener("fetch", (event) => {
event.respondWith(fetch(event.request));
});

View File

@@ -3,6 +3,15 @@ import { DemoConfig } from "../types";
export const demoEntitiesArsaboo: DemoConfig["entities"] = (localize) =>
convertEntities({
"todo.shopping_list": {
entity_id: "todo.shopping_list",
state: "2",
attributes: {
supported_features: 15,
friendly_name: "Shopping List",
icon: "mdi:cart",
},
},
"zone.home": {
entity_id: "zone.home",
state: "zoning",

View File

@@ -3,6 +3,15 @@ import { DemoConfig } from "../types";
export const demoEntitiesJimpower: DemoConfig["entities"] = () =>
convertEntities({
"todo.shopping_list": {
entity_id: "todo.shopping_list",
state: "2",
attributes: {
supported_features: 15,
friendly_name: "Shopping List",
icon: "mdi:cart",
},
},
"zone.powertec": {
entity_id: "zone.powertec",
state: "zoning",

View File

@@ -4,16 +4,11 @@ export const demoThemeJimpower = () => ({
"primary-color": "#5294E2",
"label-badge-red": "var(--accent-color)",
"paper-tabs-selection-bar-color": "green",
"paper-slider-knob-color": "var(--accent-color)",
"light-primary-color": "var(--accent-color)",
"primary-background-color": "#383C45",
"primary-text-color": "#FFFFFF",
"paper-item-selected_-_background-color": "#434954",
"paper-slider-active-color": "var(--accent-color)",
"secondary-background-color": "#383C45",
"paper-slider-container-color":
"linear-gradient(var(--primary-background-color), var(--secondary-background-color)) no-repeat",
"paper-slider-disabled-active-color": "var(--disabled-text-color)",
"disabled-text-color": "#7F848E",
"paper-item-icon_-_color": "green",
"paper-grey-200": "#414A59",
@@ -32,14 +27,10 @@ export const demoThemeJimpower = () => ({
"switch-unchecked-button-color": "var(--disabled-text-color)",
"label-badge-border-color": "green",
"paper-listbox-color": "var(--primary-color)",
"paper-slider-disabled-secondary-color": "var(--disabled-text-color)",
"card-background-color": "#434954",
"label-badge-text-color": "var(--primary-text-color)",
"paper-slider-knob-start-color": "var(--accent-color)",
"switch-unchecked-track-color": "var(--disabled-text-color)",
"dark-primary-color": "var(--accent-color)",
"paper-slider-secondary-color": "var(--secondary-background-color)",
"paper-slider-pin-color": "var(--accent-color)",
"paper-item-icon-active-color": "#F9C536",
"accent-color": "#E45E65",
"table-row-alternative-background-color": "#3E424B",

View File

@@ -3,6 +3,15 @@ import { DemoConfig } from "../types";
export const demoEntitiesKernehed: DemoConfig["entities"] = () =>
convertEntities({
"todo.shopping_list": {
entity_id: "todo.shopping_list",
state: "2",
attributes: {
supported_features: 15,
friendly_name: "Shopping List",
icon: "mdi:cart",
},
},
"zone.anna": {
entity_id: "zone.anna",
state: "zoning",

View File

@@ -5,17 +5,12 @@ export const demoThemeKernehed = () => ({
"primary-color": "#2980b9",
"label-badge-red": "var(--accent-color)",
"paper-tabs-selection-bar-color": "green",
"paper-slider-knob-color": "var(--accent-color)",
"primary-text-color": "#FFFFFF",
"light-primary-color": "var(--accent-color)",
"primary-background-color": "#222222",
"sidebar-icon-color": "#777777",
"paper-item-selected_-_background-color": "#292929",
"paper-slider-active-color": "var(--accent-color)",
"secondary-background-color": "#222222",
"paper-slider-container-color":
"linear-gradient(var(--primary-background-color), var(--secondary-background-color)) no-repeat",
"paper-slider-disabled-active-color": "var(--disabled-text-color)",
"disabled-text-color": "#777777",
"paper-item-icon_-_color": "green",
"paper-grey-200": "#222222",
@@ -33,14 +28,10 @@ export const demoThemeKernehed = () => ({
"switch-unchecked-button-color": "var(--disabled-text-color)",
"label-badge-border-color": "green",
"paper-listbox-color": "#777777",
"paper-slider-disabled-secondary-color": "var(--disabled-text-color)",
"card-background-color": "#292929",
"label-badge-text-color": "var(--primary-text-color)",
"paper-slider-knob-start-color": "var(--accent-color)",
"switch-unchecked-track-color": "var(--disabled-text-color)",
"dark-primary-color": "var(--accent-color)",
"paper-slider-secondary-color": "var(--secondary-background-color)",
"paper-slider-pin-color": "var(--accent-color)",
"paper-item-icon-active-color": "#b58e31",
"accent-color": "#2980b9",
"table-row-alternative-background-color": "#292929",

View File

@@ -3,6 +3,15 @@ import { DemoConfig } from "../types";
export const demoEntitiesTeachingbirds: DemoConfig["entities"] = () =>
convertEntities({
"todo.shopping_list": {
entity_id: "todo.shopping_list",
state: "2",
attributes: {
supported_features: 15,
friendly_name: "Shopping List",
icon: "mdi:cart",
},
},
"sensor.pollen_grabo": {
entity_id: "sensor.pollen_grabo",
state: "",

View File

@@ -220,7 +220,8 @@ export const demoLovelaceTeachingbirds: DemoConfig["lovelace"] = () => ({
state_filter: ["on"],
},
{
type: "shopping-list",
type: "todo-list",
entity: "todo.shopping_list",
},
{
entities: [

View File

@@ -1,6 +1,5 @@
export const demoThemeTeachingbirds = () => ({
"paper-card-header-color": "var(--paper-item-icon-color)",
"paper-slider-pin-color": "var(--primary-color)",
"paper-listbox-background-color": "#202020",
"paper-grey-50": "var(--primary-text-color)",
"paper-item-icon-color": "#d3d3d3",
@@ -8,8 +7,6 @@ export const demoThemeTeachingbirds = () => ({
"primary-color": "#389638",
"light-primary-color": "#6f956f",
"label-badge-red": "var(--primary-color)",
"paper-slider-secondary-color": "var(--light-primary-color)",
"paper-slider-knob-color": "var(--primary-color)",
"paper-listbox-color": "#FFFFFF",
"paper-toggle-button-checked-bar-color": "var(--light-primary-color)",
"switch-unchecked-track-color": "var(--primary-text-color)",
@@ -17,9 +14,7 @@ export const demoThemeTeachingbirds = () => ({
"label-badge-text-color": "var(--text-primary-color)",
"primary-background-color": "#303030",
"sidebar-icon-color": "var(--paper-item-icon-color)",
"paper-slider-active-color": "#d8bf50",
"secondary-background-color": "#2b2b2b",
"paper-slider-knob-start-color": "var(--primary-color)",
"paper-item-icon-active-color": "#d8bf50",
"switch-checked-color": "var(--primary-color)",
"secondary-text-color": "#389638",

View File

@@ -1,4 +1,4 @@
import "../../src/resources/ha-style";
import "../../src/resources/roboto";
import "../../src/resources/safari-14-attachshadow-patch";
import "./ha-demo";
import("../../src/resources/ha-style");

View File

@@ -22,7 +22,7 @@ import { mockLovelace } from "./stubs/lovelace";
import { mockMediaPlayer } from "./stubs/media_player";
import { mockPersistentNotification } from "./stubs/persistent_notification";
import { mockRecorder } from "./stubs/recorder";
import { mockShoppingList } from "./stubs/shopping_list";
import { mockTodo } from "./stubs/todo";
import { mockSystemLog } from "./stubs/system_log";
import { mockTemplate } from "./stubs/template";
import { mockTranslations } from "./stubs/translations";
@@ -49,7 +49,7 @@ export class HaDemo extends HomeAssistantAppEl {
mockTranslations(hass);
mockHistory(hass);
mockRecorder(hass);
mockShoppingList(hass);
mockTodo(hass);
mockSystemLog(hass);
mockTemplate(hass);
mockEvents(hass);

View File

@@ -0,0 +1,26 @@
<meta property="fb:app_id" content="338291289691179" />
<meta property="og:title" content="Home Assistant Demo" />
<meta property="og:site_name" content="Home Assistant" />
<meta property="og:url" content="https://demo.home-assistant.io/" />
<meta property="og:type" content="website" />
<meta
property="og:description"
content="Open source home automation that puts local control and privacy first."
/>
<meta
property="og:image"
content="https://www.home-assistant.io/images/default-social.png"
/>
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@home_assistant" />
<meta name="twitter:title" content="Home Assistant" />
<meta
name="twitter:description"
content="Open source home automation that puts local control and privacy first."
/>
<meta
name="twitter:image"
content="https://www.home-assistant.io/images/default-social.png"
/>

File diff suppressed because one or more lines are too long

View File

@@ -1,20 +1,18 @@
import { MockHomeAssistant } from "../../../src/fake_data/provide_hass";
export const mockConfigEntries = (hass: MockHomeAssistant) => {
hass.mockWS("config_entries/get", () => [
{
entry_id: "co2signal",
domain: "co2signal",
title: "CO2 Signal",
source: "user",
state: "loaded",
supports_options: false,
supports_remove_device: false,
supports_unload: true,
pref_disable_new_entities: false,
pref_disable_polling: false,
disabled_by: null,
reason: null,
},
]);
hass.mockWS("config_entries/get", () => ({
entry_id: "co2signal",
domain: "co2signal",
title: "Electricity Maps",
source: "user",
state: "loaded",
supports_options: false,
supports_remove_device: false,
supports_unload: true,
pref_disable_new_entities: false,
pref_disable_polling: false,
disabled_by: null,
reason: null,
}));
};

View File

@@ -1,16 +1,20 @@
import { PersistentNotification } from "../../../src/data/persistent_notification";
import { PersistentNotificationMessage } from "../../../src/data/persistent_notification";
import { MockHomeAssistant } from "../../../src/fake_data/provide_hass";
export const mockPersistentNotification = (hass: MockHomeAssistant) => {
hass.mockWS("persistent_notification/get", () =>
Promise.resolve([
{
created_at: new Date().toISOString(),
message: "There was motion detected in the backyard.",
notification_id: "demo-1",
title: "Motion Detected!",
status: "unread",
hass.mockWS("persistent_notification/subscribe", (_msg, _hass, onChange) => {
onChange!({
type: "added",
notifications: {
"demo-1": {
created_at: new Date().toISOString(),
message: "There was motion detected in the backyard.",
notification_id: "demo-1",
title: "Motion Detected!",
status: "unread",
},
},
] as PersistentNotification[])
);
} as PersistentNotificationMessage);
return () => {};
});
};

View File

@@ -72,6 +72,7 @@ const generateSumStatistics = (
min: null,
max: null,
last_reset: 0,
change: add,
state: initValue + sum,
sum,
});
@@ -103,8 +104,8 @@ const generateCurvedStatistics = (
let half = false;
const now = new Date();
while (end > currentDate && currentDate < now) {
const add = Math.random() * maxDiff;
sum += i * add;
const add = i * (Math.random() * maxDiff);
sum += add;
statistics.push({
start: currentDate.getTime(),
end: currentDate.getTime(),
@@ -112,6 +113,7 @@ const generateCurvedStatistics = (
min: null,
max: null,
last_reset: 0,
change: add,
state: initValue + sum,
sum: metered ? sum : null,
});

View File

@@ -1,44 +0,0 @@
import { ShoppingListItem } from "../../../src/data/shopping-list";
import { MockHomeAssistant } from "../../../src/fake_data/provide_hass";
let items: ShoppingListItem[] = [
{
id: 12,
name: "Milk",
complete: false,
},
{
id: 13,
name: "Eggs",
complete: false,
},
{
id: 14,
name: "Oranges",
complete: true,
},
];
export const mockShoppingList = (hass: MockHomeAssistant) => {
hass.mockWS("shopping_list/items", () => items);
hass.mockWS("shopping_list/items/add", (msg) => {
const item: ShoppingListItem = {
id: new Date().getTime(),
complete: false,
name: msg.name,
};
items.push(item);
hass.mockEvent("shopping_list_updated");
return item;
});
hass.mockWS("shopping_list/items/update", ({ type, item_id, ...updates }) => {
items = items.map((item) =>
item.id === item_id ? { ...item, ...updates } : item
);
hass.mockEvent("shopping_list_updated");
});
hass.mockWS("shopping_list/items/clear", () => {
items = items.filter((item) => !item.complete);
hass.mockEvent("shopping_list_updated");
});
};

24
demo/src/stubs/todo.ts Normal file
View File

@@ -0,0 +1,24 @@
import { TodoItem, TodoItemStatus } from "../../../src/data/todo";
import { MockHomeAssistant } from "../../../src/fake_data/provide_hass";
export const mockTodo = (hass: MockHomeAssistant) => {
hass.mockWS("todo/item/list", () => ({
items: [
{
uid: "12",
summary: "Milk",
status: TodoItemStatus.NeedsAction,
},
{
uid: "13",
summary: "Eggs",
status: TodoItemStatus.NeedsAction,
},
{
uid: "14",
summary: "Oranges",
status: TodoItemStatus.Completed,
},
] as TodoItem[],
}));
};

View File

@@ -0,0 +1,4 @@
# Note!
Note, the assets in this folder, are not part of the CC license this repository is shipped in.
All rights reserved.

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -45,6 +45,10 @@ export default [
header: "Users",
pages: ["user-types", "configuration-menu"],
},
{
category: "date-time",
header: "Date and Time",
},
{
category: "design.home-assistant.io",
header: "About",

View File

@@ -1,4 +1,3 @@
import "@polymer/app-layout/app-toolbar/app-toolbar";
import { html, css, LitElement } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { applyThemesOnElement } from "../../../src/common/dom/apply_themes_on_element";
@@ -7,6 +6,7 @@ import "../../../src/components/ha-switch";
import { HomeAssistant } from "../../../src/types";
import "./demo-card";
import type { DemoCardConfig } from "./demo-card";
import "../ha-demo-options";
@customElement("demo-cards")
class DemoCards extends LitElement {
@@ -20,20 +20,14 @@ class DemoCards extends LitElement {
render() {
return html`
<app-toolbar>
<div class="filters">
<ha-formfield label="Show config">
<ha-switch
.checked=${this._showConfig}
@change=${this._showConfigToggled}
>
</ha-switch>
</ha-formfield>
<ha-formfield label="Dark theme">
<ha-switch @change=${this._darkThemeToggled}> </ha-switch>
</ha-formfield>
</div>
</app-toolbar>
<ha-demo-options>
<ha-formfield label="Show config">
<ha-switch @change=${this._showConfigToggled}> </ha-switch>
</ha-formfield>
<ha-formfield label="Dark theme">
<ha-switch @change=${this._darkThemeToggled}> </ha-switch>
</ha-formfield>
</ha-demo-options>
<div id="container">
<div class="cards">
${this.configs.map(
@@ -69,12 +63,6 @@ class DemoCards extends LitElement {
demo-card {
margin: 16px 16px 32px;
}
app-toolbar {
background-color: var(--light-primary-color);
}
.filters {
margin-left: 60px;
}
ha-formfield {
margin-right: 16px;
}

View File

@@ -1,93 +0,0 @@
import { html } from "@polymer/polymer/lib/utils/html-tag";
/* eslint-plugin-disable lit */
import { PolymerElement } from "@polymer/polymer/polymer-element";
import "../../../src/components/ha-card";
import "../../../src/dialogs/more-info/more-info-content";
import "../../../src/state-summary/state-card-content";
class DemoMoreInfo extends PolymerElement {
static get template() {
return html`
<style>
.root {
display: flex;
}
#card {
max-width: 400px;
width: 100vw;
}
ha-card {
width: 352px;
padding: 20px 24px;
}
state-card-content {
display: block;
margin-bottom: 16px;
}
pre {
width: 400px;
margin: 0 16px;
overflow: auto;
color: var(--primary-text-color);
}
@media only screen and (max-width: 800px) {
.root {
flex-direction: column;
}
pre {
margin: 16px 0;
}
}
</style>
<div class="root">
<div id="card">
<ha-card>
<state-card-content
state-obj="[[_stateObj]]"
hass="[[hass]]"
in-dialog
></state-card-content>
<more-info-content
hass="[[hass]]"
state-obj="[[_stateObj]]"
></more-info-content>
</ha-card>
</div>
<template is="dom-if" if="[[showConfig]]">
<pre>[[_jsonEntity(_stateObj)]]</pre>
</template>
</div>
`;
}
static get properties() {
return {
hass: Object,
entityId: String,
showConfig: Boolean,
_stateObj: {
type: Object,
computed: "_getState(entityId, hass.states)",
},
};
}
_getState(entityId, states) {
return states[entityId];
}
_jsonEntity(stateObj) {
// We are caching some things on stateObj
// (it sucks, we will remove in the future)
const tmp = {};
Object.keys(stateObj).forEach((key) => {
if (key[0] !== "_") {
tmp[key] = stateObj[key];
}
});
return JSON.stringify(tmp, null, 2);
}
}
customElements.define("demo-more-info", DemoMoreInfo);

View File

@@ -0,0 +1,93 @@
import { LitElement, css, html } 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 { HomeAssistant } from "../../../src/types";
@customElement("demo-more-info")
class DemoMoreInfo extends LitElement {
@property() public hass!: HomeAssistant;
@property() public entityId!: string;
@property() public showConfig!: boolean;
render() {
const state = this._getState(this.entityId, this.hass.states);
return html`
<div class="root">
<div id="card">
<ha-card>
<state-card-content
.stateObj=${state}
.hass=${this.hass}
in-dialog
></state-card-content>
<more-info-content
.hass=${this.hass}
.stateObj=${state}
></more-info-content>
</ha-card>
</div>
${this.showConfig ? html`<pre>${this._jsonEntity(state)}</pre>` : ""}
</div>
`;
}
private _getState(entityId, states) {
return states[entityId];
}
private _jsonEntity(stateObj) {
// We are caching some things on stateObj
// (it sucks, we will remove in the future)
const tmp = {};
Object.keys(stateObj).forEach((key) => {
if (key[0] !== "_") {
tmp[key] = stateObj[key];
}
});
return JSON.stringify(tmp, null, 2);
}
static styles = css`
.root {
display: flex;
}
#card {
max-width: 400px;
width: 100vw;
}
ha-card {
width: 352px;
padding: 20px 24px;
}
state-card-content {
display: block;
margin-bottom: 16px;
}
pre {
width: 400px;
margin: 0 16px;
overflow: auto;
color: var(--primary-text-color);
}
@media only screen and (max-width: 800px) {
.root {
flex-direction: column;
}
pre {
margin: 16px 0;
}
}
`;
}
declare global {
interface HTMLElementTagNameMap {
"demo-more-info": DemoMoreInfo;
}
}

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