feat(ui): land dashboard refactor#4746
Draft
robertsLando wants to merge 26 commits into
Draft
Conversation
This PR is the first of many that will modernize the frontend design of Z-Wave JS UI: <img width="1148" height="941" alt="grafik" src="https://github.com/user-attachments/assets/27852513-f81e-4c04-8f4c-43308ef65bc3" /> The current PR sets up the design tokens (--zw-*) and Vuetify defaults that the rest of the dashboard rework builds on, so the atoms and components arriving in later commits can just consume the vocabulary instead of redeclaring colours, radii, and component chrome at every call site. Also switches the legacy input family from underlined to outlined+compact so the old pages already look at home next to the new dashboard while we migrate. This PR also starts the transition to vuetify0 as a headless UI framework, which makes maintaining a custom design language much easier. --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Introduces Lucide icon ESM imports for the new dashboard, with named aliases and a closed ICON_SIZE vocabulary so call sites can't pick arbitrary pixel sizes. Material Icons stays registered for the legacy settings/dialog pages, so this only affects new dashboard components. --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Brings 31 upstream commits (post 11.18.0 → 11.21.1) into the dashboard redesign: security hardening, backend correctness fixes, zwave-js@15.25.0 / @zwave-js/server@3.10.0, the multicast/broadcast groups feature, and old-UI fixes. The redesign is additive, so only three files conflicted: - api/lib/ZwaveClient.ts: both sides added `interviewProgress`. Kept master's real granular implementation (driver `interview progress` events) and dropped the dashboard's synthesized stopgap; preserved the unrelated `logsDir` change. - package-lock.json: regenerated against the merged package.json. - test/lib/utils.test.ts: master created a chai/sinon/esmock version while the branch had a vitest one. Reconciled into a single vitest file covering the full superset of cases. Also converted the new test/lib/importConfig.test.ts (chai → vitest). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…nges - Suppress the interview activity for Dead/Asleep nodes (mirrors master's showInterviewProgress guard), so a stalled interview no longer shows a misleading progress indicator. Now that master reports real granular interview progress, the readout is accurate. - Filter virtual nodes (broadcast/multicast groups) out of the dashboard device list; they belong in their own dedicated view (deferred). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…rd view footer (#4703) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
27 tasks
Member
Author
|
cc @AlCalzone |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Landing PR for the dashboard refactor staged on the
dashboard-neointegration branch.Opened as a draft to serve as the review surface and landing gate for the whole dashboard rework. It should stay in draft until the branch is complete and synced with
master.Scope
dashboard-neois currently 24 commits ahead / 6 behindmaster— 121 files, +16,468 / −2,029.It collects these already-merged sub-PRs (all merged into
dashboard-neo, not intomaster):Because every sub-PR above targeted
dashboard-neorather than the default branch, their closing keywords never fired and no issue links were created — see GitHub's docs: "If the pull request targets any other branch, then these keywords are ignored, no links are created, and merging the PR has no effect on the issues."Merging this PR will not retroactively close them, and since
allow_merge_commitis disabled, a squash landing discards the individual commit messages too.Audit result: I scanned every commit on this branch. The only
#Nreferences are the sub-PR numbers themselves (squash-merge suffixes) — no issue is currently declared as fixed by this branch.Action required before this leaves draft: add a
Closes #Nline to this PR body for every issue the dashboard rework actually resolves. This PR targets the default branch, so its links will fire correctly on merge.Closes #Ndashboard-neowithmaster(currently 6 behind)Related: the backend refactor is staged the same way on
backend-refactorand tracked in #4745.