You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+20Lines changed: 20 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,25 @@
1
1
# Changelog
2
2
3
+
## 5.5.0 - 2026-05-17
4
+
5
+
Released update from 5.4.2.
6
+
7
+
- Adds optional Home Assistant ambient light sync that maps the current artwork palette to selected `light.*` entities with brightness, transition, cooldown, and optional per-player light mappings.
8
+
- Adds an optional artwork screensaver with digital/analog clock modes, current cover, date, track metadata, configurable message, clock size, and clock position controls.
9
+
- Fixes the screensaver idle timer so it starts from the moment the card page becomes visible instead of inheriting idle time from a previous dashboard page.
10
+
- Adds an optional POWER button in the player controls that can stop the active player or call `toggle`, `turn_on`, `turn_off`, `scene`, or `script` actions on a selected Home Assistant entity.
11
+
- Adds fullscreen Discovery mode with cover-orb browsing, provider-backed mood/genre selectors, fresh/random playlist discovery, recent music, albums, and radio sections.
12
+
- Adds optional inline Up Next display and Night mode controls without forcing them into existing layouts when space is tight.
13
+
- Reworks responsive sizing around the actual card/container width and allocated height instead of only `window.innerWidth`.
14
+
- Adds ResizeObserver-driven layout recovery for dashboard column changes, sidebar changes, visual-editor open/close cycles, mobile rotation, kiosk views, and tablet/desktop resizes.
15
+
- Expands layout profiling with width, height, and aspect-aware classes so phone, phone-landscape, tablet, desktop, and short-height modes get different spacing and artwork budgets.
16
+
- Improves mobile/tablet/kiosk fit by tightening vertical budgets, preventing content overlap, containing artwork inside its frame, preserving larger artwork when space allows, and reducing accidental page scroll.
17
+
- Removes the old fixed `850` height from the default card config. The optional `height` config still works as a fallback/manual override, but the card now prefers the space Home Assistant actually gives it.
18
+
- Adds English and Hebrew localization dictionaries backed by shared translation helpers, visual-editor labels, and tests.
19
+
- Adds `HOW_TO_ADD_A_LANGUAGE.md` and `TRANSLATING.md` so future languages can be added by copying the English dictionary, translating values, registering the language, and rebuilding release artifacts.
20
+
- Improves the visual editor for ambient-light player mappings by using friendly field labels instead of internal helper names.
21
+
- Updates validators, mobile settings state, responsive layout tests, localization tests, and the release sync script so `src/localization/` is packaged into `dist/localization/`.
HOMEii Music Flow uses flat JavaScript dictionaries in `src/localization/`. English is the fallback language, so every new language file should start by copying the English keys. Version 5.5.0 ships with English and Hebrew only.
4
+
5
+
## Steps
6
+
7
+
1. Create a new language file in `src/localization/`, for example `fr.js`.
8
+
2. Copy the full contents of `src/localization/en.js` into the new file.
9
+
3. Translate only the string values. Do not rename, remove, or reorder keys unless you also update the source code.
10
+
4. Open `src/localization/index.js` and import the new file, for example:
11
+
12
+
```js
13
+
importfrfrom"./fr.js";
14
+
```
15
+
16
+
5. Register the dictionary in `DICTIONARIES` and add a display option in `LANGUAGE_OPTIONS`:
17
+
18
+
```js
19
+
exportconstDICTIONARIES=Object.freeze({ en, fr, he });
20
+
21
+
exportconstLANGUAGE_OPTIONS=Object.freeze([
22
+
{ value:"auto", label:"Auto" },
23
+
{ value:"en", label:"English" },
24
+
{ value:"fr", label:"French" },
25
+
{ value:"he", label:"Hebrew" },
26
+
]);
27
+
```
28
+
29
+
6. If the language is right-to-left, add its code to `RTL_LANGUAGE_CODES` in `src/localization/index.js`.
30
+
7. Run `npm test`, `npm run build`, and `node scripts/release.mjs` locally.
31
+
8. Test the card by setting `language: fr` in the card config. If a key is missing, the card will fall back to English.
32
+
33
+
Use `TRANSLATING.md` as the glossary and context reference while translating.
Copy file name to clipboardExpand all lines: PUBLISHING.md
+9-5Lines changed: 9 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,7 @@
9
9
-`LICENSE`
10
10
-`hacs.json`
11
11
-`dist/homeii-music-flow.js`
12
+
-`dist/localization/`
12
13
-`dist/sendspin-js/`
13
14
-`dist/vendor/embla-carousel.umd.js`
14
15
-`dist/homeii-flow-logo.svg`
@@ -23,18 +24,19 @@
23
24
- the HACS My Home Assistant button
24
25
- the HACS download/install button
25
26
26
-
## 2. Create the 5.4.1 release
27
+
## 2. Create the 5.5.0 release
27
28
28
-
- Create a Git tag named `v5.4.1`.
29
+
- Create a Git tag named `v5.5.0`.
29
30
- Create a GitHub release from that tag.
30
-
- Title the release `5.4.1`.
31
-
- Use the `5.4.1` section from `CHANGELOG.md` as the release notes.
31
+
- Title the release `5.5.0`.
32
+
- Use the `5.5.0` section from `CHANGELOG.md` as the release notes.
32
33
- Do not attach a custom release zip asset for HACS. Keep the complete installable runtime in `dist/` and let HACS use the normal repository release/tag contents.
33
34
34
35
## 3. Verify repository files after publishing
35
36
36
37
- Confirm `hacs.json` still points to `homeii-music-flow.js`.
37
38
- Confirm `dist/homeii-music-flow.js` matches the released runtime.
39
+
- Confirm `dist/localization/` includes English and Hebrew dictionaries only.
38
40
- Confirm `dist/sendspin-js/` exists for the local Sendspin browser player.
39
41
- Confirm `dist/vendor/embla-carousel.umd.js` exists for mobile swipe support.
40
42
- Confirm `dist/homeii-flow-logo.svg` and `docs/brand/homeii-flow-logo.svg` exist.
@@ -50,9 +50,21 @@ HOMEii Flow started from my own daily use of Home Assistant and Music Assistant.
50
50
-**Studio / Control Room:** choose players, group rooms, control volumes, move playback, and manage multi-room listening.
51
51
-**Mobile-first workflow:** queue, search, library, FLOW, actions, timers, announcements, settings, and player switching are designed for touch.
52
52
-**Real Music Assistant library flow:** playlists, albums, artists, tracks, radio, favorites, recent listening, and recommendations.
53
+
-**Smart-home aware listening:** optional Home Assistant light sync, screensaver display, and POWER actions let the card participate in the room without becoming mandatory setup.
53
54
-**Hebrew and RTL ready:** layout, labels, alignment, and interaction patterns are built for Hebrew as a first-class use case.
54
55
-**Release-ready package:** HACS-ready `dist/` output includes the card, Sendspin files, Embla swipe support, and the brand asset.
55
56
57
+
## What's New In 5.5.0
58
+
59
+
-**Commercial-grade responsive fit:** the card now measures its actual dashboard/container size, reacts to Home Assistant grid/sidebar/editor changes, and adapts by width, height, and aspect ratio instead of relying only on the browser viewport.
60
+
-**Better phone, tablet, kiosk, and desktop layouts:** artwork, metadata, progress, actions, transport controls, volume, footer buttons, Up Next, and Night mode now use tighter fit budgets to avoid content overlapping or escaping its container.
61
+
-**No fixed default height:** the old `850` default is no longer part of the stub config. The card prefers the space Home Assistant allocates to it, while the optional `height` setting remains available as a fallback/manual override.
62
+
-**Ambient light sync:** selected `light.*` entities can follow the current artwork color with brightness, transition, cooldown, and optional per-player mappings.
63
+
-**Artwork screensaver:** an optional idle display shows the current cover, digital or analog clock, date, track info, and a short local message. The idle timer now starts when the card page becomes visible.
64
+
-**POWER button:** player controls can show an optional POWER action for stopping the active player or calling a selected Home Assistant entity.
65
+
-**Discovery mode:** a fullscreen recommendation view adds cover orbs, provider-backed category selectors, fresh/random playlist discovery, albums, radio, and recent music.
66
+
-**Editor and language coverage:** the new settings are available in the visual editor, in-card settings, and English/Hebrew localization dictionaries.
67
+
56
68
## What's New In 5.4.1
57
69
58
70
-**Distribution hotfix:** republishes the 5.4.0 fixes without a custom release zip asset, so HACS can use the normal repository release/tag contents and the complete `dist/` package.
@@ -178,7 +190,7 @@ If HACS does not add the resource automatically, add:
0 commit comments