v4.5.0
Highlights
-
@byline/ui—ComboButtonmenu items can now carry icons, via a new optionalicononComboButtonOption. A menu may mix icon-bearing and plain items with labels staying on a common left edge. A newMarkdownIconships alongside (the CommonMark mark, for surfaces exposing a.mdrepresentation) — together these enable controls like a "Copy Page / View as Markdown" combo button. -
@byline/ui—Dropdown.Contentaccepts ananchorprop, forwarded to Base UI's positioner, so a menu can be positioned against a wider element than its trigger.ComboButtonuses it to anchor its menu against the whole control rather than the narrow dropdown half, soalign="start"/"end"measure from the button's edges instead of the chevron's.
Bug Fixes
-
@byline/ui—Modalnow dismisses on an overlay click whencloseOnOverlayClickis set. The prop had been a silent no-op:Dialog.Popupis 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 passingcloseOnOverlayClick={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 passingfalse(destructive confirmations) are unaffected. -
@byline/cli— scaffolded heading-anchor helper no longer truncates anchor ids for headings with nested formatting. Theui-bylinetemplates emitted bybyline initcarried anextractHeadingTextthat 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-waysync-from-uikitscript and its manifest were removed;@byline/uiand the upstream@infonomic/uikitare 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.