@viraui/react 2026.2.8 → 2026.2.10
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.
|
@@ -59,6 +59,13 @@ export type SelectProps = SelectRoot.Props<string> & Omit<FieldRoot.Props, 'ref'
|
|
|
59
59
|
* @default true
|
|
60
60
|
*/
|
|
61
61
|
alignListWithTrigger?: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* When `true`, open select locks page scroll and blocks outside pointer interaction
|
|
64
|
+
* (Base UI modal). Vira defaults to non-modal so the page stays scrollable.
|
|
65
|
+
*
|
|
66
|
+
* @default false
|
|
67
|
+
*/
|
|
68
|
+
modal?: boolean;
|
|
62
69
|
/**
|
|
63
70
|
* Portal mount node (iframe body, shadow root, or app overlay root).
|
|
64
71
|
* Omit for Base UI default (`document.body` from the module window —
|
|
@@ -68,7 +75,7 @@ export type SelectProps = SelectRoot.Props<string> & Omit<FieldRoot.Props, 'ref'
|
|
|
68
75
|
*/
|
|
69
76
|
container?: React.ComponentProps<typeof PrimitiveSelect.Portal>['container'];
|
|
70
77
|
};
|
|
71
|
-
declare function SelectRootComponent({ alignListWithTrigger, children, className, container, description, dirty, disabled, error, addon, invalid, label, name, placeholder, ref, touched, validate, validationDebounceTime, validationMode, ...selectRootProps }: SelectProps): React.JSX.Element;
|
|
78
|
+
declare function SelectRootComponent({ alignListWithTrigger, children, className, container, description, dirty, disabled, error, addon, invalid, label, modal, name, placeholder, ref, touched, validate, validationDebounceTime, validationMode, ...selectRootProps }: SelectProps): React.JSX.Element;
|
|
72
79
|
export declare const Select: typeof SelectRootComponent & {
|
|
73
80
|
Option: typeof SelectOption;
|
|
74
81
|
Group: typeof SelectGroup;
|
|
@@ -53,6 +53,9 @@
|
|
|
53
53
|
"label": {
|
|
54
54
|
"description": "Visible label rendered with shared internal `FieldLabel`."
|
|
55
55
|
},
|
|
56
|
+
"modal": {
|
|
57
|
+
"description": "When `true`, open select locks page scroll and blocks outside pointer interaction (Base UI modal). Vira defaults to non-modal so the page stays scrollable."
|
|
58
|
+
},
|
|
56
59
|
"Option.addon": {
|
|
57
60
|
"description": "Decorative leading node rendered before the option label."
|
|
58
61
|
},
|
|
@@ -18,7 +18,7 @@ import { Field } from "@base-ui/react/field";
|
|
|
18
18
|
import { useId } from "react";
|
|
19
19
|
import { Select } from "@base-ui/react/select";
|
|
20
20
|
//#region src/components/select/select.tsx
|
|
21
|
-
function SelectRootComponent({ alignListWithTrigger = true, children, className, container, description, dirty, disabled, error, addon = /* @__PURE__ */ jsx(ChromeChevronExpandY, { size: 16 }), invalid, label, name, placeholder, ref, touched, validate, validationDebounceTime, validationMode, ...selectRootProps }) {
|
|
21
|
+
function SelectRootComponent({ alignListWithTrigger = true, children, className, container, description, dirty, disabled, error, addon = /* @__PURE__ */ jsx(ChromeChevronExpandY, { size: 16 }), invalid, label, modal = false, name, placeholder, ref, touched, validate, validationDebounceTime, validationMode, ...selectRootProps }) {
|
|
22
22
|
const { "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ...restSelectProps } = selectRootProps;
|
|
23
23
|
const fieldLabelId = useId();
|
|
24
24
|
const listAccessibleNameProps = {};
|
|
@@ -48,6 +48,7 @@ function SelectRootComponent({ alignListWithTrigger = true, children, className,
|
|
|
48
48
|
/* @__PURE__ */ jsxs(Select.Root, {
|
|
49
49
|
...restSelectProps,
|
|
50
50
|
disabled,
|
|
51
|
+
modal,
|
|
51
52
|
name,
|
|
52
53
|
children: [/* @__PURE__ */ jsxs(Select.Trigger, {
|
|
53
54
|
"aria-label": ariaLabel,
|
|
@@ -12,7 +12,6 @@ var ToggleButton = ({ restingIcon, pressedIcon, variant = "flat", pressedVariant
|
|
|
12
12
|
defaultPressed,
|
|
13
13
|
onPressedChange,
|
|
14
14
|
disabled,
|
|
15
|
-
nativeButton: true,
|
|
16
15
|
render: (toggleProps, state) => {
|
|
17
16
|
const { "aria-label": _toggleAriaLabel, "aria-labelledby": _toggleAriaLabelledBy, ...restToggleProps } = toggleProps;
|
|
18
17
|
const icon = pressedIcon != null ? /* @__PURE__ */ jsxs("span", {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@viraui/react",
|
|
3
|
-
"version": "2026.2.
|
|
3
|
+
"version": "2026.2.10",
|
|
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.2.2",
|
|
37
37
|
"vite-plugin-static-copy": "4.1.1",
|
|
38
|
-
"@viraui/foundation": "2026.2.
|
|
38
|
+
"@viraui/foundation": "2026.2.10",
|
|
39
39
|
"@viraui/icons": "2026.0.2",
|
|
40
40
|
"@viraui/postcss-config": "2026.0.0",
|
|
41
41
|
"@viraui/tsconfig": "2026.0.0"
|