Skip to content

Releases: AwareByDefault/display-case

v1.8.2

Choose a tag to compare

@awarebydefault-release awarebydefault-release released this 08 Jul 04:58

Patch Changes

  • 53bfe9c: Bump the @fission-ai/openspec dev 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

Choose a tag to compare

@awarebydefault-release awarebydefault-release released this 08 Jul 04:30

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. Every Bun.build
    surface is passed a publicPath (/dist/ in dev, <base>/assets/ in a publish
    build), so the bundler rewrites a file-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

Choose a tag to compare

@awarebydefault-release awarebydefault-release released this 01 Jul 03:36

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

Choose a tag to compare

@awarebydefault-release awarebydefault-release released this 01 Jul 03:21

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 fontSize shows as "Font Size" and thisURLValue as "This URL Value". The raw key still drives the render-argument property name and the t.<name> share-URL param — only the on-screen label (and the control's matching accessible name) changes.

v1.6.2

Choose a tag to compare

@awarebydefault-release awarebydefault-release released this 27 Jun 05:01

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-through onLoad observer 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 build metafile
    instead of an onLoad hook, 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

Choose a tag to compare

@awarebydefault-release awarebydefault-release released this 27 Jun 01:56

Patch Changes

  • 5351c16: Themed render documents now declare a CSS color-scheme matching 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 light ButtonFace background — which skewed dark
    snapshots and produced misleading color-contrast results against light control
    surfaces. The client keeps the color scheme matched across in-place theme swaps.

v1.6.0

Choose a tag to compare

@awarebydefault-release awarebydefault-release released this 27 Jun 00:59

Minor Changes

  • b9ff9ba: check --ssr now 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 classic bunx @awarebydefault/display-case run 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 throw resolveDispatcher() … useState and
    get misreported as "can't render before scripts — move browser APIs into
    effects/handlers, or declare the component browserOnly." That turned one
    environment fault into hundreds of false "fix your component" findings.

    The ssr check 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 (a bunx/temp install, a real version
    conflict, or an un-deduped duplicate), and prescribes the exact fix, including the
    nearest package.json to add the tool to. It explicitly steers you away from
    component edits and browserOnly, 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

Choose a tag to compare

@JakeUskoski JakeUskoski released this 26 Jun 18:07

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 optional share?: 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 single splitting pass 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 generated package.json; a repo-internal workspace package is shared on
      the client but bundled into the SSR renderers (no registry coordinates).
    • display-case publish now reports libraries inlined across more than one component
      as candidates for share.

    No change for existing users: with nothing declared, React is still shared and the
    output is unchanged.

v1.4.5

Choose a tag to compare

@JakeUskoski JakeUskoski released this 26 Jun 18:07

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

Choose a tag to compare

@JakeUskoski JakeUskoski released this 26 Jun 18:07

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 the publishing "shared runtime
    delivered once" requirement.