Skip to content

Version Packages - #580

Merged
farnabaz merged 1 commit into
mainfrom
changeset-release/main
Aug 24, 2026
Merged

Version Packages#580
farnabaz merged 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions

@github-actions github-actions Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

streamdown@2.6.0

Minor Changes

Patch Changes

  • 6ec3c48: fix(animate): animate inline code during streaming

    Skip the animate visitor on pre (and svg/math/annotation) only — not bare code. Fenced/highlighted blocks stay un-split via their pre ancestor; inline backtick spans now get the same per-word fade-in as surrounding prose.

    Fixes Animated streaming skips inline code — skip check should key off pre instead of code #594

  • 725e390: Forward rest props through block code. The code component spread its rest props on the inline branch and dropped them on the block branch, so an attribute a consumer put on a fenced code element never reached the DOM. CodeBlockBody now takes part in that comparison, so a forwarded attribute updates instead of keeping the value it first rendered with.

  • 7e82400: Fix dir="auto" in static mode to detect text direction per semantic block (instead of once for the whole document), keep code LTR, and use content-majority direction for mixed-script prose.

  • fb5d7b9: Serialize Mermaid SVGs before download so HTML-style tags render as valid SVG markup.

  • fe38e75: Added accessibility improvements for code block controls by adding aria labels to copy/download buttons and announcing copy success state for screen readers.

  • b25dbdb: fix(custom-tags): render Markdown inside custom tags with multiline content

    Adds a preprocessing step (preprocessCustomTags) that normalizes multiline
    custom tags into a blank-line-sandwiched HTML block so CommonMark interrupts
    the raw-HTML block and parses the nested content as Markdown, with
    parseMarkdownIntoBlocks re-merging the interrupted open/content/close tokens
    so streaming still treats the whole custom tag as one block. Previously, when a
    custom tag contained multiline content (e.g. <ai-thinking> **bold**</ai-thinking>), CommonMark treated the block as raw HTML, stripping
    Markdown formatting. Tags listed in literalTagContent are excluded from
    re-parsing.

    Closes Markdown syntax fails to render inside custom tags #478

  • 26a8440: Fix doubled user-content- prefix on footnote ids

    Footnote list items were rendered with id="user-content-user-content-fn-1" because both remark-rehype and rehype-sanitize default their clobberPrefix to user-content-, so the prefix was applied twice. Disabled clobberPrefix on rehype-sanitize so remark-rehype remains the single, consistent prefixer of both footnote ids and backref hrefs — restoring working footnote navigation.

  • f7d1fb5: fix(table): add data-streamdown="table-wrapper" to fullscreen portal so copy/download dropdowns can find the table

  • f0a726b: Add aria-hidden="true" to decorative SVG icon components so screen readers rely on parent button labels instead of unlabeled icons.

  • 2ed2faa: Allow remend's streamdown: incomplete-link sentinel through the default sanitize schema so streamed incomplete links render as pending instead of harden [blocked].

  • 8fffa9d: Render the link safety modal through a portal to document.body so it is no longer nested inside the paragraph's <p> element. This fixes the React hydration error "In HTML, <div> cannot be a descendant of <p>" that occurred when a link with link safety enabled appeared inside a paragraph.

  • 2733922: fix(mermaid): add aria-hidden to decorative SVG icons in mermaid toolbar buttons

    Mermaid toolbar buttons (download, fullscreen, pan/zoom controls) already have
    accessible titles/labels, but the inline SVG icons were exposed to the accessibility
    tree causing "Content with images must be labeled" warnings. Added aria-hidden={true}
    to all decorative icon elements in download-button, fullscreen-button, and pan-zoom
    components.

    Fixes streamdown-mermaid: toolbar icon button contains unlabeled SVG and triggers accessibility warning #485

  • 8d36719: fix(deps): remove mermaid as a hard runtime dependency

    This patch replaces the type import with a local structural type for MermaidConfig so no type-level coupling to the mermaid package remains in the distributed typings. Users who want fully-typed mermaid config can still import type { MermaidConfig } from 'mermaid' themselves; the structural type is compatible.

    Fixes mermaid remains a hard dependency in 2.5.0, contradicting the plugin docs (adds ~75 MB to every install) #501

  • ea02609: Fix: shikiTheme prop priority chain is now fully reachable.

    Previously, shikiTheme had a default value in the props destructuring (= defaultShikiTheme), making the plugins?.code?.getThemes() fallback unreachable in both orderings. The fix removes the destructuring default and moves it to the end of the nullish coalescing chain, so all three levels are reachable:

    1. Explicit shikiTheme prop (highest priority)
    2. Code plugin's getThemes() (second priority)
    3. Built-in defaultShikiTheme (final fallback)
  • 9813dd6: Fix type declarations requiring a shiki install.

    BundledLanguage, BundledTheme, and ThemeRegistrationAny are now defined locally and re-exported from streamdown, so consumers can type-check without installing shiki. Runtime highlighting remains in @streamdown/code, which still depends on shiki.

  • d893759: Fix mermaid fullscreen overlay accessibility and add stable selector

    • Add data-streamdown="mermaid-fullscreen" to fullscreen overlay for stable CSS targeting
    • Update fullscreen overlay semantics to match table fullscreen behavior
    • Change role from button to dialog
    • Add aria-modal="true" for correct screen reader modal behavior
    • Improve accessibility consistency between mermaid and table fullscreen overlays
  • 79c8575: fix issue with list markers, task-list checkboxes, images, and hr animations

  • a1a7142: feat: add image control options (controls.image) to disable hover overlay and download button on images

    Add image to the controls prop, matching existing code, table, and mermaid patterns:

    • controls={{ image: false }} hides the hover overlay and download button
    • controls={{ image: { download: false } }} keeps the hover overlay but hides the download button
  • b250038: Fix accessibility warnings for Mermaid toolbar icon buttons:

    • Add aria-hidden="true" to all decorative SVG icons to hide them from screen readers
    • Add aria-label attributes to all icon-only buttons for proper screen reader announcements
    • Add translation keys (zoomIn, zoomOut, resetView) for zoom controls
  • 89c6877: Re-render memoized markdown components when their rendered output changes. The comparators compared source position, so a replacement of the same length — occupying the same lines and columns — was treated as unchanged and the component kept rendering the previous text.

  • e7bdf57: fix(mermaid): render the download and copy controls inside the Mermaid fullscreen portal so they're reachable when the diagram is expanded

  • 8f02c09: Fix table copy and download actions not working in fullscreen mode.

    • Support table lookup inside the fullscreen portal container.
    • Restore copy and download functionality for fullscreen tables.
    • Keep existing inline table controls behavior unchanged.
  • f46cd3c: - Fixed table copy losing line breaks inside cells containing <br> elements.

    • Preserved multiline content during table data extraction.
    • Improved copied Markdown, CSV, and TSV output consistency for multiline cells.
    • Added coverage for <br> handling in table extraction.
  • dc3f1d2: - Fix code block line wrapping when line numbers are disabled.

    • Ensure code block lines are rendered as block elements regardless of the lineNumbers setting.
    • Prevent multiple code lines from collapsing into a single visual line when lineNumbers={false}.
  • Updated dependencies [a99d675]

  • Updated dependencies [9f96409]

  • Updated dependencies [8093f2a]

  • Updated dependencies [57c3089]

    • remend@1.3.1

