@viraui/react 2026.0.14 → 2026.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/components/accordion/accordion-item.js +0 -2
  2. package/dist/components/accordion/accordion.js +1 -2
  3. package/dist/components/autocomplete/autocomplete-group.js +0 -2
  4. package/dist/components/autocomplete/autocomplete-item.js +1 -1
  5. package/dist/components/autocomplete/autocomplete.js +1 -0
  6. package/dist/components/avatar-group/avatar-group.js +0 -1
  7. package/dist/components/basic-input/input-control-group.js +0 -3
  8. package/dist/components/checkbox/checkbox-group.js +1 -4
  9. package/dist/components/checkbox/checkbox.js +0 -2
  10. package/dist/components/chip/chip.js +0 -1
  11. package/dist/components/dialog/dialog-sheet.js +6 -4
  12. package/dist/components/fieldset/fieldset.js +1 -0
  13. package/dist/components/linear-progress/linear-progress.js +0 -2
  14. package/dist/components/masonry/masonry.js +0 -1
  15. package/dist/components/menu/menu-group.js +0 -2
  16. package/dist/components/menu/menu-indicator-slot.js +0 -2
  17. package/dist/components/menu/menu-item-row.js +1 -1
  18. package/dist/components/menu/menu-link-item.js +4 -1
  19. package/dist/components/menu/menu-radio-group.js +0 -2
  20. package/dist/components/meter/meter.js +0 -2
  21. package/dist/components/popover/popover-sheet.js +3 -6
  22. package/dist/components/radio/radio-group.js +0 -1
  23. package/dist/components/radio/radio.js +0 -2
  24. package/dist/components/select/select-group.js +0 -2
  25. package/dist/components/select/select-indicator-slot.js +0 -2
  26. package/dist/components/select/select-option.js +2 -1
  27. package/dist/components/select/select.js +2 -3
  28. package/dist/components/separator/separator.js +0 -1
  29. package/dist/components/slider/slider-control.js +0 -1
  30. package/dist/components/slider/slider.js +1 -2
  31. package/dist/components/stack/stack.d.ts +1 -1
  32. package/dist/components/stack/stack.guide.json +3 -2
  33. package/dist/components/stack/stack.js +1 -1
  34. package/dist/components/switch/switch.js +0 -3
  35. package/dist/components/tabs/tabs-list.js +1 -0
  36. package/dist/components/tabs/tabs.js +0 -1
  37. package/dist/components/textarea/textarea.js +1 -0
  38. package/dist/components/textfield/textfield.js +1 -0
  39. package/dist/components/toast/toast-banner.js +0 -3
  40. package/dist/components/toggle-group/toggle-group.js +1 -4
  41. package/dist/components/tooltip/tooltip-content.js +1 -2
  42. package/dist/preflight-surface.json +24 -1
  43. package/package.json +2 -2
