@viraui/react 0.0.21 → 0.0.23
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 +33 -3
- package/dist/components/avatar/avatar.css +1 -1
- package/dist/components/avatar/avatar.js +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.js +3 -2
- 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 +1 -2
- 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 +1 -2
- 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 +12 -11
- 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 +46 -60
- 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 +1 -3
- 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.js +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-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 +21 -0
- package/dist/components/dialog/dialog.guide.json +26 -0
- package/dist/components/dialog/dialog.js +18 -0
- package/dist/components/dialog/dialog.module.js +13 -0
- package/dist/components/dialog/index.d.ts +8 -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.js +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 +5 -0
- package/dist/components/linear-progress/linear-progress.css +1 -1
- package/dist/components/linear-progress/linear-progress.js +1 -2
- package/dist/components/linear-progress/linear-progress.module.js +4 -4
- package/dist/components/masonry/masonry-item.js +1 -2
- package/dist/components/masonry/masonry.css +1 -1
- package/dist/components/masonry/masonry.js +3 -4
- package/dist/components/masonry/masonry.module.js +2 -2
- package/dist/components/progressive-blur/index.d.ts +2 -0
- package/dist/components/progressive-blur/progressive-blur.css +1 -0
- package/dist/components/progressive-blur/progressive-blur.d.ts +38 -0
- package/dist/components/progressive-blur/progressive-blur.guide.json +25 -0
- package/dist/components/progressive-blur/progressive-blur.js +39 -0
- package/dist/components/progressive-blur/progressive-blur.module.js +6 -0
- package/dist/components/progressive-blur/progressive-blur.utils.d.ts +14 -0
- package/dist/components/progressive-blur/progressive-blur.utils.js +40 -0
- 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 +32 -30
- package/dist/components/radio/radio.module.js +3 -5
- package/dist/components/select/select-group.js +2 -2
- package/dist/components/select/select-indicator-slot.js +0 -1
- package/dist/components/select/select-option.d.ts +15 -2
- package/dist/components/select/select-option.js +34 -21
- package/dist/components/select/select-separator.js +1 -2
- package/dist/components/select/select.css +1 -1
- package/dist/components/select/select.d.ts +7 -1
- package/dist/components/select/select.guide.json +9 -3
- package/dist/components/select/select.js +6 -5
- package/dist/components/select/select.module.js +17 -15
- package/dist/components/skeleton/skeleton.css +1 -1
- package/dist/components/skeleton/skeleton.js +2 -2
- 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 +2 -4
- package/dist/components/slider/slider.module.js +9 -8
- package/dist/components/spinner/spinner.css +1 -1
- package/dist/components/spinner/spinner.js +4 -4
- 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 +1 -2
- package/dist/components/stack/stack.module.js +1 -1
- package/dist/components/static-noise/index.d.ts +2 -0
- package/dist/components/static-noise/static-noise.css +1 -0
- package/dist/components/static-noise/static-noise.d.ts +37 -0
- package/dist/components/static-noise/static-noise.guide.json +25 -0
- package/dist/components/static-noise/static-noise.js +46 -0
- package/dist/components/static-noise/static-noise.module.js +6 -0
- package/dist/components/surface/surface-radius-context.d.ts +45 -0
- package/dist/components/surface/surface-radius-context.js +81 -0
- package/dist/components/surface/surface.css +1 -1
- package/dist/components/surface/surface.d.ts +11 -5
- package/dist/components/surface/surface.guide.json +12 -4
- package/dist/components/surface/surface.js +26 -7
- package/dist/components/surface/surface.module.js +1 -4
- package/dist/components/switch/switch.css +1 -1
- package/dist/components/switch/switch.js +32 -30
- 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 +3 -4
- 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 +2 -4
- 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 +2 -4
- package/dist/components/textfield/textfield.module.js +6 -5
- package/dist/components/title/title.css +1 -1
- package/dist/components/title/title.js +3 -4
- package/dist/components/title/title.module.js +1 -1
- package/dist/core/clsx.d.ts +1 -0
- package/dist/core/clsx.js +36 -0
- 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 +10 -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 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
.
|
|
1
|
+
.viraui__icon-module__Icon_6DoBq{display:inline-flex;flex:none;vertical-align:middle;& [fill]{fill:currentcolor}& [stroke]{stroke:currentcolor}& [fill=none][stroke]{fill:none;stroke:currentcolor}}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import './icon.css';
|
|
2
|
+
import { clsx } from "../../core/clsx.js";
|
|
2
3
|
import { extractIntrinsicViraProps } from "../../core/props/intrinsic-vira-props.js";
|
|
3
4
|
import icon_module_default from "./icon.module.js";
|
|
4
|
-
import { clsx } from "clsx";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
import { generatedDefaultIconVariant, generatedIconRegistry } from "#internal-icons/icon-registry";
|
|
7
7
|
//#region src/components/icon/icon.tsx
|
|
@@ -13,7 +13,7 @@ type AccessibleNameProps = {
|
|
|
13
13
|
* Typed wrapper over `Button` for icon-only actions. Requires an accessible name
|
|
14
14
|
* via `aria-label` or `aria-labelledby`.
|
|
15
15
|
*/
|
|
16
|
-
export type IconButtonProps = Omit<ButtonProps, 'children' | '
|
|
16
|
+
export type IconButtonProps = Omit<ButtonProps, 'children' | 'addonPosition' | 'size'> & AccessibleNameProps & {
|
|
17
17
|
/**
|
|
18
18
|
* Controls the visual button size.
|
|
19
19
|
*
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"Keep the accessible name stable when loading state changes"
|
|
14
14
|
],
|
|
15
15
|
"antiPatterns": [
|
|
16
|
-
"Passing children or
|
|
16
|
+
"Passing children or addonPosition — not part of the public API",
|
|
17
17
|
"Using icon-only Button instead of IconButton"
|
|
18
18
|
],
|
|
19
19
|
"related": ["Button", "Icon", "Spinner"]
|
|
@@ -2,7 +2,7 @@ import { Button } from "../button/button.js";
|
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
//#region src/components/icon-button/icon-button.tsx
|
|
4
4
|
var IconButton = ({ icon, size = "medium", ...props }) => /* @__PURE__ */ jsx(Button, {
|
|
5
|
-
icon,
|
|
5
|
+
addon: icon,
|
|
6
6
|
size,
|
|
7
7
|
...props
|
|
8
8
|
});
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './avatar';
|
|
2
2
|
export * from './avatar-group';
|
|
3
3
|
export * from './chip';
|
|
4
|
+
export * from './dialog';
|
|
4
5
|
export * from './clamp-text';
|
|
5
6
|
export * from './elevator';
|
|
6
7
|
export * from './button';
|
|
@@ -12,12 +13,16 @@ export * from './textarea';
|
|
|
12
13
|
export * from './slider';
|
|
13
14
|
export * from './switch';
|
|
14
15
|
export * from './checkbox';
|
|
16
|
+
export * from './fieldset';
|
|
15
17
|
export * from './radio';
|
|
16
18
|
export * from './select';
|
|
17
19
|
export * from './icon';
|
|
18
20
|
export * from './skeleton';
|
|
19
21
|
export * from './stack';
|
|
20
22
|
export * from './surface';
|
|
23
|
+
export * from './tabs';
|
|
21
24
|
export * from './spinner';
|
|
25
|
+
export * from './static-noise';
|
|
26
|
+
export * from './progressive-blur';
|
|
22
27
|
export * from './text';
|
|
23
28
|
export * from './title';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.
|
|
1
|
+
.viraui__linear-progress-module__LinearProgress_-KN0j{--linear-progress-track-size:var(--space-x-small);--linear-progress-track-background:var(--global-contrast);--linear-progress-indicator-color:var(--global-primary);& .viraui__linear-progress-module__Track_qUz8P{position:relative;overflow:hidden;block-size:var(--linear-progress-track-size);background:var(--linear-progress-track-background);border-radius:var(--radius-infinite)}& .viraui__linear-progress-module__Indicator_maaZF{block-size:100%;background:var(--linear-progress-indicator-color);border-radius:inherit;&[data-indeterminate]{position:absolute;inset:0;inline-size:100%;background:transparent;&:before{position:absolute;inset-block:0;inline-size:40%;background:var(--linear-progress-indicator-color);border-radius:inherit;animation:viraui__linear-progress-module__linear-progress-indeterminate_g0cSO 1.4s var(--easing-standard) infinite;content:""}}}}@keyframes viraui__linear-progress-module__linear-progress-indeterminate_g0cSO{0%{transform:translateX(-120%)}to{transform:translateX(260%)}}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import './linear-progress.css';
|
|
2
|
+
import { clsx } from "../../core/clsx.js";
|
|
3
3
|
import { extractIntrinsicViraProps } from "../../core/props/intrinsic-vira-props.js";
|
|
4
4
|
import { Stack } from "../stack/stack.js";
|
|
5
5
|
import { Text } from "../text/text.js";
|
|
6
6
|
import { FieldLabel } from "../basic-input/field-label.js";
|
|
7
7
|
import linear_progress_module_default from "./linear-progress.module.js";
|
|
8
|
-
import { clsx } from "clsx";
|
|
9
8
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
9
|
import { Progress } from "@base-ui/react/progress";
|
|
11
10
|
//#region src/components/linear-progress/linear-progress.tsx
|
|
@@ -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,7 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import { clsx } from "../../core/clsx.js";
|
|
2
2
|
import { extractIntrinsicViraProps } from "../../core/props/intrinsic-vira-props.js";
|
|
3
3
|
import masonry_module_default from "./masonry.module.js";
|
|
4
|
-
import { clsx } from "clsx";
|
|
5
4
|
import { useRender } from "@base-ui/react/use-render";
|
|
6
5
|
//#region src/components/masonry/masonry-item.tsx
|
|
7
6
|
var MasonryItem = ({ className, ref, render, spanAll = false, ...otherProps }) => {
|
|
@@ -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,10 +1,9 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import './masonry.css';
|
|
2
|
+
import { clsx } from "../../core/clsx.js";
|
|
3
3
|
import { extractIntrinsicViraProps } from "../../core/props/intrinsic-vira-props.js";
|
|
4
4
|
import { resolveThemeValue } from "../../core/theme/resolve-theme-value.js";
|
|
5
5
|
import masonry_module_default from "./masonry.module.js";
|
|
6
6
|
import { MasonryItem } from "./masonry-item.js";
|
|
7
|
-
import { clsx } from "clsx";
|
|
8
7
|
import { useRender } from "@base-ui/react/use-render";
|
|
9
8
|
//#region src/components/masonry/masonry.tsx
|
|
10
9
|
var MasonryRoot = ({ children, className, columnCount = 4, columnFill = "balance", columnRuleStyle, columnRuleWidth, columnWidth, gap = "large", ref, render, style, ...otherProps }) => {
|
|
@@ -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 };
|
|
@@ -0,0 +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))}}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { IntrinsicViraProps } from '../../core/props/intrinsic-vira-props';
|
|
2
|
+
import { ProgressiveBlurDirection, ProgressiveBlurEasing } from './progressive-blur.utils';
|
|
3
|
+
import type * as React from 'react';
|
|
4
|
+
/**
|
|
5
|
+
* Public ProgressiveBlur props.
|
|
6
|
+
*
|
|
7
|
+
* Includes standard `div` attributes such as `id`, `className`, and event handlers,
|
|
8
|
+
* plus Vira-owned progressive backdrop blur controls.
|
|
9
|
+
*
|
|
10
|
+
* @default Native div pass-through props keep React defaults.
|
|
11
|
+
*/
|
|
12
|
+
export type ProgressiveBlurProps = React.ComponentPropsWithRef<'div'> & IntrinsicViraProps & {
|
|
13
|
+
/**
|
|
14
|
+
* Sets the maximum blur radius applied to the first layer at the selected edge.
|
|
15
|
+
*
|
|
16
|
+
* @default '16px'
|
|
17
|
+
*/
|
|
18
|
+
blur?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Selects the edge where maximum blur starts and fades toward the opposite edge.
|
|
21
|
+
*
|
|
22
|
+
* @default 'bottom'
|
|
23
|
+
*/
|
|
24
|
+
direction?: ProgressiveBlurDirection;
|
|
25
|
+
/**
|
|
26
|
+
* Selects the easing curve used to distribute blur factors across internal layers.
|
|
27
|
+
*
|
|
28
|
+
* @default 'exponential'
|
|
29
|
+
*/
|
|
30
|
+
easing?: ProgressiveBlurEasing;
|
|
31
|
+
/**
|
|
32
|
+
* Sets the number of internal blur layers. Values are clamped to `2..16`.
|
|
33
|
+
*
|
|
34
|
+
* @default Varies by easing: linear `6`, ease-in/out `8`, ease-in-out `10`, exponential `8`.
|
|
35
|
+
*/
|
|
36
|
+
steps?: number;
|
|
37
|
+
};
|
|
38
|
+
export declare const ProgressiveBlur: React.FC<ProgressiveBlurProps>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ProgressiveBlur",
|
|
3
|
+
"summary": "Decorative stacked backdrop-filter overlay that ramps blur from one edge toward the opposite edge.",
|
|
4
|
+
"whenToUse": [
|
|
5
|
+
"Edge scrims on cards, sheets, heroes, or scroll regions where content should fade into blur",
|
|
6
|
+
"Glass or vibrant surfaces that need directional legibility without a hard blur cutoff",
|
|
7
|
+
"Decorative atmosphere where the parent owns semantics and layout positioning"
|
|
8
|
+
],
|
|
9
|
+
"whenNotToUse": [
|
|
10
|
+
"Standalone loading or status feedback without a labeled parent region",
|
|
11
|
+
"Large full-viewport stacks with many simultaneous high-radius blur layers",
|
|
12
|
+
"Cases where a single uniform backdrop blur is sufficient"
|
|
13
|
+
],
|
|
14
|
+
"accessibility": [
|
|
15
|
+
"ProgressiveBlur is decorative — the root renders with aria-hidden by default",
|
|
16
|
+
"Parent surface or region must expose any meaningful label or busy state",
|
|
17
|
+
"Consumer owns position, inset, z-index, and sizing for the overlay placement"
|
|
18
|
+
],
|
|
19
|
+
"antiPatterns": [
|
|
20
|
+
"Stacking many full-viewport ProgressiveBlur instances on one screen",
|
|
21
|
+
"Driving layout size or scroll behavior from inside the overlay component",
|
|
22
|
+
"Embedding layout positioning rules inside the component stylesheet"
|
|
23
|
+
],
|
|
24
|
+
"related": ["Surface", "StaticNoise"]
|
|
25
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import './progressive-blur.css';
|
|
2
|
+
import { clsx } from "../../core/clsx.js";
|
|
3
|
+
import { extractIntrinsicViraProps } from "../../core/props/intrinsic-vira-props.js";
|
|
4
|
+
import progressive_blur_module_default from "./progressive-blur.module.js";
|
|
5
|
+
import { formatProgressiveBlurMaskGradient, getProgressiveBlurFactor, getProgressiveBlurMaskStops, resolveProgressiveBlurSteps } from "./progressive-blur.utils.js";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
//#region src/components/progressive-blur/progressive-blur.tsx
|
|
8
|
+
var ProgressiveBlur = ({ blur = "16px", className, direction = "bottom", easing = "exponential", ref, steps, style, ...otherProps }) => {
|
|
9
|
+
const { componentProps, intrinsicAttributes } = extractIntrinsicViraProps(otherProps);
|
|
10
|
+
const resolvedSteps = resolveProgressiveBlurSteps(steps, easing);
|
|
11
|
+
const dynamicStyle = {
|
|
12
|
+
"--progressive-blur": blur,
|
|
13
|
+
...style
|
|
14
|
+
};
|
|
15
|
+
const layers = Array.from({ length: resolvedSteps }, (_, layerIndex) => {
|
|
16
|
+
const factor = getProgressiveBlurFactor(easing, layerIndex, resolvedSteps);
|
|
17
|
+
const maskGradient = formatProgressiveBlurMaskGradient(getProgressiveBlurMaskStops(layerIndex, resolvedSteps));
|
|
18
|
+
return /* @__PURE__ */ jsx("span", {
|
|
19
|
+
"aria-hidden": "true",
|
|
20
|
+
className: progressive_blur_module_default.Layer,
|
|
21
|
+
style: {
|
|
22
|
+
"--progressive-blur-factor": factor,
|
|
23
|
+
"--progressive-blur-mask-gradient": maskGradient
|
|
24
|
+
}
|
|
25
|
+
}, layerIndex);
|
|
26
|
+
});
|
|
27
|
+
return /* @__PURE__ */ jsx("div", {
|
|
28
|
+
...componentProps,
|
|
29
|
+
...intrinsicAttributes,
|
|
30
|
+
ref,
|
|
31
|
+
"aria-hidden": "true",
|
|
32
|
+
className: clsx(progressive_blur_module_default.ProgressiveBlur, className),
|
|
33
|
+
"data-direction": direction,
|
|
34
|
+
style: dynamicStyle,
|
|
35
|
+
children: layers
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
//#endregion
|
|
39
|
+
export { ProgressiveBlur };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type ProgressiveBlurDirection = 'top' | 'right' | 'bottom' | 'left';
|
|
2
|
+
export type ProgressiveBlurEasing = 'linear' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'exponential';
|
|
3
|
+
export declare const PROGRESSIVE_BLUR_MIN_STEPS = 2;
|
|
4
|
+
export declare const PROGRESSIVE_BLUR_MAX_STEPS = 16;
|
|
5
|
+
export declare const resolveProgressiveBlurSteps: (steps: number | undefined, easing: ProgressiveBlurEasing) => number;
|
|
6
|
+
export declare const getProgressiveBlurFactor: (easing: ProgressiveBlurEasing, layerIndex: number, totalSteps: number) => number;
|
|
7
|
+
export type ProgressiveBlurMaskStops = {
|
|
8
|
+
p1: number;
|
|
9
|
+
p2: number;
|
|
10
|
+
p3: number;
|
|
11
|
+
p4: number;
|
|
12
|
+
};
|
|
13
|
+
export declare const getProgressiveBlurMaskStops: (layerIndex: number, totalSteps: number) => ProgressiveBlurMaskStops;
|
|
14
|
+
export declare const formatProgressiveBlurMaskGradient: (stops: ProgressiveBlurMaskStops) => string;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
var DEFAULT_STEPS_BY_EASING = {
|
|
2
|
+
linear: 6,
|
|
3
|
+
"ease-in": 8,
|
|
4
|
+
"ease-out": 8,
|
|
5
|
+
"ease-in-out": 10,
|
|
6
|
+
exponential: 8
|
|
7
|
+
};
|
|
8
|
+
var resolveProgressiveBlurSteps = (steps, easing) => {
|
|
9
|
+
const resolved = steps ?? DEFAULT_STEPS_BY_EASING[easing];
|
|
10
|
+
return Math.min(16, Math.max(2, resolved));
|
|
11
|
+
};
|
|
12
|
+
var getProgressiveBlurFactor = (easing, layerIndex, totalSteps) => {
|
|
13
|
+
if (easing === "exponential") return .5 ** layerIndex;
|
|
14
|
+
const progress = layerIndex / (totalSteps - 1);
|
|
15
|
+
switch (easing) {
|
|
16
|
+
case "linear": return 1 - progress;
|
|
17
|
+
case "ease-in": return 1 - progress * progress;
|
|
18
|
+
case "ease-out": return 1 - (1 - (1 - progress) ** 2);
|
|
19
|
+
case "ease-in-out": return 1 - (progress < .5 ? 2 * progress * progress : 1 - (-2 * progress + 2) ** 2 / 2);
|
|
20
|
+
default: return 1 - progress;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
var getProgressiveBlurMaskStops = (layerIndex, totalSteps) => {
|
|
24
|
+
const increment = 100 / totalSteps;
|
|
25
|
+
const maskIndex = totalSteps - layerIndex;
|
|
26
|
+
return {
|
|
27
|
+
p1: Math.round((increment * maskIndex - increment) * 10) / 10,
|
|
28
|
+
p2: Math.round(increment * maskIndex * 10) / 10,
|
|
29
|
+
p3: Math.round((increment * maskIndex + increment) * 10) / 10,
|
|
30
|
+
p4: Math.round((increment * maskIndex + increment * 2) * 10) / 10
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
var formatProgressiveBlurMaskGradient = (stops) => {
|
|
34
|
+
let gradient = `transparent ${stops.p1}%, black ${stops.p2}%`;
|
|
35
|
+
if (stops.p3 <= 100) gradient += `, black ${stops.p3}%`;
|
|
36
|
+
if (stops.p4 <= 100) gradient += `, transparent ${stops.p4}%`;
|
|
37
|
+
return gradient;
|
|
38
|
+
};
|
|
39
|
+
//#endregion
|
|
40
|
+
export { formatProgressiveBlurMaskGradient, getProgressiveBlurFactor, getProgressiveBlurMaskStops, resolveProgressiveBlurSteps };
|
|
@@ -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,45 +1,47 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import './radio.css';
|
|
2
|
+
import { clsx } from "../../core/clsx.js";
|
|
3
3
|
import { Stack } from "../stack/stack.js";
|
|
4
4
|
import { FieldHelperCopy } from "../basic-input/field-helper-copy.js";
|
|
5
5
|
import { FieldLabel } from "../basic-input/field-label.js";
|
|
6
6
|
import radio_module_default from "./radio.module.js";
|
|
7
|
-
import { clsx } from "clsx";
|
|
8
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
8
|
import { Field } from "@base-ui/react/field";
|
|
10
9
|
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,9 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import { clsx } from "../../core/clsx.js";
|
|
2
2
|
import { Stack } from "../stack/stack.js";
|
|
3
3
|
import { Text } from "../text/text.js";
|
|
4
4
|
import select_module_default from "./select.module.js";
|
|
5
5
|
import { SelectIndicatorSlot } from "./select-indicator-slot.js";
|
|
6
|
-
import { clsx } from "clsx";
|
|
7
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
7
|
import { Select } from "@base-ui/react/select";
|
|
9
8
|
//#region src/components/select/select-group.tsx
|
|
@@ -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, {
|