@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.
- package/dist/components/accordion/accordion-item.js +0 -2
- package/dist/components/accordion/accordion.js +1 -2
- package/dist/components/autocomplete/autocomplete-group.js +0 -2
- package/dist/components/autocomplete/autocomplete-item.js +1 -1
- package/dist/components/autocomplete/autocomplete.js +1 -0
- package/dist/components/avatar-group/avatar-group.js +0 -1
- package/dist/components/basic-input/input-control-group.js +0 -3
- package/dist/components/checkbox/checkbox-group.js +1 -4
- package/dist/components/checkbox/checkbox.js +0 -2
- package/dist/components/chip/chip.js +0 -1
- package/dist/components/dialog/dialog-sheet.js +6 -4
- package/dist/components/fieldset/fieldset.js +1 -0
- package/dist/components/linear-progress/linear-progress.js +0 -2
- package/dist/components/masonry/masonry.js +0 -1
- package/dist/components/menu/menu-group.js +0 -2
- package/dist/components/menu/menu-indicator-slot.js +0 -2
- package/dist/components/menu/menu-item-row.js +1 -1
- package/dist/components/menu/menu-link-item.js +4 -1
- package/dist/components/menu/menu-radio-group.js +0 -2
- package/dist/components/meter/meter.js +0 -2
- package/dist/components/popover/popover-sheet.js +3 -6
- package/dist/components/radio/radio-group.js +0 -1
- package/dist/components/radio/radio.js +0 -2
- package/dist/components/select/select-group.js +0 -2
- package/dist/components/select/select-indicator-slot.js +0 -2
- package/dist/components/select/select-option.js +2 -1
- package/dist/components/select/select.js +2 -3
- package/dist/components/separator/separator.js +0 -1
- package/dist/components/slider/slider-control.js +0 -1
- package/dist/components/slider/slider.js +1 -2
- package/dist/components/stack/stack.d.ts +1 -1
- package/dist/components/stack/stack.guide.json +3 -2
- package/dist/components/stack/stack.js +1 -1
- package/dist/components/switch/switch.js +0 -3
- package/dist/components/tabs/tabs-list.js +1 -0
- package/dist/components/tabs/tabs.js +0 -1
- package/dist/components/textarea/textarea.js +1 -0
- package/dist/components/textfield/textfield.js +1 -0
- package/dist/components/toast/toast-banner.js +0 -3
- package/dist/components/toggle-group/toggle-group.js +1 -4
- package/dist/components/tooltip/tooltip-content.js +1 -2
- package/dist/preflight-surface.json +24 -1
- 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",
|
|
@@ -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, {
|
|
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, {
|
|
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",
|
|
@@ -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",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
],
|
|
11
11
|
"whenNotToUse": [
|
|
12
12
|
"Cases where a single component already owns required flex chrome",
|
|
13
|
-
"Expecting
|
|
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 =
|
|
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,
|
|
@@ -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.
|
|
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.
|
|
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"
|