Dashhaus is seven packages that share one version, 0.3.0, and move together.
Package
What it is
Who installs it
@dashhaus/bundle
The prebuilt Dashhaus Lovelace bundle: the Orb and Field dashboards, React and every stylesheet in one ES module.
Using a skin
@dashhaus/deploy
Deploy a Dashhaus dashboard into Home Assistant: copy the bundle, register the resource and create the dashboards from dashboard.config.mjs.
Using a skin, building a skin
@dashhaus/core
The headless Home Assistant foundation behind Dashhaus skins: entity models, the store, mappers, actions, useHa hooks and interaction primitives. No markup, no CSS.
Your own app, building a skin
@dashhaus/dashboard
The framework a Dashhaus skin's Lovelace card draws on: the skin runtime, card frame, YAML schema, automatic layout and conformance preset.
Building a skin
@dashhaus/orb
The Orb skin for Home Assistant: React cards, bundles and dashboard furniture, and custom:dashhaus-orb, a Lovelace card drawn from YAML.
Your own app
@dashhaus/field
The Field skin for Home Assistant: hardware-style React modules and page furniture, and custom:dashhaus-field, a Lovelace card drawn from YAML.
Your own app
create-dashhaus-skin
Start your own Dashhaus skin: a standalone project with a control card, a reading card and its Lovelace card, on @dashhaus/core.
└─ your skin (what create-dashhaus-skin writes depends on core and dashboard)
@dashhaus/bundle built from orb and field; depends on nothing
@dashhaus/deploy depends on esbuild only; never on React, core or a skin
So a dashboard that only uses Orb and Field installs @dashhaus/bundle and @dashhaus/deploy and no React at all. A
skin installs core and dashboard and deploys its own bundle with the same deploy tool.
The transport and store, HaProvider and its selectors, the useHa<Name> hooks and Ha<Name> headless components, the registry, history and request hooks (useHaRegistry, useHaAreas, useHaArea, useHaHistory, useHaRequest), the mappers and action factories, and HaActionError
The full Lovelace entry: element base, nav, room sensors and token scoping
Not part of the contract
@dashhaus/dashboard/skin
The frozen skin-author surface: LovelaceDashboardElement, registerCard, scopeToHost, autoInput, useActionStatus (the rejected-command status a page shows), LovelaceHass, AutoEntityEntry, ActionStatus and ActionMessage
The frozen contract
@dashhaus/dashboard/card
The frame every skin's card draws on: footprint flags, ids and aria, details state, tile/sheet composition
The frozen contract
@dashhaus/dashboard/schema
The shared YAML Reader, the card kind table and card reader, the shared option readers, the renderer dispatch and DashboardConfigError. Pure
The frozen contract
@dashhaus/dashboard/layout
The automatic layout: visibility, area resolution, name sort, grouping, placement. Pure
May change with the layout work
@dashhaus/dashboard/conformance
checkCards, the generic card preset a skin runs against its own cards. Node- and test-only
The compatibility test
Until 1.0 a breaking change to the contract is allowed, but it is announced as one; the conformance check is what
says a skin still fits.