Releases: AwareByDefault/display-case
Release list
v1.8.2
Patch Changes
- 53bfe9c: Bump the
@fission-ai/openspecdev dependency from 1.4.1 to 1.5.0. This is the
spec-authoring CLI used by the repo's OpenSpec workflow; it is not part of the
published runtime. The 1.5.0 release adds the early-beta "stores" model and fixes
config JSON-container parsing and carriage-return escaping in generated YAML
frontmatter. The repo's existing workspace-based OpenSpec setup continues to
validate cleanly against 1.5.0.
v1.8.1
Patch Changes
- 74b7e67: Render imported static assets instead of broken images. A showcased component
that imports an asset (import photo from './photo.jpeg'→<img src={photo}>)
now displays it in the isolated render and the published build. EveryBun.build
surface is passed apublicPath(/dist/in dev,<base>/assets/in a publish
build), so the bundler rewrites afile-loader import to an absolute URL that
resolves against the mount serving the emitted asset — not a document-relative
URL that resolved against/render/<component>/…and 404'd. The server-rendered
<img src>and the hydrating client bundle reference the same content-hashed URL.
v1.8.0
Minor Changes
- f2c58a3: Auto-undock the tweaks panel for tall exhibits. When a case is taller than the
stage area left with the controls panel docked, the panel now opens floating so
the whole component stays visible; a case that fits keeps the panel docked. The
choice is made per case until you dock/undock manually — an explicit choice then
sticks across case switches for the rest of the page load and is discarded on
reload.
v1.7.0
Minor Changes
- b83ade3: Humanize tweak control labels in the browse chrome: a tweak key is split on camelCase and underscore boundaries (a clumped acronym stays intact) and its first word is capitalized, so
fontSizeshows as "Font Size" andthisURLValueas "This URL Value". The raw key still drives the render-argument property name and thet.<name>share-URL param — only the on-screen label (and the control's matching accessible name) changes.
v1.6.2
Patch Changes
- f59f985: Fix a bundler crash when a component imports a file-loader asset (image/font/etc.)
with a used value binding. Display Case's build worker collected the module graph
with a pass-throughonLoadobserver plugin, which — combined with such an asset —
tripped a Bun 1.3.14 use-after-free in the parallel chunk linker
(generateChunksInParallel), hard-crashing the dev/render,publish, and graph
check for that component. The graph is now read from Bun's native buildmetafile
instead of anonLoadhook, removing the trigger. The graph check's crash message
no longer misattributes such crashes to an oversized graph; it names both possible
causes (an oversized graph or a Bun linker bug).
v1.6.1
Patch Changes
- 5351c16: Themed render documents now declare a CSS
color-schemematching the requested
theme, so user-agent-rendered surfaces (scrollbars, default form-control and
<button>chrome) follow the theme instead of rendering in their light defaults.
Previously a dark-themed preview kept light user-agent controls — most visibly a
bare<button>showing the lightButtonFacebackground — which skewed dark
snapshots and produced misleadingcolor-contrastresults against light control
surfaces. The client keeps the color scheme matched across in-place theme swaps.
v1.6.0
Minor Changes
-
b9ff9ba:
check --ssrnow diagnoses a dual-React environment instead of blaming your
components. When the check's renderer resolves a different React instance than
your cases use (the classicbunx @awarebydefault/display-caserun from a
directory that doesn't depend on the tool, which pulls a second React into a temp
prefix), every hook-using case used to throwresolveDispatcher() … useStateand
get misreported as "can't render before scripts — move browser APIs into
effects/handlers, or declare the componentbrowserOnly." That turned one
environment fault into hundreds of false "fix your component" findings.The
ssrcheck now detects the condition once — by runtime module identity, not
path — and reports a single environment fault that names both React copies
(path + version), classifies the cause (abunx/temp install, a real version
conflict, or an un-deduped duplicate), and prescribes the exact fix, including the
nearestpackage.jsonto add the tool to. It explicitly steers you away from
component edits andbrowserOnly, and skips the per-case sweep that would only
manufacture false positives. A runtime-symptom safety net collapses the findings
even when the up-front probe can't run. Healthy single-React showcases — and
hook-free showcases that need no React — are unaffected.
v1.5.0
Minor Changes
-
8e9d3da: Publish: deliver shared runtime libraries once, beyond React (
config.share)A published showcase already ships React once (a shared vendor bundle every
surface references via an importmap) instead of inlining it into every per-component
bundle. That mechanism now generalizes: a new optionalshare?: string[]config lists
any further runtime library — a CSS-in-JS engine,markdown-to-jsx, a monorepo
workspace package — to deliver once the same way.- One descriptor drives the externals, the vendor entrypoints, and the importmap, so
they can't drift; the bounded vendor set is built in a singlesplittingpass that
dedupes shared internals (the catalog stays one isolated build per component). - Sharing a library also collapses it to a single instance — what a stateful library
(a style cache/context) needs to behave correctly. - Monorepo-aware: a published shared package is kept external on the SSR renderers and
added to the generatedpackage.json; a repo-internal workspace package is shared on
the client but bundled into the SSR renderers (no registry coordinates). display-case publishnow reports libraries inlined across more than one component
as candidates forshare.
No change for existing users: with nothing declared, React is still shared and the
output is unchanged. - One descriptor drives the externals, the vendor entrypoints, and the importmap, so
v1.4.5
Patch Changes
- 6812040: chore(deps): bump pixelmatch from 6 to 7. The built-in visual-diff provider's optional dependency; the default-import API is unchanged.
v1.4.4
Patch Changes
- 3faa293: Deliver React once in a published showcase instead of inlining it into every
bundle. The catalog is split into one isolated browser bundle per component (the
crash-containment design), and each previously carried its own ~150 KB React copy —
so the published assets duplicated React N+ times and a client browsing N components
downloaded N copies. React is now built once into a shared, content-hashed vendor
bundle that the chrome and every per-component bundle reference via an<script type="importmap">(React is marked external in those builds); it works for both the
host-served build and the static export. Measured on a 35-component showcase:
per-component bundles drop ~191 KB → ~6 KB and total published assets ~7.2 MB →
~1.2 MB, with React downloaded once site-wide. Adds thepublishing"shared runtime
delivered once" requirement.