v0.140.0
Minor Changes
-
#1181
1c2b901eThanks @tenphi! -Tabs: addplacementprop ('top' | 'bottom' | 'left' | 'right', default'top') for vertical and bottom tab strips. The selection indicator, scrolling, fade gradients, scroll arrows, drag-and-drop reorder visuals,TabPickerpopover placement, and per-type visuals (radius, file-style shadow, dividers) all adapt automatically to the chosen axis.The root
<TabsElement>is now a flex wrapper holding the tab bar and the panels; the tab bar is available as the newBarsub-element (use thebarStylesprop orstyles={{ Bar: { ... } }}to target it). DOM order stays "bar then panels" — visual order is controlled internally withflex-direction/*-reverse.FilterPicker: add aplacement?: Placementprop (default'bottom start') forwarded to itsDialogTrigger, so consumers can position the popover (used byTabPickerto render above / to the side of the strip based on the parentTabsplacement).Breaking notes:
stylesprop onTabsnow targets the new outer flex wrapper. UsebarStylesor theBarsub-element selector to style the tab strip itself.- Fade modifiers and CSS custom properties were renamed for axis neutrality:
fade-left/fade-right→fade-start/fade-end;--tabs-fade-left-color/--tabs-fade-right-color→--tabs-fade-start-color/--tabs-fade-end-color. No back-compat aliases. - The horizontal scrollbar sub-element
ScrollbarHwas renamed to the axis-neutralScrollbar(it now drives the horizontal scrollbar fortop/bottomplacements and the vertical scrollbar forleft/right). type="narrow"is coerced totype="default"whenplacementis'left'or'right'— its denser horizontal padding has no meaning in a vertical strip. Fordefault/narrowtypes laid out vertically, the gap between tabs collapses to1bwso the strip reads as a single column.tabListPaddingnow controls all four sides of the tab list in vertical placements (left/right); horizontal placements still receive it only on the start/end edges as before. Default values:1xfor horizontaldefault/narrow,.5xfor verticaldefault/narrow.