@viraui/react 0.0.22 → 0.0.24
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/catalog.json +26 -2
- package/dist/components/avatar/avatar.css +1 -1
- package/dist/components/avatar/avatar.module.js +3 -3
- package/dist/components/avatar-group/avatar-group.css +1 -1
- package/dist/components/avatar-group/avatar-group.module.js +5 -5
- package/dist/components/basic-input/basic-input.css +1 -1
- package/dist/components/basic-input/basic-input.js +0 -1
- package/dist/components/basic-input/basic-input.module.js +1 -1
- package/dist/components/basic-input/field-helper-copy.d.ts +1 -1
- package/dist/components/basic-input/field-helper-copy.js +0 -1
- package/dist/components/basic-input/field-label.css +1 -1
- package/dist/components/basic-input/field-label.js +0 -1
- package/dist/components/basic-input/field-label.module.js +1 -1
- package/dist/components/basic-input/input-control-group.js +0 -1
- package/dist/components/button/button.css +1 -1
- package/dist/components/button/button.d.ts +13 -7
- package/dist/components/button/button.guide.json +7 -5
- package/dist/components/button/button.js +11 -10
- package/dist/components/button/button.module.js +3 -3
- package/dist/components/checkbox/checkbox-group.d.ts +12 -0
- package/dist/components/checkbox/checkbox-group.js +15 -0
- package/dist/components/checkbox/checkbox.css +1 -1
- package/dist/components/checkbox/checkbox.d.ts +6 -21
- package/dist/components/checkbox/checkbox.guide.json +10 -5
- package/dist/components/checkbox/checkbox.js +45 -59
- package/dist/components/checkbox/checkbox.module.js +7 -6
- package/dist/components/checkbox/index.d.ts +2 -0
- package/dist/components/chip/chip.css +1 -1
- package/dist/components/chip/chip.js +0 -2
- package/dist/components/chip/chip.module.js +4 -4
- package/dist/components/clamp-text/clamp-text.css +1 -1
- package/dist/components/clamp-text/clamp-text.module.js +1 -1
- package/dist/components/dialog/dialog-close.d.ts +15 -0
- package/dist/components/dialog/dialog-close.js +9 -0
- package/dist/components/dialog/dialog-indent-background.d.ts +12 -0
- package/dist/components/dialog/dialog-indent-background.js +11 -0
- package/dist/components/dialog/dialog-indent.d.ts +12 -0
- package/dist/components/dialog/dialog-indent.js +11 -0
- package/dist/components/dialog/dialog-sheet.d.ts +66 -0
- package/dist/components/dialog/dialog-sheet.js +80 -0
- package/dist/components/dialog/dialog-trigger.d.ts +13 -0
- package/dist/components/dialog/dialog-trigger.js +9 -0
- package/dist/components/dialog/dialog.css +1 -0
- package/dist/components/dialog/dialog.d.ts +28 -0
- package/dist/components/dialog/dialog.guide.json +27 -0
- package/dist/components/dialog/dialog.js +23 -0
- package/dist/components/dialog/dialog.module.js +15 -0
- package/dist/components/dialog/index.d.ts +12 -0
- package/dist/components/elevator/elevator.js +4 -4
- package/dist/components/fieldset/fieldset.d.ts +35 -0
- package/dist/components/fieldset/fieldset.guide.json +28 -0
- package/dist/components/fieldset/fieldset.js +30 -0
- package/dist/components/fieldset/index.d.ts +2 -0
- package/dist/components/icon/icon.css +1 -1
- package/dist/components/icon/icon.module.js +1 -1
- package/dist/components/icon-button/icon-button.d.ts +1 -1
- package/dist/components/icon-button/icon-button.guide.json +1 -1
- package/dist/components/icon-button/icon-button.js +1 -1
- package/dist/components/index.d.ts +4 -0
- package/dist/components/linear-progress/linear-progress.css +1 -1
- package/dist/components/linear-progress/linear-progress.js +0 -1
- package/dist/components/linear-progress/linear-progress.module.js +4 -4
- package/dist/components/masonry/masonry-item.js +0 -1
- package/dist/components/masonry/masonry.css +1 -1
- package/dist/components/masonry/masonry.js +2 -3
- package/dist/components/masonry/masonry.module.js +2 -2
- package/dist/components/progressive-blur/progressive-blur.css +1 -1
- package/dist/components/progressive-blur/progressive-blur.module.js +2 -2
- package/dist/components/radio/radio-group.d.ts +5 -38
- package/dist/components/radio/radio-group.js +12 -50
- package/dist/components/radio/radio.css +1 -1
- package/dist/components/radio/radio.d.ts +1 -1
- package/dist/components/radio/radio.guide.json +12 -8
- package/dist/components/radio/radio.js +31 -29
- package/dist/components/radio/radio.module.js +3 -5
- package/dist/components/select/select-group.js +1 -1
- package/dist/components/select/select-indicator-slot.js +0 -1
- package/dist/components/select/select-option.d.ts +9 -2
- package/dist/components/select/select-option.js +32 -31
- package/dist/components/select/select-separator.js +0 -1
- package/dist/components/select/select.css +1 -1
- package/dist/components/select/select.guide.json +8 -3
- package/dist/components/select/select.js +3 -2
- package/dist/components/select/select.module.js +17 -16
- package/dist/components/separator/index.d.ts +2 -0
- package/dist/components/separator/separator.css +1 -0
- package/dist/components/separator/separator.d.ts +54 -0
- package/dist/components/separator/separator.guide.json +24 -0
- package/dist/components/separator/separator.js +43 -0
- package/dist/components/separator/separator.module.js +3 -0
- package/dist/components/skeleton/skeleton.css +1 -1
- package/dist/components/skeleton/skeleton.module.js +2 -2
- package/dist/components/slider/slider-control.js +0 -1
- package/dist/components/slider/slider.css +1 -1
- package/dist/components/slider/slider.js +1 -3
- package/dist/components/slider/slider.module.js +9 -8
- package/dist/components/spinner/spinner.css +1 -1
- package/dist/components/spinner/spinner.js +2 -2
- package/dist/components/spinner/spinner.module.js +3 -3
- package/dist/components/stack/stack.css +1 -1
- package/dist/components/stack/stack.d.ts +2 -2
- package/dist/components/stack/stack.js +0 -1
- package/dist/components/stack/stack.module.js +1 -1
- package/dist/components/static-noise/static-noise.css +1 -1
- package/dist/components/static-noise/static-noise.d.ts +1 -1
- package/dist/components/static-noise/static-noise.js +2 -1
- package/dist/components/static-noise/static-noise.module.js +2 -2
- package/dist/components/surface/surface-radius-context.d.ts +9 -1
- package/dist/components/surface/surface-radius-context.js +17 -6
- package/dist/components/surface/surface.css +1 -1
- package/dist/components/surface/surface.d.ts +9 -3
- package/dist/components/surface/surface.guide.json +3 -1
- package/dist/components/surface/surface.js +3 -3
- package/dist/components/surface/surface.module.js +1 -4
- package/dist/components/switch/switch.css +1 -1
- package/dist/components/switch/switch.js +31 -29
- package/dist/components/switch/switch.module.js +4 -3
- package/dist/components/tabs/index.d.ts +6 -0
- package/dist/components/tabs/tabs-indicator.d.ts +9 -0
- package/dist/components/tabs/tabs-indicator.js +16 -0
- package/dist/components/tabs/tabs-list.d.ts +12 -0
- package/dist/components/tabs/tabs-list.js +29 -0
- package/dist/components/tabs/tabs-panel.d.ts +11 -0
- package/dist/components/tabs/tabs-panel.js +13 -0
- package/dist/components/tabs/tabs-tab.d.ts +24 -0
- package/dist/components/tabs/tabs-tab.js +24 -0
- package/dist/components/tabs/tabs-viewport.d.ts +8 -0
- package/dist/components/tabs/tabs-viewport.js +11 -0
- package/dist/components/tabs/tabs.css +1 -0
- package/dist/components/tabs/tabs.d.ts +31 -0
- package/dist/components/tabs/tabs.guide.json +23 -0
- package/dist/components/tabs/tabs.js +30 -0
- package/dist/components/tabs/tabs.module.js +11 -0
- package/dist/components/text/text.css +1 -1
- package/dist/components/text/text.d.ts +2 -2
- package/dist/components/text/text.js +2 -3
- package/dist/components/text/text.module.js +1 -1
- package/dist/components/textarea/textarea.css +1 -1
- package/dist/components/textarea/textarea.guide.json +8 -3
- package/dist/components/textarea/textarea.js +1 -3
- package/dist/components/textarea/textarea.module.js +4 -3
- package/dist/components/textfield/textfield.css +1 -1
- package/dist/components/textfield/textfield.guide.json +9 -3
- package/dist/components/textfield/textfield.js +1 -3
- package/dist/components/textfield/textfield.module.js +6 -5
- package/dist/components/title/title.css +1 -1
- package/dist/components/title/title.js +2 -3
- package/dist/components/title/title.module.js +1 -1
- package/dist/core/elevation/get-elevation-props.js +2 -2
- package/dist/core/props/intrinsic-vira-props.d.ts +3 -3
- package/dist/index.js +11 -1
- package/dist/internal-icons/icon-registry.d.ts +4 -1
- package/dist/internal-icons/icon-registry.js +9 -0
- package/dist/internal-icons/icons/duo/ArrowDown.js +1 -1
- package/dist/internal-icons/icons/duo/ArrowDownLeft.js +1 -1
- package/dist/internal-icons/icons/duo/ArrowDownRight.js +1 -1
- package/dist/internal-icons/icons/duo/ArrowLeft.js +1 -1
- package/dist/internal-icons/icons/duo/ArrowRight.js +1 -1
- package/dist/internal-icons/icons/duo/ArrowUp.js +1 -1
- package/dist/internal-icons/icons/duo/ArrowUpLeft.js +1 -1
- package/dist/internal-icons/icons/duo/ArrowUpRight.js +1 -1
- package/dist/internal-icons/icons/duo/ChevronExpandY.js +2 -2
- package/dist/internal-icons/icons/duo/CircleCheck.d.ts +7 -0
- package/dist/internal-icons/icons/duo/CircleCheck.js +13 -0
- package/dist/internal-icons/icons/duo/Duplicate.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Duplicate.js +13 -0
- package/dist/internal-icons/icons/duo/RefreshAnticlockwise.js +1 -1
- package/dist/internal-icons/icons/duo/ShieldCheck.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ShieldCheck.js +13 -0
- package/dist/internal-icons/icons/duo/index.d.ts +3 -0
- package/dist/internal-icons/icons/duo/index.js +3 -0
- package/dist/preflight-surface.json +15 -1
- package/dist/preflight.css +1 -1
- package/dist/theme-surface.json +0 -5
- package/package.json +4 -4
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
var linear_progress_module_default = {
|
|
2
|
-
LinearProgress: "
|
|
3
|
-
"linear-progress-indeterminate": "
|
|
4
|
-
Track: "
|
|
5
|
-
Indicator: "
|
|
2
|
+
LinearProgress: "viraui__linear-progress-module__LinearProgress_-KN0j",
|
|
3
|
+
"linear-progress-indeterminate": "viraui__linear-progress-module__linear-progress-indeterminate_g0cSO",
|
|
4
|
+
Track: "viraui__linear-progress-module__Track_qUz8P",
|
|
5
|
+
Indicator: "viraui__linear-progress-module__Indicator_maaZF"
|
|
6
6
|
};
|
|
7
7
|
//#endregion
|
|
8
8
|
export { linear_progress_module_default as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.
|
|
1
|
+
.viraui__masonry-module__Masonry_l7c8U{--masonry-gap:var(--space-large);--masonry-column-fill:balance;--masonry-column-rule-color:var(--global-contrast);display:block;column-gap:var(--masonry-gap);column-fill:var(--masonry-column-fill);column-rule-color:var(--masonry-column-rule-color);columns:var(--masonry-column-width,auto) var(--masonry-column-count,auto)}.viraui__masonry-module__Item_ywXwo{display:block;break-inside:avoid;margin:0;padding-block-end:var(--masonry-gap);&[data-masonry-item-span-all=true]{column-span:all}}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import './masonry.css';
|
|
3
2
|
import { clsx } from "../../core/clsx.js";
|
|
4
3
|
import { extractIntrinsicViraProps } from "../../core/props/intrinsic-vira-props.js";
|
|
@@ -14,8 +13,8 @@ var MasonryRoot = ({ children, className, columnCount = 4, columnFill = "balance
|
|
|
14
13
|
"--masonry-gap": resolveThemeValue(gap, "space", "var(--space-large)"),
|
|
15
14
|
"--masonry-column-fill": columnFill,
|
|
16
15
|
...usesColumnWidth ? { "--masonry-column-width": columnWidth } : { "--masonry-column-count": `${columnCount}` },
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
columnRuleWidth,
|
|
17
|
+
columnRuleStyle,
|
|
19
18
|
...style
|
|
20
19
|
};
|
|
21
20
|
return useRender({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var masonry_module_default = {
|
|
2
|
-
Masonry: "
|
|
3
|
-
Item: "
|
|
2
|
+
Masonry: "viraui__masonry-module__Masonry_l7c8U",
|
|
3
|
+
Item: "viraui__masonry-module__Item_ywXwo"
|
|
4
4
|
};
|
|
5
5
|
//#endregion
|
|
6
6
|
export { masonry_module_default as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.
|
|
1
|
+
.viraui__progressive-blur-module__ProgressiveBlur_eIxTK{--progressive-blur:16px;pointer-events:none}.viraui__progressive-blur-module__Layer_zbzMS{position:absolute;inset:0;backdrop-filter:blur(calc(var(--progressive-blur) * var(--progressive-blur-factor)));mask-image:var(--progressive-blur-mask-image);.viraui__progressive-blur-module__ProgressiveBlur_eIxTK[data-direction=top] &{--progressive-blur-mask-image:linear-gradient(to top,var(--progressive-blur-mask-gradient))}.viraui__progressive-blur-module__ProgressiveBlur_eIxTK[data-direction=right] &{--progressive-blur-mask-image:linear-gradient(to right,var(--progressive-blur-mask-gradient))}.viraui__progressive-blur-module__ProgressiveBlur_eIxTK[data-direction=bottom] &{--progressive-blur-mask-image:linear-gradient(to bottom,var(--progressive-blur-mask-gradient))}.viraui__progressive-blur-module__ProgressiveBlur_eIxTK[data-direction=left] &{--progressive-blur-mask-image:linear-gradient(to left,var(--progressive-blur-mask-gradient))}}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var progressive_blur_module_default = {
|
|
2
|
-
ProgressiveBlur: "
|
|
3
|
-
Layer: "
|
|
2
|
+
ProgressiveBlur: "viraui__progressive-blur-module__ProgressiveBlur_eIxTK",
|
|
3
|
+
Layer: "viraui__progressive-blur-module__Layer_zbzMS"
|
|
4
4
|
};
|
|
5
5
|
//#endregion
|
|
6
6
|
export { progressive_blur_module_default as default };
|
|
@@ -1,44 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { IntrinsicViraProps } from '../../core/props/intrinsic-vira-props';
|
|
3
|
-
import type * as React from 'react';
|
|
1
|
+
import { RadioGroup as RadioGroupPrimitive } from '@base-ui/react';
|
|
4
2
|
/**
|
|
5
3
|
* Public RadioGroup props.
|
|
6
4
|
*
|
|
7
|
-
* Thin wrapper around Base UI `RadioGroup` with
|
|
8
|
-
*
|
|
5
|
+
* Thin wrapper around Base UI `RadioGroup` with default option spacing.
|
|
6
|
+
* Compose with `Field.Root` and `Fieldset` for group labels, validation, and copy.
|
|
9
7
|
*
|
|
10
8
|
* @default Base UI pass-through props keep upstream defaults.
|
|
11
9
|
*/
|
|
12
|
-
export type RadioGroupProps = RadioGroupPrimitive.Props
|
|
13
|
-
|
|
14
|
-
* Adds `data-grow="false"` to the field root when false.
|
|
15
|
-
*
|
|
16
|
-
* @default The field root does not render a grow attribute.
|
|
17
|
-
*/
|
|
18
|
-
grow?: IntrinsicViraProps['grow'];
|
|
19
|
-
/**
|
|
20
|
-
* Adds `data-shrink="false"` to the field root when false.
|
|
21
|
-
*
|
|
22
|
-
* @default The field root does not render a shrink attribute.
|
|
23
|
-
*/
|
|
24
|
-
shrink?: IntrinsicViraProps['shrink'];
|
|
25
|
-
/**
|
|
26
|
-
* Visible group label rendered with shared internal `FieldLabel`.
|
|
27
|
-
*
|
|
28
|
-
* @default No label is rendered.
|
|
29
|
-
*/
|
|
30
|
-
label?: React.ReactNode;
|
|
31
|
-
/**
|
|
32
|
-
* Group helper copy rendered below the options while valid.
|
|
33
|
-
*
|
|
34
|
-
* @default No description is rendered.
|
|
35
|
-
*/
|
|
36
|
-
description?: React.ReactNode;
|
|
37
|
-
/**
|
|
38
|
-
* Group error copy rendered below the options when invalid.
|
|
39
|
-
*
|
|
40
|
-
* @default No static error copy is rendered.
|
|
41
|
-
*/
|
|
42
|
-
error?: React.ReactNode;
|
|
43
|
-
};
|
|
44
|
-
export declare const RadioGroup: React.FC<RadioGroupProps>;
|
|
10
|
+
export type RadioGroupProps<Value = string> = RadioGroupPrimitive.Props<Value>;
|
|
11
|
+
export declare const RadioGroup: <Value>({ children, className, ...props }: RadioGroupProps<Value>) => import("react").JSX.Element;
|
|
@@ -1,54 +1,16 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { extractIntrinsicViraProps } from "../../core/props/intrinsic-vira-props.js";
|
|
3
1
|
import { Stack } from "../stack/stack.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import radio_module_default from "./radio.module.js";
|
|
7
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
-
import { Field, Fieldset, RadioGroup } from "@base-ui/react";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { RadioGroup } from "@base-ui/react";
|
|
9
4
|
//#region src/components/radio/radio-group.tsx
|
|
10
|
-
var RadioGroup$1 = ({ children, className,
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
validate,
|
|
21
|
-
validationDebounceTime,
|
|
22
|
-
validationMode,
|
|
23
|
-
children: /* @__PURE__ */ jsxs(Stack, {
|
|
24
|
-
className: radio_module_default.RadioFieldset,
|
|
25
|
-
fillChildren: false,
|
|
26
|
-
render: /* @__PURE__ */ jsx(Fieldset.Root, { disabled }),
|
|
27
|
-
rowGap: "small",
|
|
28
|
-
children: [
|
|
29
|
-
label && /* @__PURE__ */ jsx(Fieldset.Legend, {
|
|
30
|
-
render: /* @__PURE__ */ jsx(FieldLabel, {}),
|
|
31
|
-
children: label
|
|
32
|
-
}),
|
|
33
|
-
(description || error) && /* @__PURE__ */ jsx(FieldHelperCopy, {
|
|
34
|
-
description,
|
|
35
|
-
error
|
|
36
|
-
}),
|
|
37
|
-
/* @__PURE__ */ jsx(RadioGroup, {
|
|
38
|
-
...componentProps,
|
|
39
|
-
className,
|
|
40
|
-
disabled,
|
|
41
|
-
render: /* @__PURE__ */ jsx(Stack, {
|
|
42
|
-
fillChildren: false,
|
|
43
|
-
vPadding: ["small", 0],
|
|
44
|
-
rowGap: "small"
|
|
45
|
-
}),
|
|
46
|
-
name,
|
|
47
|
-
children
|
|
48
|
-
})
|
|
49
|
-
]
|
|
50
|
-
})
|
|
51
|
-
});
|
|
52
|
-
};
|
|
5
|
+
var RadioGroup$1 = ({ children, className, ...props }) => /* @__PURE__ */ jsx(RadioGroup, {
|
|
6
|
+
...props,
|
|
7
|
+
className,
|
|
8
|
+
render: /* @__PURE__ */ jsx(Stack, {
|
|
9
|
+
"data-radiogroup": true,
|
|
10
|
+
fillChildren: false,
|
|
11
|
+
rowGap: "small"
|
|
12
|
+
}),
|
|
13
|
+
children
|
|
14
|
+
});
|
|
53
15
|
//#endregion
|
|
54
16
|
export { RadioGroup$1 as RadioGroup };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.
|
|
1
|
+
.viraui__radio-module__RadioRoot_3uvvn{--radio-size:var(--space-medium);--radio-background:var(--global-contrast);--radio-border-color:transparent;--radio-indicator-color:contrast-color(var(--global-primary));--radio-disk-size:calc(var(--radio-size) / 2);position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;appearance:none;border:0;box-shadow:inset 0 0 0 1px var(--radio-border-color);inline-size:var(--radio-size);block-size:var(--radio-size);background:var(--radio-background);border-radius:100000px;corner-shape:unset;&[data-size=regular]{--radio-size:var(--space-large)}&[data-checked]:not([data-disabled]):not([data-invalid]){--radio-background:var(--global-primary);--radio-border-color:var(--global-primary);box-shadow:none}&[data-invalid]:not([data-disabled]),[data-invalid] &:not([data-disabled]){--radio-border-color:var(--highlight-red);--radio-indicator-color:var(--global-primary);box-shadow:inset 0 0 0 1px var(--highlight-red);outline-color:oklab(from var(--highlight-red) l a b/.5)}&[data-disabled],[data-disabled] &{--radio-background:var(--global-disabled-background);--radio-border-color:transparent;--radio-indicator-color:var(--global-disabled-foreground);box-shadow:none;cursor:not-allowed}}.viraui__radio-module__Indicator_Ecavw{display:inline-flex;align-items:center;justify-content:center;color:var(--radio-indicator-color)}.viraui__radio-module__Disk_pV-Q1{inline-size:var(--radio-disk-size);aspect-ratio:1/1;border-radius:100000px;corner-shape:unset;background:currentColor}.viraui__radio-module__RadioRoot_3uvvn:not([data-checked]) .viraui__radio-module__Disk_pV-Q1{display:none}
|
|
@@ -5,7 +5,7 @@ import type * as React from 'react';
|
|
|
5
5
|
* Public Radio props.
|
|
6
6
|
*
|
|
7
7
|
* Self-contained option row for use inside `RadioGroup`. Group-level `name`,
|
|
8
|
-
* `invalid`, and `error` belong on `
|
|
8
|
+
* `invalid`, and `error` belong on an external `Field.Root` and `Fieldset`, not on individual options.
|
|
9
9
|
*
|
|
10
10
|
* @default Base UI pass-through props keep upstream defaults.
|
|
11
11
|
*/
|
|
@@ -2,25 +2,29 @@
|
|
|
2
2
|
"name": "Radio",
|
|
3
3
|
"summary": "Mutually exclusive choice within a RadioGroup, with optional per-option label and helper text.",
|
|
4
4
|
"whenToUse": [
|
|
5
|
-
"Single selection from a small set of related options",
|
|
5
|
+
"Single selection from a small set of related options inside RadioGroup",
|
|
6
|
+
"RadioGroup alone inside Field.Root when each Radio has its own label and no shared group legend is needed",
|
|
7
|
+
"Field.Root > Fieldset render={<RadioGroup<Value> />} when the group needs a shared legend, description, or error",
|
|
6
8
|
"Card-style or custom layouts where each option is wrapped in Surface or consumer markup",
|
|
7
|
-
"
|
|
9
|
+
"Typed option unions with RadioGroup<'ssd' | 'hdd'> for value, defaultValue, and onValueChange safety"
|
|
8
10
|
],
|
|
9
11
|
"whenNotToUse": [
|
|
10
12
|
"Independent boolean toggles (use Checkbox or Switch)",
|
|
11
|
-
"Multi-select sets (use
|
|
12
|
-
"Options rendered outside a RadioGroup wrapper"
|
|
13
|
+
"Multi-select sets (use CheckboxGroup)",
|
|
14
|
+
"Options rendered outside a RadioGroup wrapper",
|
|
15
|
+
"Assuming Fieldset is mandatory for every RadioGroup — add Fieldset only for shared legend or group copy",
|
|
16
|
+
"Group legend, description, or validation on RadioGroup props — use Field.Root and Fieldset instead"
|
|
13
17
|
],
|
|
14
18
|
"accessibility": [
|
|
15
19
|
"Wrap options in RadioGroup so the group exposes a shared name",
|
|
16
20
|
"Provide visible label or aria-label on each option so radios have accessible names",
|
|
17
|
-
"Surface group invalid state and error copy through
|
|
21
|
+
"Surface group invalid state and error copy through Field.Root and Fieldset, not individual Radio options"
|
|
18
22
|
],
|
|
19
23
|
"antiPatterns": [
|
|
20
24
|
"Rendering Radio outside RadioGroup",
|
|
21
|
-
"Putting invalid or error on a single Radio instead of
|
|
22
|
-
"
|
|
25
|
+
"Putting invalid or error on a single Radio instead of the enclosing Field.Root and Fieldset",
|
|
26
|
+
"Omitting the RadioGroup generic when option value props form a restricted union",
|
|
23
27
|
"Importing @viraui/react/radio/radio.css or other component CSS subpaths in consumer bootstrap"
|
|
24
28
|
],
|
|
25
|
-
"related": ["Checkbox", "Surface", "Stack"]
|
|
29
|
+
"related": ["Fieldset", "Checkbox", "Surface", "Stack"]
|
|
26
30
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import './radio.css';
|
|
3
2
|
import { clsx } from "../../core/clsx.js";
|
|
4
3
|
import { Stack } from "../stack/stack.js";
|
|
@@ -11,35 +10,38 @@ import { Radio } from "@base-ui/react/radio";
|
|
|
11
10
|
//#region src/components/radio/radio.tsx
|
|
12
11
|
var Radio$1 = ({ className, description, disabled, id, label, ref, size = "small", vPadding, hPadding, value, ...radioRootProps }) => {
|
|
13
12
|
const hasTextDescription = Boolean(description);
|
|
14
|
-
return /* @__PURE__ */ jsx(Field.Item, { children: /* @__PURE__ */ jsx(Field.Label, {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
...hPadding !== void 0 ? { hPadding } : {},
|
|
20
|
-
...vPadding !== void 0 ? { vPadding } : {},
|
|
21
|
-
children: [/* @__PURE__ */ jsx(Radio.Root, {
|
|
22
|
-
...radioRootProps,
|
|
23
|
-
className: clsx(radio_module_default.RadioRoot, className),
|
|
24
|
-
"data-size": size,
|
|
25
|
-
disabled,
|
|
26
|
-
id,
|
|
27
|
-
ref,
|
|
28
|
-
value,
|
|
29
|
-
children: /* @__PURE__ */ jsx(Radio.Indicator, {
|
|
30
|
-
className: radio_module_default.Indicator,
|
|
31
|
-
children: /* @__PURE__ */ jsx("span", { className: radio_module_default.Disk })
|
|
32
|
-
})
|
|
33
|
-
}), label || description ? /* @__PURE__ */ jsxs(Stack, {
|
|
34
|
-
direction: "column",
|
|
13
|
+
return /* @__PURE__ */ jsx(Field.Item, { children: /* @__PURE__ */ jsx(Field.Label, {
|
|
14
|
+
className: radio_module_default.Label,
|
|
15
|
+
children: /* @__PURE__ */ jsxs(Stack, {
|
|
16
|
+
direction: "row",
|
|
17
|
+
columnGap: size === "small" ? "small" : "medium",
|
|
35
18
|
fillChildren: false,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
19
|
+
vAlign: hasTextDescription ? "start" : "center",
|
|
20
|
+
hPadding,
|
|
21
|
+
vPadding,
|
|
22
|
+
children: [/* @__PURE__ */ jsx(Radio.Root, {
|
|
23
|
+
...radioRootProps,
|
|
24
|
+
className: clsx(radio_module_default.RadioRoot, className),
|
|
25
|
+
"data-size": size,
|
|
26
|
+
disabled,
|
|
27
|
+
id,
|
|
28
|
+
ref,
|
|
29
|
+
value,
|
|
30
|
+
children: /* @__PURE__ */ jsx(Radio.Indicator, {
|
|
31
|
+
className: radio_module_default.Indicator,
|
|
32
|
+
children: /* @__PURE__ */ jsx("span", { className: radio_module_default.Disk })
|
|
33
|
+
})
|
|
34
|
+
}), label || description ? /* @__PURE__ */ jsxs(Stack, {
|
|
35
|
+
direction: "column",
|
|
36
|
+
fillChildren: false,
|
|
37
|
+
rowGap: "small",
|
|
38
|
+
children: [label && /* @__PURE__ */ jsx(FieldLabel, {
|
|
39
|
+
size: size === "small" ? "small" : "medium",
|
|
40
|
+
children: label
|
|
41
|
+
}), /* @__PURE__ */ jsx(FieldHelperCopy, { description })]
|
|
42
|
+
}) : null]
|
|
43
|
+
})
|
|
44
|
+
}) });
|
|
43
45
|
};
|
|
44
46
|
//#endregion
|
|
45
47
|
export { Radio$1 as Radio };
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
var radio_module_default = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Indicator: "radio-module_Indicator_Ecavw",
|
|
6
|
-
Disk: "radio-module_Disk_pV-Q1"
|
|
2
|
+
RadioRoot: "viraui__radio-module__RadioRoot_3uvvn",
|
|
3
|
+
Indicator: "viraui__radio-module__Indicator_Ecavw",
|
|
4
|
+
Disk: "viraui__radio-module__Disk_pV-Q1"
|
|
7
5
|
};
|
|
8
6
|
//#endregion
|
|
9
7
|
export { radio_module_default as default };
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import { clsx } from "../../core/clsx.js";
|
|
3
2
|
import { Stack } from "../stack/stack.js";
|
|
4
3
|
import { Text } from "../text/text.js";
|
|
@@ -23,6 +22,7 @@ function SelectGroup({ children, className, label, ...groupProps }) {
|
|
|
23
22
|
direction: "row",
|
|
24
23
|
fillChildren: false,
|
|
25
24
|
hPadding: "small",
|
|
25
|
+
vPadding: ["small", "small"],
|
|
26
26
|
vAlign: "center"
|
|
27
27
|
}),
|
|
28
28
|
children: [/* @__PURE__ */ jsx(Text, {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SelectItem } from '@base-ui/react/select';
|
|
2
|
+
import { StackProps } from '..';
|
|
2
3
|
import type * as React from 'react';
|
|
3
4
|
/**
|
|
4
5
|
* Public Select.Option props.
|
|
@@ -12,11 +13,17 @@ export type SelectOptionProps = SelectItem.Props & {
|
|
|
12
13
|
* @default No addon is rendered.
|
|
13
14
|
*/
|
|
14
15
|
addon?: React.ReactNode;
|
|
16
|
+
/**
|
|
17
|
+
* Vertical alignment of the addon relative to the option label row.
|
|
18
|
+
*
|
|
19
|
+
* @default 'center'
|
|
20
|
+
*/
|
|
21
|
+
addonAlign?: StackProps['vAlign'];
|
|
15
22
|
/**
|
|
16
23
|
* Custom indicator node rendered when the option is selected.
|
|
17
24
|
*
|
|
18
|
-
* @default
|
|
25
|
+
* @default `<Icon name="Check" size={16} />`
|
|
19
26
|
*/
|
|
20
27
|
indicator?: React.ReactNode;
|
|
21
28
|
};
|
|
22
|
-
export declare function SelectOption({ addon, children, className, disabled, indicator, label, value, ...itemProps }: SelectOptionProps): React.JSX.Element;
|
|
29
|
+
export declare function SelectOption({ addon, addonAlign, children, className, disabled, indicator, label, value, ...itemProps }: SelectOptionProps): React.JSX.Element;
|
|
@@ -1,52 +1,53 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import { clsx } from "../../core/clsx.js";
|
|
3
2
|
import { Stack } from "../stack/stack.js";
|
|
4
3
|
import { Text } from "../text/text.js";
|
|
5
4
|
import select_module_default from "./select.module.js";
|
|
6
5
|
import { SelectIndicatorSlot } from "./select-indicator-slot.js";
|
|
7
6
|
import { Icon } from "../icon/icon.js";
|
|
7
|
+
import { Surface } from "../surface/surface.js";
|
|
8
8
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
-
import { Select } from "@base-ui/react
|
|
9
|
+
import { Select } from "@base-ui/react";
|
|
10
10
|
//#region src/components/select/select-option.tsx
|
|
11
|
-
function SelectOption({ addon, children, className, disabled, indicator, label, value, ...itemProps }) {
|
|
12
|
-
return /* @__PURE__ */
|
|
11
|
+
function SelectOption({ addon, addonAlign = "center", children, className, disabled, indicator, label, value, ...itemProps }) {
|
|
12
|
+
return /* @__PURE__ */ jsx(Select.Item, {
|
|
13
13
|
...itemProps,
|
|
14
14
|
"aria-label": label,
|
|
15
15
|
label,
|
|
16
16
|
className: clsx(select_module_default.Option, className),
|
|
17
17
|
disabled,
|
|
18
|
-
render: /* @__PURE__ */ jsx(
|
|
18
|
+
render: /* @__PURE__ */ jsx(Surface, { radius: "auto" }),
|
|
19
|
+
value,
|
|
20
|
+
children: /* @__PURE__ */ jsxs(Stack, {
|
|
19
21
|
columnGap: "small",
|
|
20
22
|
direction: "row",
|
|
21
23
|
hPadding: "small",
|
|
22
24
|
vPadding: "small",
|
|
23
|
-
vAlign: "center"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
25
|
+
vAlign: "center",
|
|
26
|
+
children: [/* @__PURE__ */ jsxs(Stack, {
|
|
27
|
+
direction: "row",
|
|
28
|
+
columnGap: "small",
|
|
29
|
+
vAlign: addonAlign,
|
|
30
|
+
fillChildren: false,
|
|
31
|
+
children: [addon && /* @__PURE__ */ jsx(Stack, {
|
|
32
|
+
vPadding: "2x-small",
|
|
33
|
+
"aria-hidden": "true",
|
|
34
|
+
grow: false,
|
|
35
|
+
shrink: false,
|
|
36
|
+
children: addon
|
|
37
|
+
}), /* @__PURE__ */ jsx(Text, {
|
|
38
|
+
lineHeight: "small",
|
|
39
|
+
render: /* @__PURE__ */ jsx(Select.ItemText, {}),
|
|
40
|
+
size: "small",
|
|
41
|
+
children
|
|
42
|
+
})]
|
|
43
|
+
}), /* @__PURE__ */ jsx(SelectIndicatorSlot, {
|
|
44
|
+
interactive: true,
|
|
45
|
+
children: indicator ?? /* @__PURE__ */ jsx(Icon, {
|
|
46
|
+
name: "Check",
|
|
47
|
+
size: 16
|
|
48
|
+
})
|
|
42
49
|
})]
|
|
43
|
-
})
|
|
44
|
-
interactive: true,
|
|
45
|
-
children: indicator ?? /* @__PURE__ */ jsx(Icon, {
|
|
46
|
-
name: "Check",
|
|
47
|
-
size: 16
|
|
48
|
-
})
|
|
49
|
-
})]
|
|
50
|
+
})
|
|
50
51
|
});
|
|
51
52
|
}
|
|
52
53
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.
|
|
1
|
+
.viraui__select-module__Select_eXv4Y{--input-height:var(--space-x-large);--control-group-background:var(--base-1);--control-group-color:var(--global-foreground);--control-group-border-color:var(--global-contrast);--control-group-border-radius:var(--radius-medium);--select-trigger-padding-inline-start:var(--space-small);--select-trigger-padding-inline-end:var(--space-x-small);--field-label-padding-inline:calc((var(--control-group-border-radius) + 0px) / 2);--select-list-appear-offest:8px;z-index:0;&:has([required]) .viraui__select-module__Label_-Y1fR:after{content:" *";color:var(--highlight-red)}&[data-invalid]>.viraui__select-module__Trigger_-wBsg:not(:disabled):not([data-disabled]){--control-group-border-color:var(--highlight-red);box-shadow:none;outline-color:oklab(from var(--highlight-red) l a b/.5)}}.viraui__select-module__Trigger_-wBsg{box-sizing:border-box;inline-size:100%;min-inline-size:0;block-size:var(--input-height);padding-inline:var(--select-trigger-padding-inline-start) var(--select-trigger-padding-inline-end);border:1px solid var(--control-group-border-color);border-radius:var(--control-group-border-radius);background:var(--control-group-background);color:var(--control-group-color);font:inherit;text-align:start;cursor:pointer;&[data-popup-open]{outline:none}&:disabled,&[data-disabled]{--control-group-background:var(--global-disabled-background);--control-group-border-color:transparent;--control-group-color:var(--global-disabled-foreground);box-shadow:none;cursor:not-allowed}}.viraui__select-module__Value_uWHPX{--text-fluid-factor:0;--text-font-size:var(--font-scale-body-small);flex:1 1 auto;min-inline-size:0;overflow:hidden;display:block;text-overflow:ellipsis;&[data-placeholder]{color:var(--global-disabled-foreground)}}.viraui__select-module__Icon_EOwki{font-size:var(--font-scale-body-small);pointer-events:none}.viraui__select-module__Description_OmwmV{padding-inline:calc((var(--control-group-border-radius) + 0px) / 2)}.viraui__select-module__SelectPopup_UzGXL{--select-list-border-radius:var(--radius-medium);--select-list-padding:var(--space-x-small);box-sizing:border-box;min-inline-size:var(--anchor-width);overflow:visible;color:var(--global-foreground);outline:none;position:relative;transform-origin:var(--transform-origin);transition:opacity var(--duration-instant) var(--easing-entrance),scale var(--duration-instant) var(--easing-entrance),translate var(--duration-instant) var(--easing-entrance);&[data-ending-style],&[data-starting-style]{opacity:0;scale:.96}&[data-side=bottom][data-ending-style],&[data-side=bottom][data-starting-style]{scale:.96;translate:0 calc(var(--select-list-appear-offest) * -1)}&[data-side=top][data-ending-style],&[data-side=top][data-starting-style]{scale:.96;translate:0 var(--select-list-appear-offest)}&[data-side=inline-start][data-ending-style],&[data-side=inline-start][data-starting-style],&[data-side=left][data-ending-style],&[data-side=left][data-starting-style]{scale:.96;translate:var(--select-list-appear-offest) 0}&[data-side=inline-end][data-ending-style],&[data-side=inline-end][data-starting-style],&[data-side=right][data-ending-style],&[data-side=right][data-starting-style]{scale:.96;translate:calc(var(--select-list-appear-offest) * -1) 0}&[data-side=none]{transition:none;scale:1;translate:0;opacity:1}}.viraui__select-module__ScrollArrow_kHlEi{--scroll-arrow-background:var(--is-vibrancy-active) oklab(from var(--base-1) l a b/80%);position:absolute;inset-inline:0;z-index:1;inline-size:100%;block-size:var(--space-large);cursor:default;background:var(--scroll-arrow-background,var(--base-1));backdrop-filter:var(--vibrancy-filter,none);border:1px solid var(--global-contrast)}.viraui__select-module__ScrollButton_sHBOa{pointer-events:none}.viraui__select-module__ScrollArrowUp_DGXS-{inset-block-start:0;border-radius:var(--select-list-border-radius) var(--select-list-border-radius) 0 0}.viraui__select-module__ScrollArrowDown_vhJy0{inset-block-end:0;border-radius:0 0 var(--select-list-border-radius) var(--select-list-border-radius)}.viraui__select-module__List_jdUWx{box-sizing:border-box;inline-size:100%;max-block-size:var(--available-height);overflow-y:auto;scroll-padding-block:var(--select-list-padding);list-style:none;overscroll-behavior:contain;&:focus,&:focus-visible{outline:none}}.viraui__select-module__OptionText_UynBD{flex:1 1 auto;min-inline-size:0}.viraui__select-module__Option_KgYqz{border-radius:calc((var(--select-list-border-radius) + 0px) - var(--select-list-padding));cursor:pointer;&:focus{outline:none}&:focus-visible{outline:none;box-shadow:none}&:not([data-disabled]):hover,&:not([data-disabled])[data-highlighted]{--option-hover-background:var(--is-vibrancy-active) oklab(from var(--global-contrast) l a b/12%);background:var(--option-hover-background,var(--global-contrast))}&[data-disabled]{color:var(--global-disabled-foreground);cursor:not-allowed}}.viraui__select-module__Indicator_YNUuz{inline-size:var(--space-medium);color:var(--global-primary);opacity:0;transition:opacity var(--duration-fast) var(--easing-standard),transform var(--duration-fast) var(--easing-standard);&[data-selected]{opacity:1}}.viraui__select-module__Group_xzkuA+.viraui__select-module__Group_xzkuA{margin-block-start:var(--space-medium)}.viraui__select-module__Separator_Q-ri9{block-size:1px;margin-block:var(--space-small);margin-inline:var(--space-small);background:var(--base-3)}
|
|
@@ -5,9 +5,14 @@
|
|
|
5
5
|
"Choose one value from a predefined list with label and helper copy",
|
|
6
6
|
"Grouped or separated option lists",
|
|
7
7
|
"Rich option rows with a leading decorative addon and multi-line label content",
|
|
8
|
-
"Trigger chrome aligned with Textfield control shell"
|
|
8
|
+
"Trigger chrome aligned with Textfield control shell",
|
|
9
|
+
"Select fields inside Fieldset when they share a section legend with other inputs"
|
|
10
|
+
],
|
|
11
|
+
"whenNotToUse": [
|
|
12
|
+
"Multiple selection",
|
|
13
|
+
"Combobox, filterable search, or custom anchor positioning",
|
|
14
|
+
"Wrapping a lone Select in Fieldset when its own label is sufficient"
|
|
9
15
|
],
|
|
10
|
-
"whenNotToUse": ["Multiple selection", "Combobox, filterable search, or custom anchor positioning"],
|
|
11
16
|
"accessibility": [
|
|
12
17
|
"Provide label or aria-label on the trigger so the field has an accessible name",
|
|
13
18
|
"Wire description and error copy through the field pattern so assistive tech gets helper text",
|
|
@@ -18,5 +23,5 @@
|
|
|
18
23
|
"Leaving the trigger without label or aria-label",
|
|
19
24
|
"Never set the size prop (if present) of Buttons, IconButtons or other interactive elements passed as addon other than small"
|
|
20
25
|
],
|
|
21
|
-
"related": ["Textfield", "Stack", "Surface", "Icon"]
|
|
26
|
+
"related": ["Fieldset", "Textfield", "Stack", "Surface", "Icon"]
|
|
22
27
|
}
|
|
@@ -43,12 +43,11 @@ function SelectRootComponent({ alignListWithTrigger = false, children, className
|
|
|
43
43
|
validationMode,
|
|
44
44
|
render: /* @__PURE__ */ jsx(Stack, {
|
|
45
45
|
direction: "column",
|
|
46
|
-
fillChildren: false,
|
|
47
46
|
rowGap: "small"
|
|
48
47
|
}),
|
|
49
48
|
children: [
|
|
50
49
|
label && /* @__PURE__ */ jsx(Field.Label, {
|
|
51
|
-
|
|
50
|
+
className: select_module_default.Label,
|
|
52
51
|
id: fieldLabelId,
|
|
53
52
|
children: /* @__PURE__ */ jsx(FieldLabel, { children: label })
|
|
54
53
|
}),
|
|
@@ -65,6 +64,7 @@ function SelectRootComponent({ alignListWithTrigger = false, children, className
|
|
|
65
64
|
render: /* @__PURE__ */ jsx(Stack, {
|
|
66
65
|
direction: "row",
|
|
67
66
|
render: /* @__PURE__ */ jsx("button", { type: "button" }),
|
|
67
|
+
columnGap: "x-small",
|
|
68
68
|
vAlign: "center"
|
|
69
69
|
}),
|
|
70
70
|
children: [/* @__PURE__ */ jsx(Text, {
|
|
@@ -88,6 +88,7 @@ function SelectRootComponent({ alignListWithTrigger = false, children, className
|
|
|
88
88
|
})]
|
|
89
89
|
}), /* @__PURE__ */ jsx(Select.Portal, { children: /* @__PURE__ */ jsx(Select.Positioner, {
|
|
90
90
|
alignItemWithTrigger: alignListWithTrigger,
|
|
91
|
+
sideOffset: 2,
|
|
91
92
|
children: /* @__PURE__ */ jsxs(Select.Popup, {
|
|
92
93
|
className: select_module_default.SelectPopup,
|
|
93
94
|
children: [
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
var select_module_default = {
|
|
2
|
-
Select: "
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
2
|
+
Select: "viraui__select-module__Select_eXv4Y",
|
|
3
|
+
Label: "viraui__select-module__Label_-Y1fR",
|
|
4
|
+
Trigger: "viraui__select-module__Trigger_-wBsg",
|
|
5
|
+
Value: "viraui__select-module__Value_uWHPX",
|
|
6
|
+
Icon: "viraui__select-module__Icon_EOwki",
|
|
7
|
+
Description: "viraui__select-module__Description_OmwmV",
|
|
8
|
+
SelectPopup: "viraui__select-module__SelectPopup_UzGXL",
|
|
9
|
+
ScrollArrow: "viraui__select-module__ScrollArrow_kHlEi",
|
|
10
|
+
ScrollButton: "viraui__select-module__ScrollButton_sHBOa",
|
|
11
|
+
ScrollArrowUp: "viraui__select-module__ScrollArrowUp_DGXS-",
|
|
12
|
+
ScrollArrowDown: "viraui__select-module__ScrollArrowDown_vhJy0",
|
|
13
|
+
List: "viraui__select-module__List_jdUWx",
|
|
14
|
+
OptionText: "viraui__select-module__OptionText_UynBD",
|
|
15
|
+
Option: "viraui__select-module__Option_KgYqz",
|
|
16
|
+
Indicator: "viraui__select-module__Indicator_YNUuz",
|
|
17
|
+
Group: "viraui__select-module__Group_xzkuA",
|
|
18
|
+
Separator: "viraui__select-module__Separator_Q-ri9"
|
|
18
19
|
};
|
|
19
20
|
//#endregion
|
|
20
21
|
export { select_module_default as default };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.viraui__separator-module__Line_xXOe9{--separator-size:1px;border:0;margin:0;background:oklab(from var(--global-contrast) l a b/20%);&[data-separator-orientation=horizontal]{inline-size:100%;block-size:var(--separator-size)}&[data-separator-orientation=vertical]{inline-size:var(--separator-size);block-size:100%}}
|