What's Changed
- Add automation behavior selector (#30322) @bramkragten
- Automations: Flatten triggers/conditions list in pickers (#51785) @wendevlin
- Fix errors loading the demo site (#51695) @TCWORLD
- Remove domain prefix from actions (#51278) @bramkragten
- config-flow: rename "Device created" heading to "Name and assign" (#51782) @marcinbauer-ohf
- Redesign automation row indicators (#51737) @wendevlin
- Add Ctrl/Cmd+Click legend solo shortcut to shortcuts dialog (#51781) @marcinbauer-ohf
- Open more-info from energy devices detail graph legend (#51778) @MindFreeze
- Fix duplicate ha-panel-custom on first mount (#51779) @MindFreeze
- hui-gauge-card: fix displayed value & unit (#51751) @ildar170975
- Check for unknown value every render if value is unknown (#51760) @bramkragten
- Dev tools -> Template: align buttons (#51775) @ildar170975
- Add UPTIME sensor device class (#51716) @chemelli74
- Media player more info add controls tooltips (#51765) @wendevlin
- Copy new automation trace picker for scripts (#51776) @karwosts
- Don't just check system domains, for usage, but any domain (#51746) @bramkragten
- feat: Split legend interaction (click vs label) with hover effects (#28517) @joepio
- Use full width name field for heading badge editor (#51769) @piitaya
- Reorder built-in summaries and custom shortcuts in one list (#51763) @piitaya
- Add recommended ports to serial selector (#51773) @puddly
- Dev tools -> Templates: add ha-scrollbar to render-pane (#51770) @ildar170975
- Add input number unit picker (#51768) @wendevlin
- Revert global change from tooltip PR (#51766) @piitaya
- Fix capitalisation of integration on system log detail (#51762) @timmo001
- Show all the power buttons when media player is in assumed state (#51740) @balloob
- Add color and current temperature options to forecast features (#51761) @MindFreeze
- Add precipitation visualization to forecast tile features (#51733) @MindFreeze
- Simplify and fix target entity count (#51739) @wendevlin
- Modified the chart legend for climate temperature data sets (#51719) @arcsur
- Fix ha-panel-custom not restoring after suspendWhenHidden disconnect (#51727) @mwolter805
- Fix target picker secondary entities support (#51729) @wendevlin
- Change media browser player to generic picker component (#51734) @timmo001
- Dialogs: call "enlarge" on a wider area (#51750) @ildar170975
- More detailed trace selector via generic-picker (#51752) @karwosts
- Improve debug callWs logs (#51741) @wendevlin
- Use current entity in state card conditions (#51708) @piitaya
- Toast location RTL fix (#51735) @yosilevy
- Automation editor: Fix no target set in some actions (#51642) @wendevlin
- Add entity context to media browser player picker (#51732) @jlpouffier
- Add attribute support for numeric state and state (#51706) @piitaya
- Add floor/area: Replace popover with dropdown (#51730) @wendevlin
- Stabilize more-info group rendering (#51725) @karwosts
- Minimize Sankey flow crossings with barycenter sort (#51682) @MindFreeze
- Refactor home panel editor (#51701) @piitaya
- Drop eslint-config-airbnb-base and cherry-pick rules (#51627) @loganrosen
- Add radio_frequency domain entity platform (#51693) @balloob
- Use control switch for entity toggle (#51654) @wendevlin
- Home dashboard: enable/disable entities suggestion (#51407) @pcan08
- Target picker respect primaryEntitiesOnly from selector (#51677) @wendevlin
- Update webawesome to 3.3.1-ha.1 (#51697) @wendevlin
- respect rtl in ha-control-slider (#51691) @wendevlin
- Move Event received trigger to generic category in picker (#51675) @MindFreeze
- Add daily forecast card feature (#51637) @MindFreeze
- Adaptive popover, add to set date card feature (#51650) @timmo001
- Remove resources from hass object (#51676) @MindFreeze
- Improve serial proxies look in serial port selector (#51673) @balloob
- Upgrade @rspack/core and @rspack/dev-server to v2 (#51674) @MindFreeze
- Extract consumeStateObj / consumeEntityRegistryEntry decorators (#51652) @MindFreeze
- Add activity log sidebar to security dashboard (#29901) @balloob
- Fix sidebar layout to ensure all options are visible on mobile browsers (#51672) @joaopalmeiro
- hui-dialog-edit-card: independent scrollbars (#29648) @ildar170975
- Improve typing on lifestyle functions for changed props (5/5) (#51669) @timmo001
- Improve typing on lifestyle functions for changed props (3/5) (#51667) @timmo001
- Improve typing on lifestyle functions for changed props (2/5) (#51665) @timmo001
- Update name and look and feel of Serial Port Selector (#51655) @balloob
- Improve typing on lifestyle functions for changed props (4/5) (#51668) @timmo001
- Improve typing on lifestyle functions for changed props (1/5) (#51664) @timmo001
- Consider entity precision in adjust-sum dialog (#51659) @karwosts
- Stop keydown events propagating from ha-textarea (#51661) @karwosts
- Fix focus ring for HaFilterChip (#51657) @joaopalmeiro
- Add show_entity_picture option to picture-entity card (#51553) @DTekNOdev
- Use home-assistant.io/socials (#51649) @wendevlin
- Add paste above/below buttons in automation editor (#51495) @MikeDev96
- Add missing actions permission to stale workflow (#51638) @timmo001
- Fix supervisor My redirects for Container installs (#51645) @agners
- Remove dead /hassio URL references (#51643) @agners
- Fix section config not propagating to layout element (#51640) @piitaya
- Automation add TCA: Auto-expand single floor values (#51639) @wendevlin
- Support scrolling on heading cards (#51567) @timmo001
- Tooltip cleanup for sidebar and new surface tokens (#30386) @marcinbauer-ohf
- ha-switch webawesome (#51507) @wendevlin
- Allow for decimals in cover and valve favorites (#51633) @timmo001
- Fix inconsistency with template binary sensors (#51486) @timmo001
- Add apps group to navigation picker with all web UI addons (#51572) @balloob
- Allow disabling the maintenance summary from the home editor (#51622) @balloob
- Remove core-only development checklist from PR template (#51624) @loganrosen
- Add config sub-routes to navigation picker (#51597) @balloob
- Add ESPHome logo (#51598) @balloob
- Add per-section theme support (#29745) @DTekNOdev
- Add serial selector to initial form data (#51595) @balloob
- Redesign lawn mower more info dialog (#51596) @piitaya
- Add hourly forecast card feature for weather entities (#51594) @MindFreeze
- Redesign vacuum more info dialog (#51380) @piitaya
- Support suggested name and icon for dashboards, add to map (#51592) @timmo001
- Refactor weather forecast card to scroll (#51580) @timmo001
- Device and browser environment for debug tools (#51568) @timmo001
- ha-checkbox with webawesome (#51581) @wendevlin
- Add SerialSelector (#51573) @balloob
- Add custom pages summaries (#51506) @balloob
- Offset toast position, apply for automation/script editor (#51575) @timmo001
- Resolve add-on name and icon for shortcut card /app/ navigation (#51587) @balloob
- Correct statistic graph chart types to sentence case (#51579) @TCWORLD
- Add Music Assistant icon (#51586) @balloob
- Add shortcut badge (#51569) @piitaya
- Add grab cursor to more info weather forecast (#51582) @timmo001
- Increase height of HAInputSearch (#51576) @TimoPtr
- Add shortcut card (#51562) @piitaya
- Fix entity ID orientation in device editor (#51560) @yosilevy
- Make picture elements editor sortable (#51563) @karwosts
- Add stacked chart types to Statistics Graph Card (#51530) @TCWORLD
- Adjust outlier detection algorithm when partial 5minute data exists (#51561) @karwosts
- Add controls option to media player playback card feature (#30338) @MindFreeze
- Remove invalid dependabot cooldown option (#51558) @MindFreeze
- Combine all entity modes card feature editors with shared base class (#51543) @timmo001
- Improve code editors (#51555) @bramkragten
- Fix date picker header (#51552) @yosilevy
- Make dialog title a semantic heading element (#51521) @JamesFromIT
- Enhance sun condition automation: add 'between' option and improve duration formatting (#51502) @wendevlin
- Register custom dashboard strategies (#51310) @timmo001
- Add shared editor for all more info hints, add lights (#51542) @timmo001
- Make history page title a semantic heading (#51527) @JamesFromIT
- Improve box shadow design tokens with multi-layer shadows (#51378) @piitaya
- Make media management dialog heading a semantic heading element (#51522) @JamesFromIT
- Make media browser tab title a semantic heading element (#51528) @JamesFromIT
- Fix: Center more-info-media_player component volume buttons (#51517) @wh0am1-dev
- Use header-subtitle in dialog-edit-home (#51525) @pcan08
- Hide internal panels from navigation picker (#51497) @balloob
- Add error handling for backup creation failures (#51520) @balloob
- Add link to UX design in issue template (#51503) @timmo001
- Add context groups (#51471) @wendevlin
- Ignore local opencode directory (#51504) @timmo001
- Fix duplicate "Add custom path" entry in navigation picker (#51496) @balloob
- Home dashboard: show hide welcome message header (#51401) @pcan08
- Refactor integration page to build device/sub-entry tree in parent (#51374) @piitaya
- Use fieldname as fallback instead of trigger/condition (#51474) @bramkragten
- Remove unused deps (#51473) @bramkragten
- Rename "Registries" menu entry to "Registry credentials" (#51469) @agners
- Remove extra "Community:" prefix for add badge dialog (#51465) @timmo001
- Add links to logs in integration page (#51463) @timmo001
- Add apps info page for non-HAOS installations (#30364) @mishasyrbu
- Introduce ha-progress-bar (#51453) @wendevlin
- Center energy dashboard bar charts on period midpoint (#30325) @MindFreeze
- Fix time condition summary using "and" instead of "or" for midnight-crossing ranges (#51452) @MindFreeze
- Fix incorrect timezone in automation time trigger/condition descriptions (#51454) @MindFreeze
- Allow customizing initial map view with latitude, longitude, and zoom (#51444) @MindFreeze
- Remove fab (#51448) @wendevlin
- Restore custom wording for integrations (#51440) @timmo001
- Use script field name if available in row instead of key (#51445) @timmo001
- Use websocket subscription for calendar events (#27906) @MindFreeze
- Focus scrollable content on load for data tables (#51372) @timmo001
- Fix iOS long-press context menu showing on images (#9549) (#51432) @ellegamee
- Update eslint to v10.1.0 (#51352) @MindFreeze
- Renamed manage lock added graceful degregation (#51293) @Ahbrown41
- Add Maintenance summary card and dashboard (#30372) @Brookke
- Add Last 365 Days option to energy date selection (#51426) @TCWORLD
- Update custom to community for user facing integrations, cards and badges (#51368) @timmo001
- Migrate ha-textarea (#51377) @wendevlin
- Focus scrollable content on load for integrations (#51379) @timmo001
- Add loading state to energy dashboard (#51392) @erwindouna
- Z-Wave rebuild routes add detail progress (#51361) @wendevlin
- Remove advanced mode requirement reloading config (#51366) @timmo001
- Remove advanced mode for dashboard url path creation (#51364) @timmo001
- Remove advanced mode requirement for manage resources link (#51363) @timmo001
- Remove advanced mode requirement for hardware data table (#51362) @timmo001
- Rename "Manual event" trigger and action to clarify (#51358) @NoRi2909
- Rename "Custom cards" to "Community cards" (#51312) @Copilot
- No longer take the first action when no action is selected (#51341) @silamon
- Create shared select card feature base class (#51333) @timmo001
- Add customizable dismiss label to ha-alert component (#51337) @MindFreeze
- Use view columns visibility condition in strategies (#51323) @piitaya
- Use localized string for empty logbook entries in trace view (#51324) @MindFreeze
- Add view columns visibility condition (#51288) @piitaya
- Migrate all from ha-textfield to ha-input (#30349) @wendevlin
- Add due_date_period to todo UI, create period selector (#51263) @karwosts
Dependency updates
60 changes
- Update dependency @rspack/dev-server to v2.0.1 (#51764) @[renovate[bot]](https://github.com/apps/renovate)
- Bump brace-expansion from 1.1.12 to 1.1.14 (#51753) @[dependabot[bot]](https://github.com/apps/dependabot)
- Update formatjs monorepo (#51747) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency terser-webpack-plugin to v5.5.0 (#51728) @[renovate[bot]](https://github.com/apps/renovate)
- Bump actions/setup-node from 6.3.0 to 6.4.0 (#51722) @[dependabot[bot]](https://github.com/apps/dependabot)
- Bump github/codeql-action from 4.35.1 to 4.35.2 (#51721) @[dependabot[bot]](https://github.com/apps/dependabot)
- Bump actions/cache from 5.0.4 to 5.0.5 (#51720) @[dependabot[bot]](https://github.com/apps/dependabot)
- Bump vite from 8.0.2 to 8.0.9 (#51707) @[dependabot[bot]](https://github.com/apps/dependabot)
- Update dependency @codemirror/search to v6.7.0 (#51704) @[renovate[bot]](https://github.com/apps/renovate)
- Update vitest monorepo to v4.1.5 (#51703) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency typescript-eslint to v8.59.0 (#51694) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency lodash.template to v4.18.0 [SECURITY] (#51348) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency @codemirror/view to v6.41.1 (#51660) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency marked to v18.0.2 (#51653) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency eslint to v10.2.1 (#51648) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency @rsdoctor/rspack-plugin to v1.5.9 (#51636) @[renovate[bot]](https://github.com/apps/renovate)
- Update Yarn to v4.14.1 (#51631) @[renovate[bot]](https://github.com/apps/renovate)
- Update formatjs monorepo (#51601) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency marked to v18.0.1 (#51630) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency typescript to v6.0.3 (#51628) @[renovate[bot]](https://github.com/apps/renovate)
- Update Yarn to v4.14.0 (#51621) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency @codemirror/lang-jinja to v6.0.1 (#51618) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency @bundle-stats/plugin-webpack-filter to v4.22.1 (#51610) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency prettier to v3.8.3 (#51611) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency @rsdoctor/rspack-plugin to v1.5.8 (#51605) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency hls.js to v1.6.16 (#51599) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency typescript-eslint to v8.58.2 (#51600) @[renovate[bot]](https://github.com/apps/renovate)
- Update Node.js to v24.15.0 (#51590) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency globals to v17.5.0 (#51574) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency sinon to v21.1.2 (#51571) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency sinon to v21.1.1 (#51557) @[renovate[bot]](https://github.com/apps/renovate)
- Bump actions/github-script from 8.0.0 to 9.0.0 (#51539) @[dependabot[bot]](https://github.com/apps/dependabot)
- Bump home-assistant/actions from 5752577ea7cc5aefb064b0b21432f18fe4d6ba90 to f6f29a7ee3fa0eccadf3620a7b9ee00ab54ec03b (#51535) @[dependabot[bot]](https://github.com/apps/dependabot)
- Bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0 (#51537) @[dependabot[bot]](https://github.com/apps/dependabot)
- Bump actions/upload-artifact from 7.0.0 to 7.0.1 (#51538) @[dependabot[bot]](https://github.com/apps/dependabot)
- Bump release-drafter/release-drafter from 7.1.1 to 7.2.0 (#51536) @[dependabot[bot]](https://github.com/apps/dependabot)
- Update dependency sinon to v21.1.0 (#51529) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency prettier to v3.8.2 (#51534) @[renovate[bot]](https://github.com/apps/renovate)
- Update vitest monorepo to v4.1.4 (#51524) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency typescript-eslint to v8.58.1 (#51514) @[renovate[bot]](https://github.com/apps/renovate)
- Update vitest monorepo to v4.1.3 (#51505) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency marked to v18 (#51499) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency jsdom to v29.0.2 (#51498) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency browserslist-useragent-regexp to v4.1.4 (#51470) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency @html-eslint/eslint-plugin to v0.59.0 (#51464) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency marked to v17.0.6 (#51460) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency fuse.js to v7.3.0 (#51457) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency @eslint/eslintrc to v3.3.5 (#51436) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency eslint to v10.2.0 (#51437) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency @types/chromecast-caf-receiver to v6.0.26 (#51431) @[renovate[bot]](https://github.com/apps/renovate)
- Bump home-assistant/actions from d56d093b9ab8d2105bc0cb6ee9bcc0ef4ec8b96d to 5752577ea7cc5aefb064b0b21432f18fe4d6ba90 (#51430) @[dependabot[bot]](https://github.com/apps/dependabot)
- Update dependency eslint-import-resolver-webpack to v0.13.11 (#51424) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency @swc/helpers to v0.5.21 (#51429) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency fuse.js to v7.2.0 (#51428) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency barcode-detector to v3.1.2 (#51417) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency @codemirror/view to v6.41.0 (#51416) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency @rsdoctor/rspack-plugin to v1.5.7 (#51398) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency @rspack/core to v1.7.11 (#51397) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency @rsdoctor/rspack-plugin to v1.5.6 (#51375) @[renovate[bot]](https://github.com/apps/renovate)
- Update dependency typescript to v6 (#30363) @[renovate[bot]](https://github.com/apps/renovate)
Full Changelog: 20260325.5...20260429.0