Browse docs
Browse docs
Released 2026-08-14
First minor release after the 1.0.0 stable cut. Only @dashforge/ui
advances — the shared bridge / theme / rbac packages are unchanged. Per the
independent-versioning model, a component-only release no longer forces a
token or theme bump.
No breaking changes. Every existing consumer works unchanged — all
additions are additive on top of the 1.0.0 surface.
| Package | Change |
|---|---|
@dashforge/ui | 1.0.0 → 1.1.0. New <Image>; gating-aware <Box> / <Stack> / <Grid>; test-utils excluded from the published build. |
@dashforge/theme-mui · @dashforge/theme-core · @dashforge/forms · @dashforge/rbac · @dashforge/ui-core | unchanged — stay 1.0.0. |
<Image>The MUI-flavoured twin of @dashforge/tw's <Image> — same public API,
MUI internals. A thin, declarative wrapper over the native <img>:
aspectRatio (or width + height) reserves the
box before load.<Skeleton> fills the reserved box while
loading, skipped for already-cached images (no flash).fallback to customise).loading="lazy"); native <img> attributes are
forwarded. fit maps to CSS object-fit, rounded to a corner-radius
token.Supports access (RBAC) and visibleWhen gating.
Full docs + live demos: Components → Image.
<Box> / <Stack> / <Grid>Thin overrides of the MUI layout primitives. Every native MUI prop is
forwarded unchanged — swap import Box from '@mui/material/Box' for
import { Box } from '@dashforge/ui' and nothing changes until you add a
gating prop. Each adds the same two props the form components carry:
access — RBAC gate. onUnauthorized: 'hide' removes the region /
grid item; 'disable' / 'readonly' render it dimmed and non-interactive
(opacity + pointer-events: none + aria-disabled), since a container
has no intrinsic disabled state. Resolved against the nearest
RbacProvider.visibleWhen(engine) — renders the region only when the predicate is
true inside a <DashForm> (no-op elsewhere).import { Box, Grid } from '@dashforge/ui';
// A dashboard tile only visible to users who may read revenue
<Grid size={{ xs: 12, md: 4 }} access={{ resource: 'revenue', action: 'read', onUnauthorized: 'hide' }}>
<RevenueCard />
</Grid>Full docs + live demos: Box · Stack · Grid.
test-utils/ and test-setup.ts from the published build —
their stray .d.ts declarations no longer ship in the tarball.Drop-in for everything already using 1.0.0. All additions are opt-in;
nothing renamed, nothing removed. No other @dashforge/* package needs to
move.
pnpm update @dashforge/ui| Peer | Required range |
|---|---|
react | ^18.0.0 || ^19.0.0 |
react-dom | ^18.0.0 || ^19.0.0 |
@mui/material | ^9.0.0 |
@emotion/react · @emotion/styled | ^11.0.0 |
@dashforge/theme-mui | ^1.0.0 |
@dashforge/forms | ^1.0.0 |
@dashforge/ui-core | ^1.0.0 |
@dashforge/rbac | ^1.0.0 |
No new runtime dependencies.
@dashforge/ui/CHANGELOG.md — per-package full deltaCHANGELOG.md — cross-package perspective