remend@1.3.1

Patch Changes

  • a99d675: Fix crash on iOS 16.0-16.2 / Safari < 16.3 by removing the lookbehind assertion from the single-tilde escape pattern (Streamdown crashes on iOS 16 / Safari < 16.3 due to lookbehind regex in remend and mdast-util-gfm-autolink-literal #519).

    JSCore on those versions doesn't support lookbehind ((?<=...)) and throws a SyntaxError while the module is being evaluated, before any user code runs, so there is no way to catch it. The preceding word character is now captured and written back in the replacement instead.

  • 9f96409: Preserve complete italic emphasis when a closing asterisk is followed by word text.

  • 8093f2a: Treat LaTeX paren and bracket math as protected math contexts during emphasis completion.

  • 57c3089: Fix quadratic code-block scanning. isInsideCodeBlock now builds a linear-time position lookup (cached per text) instead of rescanning the whole prefix on every call, so handlers that probe many positions no longer degrade quadratically. Repairing an unclosed, bracket-heavy 58k-character code block drops from ~915ms to ~0.4ms per call.

@vercel

vercel Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
streamdown Ready Ready Preview, v0 Aug 24, 2026 10:09am

@github-actions
github-actions Bot force-pushed the changeset-release/main branch from 407f94f to 15a8ad3 Compare August 13, 2026 13:39
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from 15a8ad3 to 039cf1c Compare August 13, 2026 13:48
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from 039cf1c to f5a3484 Compare August 13, 2026 14:20
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from f5a3484 to a7a1767 Compare August 13, 2026 14:23
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from a7a1767 to d8a7df9 Compare August 13, 2026 14:40
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from d8a7df9 to b34bd1d Compare August 13, 2026 15:18
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from b34bd1d to 8fa77ba Compare August 13, 2026 15:45
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from 8fa77ba to 5bd338a Compare August 14, 2026 13:13
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from 5bd338a to 9e1c461 Compare August 14, 2026 14:01
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from 9e1c461 to da27abb Compare August 14, 2026 15:07
@willhoney7

Copy link
Copy Markdown

Would love to see the deploy here (for 8d36719)

@github-actions
github-actions Bot force-pushed the changeset-release/main branch from 54ea105 to 342bb03 Compare August 19, 2026 16:07
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from 342bb03 to d7673a4 Compare August 19, 2026 18:01
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from d7673a4 to 91d05b9 Compare August 19, 2026 19:17
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from 91d05b9 to d12c27f Compare August 20, 2026 11:03
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from d12c27f to 9c704c6 Compare August 20, 2026 14:21
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from 9c704c6 to 5131371 Compare August 21, 2026 09:54
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from 5131371 to 9e07485 Compare August 21, 2026 11:15
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from 9e07485 to 57076f0 Compare August 21, 2026 13:00
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from 57076f0 to 8c7738b Compare August 21, 2026 13:09
@farnabaz

Copy link
Copy Markdown
Collaborator

@willhoney7 New version will be out on Monday. Feel free to try the changes before the release to make sure the upgrade goes 100% smoothly.

@github-actions
github-actions Bot force-pushed the changeset-release/main branch from 579686a to c187f6d Compare August 24, 2026 10:08
@farnabaz
farnabaz merged commit 8a2ac22 into main Aug 24, 2026
11 checks passed
@farnabaz
farnabaz deleted the changeset-release/main branch August 24, 2026 14:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment