Skip to content

v4.5.0

Choose a tag to compare

@58bits 58bits released this 19 Jul 20:23

Highlights

  • @byline/uiComboButton menu items can now carry icons, via a new optional icon on ComboButtonOption. A menu may mix icon-bearing and plain items with labels staying on a common left edge. A new MarkdownIcon ships alongside (the CommonMark mark, for surfaces exposing a .md representation) — together these enable controls like a "Copy Page / View as Markdown" combo button.

  • @byline/uiDropdown.Content accepts an anchor prop, forwarded to Base UI's positioner, so a menu can be positioned against a wider element than its trigger. ComboButton uses it to anchor its menu against the whole control rather than the narrow dropdown half, so align="start"/"end" measure from the button's edges instead of the chevron's.

Bug Fixes

  • @byline/uiModal now dismisses on an overlay click when closeOnOverlayClick is set. The prop had been a silent no-op: Dialog.Popup is a full-viewport flex box centring the dialog, so a click on the empty space around it landed inside the popup and Base UI's outside-press detection never fired. The modal now dismisses on a press that both starts and ends on the centring box (the pointerdown/click pairing avoids dismissing when a text-selection drag releases outside the dialog). Behavioural note: every consumer passing closeOnOverlayClick={true} — image lightbox, diff viewer, form and document-action modals, blocks field, AI plugin — now dismisses on an outside click where it previously did not; modals passing false (destructive confirmations) are unaffected.

  • @byline/cliscaffolded heading-anchor helper no longer truncates anchor ids for headings with nested formatting. The ui-byline templates emitted by byline init carried an extractHeadingText that discarded its recursive return, so a heading with bold, inline code, or a link produced a partial slug and an anchor link pointing at a fragment that did not resolve. The templated helper now accumulates text across the whole subtree.

Chores

  • @byline/ui — the one-way sync-from-uikit script and its manifest were removed; @byline/ui and the upstream @infonomic/uikit are now kept in step by porting changes manually in either direction, documented in the package README. No effect on the published package contents.

All other @byline/* packages bumped to 4.5.0 in lockstep with no behavioural changes this cycle.