@@ -41,7 +41,6 @@ var AccordionItemComponent = ({ children, className, color = 1, iconClosed = /*
41
41
  render: /* @__PURE__ */ jsx(Stack, {
42
42
  columnGap: iconAtStart ? "small" : void 0,
43
43
  direction: iconAtStart ? "row" : "row-reverse",
44
- fillChildren: false,
45
44
  hAlign: iconPosition === "end" ? "space-between" : "start",
46
45
  hPadding: "medium",
47
46
  render: /* @__PURE__ */ jsx("button", { type: "button" }),
@@ -56,7 +55,6 @@ var AccordionItemComponent = ({ children, className, color = 1, iconClosed = /*
56
55
  }), /* @__PURE__ */ jsx(Accordion.Panel, {
57
56
  className: accordion_module_default.Panel,
58
57
  children: /* @__PURE__ */ jsx(Stack, {
59
- fillChildren: false,
60
58
  hPadding: "medium",
61
59
  vPadding: ["2x-small", "medium"],
62
60
  children
@@ -11,8 +11,7 @@ var AccordionRootComponent = ({ children, className, islands = true, ...otherPro
11
11
  render: /* @__PURE__ */ jsx(Stack, {
12
12
  className: clsx(accordion_module_default.Accordion, className),
13
13
  "data-islands": islands ? "true" : "false",
14
- direction: "column",
15
- fillChildren: false
14
+ direction: "column"
16
15
  }),
17
16
  hiddenUntilFound: true,
18
17
  children
@@ -9,7 +9,6 @@ var AutocompleteGroup = ({ children, className, label, ...otherProps }) => /* @_
9
9
  className,
10
10
  render: /* @__PURE__ */ jsx(Stack, {
11
11
  direction: "column",
12
- fillChildren: false,
13
12
  rowGap: "2x-small",
14
13
  vPadding: "2x-small"
15
14
  }),
@@ -17,7 +16,6 @@ var AutocompleteGroup = ({ children, className, label, ...otherProps }) => /* @_
17
16
  render: /* @__PURE__ */ jsx(Stack, {
18
17
  columnGap: "small",
19
18
  direction: "row",
20
- fillChildren: false,
21
19
  hPadding: "small",
22
20
  vAlign: "center",
23
21
  vPadding: ["small", "x-small"]
@@ -15,11 +15,11 @@ var AutocompleteItemPart = ({ addon, addonAlign = "center", children, className,
15
15
  className: autocomplete_module_default.ItemRow,
16
16
  columnGap: "small",
17
17
  direction: "row",
18
- fillChildren: false,
19
18
  hPadding: "small",
20
19
  vAlign: addonAlign,
21
20
  vPadding: "small",
22
21
  children: [addon && /* @__PURE__ */ jsx(Stack, {
22
+ fillChildren: true,
23
23
  "aria-hidden": "true",
24
24
  "data-grow": "false",
25
25
  "data-shrink": "false",
@@ -36,6 +36,7 @@ function AutocompleteRootComponent({ children, className, container, description
36
36
  validationDebounceTime,
37
37
  validationMode,
38
38
  render: /* @__PURE__ */ jsx(Stack, {
39
+ fillChildren: true,
39
40
  direction: "column",
40
41
  rowGap: "small"
41
42
  }),
@@ -34,7 +34,6 @@ var AvatarGroup = ({ avatars, className, direction = "horizontal", maxVisible, o
34
34
  render: /* @__PURE__ */ jsx(Stack, {
35
35
  inline: true,
36
36
  direction: "row",
37
- fillChildren: false,
38
37
  hAlign: "center",
39
38
  vAlign: "center",
40
39
  hPadding: "medium"
@@ -8,13 +8,11 @@ import { jsx, jsxs } from "react/jsx-runtime";
8
8
  var InputControlGroup = ({ addonClassName, children, controlGroupClassName, endAddon, startAddon }) => /* @__PURE__ */ jsxs(Stack, {
9
9
  className: controlGroupClassName,
10
10
  direction: "row",
11
- fillChildren: false,
12
11
  vAlign: "stretch",
13
12
  children: [
14
13
  startAddon && /* @__PURE__ */ jsx(Stack, {
15
14
  className: addonClassName,
16
15
  "data-position": "start",
17
- fillChildren: false,
18
16
  hAlign: "center",
19
17
  hPadding: ["small", "x-small"],
20
18
  inline: true,
@@ -26,7 +24,6 @@ var InputControlGroup = ({ addonClassName, children, controlGroupClassName, endA
26
24
  endAddon && /* @__PURE__ */ jsx(Stack, {
27
25
  className: addonClassName,
28
26
  "data-position": "end",
29
- fillChildren: false,
30
27
  hAlign: "center",
31
28
  hPadding: "x-small",
32
29
  inline: true,
@@ -5,10 +5,7 @@ import { CheckboxGroup } from "@base-ui/react";
5
5
  var CheckboxGroup$1 = ({ children, className, ...otherProps }) => /* @__PURE__ */ jsx(CheckboxGroup, {
6
6
  ...otherProps,
7
7
  className,
8
- render: /* @__PURE__ */ jsx(Stack, {
9
- fillChildren: false,
10
- rowGap: "small"
11
- }),
8
+ render: /* @__PURE__ */ jsx(Stack, { rowGap: "small" }),
12
9
  children
13
10
  });
14
11
  //#endregion
@@ -19,7 +19,6 @@ var Checkbox$1 = ({ className, description, disabled, error, label, ref, size =
19
19
  children: /* @__PURE__ */ jsxs(Stack, {
20
20
  direction: "row",
21
21
  columnGap: size === "small" ? "small" : "medium",
22
- fillChildren: false,
23
22
  vAlign: hasTextDescription ? "start" : "center",
24
23
  hPadding,
25
24
  vPadding,
@@ -42,7 +41,6 @@ var Checkbox$1 = ({ className, description, disabled, error, label, ref, size =
42
41
  })
43
42
  }), label || description || error ? /* @__PURE__ */ jsxs(Stack, {
44
43
  direction: "column",
45
- fillChildren: false,
46
44
  rowGap: "small",
47
45
  children: [label ? /* @__PURE__ */ jsx(FieldLabel, {
48
46
  size: size === "small" ? "small" : "medium",
@@ -11,7 +11,6 @@ var Chip = ({ addon, addonPosition = "start", children, className, ref, render,
11
11
  inline: true,
12
12
  direction: addonPosition === "start" ? "row" : "row-reverse",
13
13
  vAlign: "center",
14
- fillChildren: false,
15
14
  hPadding: "small",
16
15
  columnGap: "x-small",
17
16
  className: chip_module_default.Content,
@@ -16,7 +16,6 @@ var DialogSheet = ({ children, description, title, showCloseButton = false, fitC
16
16
  vAlign: "end",
17
17
  hPadding: "small",
18
18
  vPadding: "small",
19
- fillChildren: false,
20
19
  hAlign: fitContent ? "center" : void 0
21
20
  }),
22
21
  className: dialog_module_default.Viewport,
@@ -27,13 +26,17 @@ var DialogSheet = ({ children, description, title, showCloseButton = false, fitC
27
26
  style: { "--vui-dialog-max-block-size": maxHeight },
28
27
  render: /* @__PURE__ */ jsx(Surface, {
29
28
  border: "top",
30
- render: /* @__PURE__ */ jsx(Stack, { hAlign: "center" }),
29
+ render: /* @__PURE__ */ jsx(Stack, {
30
+ fillChildren: true,
31
+ hAlign: "center"
32
+ }),
31
33
  color: 1,
32
34
  "data-vibrant": "",
33
35
  radius: "large",
34
36
  vPadding: ["medium", 0]
35
37
  }),
36
38
  children: [showHandle && /* @__PURE__ */ jsxs(Stack, {
39
+ fillChildren: true,
37
40
  inline: true,
38
41
  direction: "row",
39
42
  vPadding: [0, "medium"],
@@ -44,6 +47,7 @@ var DialogSheet = ({ children, description, title, showCloseButton = false, fitC
44
47
  /* @__PURE__ */ jsx("div", { className: dialog_module_default.HandleShape })
45
48
  ]
46
49
  }), /* @__PURE__ */ jsxs(Stack, {
50
+ fillChildren: true,
47
51
  maxWidth: maxContentWidth,
48
52
  rowGap: "large",
49
53
  className: dialog_module_default.Body,
@@ -52,7 +56,6 @@ var DialogSheet = ({ children, description, title, showCloseButton = false, fitC
52
56
  "data-shrink": "false",
53
57
  hAlign: headerAlign,
54
58
  hPadding: "medium",
55
- fillChildren: false,
56
59
  children: [/* @__PURE__ */ jsx(Drawer.Title, {
57
60
  render: /* @__PURE__ */ jsx(Title, { size: "4" }),
58
61
  children: title
@@ -66,7 +69,6 @@ var DialogSheet = ({ children, description, title, showCloseButton = false, fitC
66
69
  }), /* @__PURE__ */ jsxs(Drawer.Content, {
67
70
  render: /* @__PURE__ */ jsx(Stack, {
68
71
  vAlign: "start",
69
- fillChildren: false,
70
72
  className: dialog_module_default.Content
71
73
  }),
72
74
  children: [showCloseButton && /* @__PURE__ */ jsx(Drawer.Close, {
@@ -9,6 +9,7 @@ var Fieldset$1 = ({ children, className, description, disabled, error, label, ..
9
9
  className,
10
10
  disabled,
11
11
  children: [(label || description || error) && /* @__PURE__ */ jsxs(Stack, {
12
+ fillChildren: true,
12
13
  vPadding: [0, "small"],
13
14
  rowGap: "small",
14
15
  children: [label && /* @__PURE__ */ jsx(Fieldset.Legend, {
@@ -14,14 +14,12 @@ var LinearProgress = ({ className, description, label, showValue = false, value,
14
14
  value,
15
15
  render: /* @__PURE__ */ jsx(Stack, {
16
16
  direction: "column",
17
- fillChildren: false,
18
17
  rowGap: "small",
19
18
  columnGap: "x-small"
20
19
  }),
21
20
  children: [
22
21
  (label || showValue) && /* @__PURE__ */ jsxs(Stack, {
23
22
  direction: "row",
24
- fillChildren: false,
25
23
  columnGap: "small",
26
24
  vAlign: "center",
27
25
  hAlign: "space-between",
@@ -70,7 +70,6 @@ var MasonryRoot = ({ children, className, breakpointCols = DEFAULT_BREAKPOINT_CO
70
70
  style: dynamicStyle,
71
71
  children: columns.map((column) => /* @__PURE__ */ jsx(Stack, {
72
72
  direction: "column",
73
- fillChildren: false,
74
73
  rowGap: gap,
75
74
  children: column.children
76
75
  }, column.key))
@@ -8,7 +8,6 @@ var MenuGroup = ({ children, className, label, ...otherProps }) => /* @__PURE__
8
8
  className,
9
9
  render: /* @__PURE__ */ jsx(Stack, {
10
10
  direction: "column",
11
- fillChildren: false,
12
11
  rowGap: "2x-small",
13
12
  vPadding: "2x-small"
14
13
  }),
@@ -16,7 +15,6 @@ var MenuGroup = ({ children, className, label, ...otherProps }) => /* @__PURE__
16
15
  render: /* @__PURE__ */ jsx(Stack, {
17
16
  columnGap: "small",
18
17
  direction: "row",
19
- fillChildren: false,
20
18
  hPadding: "small",
21
19
  vAlign: "center",
22
20
  vPadding: ["small", "x-small"]
@@ -6,7 +6,6 @@ import { Menu } from "@base-ui/react/menu";
6
6
  //#region src/components/menu/menu-indicator-slot.tsx
7
7
  var indicatorStackRender = /* @__PURE__ */ jsx(Stack, {
8
8
  "data-shrink": "false",
9
- fillChildren: false,
10
9
  hAlign: "center",
11
10
  inline: true,
12
11
  vAlign: "center"
@@ -35,7 +34,6 @@ var MenuIndicatorSlot = ({ kind }) => {
35
34
  "aria-hidden": true,
36
35
  "data-kind": "chevron",
37
36
  "data-shrink": "false",
38
- fillChildren: false,
39
37
  hAlign: "center",
40
38
  inline: true,
41
39
  vAlign: "center",
@@ -11,13 +11,13 @@ var MenuItemRow = ({ addon, children, note, trailing }) => /* @__PURE__ */ jsxs(
11
11
  columnGap: "small",
12
12
  "data-grow": "true",
13
13
  direction: "row",
14
- fillChildren: false,
15
14
  hPadding: "small",
16
15
  vPadding: "small",
17
16
  vAlign: "center",
18
17
  className: menu_module_default.ItemRow,
19
18
  children: [
20
19
  addon && /* @__PURE__ */ jsx(Stack, {
20
+ fillChildren: true,
21
21
  "aria-hidden": "true",
22
22
  "data-grow": "false",
23
23
  "data-shrink": "false",
@@ -12,7 +12,10 @@ var MenuLinkItem = ({ addon, children, className, note, sentiment, ...otherProps
12
12
  ...sentiment && { "data-sentiment": sentiment },
13
13
  render: /* @__PURE__ */ jsx(Surface, {
14
14
  radius: "auto",
15
- render: /* @__PURE__ */ jsx(Stack, { render: /* @__PURE__ */ jsx("a", {}) })
15
+ render: /* @__PURE__ */ jsx(Stack, {
16
+ fillChildren: true,
17
+ render: /* @__PURE__ */ jsx("a", {})
18
+ })
16
19
  }),
17
20
  children: /* @__PURE__ */ jsx(MenuItemRow, {
18
21
  addon,
@@ -8,7 +8,6 @@ var MenuRadioGroup = ({ children, className, label, ...otherProps }) => /* @__PU
8
8
  className,
9
9
  render: /* @__PURE__ */ jsx(Stack, {
10
10
  direction: "column",
11
- fillChildren: false,
12
11
  rowGap: "2x-small",
13
12
  vPadding: "2x-small"
14
13
  }),
@@ -16,7 +15,6 @@ var MenuRadioGroup = ({ children, className, label, ...otherProps }) => /* @__PU
16
15
  render: /* @__PURE__ */ jsx(Stack, {
17
16
  columnGap: "small",
18
17
  direction: "row",
19
- fillChildren: false,
20
18
  hPadding: "small",
21
19
  vAlign: "center",
22
20
  vPadding: ["small", "small"]
@@ -13,14 +13,12 @@ var Meter$1 = ({ className, description, label, showValue = false, value, ...oth
13
13
  value,
14
14
  render: /* @__PURE__ */ jsx(Stack, {
15
15
  direction: "column",
16
- fillChildren: false,
17
16
  rowGap: "small",
18
17
  columnGap: "x-small"
19
18
  }),
20
19
  children: [
21
20
  (label || showValue) && /* @__PURE__ */ jsxs(Stack, {
22
21
  direction: "row",
23
- fillChildren: false,
24
22
  columnGap: "small",
25
23
  vAlign: "center",
26
24
  hAlign: "space-between",
@@ -28,21 +28,18 @@ var PopoverSheet = ({ unstyled, title, description, children, showCloseButton =
28
28
  border: "all",
29
29
  radius: "large",
30
30
  "data-vibrant": "",
31
- render: /* @__PURE__ */ jsx(Stack, {
32
- rowGap: "medium",
33
- fillChildren: false
34
- })
31
+ render: /* @__PURE__ */ jsx(Stack, { rowGap: "medium" })
35
32
  }),
36
33
  children: /* @__PURE__ */ jsxs(Popover.Viewport, {
37
34
  className: popover_module_default.Viewport,
38
35
  render: /* @__PURE__ */ jsx(Stack, {
39
36
  rowGap: "medium",
40
37
  vPadding: "medium",
41
- hPadding: "medium",
42
- fillChildren: false
38
+ hPadding: "medium"
43
39
  }),
44
40
  children: [
45
41
  /* @__PURE__ */ jsxs(Stack, {
42
+ fillChildren: true,
46
43
  hAlign: headerAlign,
47
44
  rowGap: "small",
48
45
  vAlign: "start",
@@ -7,7 +7,6 @@ var RadioGroup$1 = ({ children, className, ...otherProps }) => /* @__PURE__ */ j
7
7
  className,
8
8
  render: /* @__PURE__ */ jsx(Stack, {
9
9
  "data-radiogroup": true,
10
- fillChildren: false,
11
10
  rowGap: "small"
12
11
  }),
13
12
  children
@@ -15,7 +15,6 @@ var Radio$1 = ({ className, description, disabled, id, label, ref, size = "small
15
15
  children: /* @__PURE__ */ jsx(Field.Label, { children: /* @__PURE__ */ jsxs(Stack, {
16
16
  direction: "row",
17
17
  columnGap: size === "small" ? "small" : "medium",
18
- fillChildren: false,
19
18
  vAlign: hasTextDescription ? "start" : "center",
20
19
  hPadding,
21
20
  vPadding,
@@ -33,7 +32,6 @@ var Radio$1 = ({ className, description, disabled, id, label, ref, size = "small
33
32
  })
34
33
  }), label || description ? /* @__PURE__ */ jsxs(Stack, {
35
34
  direction: "column",
36
- fillChildren: false,
37
35
  rowGap: "small",
38
36
  children: [label && /* @__PURE__ */ jsx(FieldLabel, {
39
37
  size: size === "small" ? "small" : "medium",
@@ -10,7 +10,6 @@ function SelectGroup({ children, className, label, ...groupProps }) {
10
10
  className,
11
11
  render: /* @__PURE__ */ jsx(Stack, {
12
12
  direction: "column",
13
- fillChildren: false,
14
13
  rowGap: "2x-small",
15
14
  vPadding: "2x-small"
16
15
  }),
@@ -18,7 +17,6 @@ function SelectGroup({ children, className, label, ...groupProps }) {
18
17
  render: /* @__PURE__ */ jsx(Stack, {
19
18
  columnGap: "small",
20
19
  direction: "row",
21
- fillChildren: false,
22
20
  hPadding: "small",
23
21
  vPadding: ["small", "x-small"],
24
22
  vAlign: "center"
@@ -4,7 +4,6 @@ import { jsx } from "react/jsx-runtime";
4
4
  import { Select } from "@base-ui/react/select";
5
5
  //#region src/components/select/select-indicator-slot.tsx
6
6
  var indicatorStackRender = /* @__PURE__ */ jsx(Stack, {
7
- fillChildren: false,
8
7
  hAlign: "center",
9
8
  inline: true,
10
9
  "data-shrink": "false",
@@ -22,7 +21,6 @@ function SelectIndicatorSlot({ children, interactive = false }) {
22
21
  "aria-hidden": true,
23
22
  className: select_module_default.Indicator,
24
23
  "data-grow": "false",
25
- fillChildren: false,
26
24
  hAlign: "center",
27
25
  inline: true,
28
26
  "data-shrink": "false",
@@ -16,6 +16,7 @@ function SelectOption({ addon, addonAlign = "center", children, className, indic
16
16
  className: clsx(select_module_default.Option, className),
17
17
  render: /* @__PURE__ */ jsx(Surface, { radius: "auto" }),
18
18
  children: /* @__PURE__ */ jsxs(Stack, {
19
+ fillChildren: true,
19
20
  columnGap: "medium",
20
21
  direction: "row",
21
22
  hPadding: "small",
@@ -25,8 +26,8 @@ function SelectOption({ addon, addonAlign = "center", children, className, indic
25
26
  direction: "row",
26
27
  columnGap: "small",
27
28
  vAlign: addonAlign,
28
- fillChildren: false,
29
29
  children: [addon && /* @__PURE__ */ jsx(Stack, {
30
+ fillChildren: true,
30
31
  "aria-hidden": "true",
31
32
  "data-grow": "false",
32
33
  "data-shrink": "false",
@@ -36,6 +36,7 @@ function SelectRootComponent({ alignListWithTrigger = true, children, className,
36
36
  validationDebounceTime,
37
37
  validationMode,
38
38
  render: /* @__PURE__ */ jsx(Stack, {
39
+ fillChildren: true,
39
40
  direction: "column",
40
41
  rowGap: "small"
41
42
  }),
@@ -56,6 +57,7 @@ function SelectRootComponent({ alignListWithTrigger = true, children, className,
56
57
  disabled,
57
58
  ref,
58
59
  render: /* @__PURE__ */ jsx(Stack, {
60
+ fillChildren: true,
59
61
  direction: "row",
60
62
  render: /* @__PURE__ */ jsx("button", { type: "button" }),
61
63
  columnGap: "x-small",
@@ -71,7 +73,6 @@ function SelectRootComponent({ alignListWithTrigger = true, children, className,
71
73
  className: select_module_default.Icon,
72
74
  "data-grow": "false",
73
75
  render: /* @__PURE__ */ jsx(Stack, {
74
- fillChildren: false,
75
76
  hAlign: "center",
76
77
  hPadding: "x-small",
77
78
  inline: true,
@@ -92,7 +93,6 @@ function SelectRootComponent({ alignListWithTrigger = true, children, className,
92
93
  className: clsx(select_module_default.ScrollArrow, select_module_default.ScrollArrowUp),
93
94
  "data-vibrant": "",
94
95
  render: /* @__PURE__ */ jsx(Stack, {
95
- fillChildren: false,
96
96
  hAlign: "center",
97
97
  vAlign: "center"
98
98
  }),
@@ -126,7 +126,6 @@ function SelectRootComponent({ alignListWithTrigger = true, children, className,
126
126
  className: clsx(select_module_default.ScrollArrow, select_module_default.ScrollArrowDown),
127
127
  "data-vibrant": "",
128
128
  render: /* @__PURE__ */ jsx(Stack, {
129
- fillChildren: false,
130
129
  hAlign: "center",
131
130
  vAlign: "center"
132
131
  }),
@@ -29,7 +29,6 @@ var Separator = ({ className, hPadding, orientation = "horizontal", ref, render,
29
29
  });
30
30
  return /* @__PURE__ */ jsx(Stack, {
31
31
  direction: orientation === "vertical" ? "row" : "column",
32
- fillChildren: false,
33
32
  hPadding,
34
33
  vAlign: orientation === "vertical" ? "stretch" : "initial",
35
34
  vPadding,
@@ -20,7 +20,6 @@ function SliderControl({ isRange, orientation = "horizontal", thumbAriaLabel })
20
20
  "data-orientation": orientation,
21
21
  render: /* @__PURE__ */ jsx(Stack, {
22
22
  direction: isVertical ? "column" : "row",
23
- fillChildren: false,
24
23
  hAlign: isVertical ? "center" : "initial",
25
24
  vAlign: isVertical ? "initial" : "center"
26
25
  }),
@@ -26,7 +26,6 @@ var Slider$1 = ({ className, defaultValue, description, dirty, disabled, error,
26
26
  validationMode,
27
27
  render: /* @__PURE__ */ jsx(Stack, {
28
28
  direction: "column",
29
- fillChildren: false,
30
29
  rowGap: "small"
31
30
  }),
32
31
  children: [/* @__PURE__ */ jsxs(Slider.Root, {
@@ -40,13 +39,13 @@ var Slider$1 = ({ className, defaultValue, description, dirty, disabled, error,
40
39
  value,
41
40
  render: /* @__PURE__ */ jsx(Stack, {
42
41
  direction: "column",
43
- fillChildren: false,
44
42
  rowGap: "medium",
45
43
  columnGap: "x-small",
46
44
  vAlign: isVertical ? "stretch" : "center",
47
45
  hAlign: isVertical ? "center" : "initial"
48
46
  }),
49
47
  children: [(label || showValue) && /* @__PURE__ */ jsxs(Stack, {
48
+ fillChildren: true,
50
49
  className: slider_module_default.SliderHeader,
51
50
  direction: isVertical ? "column" : "row",
52
51
  columnGap: "small",
@@ -46,7 +46,7 @@ export type StackProps = React.ComponentPropsWithoutRef<'div'> & {
46
46
  /**
47
47
  * Makes direct children grow to fill the available space within the stack.
48
48
  *
49
- * @default true
49
+ * @default false
50
50
  */
51
51
  fillChildren?: boolean;
52
52
  /**
@@ -10,7 +10,7 @@
10
10
  ],
11
11
  "whenNotToUse": [
12
12
  "Cases where a single component already owns required flex chrome",
13
- "Expecting the Stack root itself to grow via fillChildren",
13
+ "Expecting direct children to stretch without setting `fillChildren`",
14
14
  "Using `enableContainer` inside complex masonry-like layouts when you don't need container queries (size containment can change nested layout)"
15
15
  ],
16
16
  "accessibility": [
@@ -19,6 +19,7 @@
19
19
  "Do not use Stack alone to imply grouping; use landmarks or headings where needed"
20
20
  ],
21
21
  "antiPatterns": [
22
+ "Assuming Stack stretches direct children by default — pass `fillChildren` when children should grow along the flex main axis",
22
23
  "Re-declaring primitive flex container rules in app CSS when Stack can own the layout",
23
24
  "Using viewport media queries when @container stack queries against the rendered Stack size would match the design intent"
24
25
  ],
@@ -35,7 +36,7 @@
35
36
  "description": "Renders children across rows or columns using the chosen flex direction."
36
37
  },
37
38
  "fillChildren": {
38
- "description": "Makes direct children grow to fill the available space within the stack."
39
+ "description": "Makes direct children grow to fill the available space within the stack. Default `false`; opt in when layout needs equal flex growth on direct children."
39
40
  },
40
41
  "hAlign": {
41
42
  "description": "Aligns content on the horizontal axis from the consumer point of view."
@@ -5,7 +5,7 @@ import { resolveAxisPadding } from "../../core/styles/resolve-axis-padding.js";
5
5
  import stack_module_default from "./stack.module.js";
6
6
  import { useRender } from "@base-ui/react/use-render";
7
7
  //#region src/components/stack/stack.tsx
8
- var Stack = ({ className, direction = "column", fillChildren = true, hAlign = "initial", hPadding, inline = false, maxWidth, minWidth, enableContainer, ref, render, rowGap, columnGap, style, vAlign = "initial", vPadding, wrap = false, ...otherProps }) => {
8
+ var Stack = ({ className, direction = "column", fillChildren = false, hAlign = "initial", hPadding, inline = false, maxWidth, minWidth, enableContainer, ref, render, rowGap, columnGap, style, vAlign = "initial", vPadding, wrap = false, ...otherProps }) => {
9
9
  const hasPadding = Boolean(hPadding || vPadding);
10
10
  const dynamicStyle = {
11
11
  "--vui-stack-row-gap": resolveThemeValue(rowGap, "space", 0),
@@ -23,7 +23,6 @@ var Switch$1 = ({ className, description, dirty, disabled, error, invalid, label
23
23
  render: /* @__PURE__ */ jsx(Stack, {
24
24
  direction: "row",
25
25
  columnGap: size === "small" ? "small" : "medium",
26
- fillChildren: false,
27
26
  vAlign: hasTextDescription ? "start" : "center"
28
27
  }),
29
28
  children: /* @__PURE__ */ jsx(Field.Label, {
@@ -31,7 +30,6 @@ var Switch$1 = ({ className, description, dirty, disabled, error, invalid, label
31
30
  children: /* @__PURE__ */ jsxs(Stack, {
32
31
  direction: "row",
33
32
  columnGap: size === "small" ? "small" : "medium",
34
- fillChildren: false,
35
33
  vAlign: hasTextDescription ? "start" : "center",
36
34
  hPadding,
37
35
  vPadding,
@@ -46,7 +44,6 @@ var Switch$1 = ({ className, description, dirty, disabled, error, invalid, label
46
44
  children: /* @__PURE__ */ jsx(Switch.Thumb, { className: switch_module_default.Thumb })
47
45
  }), label || description || error ? /* @__PURE__ */ jsxs(Stack, {
48
46
  direction: "column",
49
- fillChildren: false,
50
47
  rowGap: "small",
51
48
  children: [label && /* @__PURE__ */ jsx(FieldLabel, {
52
49
  size: size === "small" ? "small" : "medium",
@@ -22,6 +22,7 @@ var TabsList = ({ children, className, activateOnFocus = true, ref, ...otherProp
22
22
  className: tabs_module_default.IndicatorLayer,
23
23
  children: /* @__PURE__ */ jsx(TabsIndicator, {})
24
24
  }), /* @__PURE__ */ jsx(Stack, {
25
+ fillChildren: true,
25
26
  direction: "row",
26
27
  columnGap: "small",
27
28
  hAlign: "start",
@@ -14,7 +14,6 @@ var TabsRootComponent = ({ children, className, listAlignment = "start", ...othe
14
14
  render: /* @__PURE__ */ jsx(Stack, {
15
15
  hAlign: listAlignment,
16
16
  vAlign: "start",
17
- fillChildren: false,
18
17
  className: clsx(tabs_module_default.Tabs, className)
19
18
  }),
20
19
  ...otherProps,
@@ -19,6 +19,7 @@ var Textarea = ({ className, description, dirty, disabled, error, fitContent, in
19
19
  validationDebounceTime,
20
20
  validationMode,
21
21
  render: /* @__PURE__ */ jsx(Stack, {
22
+ fillChildren: true,
22
23
  direction: "column",
23
24
  rowGap: "small"
24
25
  }),
@@ -21,6 +21,7 @@ var Textfield = ({ className, description, dirty, disabled, endAddon, error, fit
21
21
  validationDebounceTime,
22
22
  validationMode,
23
23
  render: /* @__PURE__ */ jsx(Stack, {
24
+ fillChildren: true,
24
25
  direction: "column",
25
26
  rowGap: "small"
26
27
  }),
@@ -27,14 +27,12 @@ var ToastBanner = ({ children, className, description, dismissable = true, dismi
27
27
  className: toast_module_default.Content,
28
28
  columnGap: "medium",
29
29
  direction: "row",
30
- fillChildren: false,
31
30
  hAlign: "space-between",
32
31
  vAlign: "center",
33
32
  hPadding: "large",
34
33
  vPadding: "large"
35
34
  }),
36
35
  children: [/* @__PURE__ */ jsxs(Stack, {
37
- fillChildren: false,
38
36
  rowGap: "small",
39
37
  children: [resolvedTitle && /* @__PURE__ */ jsx(Toast.Title, {
40
38
  render: /* @__PURE__ */ jsx(Text, { size: "medium" }),
@@ -50,7 +48,6 @@ var ToastBanner = ({ children, className, description, dismissable = true, dismi
50
48
  }), (dismissable || Boolean(actions.length)) && /* @__PURE__ */ jsxs(Stack, {
51
49
  columnGap: "small",
52
50
  direction: "row",
53
- fillChildren: false,
54
51
  children: [dismissable && /* @__PURE__ */ jsx(Toast.Close, {
55
52
  render: /* @__PURE__ */ jsx(Button, { variant: "secondary" }),
56
53
  onClick: () => {
@@ -5,10 +5,7 @@ import { ToggleGroup } from "@base-ui/react/toggle-group";
5
5
  var ToggleGroup$1 = ({ children, orientation = "horizontal", ...otherProps }) => /* @__PURE__ */ jsx(ToggleGroup, {
6
6
  ...otherProps,
7
7
  orientation,
8
- render: /* @__PURE__ */ jsx(Stack, {
9
- direction: orientation === "vertical" ? "column" : "row",
10
- fillChildren: false
11
- }),
8
+ render: /* @__PURE__ */ jsx(Stack, { direction: orientation === "vertical" ? "column" : "row" }),
12
9
  children
13
10
  });
14
11
  //#endregion
@@ -23,8 +23,7 @@ var TooltipContent = ({ children, sideOffset = 8, container, ...positionerProps
23
23
  className: tooltip_module_default.Viewport,
24
24
  render: /* @__PURE__ */ jsx(Stack, {
25
25
  vPadding: "small",
26
- hPadding: "small",
27
- fillChildren: false
26
+ hPadding: "small"
28
27
  }),
29
28
  children
30
29
  })
@@ -26,6 +26,11 @@
26
26
  "id": "layout",
27
27
  "file": "layout.css",
28
28
  "purpose": "Flex growth and shrink utilities via data-grow / data-shrink for Stack and component children."
29
+ },
30
+ {
31
+ "id": "vibrancy",
32
+ "file": "vibrancy.css",
33
+ "purpose": "Theme-gated backdrop-filter vibrancy on elements that opt in with data-vibrant."
29
34
  }
30
35
  ],
31
36
  "attributes": [
@@ -120,6 +125,22 @@
120
125
  ],
121
126
  "whenNotToUse": ["When default flex shrink is already correct"],
122
127
  "related": ["Stack"]
128
+ },
129
+ {
130
+ "name": "data-vibrant",
131
+ "module": "vibrancy",
132
+ "values": ["(boolean presence)"],
133
+ "presence": "boolean attribute; value ignored",
134
+ "effect": "When the active theme sets --effect-vibrancy, applies vibrancy backdrop-filter (brightness/blur/saturate). Surface with data-vibrant may also translucify its background via component CSS.",
135
+ "whenToUse": [
136
+ "Glass / frosted panels on Surface or other hosts over busy backgrounds",
137
+ "Match overlay chrome (Dialog/Popover/Menu/Toast) that ships with data-vibrant"
138
+ ],
139
+ "whenNotToUse": [
140
+ "When the theme does not expose --effect-vibrancy (attr is a no-op for filters)",
141
+ "Hand-rolling backdrop-filter CSS instead of the documented attr"
142
+ ],
143
+ "related": ["Surface", "--effect-vibrancy", "--vibrancy-blur", "--vibrancy-brightness"]
123
144
  }
124
145
  ],
125
146
  "customProperties": [
@@ -176,7 +197,9 @@
176
197
  "antiPatterns": [
177
198
  "Using data-elevation without importing @viraui/react/preflight.css",
178
199
  "Fighting data-mode color-scheme rules without documenting a deliberate override",
179
- "Applying data-no-link-style to prose links that should use the default interactive underline treatment"
200
+ "Applying data-no-link-style to prose links that should use the default interactive underline treatment",
201
+ "Inventing backdrop-filter CSS instead of data-vibrant when vibrancy is desired",
202
+ "Shipping a new consumer-facing data-* without updating preflight-surface.json and viraui-design/custom-attributes.md"
180
203
  ],
181
204
  "discovery": {
182
205
  "consumption": "@viraui/react/consumption.json",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@viraui/react",
3
- "version": "2026.0.14",
3
+ "version": "2026.0.16",
4
4
  "private": false,
5
5
  "files": [
6
6
  "dist"
@@ -35,7 +35,7 @@
35
35
  "unplugin-dts": "1.0.3",
36
36
  "vite": "8.1.4",
37
37
  "vite-plugin-static-copy": "4.1.1",
38
- "@viraui/foundation": "2026.0.14",
38
+ "@viraui/foundation": "2026.0.16",
39
39
  "@viraui/icons": "2026.0.0",
40
40
  "@viraui/postcss-config": "2026.0.0",
41
41
  "@viraui/tsconfig": "2026.0.0"