* Add search highlight to ZHA graph
* Move logic upstream and extend search to zwave and bluetooth
* Move search down to avoid collisions with graph legend
* Fix mobile; simplify code
* Apply highlights directly on search callback
* Revert "Move search down to avoid collisions with graph legend"
This reverts commit 4578aec9c3.
* Move legend down
* Make search bar shrink to avoid overlapping buttons
* Move search bar to topbar on mobile
* Fix inset
* Fix small controlls position
* Apply suggestion from @MindFreeze
---------
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* Add device area column to ZHA data table
Add a device area column to the ZHA data table, which most notably adds
the column to the "create [ZigBee] group" view".
The column is only show on wider screens to allow for ordering, whilst
narrower screens will show the area as a subtitle to the device's name.
* Localize the ZHA group data table
* fixup! Add device area column to ZHA data table
* fixup! Localize the ZHA group data table
* Added a todo-list card option "days_to_show" to filter tasks far in the future (#24020)
* Adjusted min and 0 values as suggested in PR
* Adjusted as suggested in review
* Switched from days_to_show to period (calendar only for now) as suggested
* removed days_to_show from editor UI
* fixed lint error
* Fixed code style with prettier
* fix filtering
* Update filtering period options
* Update src/panels/lovelace/editor/config-elements/hui-todo-list-editor.ts
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* Apply suggestion from @MindFreeze
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* prettier/lint
* fix memoization, items without status
* no rolling window
* refresh on date change
* Show dialog on create when using due_date filter
---------
Co-authored-by: cpetry <petry2christian@gmail.com>
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* Refactor lovelace view lifecycle to avoid unnecessary DOM rebuilds
- Remove `force` flag from `hui-root` that was clearing the entire view
cache and destroying all cached view DOM on any config change. Views
now receive updated lovelace in place and handle config changes
internally.
- Add `_cleanupViewCache` to remove stale cache entries when views are
added, removed, or reordered.
- Remove `@ll-rebuild` handler from `hui-root`. Cards and badges already
handle `ll-rebuild` via their `hui-card`/`hui-badge` wrappers. Sections
now always stop propagation and rebuild locally.
- Add `deepEqual` guard in `hui-view._setConfig` and
`hui-section._initializeConfig` to skip re-rendering when strategy
regeneration produces an identical config.
- Simplify `hui-view` refresh flow: remove `_refreshConfig`,
`_rendered` flag, `strategy-config-changed` event, and
connected/disconnected callbacks. Registry changes now debounce
directly into `_initializeConfig`.
- Fix `isStrategy` check in `hui-view._initializeConfig` to use the raw
config (before strategy expansion) rather than the generated config.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Remove unused type
* Improve viewCache cleanup
* clean up
* Handle custom view re-creation
* Fix custom view loading
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* Migrate ha-multi-textfield to ha-input-multi and update ha-selector-text to use new input components
* Review
* Update src/components/input/ha-input-multi.ts
---------
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
Fix water/gas badge when rate is 0
If there is only one flow rate sensor, and it has a value <=0, the badge would be displayed without a unit because the sensor gets skipped.
Instead of skipping <=0 values, continue to process sensor, but clamp the value to a minimum of 0. This ensures for single sensors we have a unit, and for multiple sensors the chosen unit is consistent even if the first sensor value drops to zero.
* Use same now() time for all entity state values
Otherwise if there is a slight time lag while each statistic is processed, some of the points go missing from the tooltip. There end up being to very closely spaced time points for each different entity.
* Fix initial statistics graph card metadata loading
When using energy collection mode, the metadata for statistic entities was not always being loaded when the charts were first created. This could be seen in the graph units when they had differing unit (e.g. kW and W mixed).
* Re-create form editor when schema changes in hui-form-element-editor
When a parent component passes a new schema to hui-form-element-editor
(e.g. with updated disabled flags after an entity change), the internal
hui-form-editor was not rebuilt because loadConfigElement() short-circuits
once the config element exists. This meant dynamic schema changes were
silently ignored.
Override updated() to detect schema changes after initial load, tear down
the stale config element via unloadConfigElement(), and re-set the value
so the normal load path recreates the form with the current schema.
Fixes#29776
* Fix prettier formatting in hui-map-card.ts
Pre-existing formatting issue on dev branch.
* Propagate schema changes to existing form editor element
When the schema property on hui-form-element-editor changes (e.g. because
the selected entity changed and disabled flags need updating), directly
update the schema on the already-created hui-form-editor config element.
Previously, unloadConfigElement() was tried but caused a visible flash
(editor going blank then reappearing), and re-setting value with a spread
object was tried but deepEqual considers it unchanged, short-circuiting
the reload.
The fix is minimal: make _configElement protected in HuiElementEditor so
the subclass can reach it, then in the updated() hook push the new schema
directly onto the existing element — no teardown, no re-creation.
* Convert energy panel to use a dashboard strategy
Move the view-selection logic from ha-panel-energy into a dedicated
energy dashboard strategy, consistent with how home/areas/map dashboards
work. The strategy decides which view strategies (electricity, gas,
water, power, overview) to show based on energy preferences.
Extract shared constants into a separate module to avoid circular
dependencies between the panel and view strategies.
* Remove unused energy collection constants from ha-panel-energy
* date-range-picker with cally
* fix timePicker
* Review: backdrop transition
* fix comments
* Add formatCallyDateRange
* Refactor date formatting in date range picker and remove unused styles
* time-input without label
* review
* Use isExternalStatistic helper for consistency
* Remove redundant if condition
We have `band = drawBands && ...`, so there is no point checking if `drawBands` is true inside `if (band && ...)`.
* Skip plotting state value on statistic graph if units mismatch
For example plotting a *F sensor on a *C chart - statistic data will be converted to *C, but the state value will still be in *F so the displayed point is wrong. Similarly if plotting a kW sensor on a W chart, the same is true - statistics get converted to W by recorder, but the state value would still be in kW. In other words the plotted state point is complete nonsense.
If the units of the statistic state don't match the units of the graph, we should not be displaying the value on the graph.
* Remove redundant this.unit check
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
---------
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* Refactor device entities card to use Lit directive for entity rows
Replace the imperative pattern (shouldUpdate hack, _entityRows array,
_renderEntity pushing elements) with a declarative approach using a
reusable Lit directive and repeat for stable keying.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Fix function name and padding issue
* Recreate on domain change, otherwise update
* Prettier
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* Add entity name alias toggle and drag-to-reorder aliases in voice settings
* Fix reorder
* Update src/panels/config/voice-assistants/entity-voice-settings.ts
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* Use map instead of repeat
* Improve key
---------
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* Add scrollbar support for cards with fixed grid row height
* Fix default sizing
* Add warning for card that doesn't support resizing well
* Remove not used explanation
* Preserve entity unit_of_measurement in gas and water flow rate badges
The gas and water total badges on the energy dashboard Now tab previously
converted all flow rate values to L/min and then formatted them as either
L/min or gal/min based on the unit system. This meant entities reporting
in m³/h or other units always displayed incorrectly.
Now the badges preserve the unit_of_measurement from the entities. If all
entities share the same unit, the raw values are summed directly. If they
differ, values are converted through L/min as an intermediate and displayed
in the first entity's unit.
* Extract shared computeTotalFlowRate to energy.ts
* Rescale Y-axis on chart zoom via custom AxisProxy filterMode
Patch ECharts' AxisProxy.filterData to support a "boundaryFilter" mode
that keeps the nearest data point outside each zoom boundary while
filtering distant points. This lets ECharts natively rescale the Y-axis
to the visible data range without causing line gaps at the zoom edges.
* Add tests for ECharts AxisProxy patch internals
Verify that the ECharts internals our boundaryFilter patch relies on
still exist (filterData, getTargetSeriesModels on AxisProxy prototype),
and test the patch behavior: delegation for other filterModes, early
return for non-matching models, and correct boundary-preserving filtering.
* Update comment
* Make favorites UI reusable
* Setup cover favorites
* Fix
* Make generic
* Remove
* Move
* Add type for keys
* Remove
* Move
* Types
* Types
* Changes for tilt position
* Cleanup
* Add missing options
* Replace cover preset features with favorites features
Editor points to more info instead of allowing cusomisation of feature
* Fix drag
* Remove learn more
* Add domains with favorites shared data
* Support recent additions: reset and copy favorites
* Move favorites logic into new file, futureproof for new domains
* Await all
* Refactor
* Use copy for primary action
* Allow empty lists
* Rename
* Use better ally labels
* Move favorites options above and use divider
* Move
* Use proper DOM types
* Use proper type
* Use proper types
* Cleanup
* Type from param
* Center align label
* Only show labels if both show
* Switch date picker to cally calendar-date
* Remove app-datepicker styles from date picker dialog
Clean up unused CSS overrides in ha-dialog-date-picker.
Remove custom properties, focus/body rules, and responsive media
queries for app-datepicker and calendar-date so the component uses
upstream defaults and avoids duplicate styling
* Review
* Apply suggestion from @MindFreeze
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* Fix date parsing in HaDialogDatePicker to handle ISO string format
* Update src/components/ha-dialog-date-picker.ts
---------
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* Remove filter for unstable app stages
* Show stage in app store repository view
* Increase size of cards to accomadate badges
* Add stage to installed apps, update style
* Make "Search" consistent, "Search apps" not needed in this context
* Remove show advanced mode logic for app visibility
* Add margin to .addition
* Remove [deprecated] from app page title also
* Use common helper
Correct Statistic Picker _getAdditionalItems
This should be a lambda function saved to a property, not a method. Otherwise when called the "this" is the caller not the statistic picker. This was causing the Statistic Card entity picker to load blank.
* Initial implementation of Matter lock pin management and events.
- Implement lock codes
- Implement lock events
- Implement lock schedules and guest codes
* Initial implementation of Matter lock pin management and events.
- Implement lock codes
- Implement lock events
- Implement lock schedules and guest codes
* Initial implementation of Matter lock pin management and events.
- Implement lock codes
- Implement lock events
- Implement lock schedules and guest codes
* - Copilot fixes
* - Requested improvements on how the UI screens render including:
- Cancel button location
- Alignment of delete icons and buttons
* Updates to support new PR for backend
* Update as per PR comments
* Fixes to align to new backend design.
* Fixes for user deletion
* Fixes for PR comments
* Delete test/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json
* Remove unused code
* Updates with review feedback
* PR Comments
* Fixed linting error
* Fixes for new dialog changes
* Added debugging for errors, aligning to other areas where this is used.
---------
Co-authored-by: Wendelin <12148533+wendevlin@users.noreply.github.com>
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* Add date selection keys to statistics-graph editor
Add support for the `energy_date_selection` and `collection_key` entires in the visual statistics-graph card editor, along with validation of the collection key in the statistics-graph's setConfig.
* Add missing option to stats card editor
Was missing the expand_legend config option in the visual editor.
* Tidy statistics graph editor arrangement
1. Group the various settings cleanly.
2. Auto-hide the collections key if energy date picker selection is disabled
3. Auto-hide days to show if a collection is linked
* Add "auto" option for statistics-chart period
When using the energy date picker option, enable the ability to select a period of "auto" which will enable use of the energy systems automatic period selection function.
* Correct hiding days to show
Should be hidden whenever energy_date_selection is true, regardless of collection key to cope with upgrading existing cards for which no key has been set.
* Hide "auto" period on statistics graph card editor
When not using energy, hide the auto option to avoid confusion.
* Swap date selection and collection key order
This keeps the toggle in a consistent location.
* Remove duplicate config key
There is a title? key now in EnergyCardBaseConfig.
* Correct energy_date_selection translation
* Improve collection key description
* Improve terminology for energy card collection
* Improve energy support for statistics card
Rather than setting the period to "energy_date_selection", add an energy_date_selection key to the config to be more consistent. The original configuration option is still supported for backwards compatibility
Update the statistic card visual editor to support energy collection key selection.
* Add statistics card collection key validation
* Apply suggestions from code review
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* Remove title from EnergyCardBaseConfig
This was added when the energy card visual editors were created, but not all cards using a collection key need a title. Using Omit to remove it seems to lose the extend of LovelaceCardConfig.
Instead add EnergyCardConfig which is EnergyCardBaseConfig with the title field. This is used for a number of cards to allow them to share the same visual editor without having to list out every one.
* Mark Statistic Period calendar.offset as optional
It is already handled in core as an optional key (defaults to 0), and the statistic card/editor was explicitly omiting the key even though it was declaring it as required.
This removes the need for an error masking cast when converting the deprecated PERIOD_ENERGY to STATISTIC_CARD_DEFAULT_PERIOD.
---------
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
The @rspack/dev-server overlay catches ResizeObserver loop errors as
runtime crashes, showing a full-screen error overlay that blocks
development. These errors are benign — they originate from
lit-virtualizer (used by ha-data-table) and simply mean not all
resize observations could be delivered in a single animation frame.
Add a client.overlay.runtimeErrors filter to the dev server config
that suppresses ResizeObserver loop messages while still surfacing
all real runtime errors.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The gallery mock set hass.auth.data.hassUrl to an empty string, which
caused brandsUrl() to throw when constructing a URL via new URL(base, '').
In production hassUrl is always a valid URL, so the mock now uses
location.origin to match real behavior.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Fix media-player mock state attributes for gallery seek UI
Expose media-player capability and state attributes via entity hooks so gallery music mocks render position bars. Keep the domain-hook model and null state attrs when off to match other mocks.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add common API for energy collection keys
These allow so far for:
1. Creating a valid collection key
2. Validating that a collection key is useable
3. Getting a list of all currently active collection keys
Currently the validation/creation is simply checking the prefix. In time this could be extended to add more validation - e.g. sanitising punctuation/spaces/etc.
Cards configured using a visual editor will in the future ican use these APIs to distinguish between collection keys created manually in YAML/internally by HA from those created by the visual editor.
* Create visual editor for energy date selector
Allow creating date selection cards directly from the lovelace card dialog rather than requiring manual creation.
To aid in this, a date selection editor card has been created to allow using the visual editor. This includes options for setting the vertical opening direction, whether comparison is enabled/disabled, and creating a collection key.
To keep things hopefully more accessible to users, the `energy_` prefix for the collection key can be omitted from the text field. It will be added automatically if necessary. The prefix must be added if editing in the YAML editor.
Validation of the collection key is also performed, providing an error message if the key is invalid.
* Allow visual editors only for UI collection keys
Prevent the visual editors from being used if the collection key doesn't have the correct prefix. This is to avoid breaking existing user dashboards that predate the visual editor.
Additionally use the helper in energy dashboard for stripping the UI prefix.
* Create visual editor for sankey cards
Allow creating energy/water/power sankey cards directly from the lovelace card dialog rather than requiring manual creation.
A sankey chart editor card has been created to allow using the visual editor. This includes setting of all common options for sankey cards including layout, groups, and selection of a collection key.
To keep things simple for users, the visual editor displays the collection_key field as a drop-down menu from which all active collection keys may be selected.
* Create visual editor for energy graph cards
Allow creating energy/solar/gas/water usage graph cards directly from the lovelace card dialog rather than requiring manual creation.
A common graph editor card has been created to allow using the visual editor. This provides a basic set of common properties - currently just title and collection key.
To keep things simple for users, the visual editor displays the collection_key field as a drop-down menu from which all active collection keys may be selected.
* Assign visual editor to compare card
This is not assigned to the lovelace card selector as its not strictly a card, but rather an alert. However it might as well be assigned to the visual editor for consistency.
* Add Power Sources Graph
This was missed when adding other graphs. Currently it shares the same editor which means the optional show_legend key cannot yet be set visually. In time this could be updated.
* Update energy card descriptions
Update descriptions and names of cards in the lovelace card selector to be consistent with the energy card documentation.
* Create visual editor for energy device graph cards
Allow creating device and detailed device graph cards directly from the lovelace card dialog rather than requiring manual creation.
* Pass config type to devices schema
Rather than converting to a boolean, pass in the type. This will make expanding easier if future devices cards are added.
* Add missing fields to Energy Graph Card Editor
Add options to set `show_legend` and `link_dashboard` config fields.
* Add energy gauge visual editing
These need no special configuration, so might as well reuse the generic energy graph card editor.
* Add option to ignore onInput for ha-form-string
For the ha-form-string element on e.g. the card editor dialog, it would be useful for some types of input to not send value changed events for incomplete changes.
Currently the form triggers the event whenever a character is typed/deleted by forwarding onInput event. To avoid this where undesireable, add a new optional schema entry to ignore these events, which if defined and true sees updating only in response to the onChange callback.
For the energy date picker, this will avoid unnecessary creation of collection keys and by extension energy API connections when using the visual editor improving efficiency.
* Disable preview of energy cards in card picker
To avoid excess querying of the backend for energy data when loading the card picker dialog.
* Set default energy collection key to dashboard name
This changes the behaviour so that by default any component without a collection key will be grouped with other elements on their dashboard, but not with elements on other dashboards.
* Add stub config for date picker
To auto-populate a default picker configuration, including current dashboard name as the collection key.
* Add Stub Configs for other Energy Cards
Auto-populate the default parameters and the current dashboards default collection key.
* Add isActive Getter to Energy Collection
* Add findEnergyDataCollection
This will look for an existing data collection but will not create a new one if it doesn't exist.
To help with this, move the logic for creating the connection key name into a function shared between the new findEnergyDataCollection and the existing getEnergyDataCollection.
* Convert energyCollectionKeys to a Set
All entries should be unique, so use set behaviour.
* Fix capitalisation in translations
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* Revert unintentionally committed change
* Revert "Add option to ignore onInput for ha-form-string"
This reverts commit 1cae35db25.
* Remove hiding of collection key prefix
For now keep things simple and show the whole prefix as creation will probably be overhauled in the future.
To assist the user, in the date picker, automatically add the required prefix when the user types into the collection key box.
* Use panelUrl directly for default collection keys
* Update src/translations/en.json
Fix typo
Co-authored-by: Norbert Rittel <norbert@rittel.de>
* Ensure energy cards appear at end of card picker
Add a new `sortAtEnd` option which will cause cards with this sort parameter to sink to the bottom of the card picker.
* Remove collection key from stubConfig
Empty is fine, will convert to same default key anyway.
* Make all collection keys text fields
Remove the active energy collection dropdown.
* Revert "Ensure energy cards appear at end of card picker"
This reverts commit 28834aaa55.
* Add (hidden) energy cards to card picker
Merge in changes originally proposed in #23499.
* Resolve Merge Conflicts
* Fix Lint Error
* Update energy card descriptions
Make them consistent with other card descriptions which start with "The <name of card> card shows ...".
* Change Energy Card Descriptions
Fix the descriptions to use `This card` not `The ... card`.
* Change hide_compound_stats Description
Change to 'upstream devices' to match energy config page descriptions.
* Remove superfluous translation
The type field was not intended to be added to the label callback.
* Remove unused collection key exports
* Remove createEnergyCollectionKey
Was helpful when tying into the collection_key field to auto-add the prefix, but so be it.
* Add visual editor to water flow sankey
Can use the same sankey editor as the others. Update the description of energy sankey to better describe what is being displayed and to match the description of water vs water flow sankey.
* Add getStubConfig to water flow sankey
* Add missing water-flow-sankey to validation
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* Fix Date Picker Collection Key Localise
* Move Collection Key to end of Visual Editor
Downplay its significance - move it to the end of the list of options.
* Fix default collection key check
Intended behaviour was to check that the panel URL was not empty - defaultKey will always be truthy!
* Add Opening Direction to Date Picker Config
* Omit "inline" opening direction
This breaks the visual editor as the date selection window suddenly popus up in the preview and is uncloseable.
* Update src/panels/lovelace/editor/lovelace-cards.ts
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* Add visual editor for energy-sources-table
The only energy card now missing a visual editor, create the editor for completeness.
* Add name/description for Energy Compare card
* Add preview mode to energy-compare-card
Otherwise it just appears blank in the card and dashboard editors. In preview it will just use the current date for start/end and not provide the dismiss option just to give an impression of how it will look.
* Add type check in energy-graph-card-editor
* Add documentation link for energy-compare-card
* Add documentation links for energy badges
* Fix value lost in dev merge
* Remove dismiss from compare card preview
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
---------
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
Co-authored-by: Norbert Rittel <norbert@rittel.de>
Co-authored-by: karwosts <karwosts@gmail.com>
Co-authored-by: Simon Lamon <32477463+silamon@users.noreply.github.com>
* Initial plan
* Extract shared automation rows logic into AutomationRowsMixin
Create ha-automation-rows-mixin.ts with common list manipulation methods
(moveUp, moveDown, move, itemMoved, itemAdded, itemRemoved, itemChanged,
duplicateItem, insertAfter, handleDragKeydown, stopSortSelection, getKey)
and shared properties (hass, disabled, narrow, optionsInSidebar,
_rowSortSelected, _clipboard).
Refactor ha-automation-trigger, ha-automation-condition,
ha-automation-action, and ha-automation-option to use the mixin,
eliminating significant code duplication.
Co-authored-by: wendevlin <12148533+wendevlin@users.noreply.github.com>
* Address review feedback: rename to AutomationSortableListMixin, remove _ prefix from protected members, throw in setHighlightedItems
- Rename AutomationRowsMixin to AutomationSortableListMixin
- Rename file to ha-automation-sortable-list-mixin.ts
- Remove _ prefix from all protected methods/properties
- Make setHighlightedItems throw Not implemented error
- Update all 4 component files with new references
Co-authored-by: wendevlin <12148533+wendevlin@users.noreply.github.com>
* Add missing this.items = items in itemChanged to avoid UI jump
The original _conditionChanged had this.conditions = conditions before
fireEvent to update local state and avoid UI jumps. This was lost during
the mixin extraction.
Co-authored-by: MindFreeze <5219205+MindFreeze@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: wendevlin <12148533+wendevlin@users.noreply.github.com>
Co-authored-by: MindFreeze <5219205+MindFreeze@users.noreply.github.com>
* Make "now-12m" use month boundaries
Currently the "Last 12 Months" date function calculates precisely 12 months from the current day. So today is March 10, then it would retrieve April 11 to March 10.
However logically the name implies whole months - i.e. "now" would be "March", so the last 12 months ought to be Apr 1 to March 31.
* Let energy date picker detect 12 Month range
With now-12m changed to mean whole months rather than partial months, we can make the energy date picker nicely detect and render any month range, and also fix the now button so that it can pick a "now-12m" range.
* Use Short Month for Displayed Range
To avoid making the displayed range too large to fit on small screens.
* Move subMonths into calcDate fn not input
Perform both startOfMonth and subMonths as a custom function in calcDate rather than performing subMonths on the input to avoid any wierd timezone issues.
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
---------
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
Add padding to the #slider element in ha-slider to expand its touch
target to 32px, making sliders easier to interact with on touch devices.
Remove the pointer-events: none workaround on the volume slider in the
media player more-info dialog. This workaround disabled touch interaction
entirely on coarse pointer devices, which is no longer needed now that
the slider has an adequately sized touch target.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Allow trace graph to scroll independently
* Apply independent trace graph scrolling to script trace
Port the independent column scrolling and sticky nav overlay from
ha-automation-trace to ha-script-trace, and add scroll-to-active-node
behavior to hat-script-graph.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Re-encapsulate nav buttons inside hat-script-graph
Move the up/down navigation buttons back into hat-script-graph where they
belong, restoring _previousTrackedNode/_nextTrackedNode as private. Wrap
the graph content in a div.graph-scroll so it scrolls independently while
the button column stays fixed — the same flex-row layout the parent was
using, now self-contained inside the shadow DOM.
This removes the duplicated nav overlay markup and disabled-state logic
from ha-automation-trace and ha-script-trace, and removes the unnecessary
public surface on HatScriptGraph.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Make not-scrollable more specific.
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
Filter hidden entities in common controls section strategy
Match filtering behavior of area/room view strategies by excluding entities
marked as hidden (via hidden_by: user/integration/device) from the common
controls section. This ensures consistency across all auto-generated
dashboard strategies and respects user preferences for entity visibility.
* Fix missed spacing token usage
* Reduce Date Picker Collapse Button Width
Remove unnecessary padding between date icon button and date text and allow next/prev to be shown for 20px narrower screens.
* Reduce calendar icon size for narrow screens
Allows use of screens down to 325px wide before the next/prev buttons are lost.
Given most android screens are >=360px this is a big improvement as before this change the hide limit was 370px.
* Correct missing ha-tooltip CSS variable
We were missing a default for the `--wa-tooltip-border-width` variable which meant the arrow from the tooltip disappeared in WA 3.3.1.
* Fix tooltip in ha-slider
When displaying the "now" value on statistics graphs, don't include a "null" data point for sum/change type graphs, just skip entirely.
Otherwise for you get a messy null data point in the tooltip.
Skip fetching hourly statistics when hours_to_show < 1 since hourly
aggregates produce stale outlier points in sub-hour chart windows
(e.g. hours_to_show: 0.1 or 0.05).
Also fix Date object handling in ha-chart-base downsampling bounds
extraction.
* Update design of app store repositories dialog
* Cleanup
* Move to new page
* Move to new page
* Update label
* Migrate translations
* Add loading state to dialog box
* Create dedicated app store registries page
* Add validation for required fields in ha-auth-flow before submission
* Add reportValidity methods to form components for improved validation handling
* Remove async reportValidity funcs
* Review
* Add audits and yaml mode to more info details
* Reset yaml mode on back
* Use mapped array for state entries
* Typo
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
* Memoize
* Rename
* Fix
* Format audits in normal mode
* Refactor, dont pass hass
---------
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
* Enhance narrow property to reflect changes and adjust header padding for safe area
* Remove safe-area-inset-top for narrow iframe
* handle kiosk mode
* Add flow rate picker to gas, water, and water device energy dialogs
Add optional flow rate (stat_rate) picker to gas source, water source,
and water device configuration dialogs, matching the pattern used for
power tracking in grid/solar/battery sources and energy devices.
- Add stat_rate to GasSourceTypeEnergyPreference and WaterSourceTypeEnergyPreference
- Collect gas/water stat_rate in getReferencedStatisticIdsPower()
- Add flow rate ha-statistic-picker filtered to volume_flow_rate device class
- Move entity help text to picker helper props for cleaner layout
* Apply suggestions from code review
Co-authored-by: Norbert Rittel <norbert@rittel.de>
---------
Co-authored-by: Norbert Rittel <norbert@rittel.de>
* Reorganize ZWave settings
* Next iteration
* Made more consistent with Zigbee settings page
* Update text
* Updates on the provisioned devices page
* Add identifier when you have multiple networks
* Update to force remove button
* Update button text
* Update rebuild text
* Update remove foreign device button text
* Fix scrim closure
* Trigger add todo item dialog via add_item=true search param
* Check supports before opening prompt
* Use in willUpdate
* Add subtitle as context using name of list
* fix styles to prevent oveflow
* use a new variable to define min-width
* pass a "minWidth" property into ha-language-picker
* use a "minWidth" property for ha-generic-picker
* Update ha-language-picker.ts
* pass empty minWidth
* do not set min-width if empty
* add a style for ha-language-picker
* remove a style for ha-language-picker
* add a style for ha-language-picker
* remove min-width
* add a style for ha-language-picker
* Update src/panels/profile/ha-pick-language-row.ts
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* add a gap
---------
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* Add support for vacuum segment mapping to areas
* simplify, use list item
* Update ha-more-info-view-vacuum-segment-mapping.ts
* review
* review
* Update dialog-vacuum-segment-mapping.ts
* Add option to split antimeridian-crossing path to ha-map
and map card with related editor options
* Remove split antimeridian-crossing option in ha-map
making it the default behavior, as suggested by @karwosts. And remove the option from the map card
* Fix longitudeDifference is zero edge case
* Fix history timeline showing same color for all zones
For person and device_tracker entities, zone states (e.g. "Kitchen",
"Office") all resolved to --state-person-active-color because their
zone-specific CSS variables don't exist and the fallback chain always
landed on the generic active color.
Now zone states only check for an explicitly defined CSS variable
(e.g. --state-person-kitchen-color) and otherwise fall through to the
generic color handler which assigns a unique palette color per zone.
Fixes#14705
* Update src/components/chart/timeline-color.ts
Co-authored-by: Wendelin <12148533+wendevlin@users.noreply.github.com>
---------
Co-authored-by: Wendelin <12148533+wendevlin@users.noreply.github.com>
The old `--ha-animation-base-duration` variable was split into three
separate variables: `--ha-animation-duration-fast` (150ms),
`--ha-animation-duration-normal` (250ms), and
`--ha-animation-duration-slow` (350ms).
Extract CSV dump logic from ha-panel-energy into a reusable
downloadEnergyData() utility in data/energy.ts, and add a
"Download data" button to the period selector's overflow menu.
This makes the download accessible from both the energy panel
and energy cards on regular dashboards.
* Replace filled help icon with outlined version across frontend
Updated help icon from mdiHelpCircle to mdiHelpCircleOutline for
visual consistency across the application. This change affects help
tooltips and icon buttons in configuration panels, dialogs, and
Lovelace editor components.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Update src/panels/config/ha-panel-config.ts
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
---------
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
* Smarter floor/area grouping for energy sankey cards
Instead of hiding floors and areas whenever any device has an upstream
parent (included_in_stat), check whether each parent shares the same
area as its children. Only disable grouping when a mismatch is found.
* Allow missing area for parent or child
---------
Co-authored-by: Simon Lamon <32477463+silamon@users.noreply.github.com>
Add panel.developer_tools as an additional translation key for the developer tools in `configSections`. Otherwise the title of the page is simply Settings.
* Correct options reset in ha-selector-select
Separate out the handling of resetting for select elements in `ha-selector-select` from the main value changed callback.
This fixes a bug that prevented `ha-selector-select` elements operating in `list` mode from updating their value due to recent changes in the reset logc.
* Split radio changed callback for consistency
Correct hardcoded collection keys
Some elements in the energy overview strategy, and all in the energy view strategy were using hardcoded literals rather than the assigned collection key.
Fix bug in energy-period-selector
When the dropdown item for compare is disabled, the click callback still fires, allowing compare to be selected. So remove the callback for disabled buttons.
Also fix a slight visual bug in the ha-ripple border radius.
* Replace ha-divider with wa-divider in onboarding and dashboard components
* Refactor styles in onboarding-welcome component for consistency and responsiveness
* Improve PR template and add AI agent instructions
Move screenshots section closer to proposed change for better flow, and add instructions in copilot-instructions.md to ensure AI agents use the PR template when creating pull requests.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Instruct AI agents to not check checklist items on behalf of the user
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Remind user to add screenshots for UI changes after creating PR
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* Hide actions in attributes view
Simplify the isDefaultView condition to hide actions when child views are shown in the more-info dialog.
Co-Authored-By: Claude Sonnet 4.5 (1M context) <noreply@anthropic.com>
* Remove keepHeader option from ChildView interface
Completely removes the keepHeader property which was used to keep the header visible in child views. This simplifies the logic and ensures actions are consistently hidden across all child views, including the attributes view.
Co-Authored-By: Claude Sonnet 4.5 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.5 (1M context) <noreply@anthropic.com>
* Migrate config-apps dialog(s) to wa
* Apply suggestions from code review
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* Use standard buttons
* Use back action
* Remove extra close action
---------
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* Add repairs and updates cards to home dashboard overview
Add two new cards to the "For You" section of the home dashboard that display
links to repairs and updates when there are active issues or available updates.
Both cards are only visible to admin users and hide when empty.
https://claude.ai/code/session_013NTgs1U9x59uaEJs1smy8i
* Fix navigation and visibility
* Reorder
---------
Co-authored-by: Claude <noreply@anthropic.com>
* Normalize SI unit prefixes in distribution card proportions
* Extract SI prefix normalization to shared utility with tests
Moves normalizeValueBySIPrefix to src/common/number/ so it can be
reused. Replaces the inline method in the distribution card and the
switch statement in getPowerFromState (energy.ts).
* fix margin-top for ha-entity-picker
* Apply suggestion from @MindFreeze
* use ha-space var
---------
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* fix unit for monetary
* fix for span
* formatEntityStateToParts() does not return "order"
* get unit from formatEntityStateToParts()
* resolving conflicts
* resolving conflicts
* some styling
* Move AI task to its own page and change General into Home information
* Fixed unused state properties for form submission states, removed unused imports and obsolete CSS, replaced hardcoded pixel values with spacing tokens, and added error handling for the map component.
* Update src/panels/config/core/ha-config-section-general.ts
---------
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* add formatEntityStateToParts
* add formatEntityStateToParts
* use formatEntityStateToParts
* add formatEntityStateToParts
* use formatEntityStateToParts
* add formatEntityStateToParts
* add formatEntityStateToParts
* add computeStateDisplayToParts
* update for monetary
* fix a test for monetary
* fixed test for monetary
* do not include "order" into result
* do not include "order" into result
* do not include "order" into result
* do not include "order" into result
* do not include "order" into result
* do not include "order" into result
* do not include "order" into result
* simplify
* ensure less conflicts in future merges
* Refactor monetary computing
---------
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
* Migrate profile dialog(s) to wa
* Make sure code is entered before submit is allowed
* Refactor dialog
* Remove unused params
* Pass existing names and validate name is not already used
* Reduce cleanup on show
* Make QR image larger
* max width
* Fix
* Remove extra event fire
* Make params required
* cleanup
* Cleanup
* Fix
* Fix
* Update @home-assistant/webawesome to version 3.2.1 and refactor ha-dropdown integration in automation picker
* review
* revert wa update
* Update @home-assistant/webawesome to version 3.0.0-ha.2 in yarn.lock
* Add splitNumber option to monthly ECharts
When there are a small number of bars (<=3) for monthly data, set the splitNumber parameter to force the date x-axis to show whole months.
* Add axis tick fomratting for short months
This ensures that the month format is consistent between 2/3 month and longer ranges.
* Avoid calling getSuggestedMax twice
* Fix another case of power chart cutting off last hour of data
The previous fix only solved the problem for 5-minute data, not hourly or daily. This should solve the issue regardless, and allows the energy chart to have other line-based plots in the future.
* Update other uses of getSuggestedMax()
* Fix statistics-chart Last Period Rendering
1. When appending the "current state" value, if the current time intersects with the final period, we can end up with the chart folding back on itself. This is fixed by ensuring for the final period we push the earlier of the statistic end time and the display end time (which is in turn limited to now).
2. Always close off the last data point at the chart end time. Otherwise for line charts, the final period doesn't get rendered.
* Remove unused monthStyle formatter.
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* Rename getSuggestedMax function parameter in energy chart
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* Document magic numbers in montly energy chart
* Make padding a constant for clarity.
* Explain the purpose of splitNumber.
---------
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
When HistoryStream.processMessage() prunes expired history and preserves
the last expired state as a boundary marker, it updates lu (last_updated)
but not lc (last_changed). Chart components use lc preferentially, so
when lc is present the boundary point gets plotted at the original stale
timestamp far to the left of the visible window. Delete lc from the
boundary state so the chart uses the corrected lu timestamp.
* fix padding & margin
* fix margin for icon
* fix margin for icon
* fix margin for image
* use ha-space-4
* use --ha-space-4
* use ha-space-1
* use ha-space-4
* fix styles
* fix a gap between logos
* fix a gap between logos
* fix right margin for logo
* fix right margin for logo
* show icons in flex
* remove unneeded style
* add right margin for logo
* Fix Discord link for designers
Updated Discord link for designers to the correct channel.
* Update Discord link for designers in home.markdown
* Update gallery/src/pages/concepts/home.markdown
Co-authored-by: Aidan Timson <aidan@timmo.dev>
---------
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
Co-authored-by: Aidan Timson <aidan@timmo.dev>
* Use Suggested Period for Energy Tooltip
Ensure the tooltips for energy charts match energy data grouping by using getSuggestedPeriod rather than hardcoded differenceInDays.
* Make getSuggestedMax return Date()
Currently used in two places - for energy charge ECOption, and for a statistics-graph. In both places a Date is expected rather than a Number. No point converting to a Number with getTime() when they are immediately converted back to a Date.
* Add support for context in quick bar
* Send context from device page
* Use interface
* Prefetch and pass related result to dialog instead of loading on show (load on event call)
* Apply suggestion from @MindFreeze
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* Add error
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* Fix
---------
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* Allow HaDropdownSelectEvent to pass the value type
* Fix potential type conflict
* Add clarification of type
* Fix type
* Create new type for ha-select
* Refactor
* Add clearable to only handle undefined when needed
* Value changed event
* Use clearable type
* Remove
* Profile section refactor
* Protocols refactor
* More config refactor
* Entity rows 1
* Remove unrelated
* Remove ValueChangedEvent changes (moved to separate branch)
* Revert
* Add
* Revert unrelated or extra checks
* Restore
* Restore
* Restore
* Update src/components/ha-conversation-agent-picker.ts
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
---------
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* Show Year on Energy Dashboard Date Picker
When the selected range (start and/or end) is in a different year from the current one, show the year for that date.
* Correct Energy Picker Year Detection
Ensure that when checking if a range is a full year, the endpoints must be in the same calendar year.
Otherwise selecting a 12-month range that spans into two years would be treated as all being a single year.
* Add natural wrapping spans for date range
Encourage the range to wrap nicely if the text is too large for the toolbar.
* Use en dash between date range
The en dash character is usually used for date ranges rather than the
standard hypen
* Fix Now Button Rendering on Resize
Host element needs to be `display:block` no the default `display:inline` for the ResizeObserver to work.
* Remove P tag from date picker range label
Removing the paragraph tag and adding text-align center seems to produce cleaner wrapping of the date range on narrower screens.
* Allow Overriding HA Dialog Header Font Size
For the title and subtitle, variables can not be set in the host to control the font size. This is useful in cases where the heading is used on a narrow card and the title needs to be smaller.
* Add property to manually trigger opening of ha-date-range-picker
For cases where there is a desire to click in regions other than the calendar icon to have the date picker open.
* Add no-padding option to ha-dialog-header
When used within cards already containing padding, the extra padding may be unnecessary.
* Use ha-dialog-header for Energy Period Selector
Place the day/month in the title and the year in the subtitle. This gives a cleaner more consistent look.
* Remove Unnecessary IDs
Came from copy-paste from another example.
* Apply Typing to Date Picker Methods
* Move selector buttons to overflow if too small
When the period selector gets too small to fit everything (very narrow screens, or card in grid), then move the next/previous buttons to the overflow menu.
The now button exists on the overflow menu now too when in narrow mode.
* Change Date Picker openPicker to open()
Makes far more sense as a method not a property.
* Revert Padding Change to ha-dialog-header
* Simplify Energy Selector Overflow Buttons
Improve button labelling to just use index, avoiding possible localisation issues of using the label.
Simplify the interface to remove unnecessary fields.
* Update Button Collapse Width for Picker
Increase to 300px now that padding of dialog header is present.
* Fix Imports in Energy Period Selector
* Fix whitespace
* Properly leverage slots in ha-dialog-header
Make proper use of the actionItems slot for the control buttons to keep them properly contained as the date selector is resized.
* Move clickable date to title/subtitle elements
In moving the control buttons into the actionItems slot, we can no longer use the whole ha-dialog-header element as a clickable region for opening the date selector. Frankly this is not a bad thing as it meant it was not possible to nicely hover/highlight the date.
Instead we now make the title/subtitle clickable elements. This allows adding a nice hover effect and cursor pointer effect.
* Add option to make ha-dialog-header content clickable
* Use clickable dialog header in period selector
This way the whole title area is the hit point rather than the title and subtitle text individually.
* Remove ha-dialog-header from period selector
It's not a dialog, so it makes no sense to use that element. Instead recreate just the necessary parts to make it stylistically simiar. The reality is this is not much extra code, and it should make maintaining easier.
* Revert changes to ha-dialog-header
* Style Date Range as Input Field
* Use ha-ripple Effect
* Remove Unnecessary Tooltip Option
Unused, so remove the extra complexity.
* Remove more unused imports
* Force energy panel picker open direction
Now that the button is on the left, we need it to open to the right to avoid colision with the sidebar. Add the option to force the direction.
* Rename property to openingDirection for consistency
* Create data-table-columns.ts
* Update data-table-columns.ts
* move a code for columns into separate functions
* move a code for columns into separate functions
* move a code for columns into separate functions
* move a code for columns into separate functions
* move a code for columns into separate functions
* move a code for columns into separate functions
* move a code for columns into separate functions
* move a code for columns into separate functions
* fix a translation key
* move commonly used translations to generic
* remove a translation for another PR
* restore "domain" translation for while
* resolving conflicts
* resolve conflicts
* resolving conflicts
* resolving conflicts
* resolving conflicts
* resolving conflicts
* fix conflicts
* fix conflicts
* fix import
* fix import
YAML dashboards are defined in configuration files and cannot be
modified or deleted through the UI. This change ensures the edit
and delete actions are only shown for storage-mode dashboards.
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
When edit mode is toggled, existing cards are moved into edit mode
wrappers. This triggers connectedCallback which was calling _setupChart
synchronously before the browser recalculated CSS inheritance. The
chart would read stale CSS custom properties, resulting in low-contrast
axis labels in dark theme.
Defer _setupChart using afterNextRender to allow the browser to complete
layout and CSS recalculation first. Guard conditions prevent issues with
rapid connect/disconnect cycles.
YAML dashboards are defined in configuration files and cannot be
modified or deleted through the UI. This change ensures the edit
and delete actions are only shown for storage-mode dashboards.
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Improved HTML presentation table support to ha-markdown, compatible with companion app on android and iOS
- Support valign attribute for vertical alignment (top, middle, bottom, baseline)
- Support border attribute for cell borders (0, 1, 2, 3px)
- Set default styling for presentation tables (no borders, no padding)
- Use CSS variables for customization
- Include future-proof @supports rule for attr() function
- Maintain backward compatibility with existing markdown tables
* Merge Long Term Statistics for Power Sensors in Energy Dashboard
When using 5minute data for the power sources chart, data would be missing if the selected range was beyond the short term statistics limit. This change takes data from long term statistics and merges it in to the power sources data if the short term statistics doesn't extend far enough back for the selection.
* Skip for zero-length power statistics
Prevent out of bounds array access if power statistics has no entries.
Reorganizes the User settings card on the profile page to show more
frequently used settings first:
- Default dashboard
- Customize sidebar
- Advanced mode (admin)
- Entity ID picker (admin)
Then adds a divider followed by localization settings:
- Language, number format, time format, date format, time zone, first weekday
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* Live inline template previews
* Opt out for markdown, no fullscreen
* flask/flaskOff
* styling
* mdiBug
* Update src/components/ha-selector/ha-selector-template.ts
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* resub on connect
---------
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* Set home as default dashboard
* Handle lovelace to home redirect
* Remove special url path for lovelace
* Rename special rules for lovelace dashboard
* Update src/panels/lovelace/ha-panel-lovelace.ts
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
* Handle default config
* Fix default section
* Early check for lovelace panel
---------
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
* Enhance calendar entity options with color support and update UI components for color selection
* Add loading spinner to calendar components and improve event loading state management
* simplify
* Remove redundant color change check in HuiCalendarCard update logic
* Add color validation utility and update calendar components to use it. color need to be hex strings
* Adds logic to reset the _eventsLoaded state to false when either the card configuration or the entity registry changes, ensuring events are reloaded appropriately.
* remove casting
* Use SubscribeMixin for entity registry subscription
---------
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* Add sections to navigation picker
* Use PANEL_DASHBOARDS to assign system dashboards to the dashboards section
* Clean
* Add context based related section
* Add integration icon for related device
* Add floor and sort
* Consolidate and cleanup
* Reuse type
* Add context check and catch findRelated errors
* Remove floor from set, use area
* Memoize related updates
* Log error
* Remove
* Fix icon path usage
* Update dependency tar to v7.5.4 [SECURITY]
* Update dependency tar to v7.5.4
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
* add "hideUnit" to formatEntityAttributeValue()
* add "hideUnit" to formatEntityAttributeValue()
* add "hideUnit" to computeAttributeValueDisplay()
* use formatEntityAttributeValue() with "hideUnit"
* fix logic for "hideUnit" for ha-attribute-value
* prettier
* remove hideUnit from formatEntityAttributeValue()
* revert to the initial code
* revert to the initial code
* revert to the initial code
* use formatEntityAttributeValuePart() to get a value w/o unit
* use formatEntityAttributeValueToParts() instead of formatEntityAttributeValuePart()
* fix a value
* fix name of a const
* Update src/components/ha-attribute-value.ts
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
* Prettier
---------
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
Refactor dropdown menus to use ha-dropdown and ha-dropdown-item components
- Replaced ha-md-button-menu and related components with ha-dropdown and ha-dropdown-item in dialog-edit-sidebar, hass-tabs-subpage-data-table, ha-config-devices-dashboard, ha-config-entities.
- Updated event handling to accommodate new dropdown structure.
- Added wa-divider for better visual separation in dropdowns.
- Improved accessibility and usability of dropdown menus across various components.
* Fixed modal visibility issue in settings -> areas -> edit room
* converting both components to use ha-wa-dialog
* removed z-index from ha-wa-dialog
* fixed hardcoded .open in media browser dialog and remove unnecessary z-index CSS variables
* Fix statistics-graph energy-date mode end-time with 5min statistics
* don't modify date/hour for 5minute graph
* suggestedMax use period instead of days
* go back to string types
* Remove duplicate custom items, allow default from picker
* Memoize
* Memoize
* Memoize func
* Don't show no matching item when custom value is allowed
* Remove no items found label now unused
* Cleanup unused translations
* Restore used value
* Remove no items found label now unused
* Remove redundant comment
* Remove searchFn
* Ensure custom value isnt identical
* Fix duplicated value
* Fix duplicated value
* Use additional items for entity state content
* Fix duplicate values
---------
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
* Initial plan
* Add template target display with neutral badge
- Import mdiCodeBraces icon and isTemplate function
- Check if target ID is a template before checking if it exists
- Display grey {} icon with "Template" text for templated targets
- Add "template" translation key to target_summary
- Prevents misleading red "Unknown area" badge for template targets
Co-authored-by: piitaya <5878303+piitaya@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: piitaya <5878303+piitaya@users.noreply.github.com>
* Support multiple adapters in bluetooth panel
* Move connection allocations up
* Make it tabs
* Add icons
* Revert "Add icons"
This reverts commit e338b6e578.
* Revert "Make it tabs"
This reverts commit d1b19d5c3e.
* Fix scanner matching and no active connection slot support
* Update src/panels/config/integrations/integration-panels/bluetooth/bluetooth-config-dashboard.ts
---------
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
1. Always use `withViewTransition()` wrapper for automatic fallback
2. Keep transitions simple (subtle crossfades and fades work best)
3. Use `--ha-animation-base-duration` CSS variable for consistent timing
3. Use `--ha-animation-duration-*` CSS variables for consistent timing (`fast`, `normal`, `slow`)
4. Assign unique `view-transition-name` to elements (must be unique at any given time)
5. For Lit components: Override `performUpdate()` or use `::part()` for internal elements
@@ -214,13 +214,6 @@ By default, `:root` receives `view-transition-name: root`, creating a full-page
- Only one view transition can run at a time
- **Shadow DOM incompatibility**: View transitions operate at document level and do not work within Shadow DOM due to style isolation ([spec discussion](https://github.com/w3c/csswg-drafts/issues/10303)). For web components, set `view-transition-name` on the `:host` element or use document-level transitions
- Use HTTPS - All external resources must use HTTPS
- CSP compliance - Ensure code works with Content Security Policy
### Pull Requests
When creating a pull request, you **must** use the PR template located at `.github/PULL_REQUEST_TEMPLATE.md`. Read the template file and use its full content as the PR body, filling in each section appropriately.
- Do not omit, reorder, or rewrite the template sections
- Check the appropriate "Type of change" box based on the changes
- Do not check the checklist items on behalf of the user — those are the user's responsibility to review and check
- If the PR includes UI changes, remind the user to add screenshots or a short video to the PR after creating it
- Be simple and user friendly — explain what the change does, not implementation details
@@ -10,7 +10,9 @@ As a community, we are proud of our logo. Follow these guidelines to ensure it a

Please note that this logo is not released under the CC license. All rights reserved.
<ha-alert alert-type="info">
This logo is trademarked and the property of the Open Home Foundation. This means it is not available for commercial use without express written permission from the foundation. We regard commercial use as anything designed to market or promote a product, software or service that is for sale. Please contact <a href="mailto:partner@openhomefoundation.org">partner@openhomefoundation.org</a> for further information
@@ -18,7 +18,7 @@ The Home Assistant interface is based on Material Design. It's a design system c
We want to make it as easy for designers to contribute as it is for developers. There’s a lot a designer can contribute to:
- Meet us at <a href="https://www.home-assistant.io/join-chat" rel="noopener noreferrer" target="_blank">devs_ux Discord</a>. Feel free to share your designs, user test or strategic ideas.
- Meet us at <a href="https://www.home-assistant.io/join-chat-design" rel="noopener noreferrer" target="_blank">Discord #designers channel</a>. If you can't see the channel, make sure you set the correct role in Channels & Roles.
- Find the latest UX <a href="https://github.com/home-assistant/frontend/discussions?discussions_q=label%3Aux" rel="noopener noreferrer" target="_blank">discussions</a> and <a href="https://github.com/home-assistant/frontend/labels/ux" rel="noopener noreferrer" target="_blank">issues</a> on GitHub. Everyone can start a new issue or discussion!
@@ -49,7 +56,7 @@ class DemoMoreInfoWaterHeater extends LitElement {
returnhtml`
<demo-more-infos
.hass=${this.hass}
.entities=${ENTITIES.map((ent)=>ent.entityId)}
.entities=${ENTITIES.map((ent)=>ent.entity_id)}
></demo-more-infos>
`;
}
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.