@viraui/react 2026.7.0-next.0 → 2026.7.0
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 +13 -1
- package/dist/components/accordion/accordion-item.d.ts +10 -10
- package/dist/components/accordion/accordion.d.ts +2 -2
- package/dist/components/annotate/annotate.d.ts +15 -15
- package/dist/components/autocomplete/autocomplete-item.d.ts +3 -3
- package/dist/components/autocomplete/autocomplete.d.ts +12 -12
- package/dist/components/avatar/avatar.d.ts +6 -6
- package/dist/components/avatar-group/avatar-group.d.ts +6 -6
- package/dist/components/badge/badge.d.ts +5 -5
- package/dist/components/basic-input/basic-input.d.ts +1 -1
- package/dist/components/basic-input/input-control-group.d.ts +2 -2
- package/dist/components/beam/beam.css +1 -1
- package/dist/components/beam/beam.d.ts +12 -12
- package/dist/components/bleed/bleed.d.ts +3 -3
- package/dist/components/button/button-link.d.ts +1 -1
- package/dist/components/button/button.d.ts +1 -1
- package/dist/components/checkbox/checkbox-group.d.ts +1 -1
- package/dist/components/checkbox/checkbox.d.ts +7 -7
- package/dist/components/chip/chip.d.ts +6 -6
- package/dist/components/clamp-text/clamp-text.d.ts +5 -5
- package/dist/components/dialog/dialog-close.d.ts +1 -1
- package/dist/components/dialog/dialog-indent-background.d.ts +1 -1
- package/dist/components/dialog/dialog-indent.d.ts +1 -1
- package/dist/components/dialog/dialog-sheet.d.ts +10 -10
- package/dist/components/dialog/dialog-trigger.d.ts +1 -1
- package/dist/components/dialog/dialog.d.ts +1 -1
- package/dist/components/disclosure/disclosure-panel.d.ts +12 -0
- package/dist/components/disclosure/disclosure-panel.js +13 -0
- package/dist/components/disclosure/disclosure-trigger.d.ts +46 -0
- package/dist/components/disclosure/disclosure-trigger.js +82 -0
- package/dist/components/disclosure/disclosure.css +1 -0
- package/dist/components/disclosure/disclosure.d.ts +25 -0
- package/dist/components/disclosure/disclosure.js +30 -0
- package/dist/components/disclosure/disclosure.module.js +15 -0
- package/dist/components/disclosure/index.d.ts +4 -0
- package/dist/components/elevator/elevator.d.ts +7 -7
- package/dist/components/fieldset/fieldset.d.ts +4 -4
- package/dist/components/fit-text/fit-text.d.ts +2 -2
- package/dist/components/glow/glow.d.ts +12 -12
- package/dist/components/grid/grid-item.d.ts +8 -8
- package/dist/components/grid/grid.d.ts +12 -12
- package/dist/components/icon-button/icon-button-link.d.ts +2 -2
- package/dist/components/icon-button/icon-button.d.ts +2 -2
- package/dist/components/index.d.ts +2 -0
- package/dist/components/linear-progress/linear-progress.d.ts +4 -4
- package/dist/components/masonry/masonry-item.d.ts +3 -3
- package/dist/components/masonry/masonry.d.ts +4 -4
- package/dist/components/menu/menu-checkbox-item.d.ts +4 -4
- package/dist/components/menu/menu-item.d.ts +4 -4
- package/dist/components/menu/menu-link-item.d.ts +4 -4
- package/dist/components/menu/menu-popup.d.ts +2 -2
- package/dist/components/menu/menu-radio-group.d.ts +2 -2
- package/dist/components/menu/menu-radio-item.d.ts +4 -4
- package/dist/components/menu/menu-separator.d.ts +1 -1
- package/dist/components/menu/menu-submenu-trigger.d.ts +3 -3
- package/dist/components/menu/menu.d.ts +3 -3
- package/dist/components/meter/meter.d.ts +5 -5
- package/dist/components/number-field/index.d.ts +2 -0
- package/dist/components/number-field/number-field.css +1 -0
- package/dist/components/number-field/number-field.d.ts +78 -0
- package/dist/components/number-field/number-field.js +120 -0
- package/dist/components/number-field/number-field.module.js +21 -0
- package/dist/components/otp-field/index.d.ts +1 -1
- package/dist/components/otp-field/otp-field-input.d.ts +1 -1
- package/dist/components/otp-field/otp-field-separator.d.ts +3 -1
- package/dist/components/otp-field/otp-field-separator.js +5 -1
- package/dist/components/otp-field/otp-field.d.ts +4 -5
- package/dist/components/otp-field/otp-field.js +0 -1
- package/dist/components/popover/popover-sheet.d.ts +6 -6
- package/dist/components/popover/popover.d.ts +5 -5
- package/dist/components/progressive-blur/progressive-blur.d.ts +5 -5
- package/dist/components/prose/prose.css +1 -1
- package/dist/components/prose/prose.d.ts +4 -4
- package/dist/components/radio/radio-group.d.ts +1 -1
- package/dist/components/radio/radio.d.ts +6 -6
- package/dist/components/select/select-indicator-slot.d.ts +1 -1
- package/dist/components/select/select-option.d.ts +4 -4
- package/dist/components/select/select-separator.d.ts +1 -1
- package/dist/components/select/select.d.ts +10 -10
- package/dist/components/separator/separator.d.ts +9 -9
- package/dist/components/shimmer/shimmer.d.ts +6 -6
- package/dist/components/skeleton/skeleton-overlay.d.ts +5 -5
- package/dist/components/skeleton/skeleton.d.ts +9 -9
- package/dist/components/slider/slider.d.ts +7 -7
- package/dist/components/spinner/spinner.d.ts +3 -3
- package/dist/components/stack/stack.d.ts +17 -17
- package/dist/components/static-noise/static-noise.d.ts +5 -5
- package/dist/components/surface/surface.d.ts +12 -12
- package/dist/components/switch/switch.d.ts +7 -7
- package/dist/components/tabs/tabs-list.d.ts +1 -1
- package/dist/components/tabs/tabs-panel.d.ts +1 -1
- package/dist/components/tabs/tabs-tab.d.ts +3 -3
- package/dist/components/tabs/tabs.d.ts +2 -2
- package/dist/components/text/text.d.ts +23 -23
- package/dist/components/textarea/textarea.d.ts +6 -6
- package/dist/components/textfield/textfield.d.ts +1 -1
- package/dist/components/title/title.d.ts +21 -21
- package/dist/components/toast/toast-action.d.ts +1 -1
- package/dist/components/toast/toast-banner.d.ts +7 -7
- package/dist/components/toast/toast-viewport.d.ts +2 -2
- package/dist/components/toggle-button/toggle-button.d.ts +6 -6
- package/dist/components/toggle-group/toggle-group.d.ts +1 -1
- package/dist/components/tooltip/tooltip-content.d.ts +2 -2
- package/dist/components/typewriter/typewriter.d.ts +10 -10
- package/dist/index.js +3 -1
- package/dist/specs/components/accordion/usage.xml +1 -0
- package/dist/specs/components/disclosure/a11y.xml +9 -0
- package/dist/specs/components/disclosure/meta.xml +20 -0
- package/dist/specs/components/disclosure/patterns.xml +55 -0
- package/dist/specs/components/disclosure/props.xml +54 -0
- package/dist/specs/components/disclosure/usage.xml +11 -0
- package/dist/specs/components/number-field/a11y.xml +10 -0
- package/dist/specs/components/number-field/meta.xml +21 -0
- package/dist/specs/components/number-field/patterns.xml +43 -0
- package/dist/specs/components/number-field/props.xml +35 -0
- package/dist/specs/components/number-field/usage.xml +12 -0
- package/dist/specs/components/otp-field/meta.xml +1 -4
- package/dist/specs/components/otp-field/patterns.xml +8 -8
- package/dist/specs/components/otp-field/props.xml +2 -2
- package/dist/specs/components/otp-field/usage.xml +4 -4
- package/dist/specs/index.xml +22 -2
- package/package.json +2 -2
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { clsx } from "../../core/clsx.js";
|
|
3
|
+
import disclosure_module_default from "./disclosure.module.js";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import { Collapsible } from "@base-ui/react/collapsible";
|
|
6
|
+
//#region src/components/disclosure/disclosure-panel.tsx
|
|
7
|
+
var DisclosurePanel = ({ children, className, ...otherProps }) => /* @__PURE__ */ jsx(Collapsible.Panel, {
|
|
8
|
+
className: clsx(disclosure_module_default.Panel, className),
|
|
9
|
+
...otherProps,
|
|
10
|
+
children
|
|
11
|
+
});
|
|
12
|
+
//#endregion
|
|
13
|
+
export { DisclosurePanel };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { CollapsibleTrigger } from '@base-ui/react/collapsible';
|
|
2
|
+
import { SurfaceProps } from '../surface';
|
|
3
|
+
import type * as React from 'react';
|
|
4
|
+
/** Surface chrome on default Trigger path. Host/`render` stay on Trigger. */
|
|
5
|
+
type DisclosureTriggerSurfaceProps = Omit<SurfaceProps, 'ref'>;
|
|
6
|
+
/**
|
|
7
|
+
* Public Disclosure.Trigger props.
|
|
8
|
+
*
|
|
9
|
+
* Default host = `Surface` with `render` → Base UI Collapsible Trigger (Textfield/NumberField
|
|
10
|
+
* family). Icon pair follows ToggleButton naming (`restingIcon` / `openIcon` / `interpolateIcons`).
|
|
11
|
+
* Consumer `render` replaces the whole Surface + primitive compose.
|
|
12
|
+
*
|
|
13
|
+
* @defaultValue Base UI pass-through props keep upstream defaults. On the default Surface path,
|
|
14
|
+
* `hoverColor` defaults to `2`, `hPadding` defaults to `'m'`, `vPadding` defaults to `'s'`.
|
|
15
|
+
* `interpolateIcons` defaults to `false`. `iconPosition` defaults to `'end'`.
|
|
16
|
+
*/
|
|
17
|
+
export type DisclosureTriggerProps = CollapsibleTrigger.Props & DisclosureTriggerSurfaceProps & {
|
|
18
|
+
/**
|
|
19
|
+
* Decorative icon while the panel is closed.
|
|
20
|
+
*
|
|
21
|
+
* @defaultValue `ChromeChevronEnd` when both icon slots are omitted.
|
|
22
|
+
*/
|
|
23
|
+
restingIcon?: React.ReactNode;
|
|
24
|
+
/**
|
|
25
|
+
* Decorative icon while the panel is open.
|
|
26
|
+
*
|
|
27
|
+
* @defaultValue `ChromeChevronDown` when both icon slots are omitted. When only `restingIcon`
|
|
28
|
+
* is set, that icon shows in both states.
|
|
29
|
+
*/
|
|
30
|
+
openIcon?: React.ReactNode;
|
|
31
|
+
/**
|
|
32
|
+
* When dual icons are present, crossfade and light-rotate between them
|
|
33
|
+
* (`data-interpolate="true"`). When `false`, swap instantly with no transition.
|
|
34
|
+
*
|
|
35
|
+
* @defaultValue false
|
|
36
|
+
*/
|
|
37
|
+
interpolateIcons?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Logical side of the label where the icon slot sits.
|
|
40
|
+
*
|
|
41
|
+
* @defaultValue 'end'
|
|
42
|
+
*/
|
|
43
|
+
iconPosition?: 'start' | 'end';
|
|
44
|
+
};
|
|
45
|
+
export declare const DisclosureTrigger: React.FC<DisclosureTriggerProps>;
|
|
46
|
+
export {};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { clsx } from "../../core/clsx.js";
|
|
3
|
+
import { ChromeChevronDown, ChromeChevronEnd } from "../../internal/chrome-icons/chrome-icons.js";
|
|
4
|
+
import { Stack } from "../stack/stack.js";
|
|
5
|
+
import { Surface } from "../surface/surface.js";
|
|
6
|
+
import disclosure_module_default from "./disclosure.module.js";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { Collapsible } from "@base-ui/react/collapsible";
|
|
9
|
+
//#region src/components/disclosure/disclosure-trigger.tsx
|
|
10
|
+
var resolveIconPair = (restingIcon, openIcon) => {
|
|
11
|
+
if (restingIcon === void 0 && openIcon === void 0) return {
|
|
12
|
+
resting: /* @__PURE__ */ jsx(ChromeChevronEnd, { size: "1rem" }),
|
|
13
|
+
open: /* @__PURE__ */ jsx(ChromeChevronDown, { size: "1rem" })
|
|
14
|
+
};
|
|
15
|
+
if (restingIcon !== void 0 && openIcon === void 0) return {
|
|
16
|
+
resting: restingIcon,
|
|
17
|
+
open: null
|
|
18
|
+
};
|
|
19
|
+
if (restingIcon === void 0 && openIcon !== void 0) return {
|
|
20
|
+
resting: /* @__PURE__ */ jsx(ChromeChevronEnd, { size: "1rem" }),
|
|
21
|
+
open: openIcon
|
|
22
|
+
};
|
|
23
|
+
return {
|
|
24
|
+
resting: restingIcon,
|
|
25
|
+
open: openIcon ?? null
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
var DisclosureTrigger = ({ border, borderStyle, children, className, color, enableContainer, hPadding = "m", vPadding = "s", hoverColor, iconPosition = "end", interpolateIcons = false, nativeButton, openIcon, overflow, radius, render, restingIcon, style, ...otherProps }) => {
|
|
29
|
+
if (render != null) return /* @__PURE__ */ jsx(Collapsible.Trigger, {
|
|
30
|
+
className: clsx(disclosure_module_default.Trigger, className),
|
|
31
|
+
nativeButton,
|
|
32
|
+
render,
|
|
33
|
+
style,
|
|
34
|
+
...otherProps,
|
|
35
|
+
children
|
|
36
|
+
});
|
|
37
|
+
const { resting, open } = resolveIconPair(restingIcon, openIcon);
|
|
38
|
+
const iconAtStart = iconPosition === "start";
|
|
39
|
+
return /* @__PURE__ */ jsx(Surface, {
|
|
40
|
+
border,
|
|
41
|
+
borderStyle,
|
|
42
|
+
className: clsx(disclosure_module_default.Trigger, className),
|
|
43
|
+
color,
|
|
44
|
+
enableContainer,
|
|
45
|
+
hoverColor: hoverColor ?? 2,
|
|
46
|
+
hPadding,
|
|
47
|
+
vPadding,
|
|
48
|
+
overflow,
|
|
49
|
+
radius,
|
|
50
|
+
render: /* @__PURE__ */ jsx(Collapsible.Trigger, {
|
|
51
|
+
nativeButton,
|
|
52
|
+
...otherProps
|
|
53
|
+
}),
|
|
54
|
+
style,
|
|
55
|
+
children: /* @__PURE__ */ jsxs(Stack, {
|
|
56
|
+
columnGap: iconAtStart ? "s" : void 0,
|
|
57
|
+
direction: iconAtStart ? "row" : "row-reverse",
|
|
58
|
+
fullWidth: true,
|
|
59
|
+
hAlign: iconPosition === "end" ? "space-between" : "start",
|
|
60
|
+
vAlign: "center",
|
|
61
|
+
children: [open ? /* @__PURE__ */ jsxs("span", {
|
|
62
|
+
"aria-hidden": true,
|
|
63
|
+
className: disclosure_module_default.IconSlot,
|
|
64
|
+
"data-interpolate": interpolateIcons ? "true" : "false",
|
|
65
|
+
"data-shrink": "false",
|
|
66
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
67
|
+
className: disclosure_module_default.Icon,
|
|
68
|
+
children: resting
|
|
69
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
70
|
+
className: disclosure_module_default.Icon,
|
|
71
|
+
children: open
|
|
72
|
+
})]
|
|
73
|
+
}) : /* @__PURE__ */ jsx("span", {
|
|
74
|
+
"aria-hidden": true,
|
|
75
|
+
"data-shrink": "false",
|
|
76
|
+
children: resting
|
|
77
|
+
}), children]
|
|
78
|
+
})
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
//#endregion
|
|
82
|
+
export { DisclosureTrigger };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer viraui.preflight, viraui.components, viraui.overrides;@layer viraui.components{.viraui__disclosure-module__Trigger_hTIkR{inline-size:100%;cursor:pointer;text-align:start;color:inherit;&:focus-visible{outline-offset:-4px}&[data-disabled]{cursor:not-allowed;opacity:.5}}.viraui__disclosure-module__IconSlot_8gEr5{position:relative;inline-size:1rem;block-size:1rem;.viraui__disclosure-module__Trigger_hTIkR[data-panel-open] &{.viraui__disclosure-module__Icon_w8tYN:first-of-type{opacity:0;rotate:30deg}.viraui__disclosure-module__Icon_w8tYN:last-of-type{opacity:1;rotate:0deg}}&[data-interpolate=true] .viraui__disclosure-module__Icon_w8tYN{transition:opacity var(--duration-fast) var(--easing-standard),rotate var(--duration-fast) var(--easing-standard)}@media (prefers-reduced-motion:reduce){&[data-interpolate=true] .viraui__disclosure-module__Icon_w8tYN{transition:none}}}.viraui__disclosure-module__Icon_w8tYN{position:absolute;inset:0;display:grid;place-items:center;&>svg{block-size:1rem;inline-size:1rem}&:first-of-type{opacity:1;rotate:0deg}&:last-of-type{opacity:0;rotate:-30deg}}.viraui__disclosure-module__Panel_U6Kba{block-size:var(--collapsible-panel-height);overflow:hidden;transition:block-size var(--duration-fast) var(--easing-standard);&[data-ending-style],&[data-starting-style]{block-size:0}@media (prefers-reduced-motion:reduce){transition:none}}}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { CollapsibleRoot } from '@base-ui/react/collapsible';
|
|
2
|
+
import { DisclosurePanelProps } from './disclosure-panel';
|
|
3
|
+
import { DisclosureTriggerProps } from './disclosure-trigger';
|
|
4
|
+
import type * as React from 'react';
|
|
5
|
+
/**
|
|
6
|
+
* Public Disclosure root props.
|
|
7
|
+
*
|
|
8
|
+
* Base UI Collapsible Root pass-through (`open`, `defaultOpen`, `onOpenChange`, `disabled`, …).
|
|
9
|
+
* Compose with `Disclosure.Trigger` and `Disclosure.Panel`.
|
|
10
|
+
*
|
|
11
|
+
* @defaultValue Base UI pass-through props keep upstream defaults.
|
|
12
|
+
*/
|
|
13
|
+
export type DisclosureProps = CollapsibleRoot.Props;
|
|
14
|
+
type DisclosureComponent = React.FC<DisclosureProps> & {
|
|
15
|
+
Trigger: React.FC<DisclosureTriggerProps>;
|
|
16
|
+
Panel: React.FC<DisclosurePanelProps>;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Single-section expand/collapse compound wrapping Base UI Collapsible.
|
|
20
|
+
*
|
|
21
|
+
* Use Accordion for multi-item lists. Default Trigger is Surface with
|
|
22
|
+
* `render` → Collapsible Trigger; Panel is a height motion shell without padding.
|
|
23
|
+
*/
|
|
24
|
+
export declare const Disclosure: DisclosureComponent;
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import './disclosure.css';
|
|
3
|
+
import { clsx } from "../../core/clsx.js";
|
|
4
|
+
import { Stack } from "../stack/stack.js";
|
|
5
|
+
import disclosure_module_default from "./disclosure.module.js";
|
|
6
|
+
import { DisclosurePanel } from "./disclosure-panel.js";
|
|
7
|
+
import { DisclosureTrigger } from "./disclosure-trigger.js";
|
|
8
|
+
import { jsx } from "react/jsx-runtime";
|
|
9
|
+
import { Collapsible } from "@base-ui/react/collapsible";
|
|
10
|
+
//#region src/components/disclosure/disclosure.tsx
|
|
11
|
+
var DisclosureRoot = ({ children, className, ...otherProps }) => /* @__PURE__ */ jsx(Collapsible.Root, {
|
|
12
|
+
render: /* @__PURE__ */ jsx(Stack, {
|
|
13
|
+
fullWidth: true,
|
|
14
|
+
className: clsx(disclosure_module_default.Disclosure, className)
|
|
15
|
+
}),
|
|
16
|
+
...otherProps,
|
|
17
|
+
children
|
|
18
|
+
});
|
|
19
|
+
/**
|
|
20
|
+
* Single-section expand/collapse compound wrapping Base UI Collapsible.
|
|
21
|
+
*
|
|
22
|
+
* Use Accordion for multi-item lists. Default Trigger is Surface with
|
|
23
|
+
* `render` → Collapsible Trigger; Panel is a height motion shell without padding.
|
|
24
|
+
*/
|
|
25
|
+
var Disclosure = Object.assign(DisclosureRoot, {
|
|
26
|
+
Trigger: DisclosureTrigger,
|
|
27
|
+
Panel: DisclosurePanel
|
|
28
|
+
});
|
|
29
|
+
//#endregion
|
|
30
|
+
export { Disclosure };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//#region src/components/disclosure/disclosure.module.css
|
|
2
|
+
var Disclosure = "viraui__disclosure-module__Disclosure_C0zl-";
|
|
3
|
+
var Trigger = "viraui__disclosure-module__Trigger_hTIkR";
|
|
4
|
+
var IconSlot = "viraui__disclosure-module__IconSlot_8gEr5";
|
|
5
|
+
var Icon = "viraui__disclosure-module__Icon_w8tYN";
|
|
6
|
+
var Panel = "viraui__disclosure-module__Panel_U6Kba";
|
|
7
|
+
var disclosure_module_default = {
|
|
8
|
+
Disclosure,
|
|
9
|
+
Trigger,
|
|
10
|
+
IconSlot,
|
|
11
|
+
Icon,
|
|
12
|
+
Panel
|
|
13
|
+
};
|
|
14
|
+
//#endregion
|
|
15
|
+
export { Disclosure, Icon, IconSlot, Panel, Trigger, disclosure_module_default as default };
|
|
@@ -8,43 +8,43 @@ export { getElevationProps } from '../../core/elevation/get-elevation-props';
|
|
|
8
8
|
*
|
|
9
9
|
* Applies preflight elevation hooks to each valid element child. Invalid nodes pass through unchanged.
|
|
10
10
|
*
|
|
11
|
-
* @
|
|
11
|
+
* @defaultValue Native child pass-through props are preserved and merged with elevation hooks.
|
|
12
12
|
*/
|
|
13
13
|
export type ElevatorProps = {
|
|
14
14
|
/**
|
|
15
15
|
* Element or elements that receive elevation hooks on their rendered root.
|
|
16
16
|
*
|
|
17
|
-
* @
|
|
17
|
+
* @defaultValue No default. Consumers must provide at least one child.
|
|
18
18
|
*/
|
|
19
19
|
children: React.ReactNode;
|
|
20
20
|
/**
|
|
21
21
|
* Resting elevation level mapped to `data-elevation`.
|
|
22
22
|
*
|
|
23
|
-
* @
|
|
23
|
+
* @defaultValue No default. Consumers must provide a resting level.
|
|
24
24
|
*/
|
|
25
25
|
resting: ElevationLevel;
|
|
26
26
|
/**
|
|
27
27
|
* Hover elevation level mapped to `data-elevation-hover`.
|
|
28
28
|
*
|
|
29
|
-
* @
|
|
29
|
+
* @defaultValue No hover elevation override.
|
|
30
30
|
*/
|
|
31
31
|
hover?: ElevationLevel;
|
|
32
32
|
/**
|
|
33
33
|
* Shadow cast direction mapped to `data-elevation-direction`.
|
|
34
34
|
*
|
|
35
|
-
* @
|
|
35
|
+
* @defaultValue 'bottom'
|
|
36
36
|
*/
|
|
37
37
|
direction?: ElevationDirection;
|
|
38
38
|
/**
|
|
39
39
|
* Shadow color mapped to the `--shadow-color` custom property.
|
|
40
40
|
*
|
|
41
|
-
* @
|
|
41
|
+
* @defaultValue 'oklch(0% 0 0)'
|
|
42
42
|
*/
|
|
43
43
|
shadowColor?: ElevationShadowColor;
|
|
44
44
|
/**
|
|
45
45
|
* Additional shadow layer mapped to the `--extra-shadow` custom property.
|
|
46
46
|
*
|
|
47
|
-
* @
|
|
47
|
+
* @defaultValue Preflight transparent hairline from `elevations.css`.
|
|
48
48
|
*/
|
|
49
49
|
extraShadow?: string;
|
|
50
50
|
};
|
|
@@ -7,27 +7,27 @@ import type * as React from 'react';
|
|
|
7
7
|
* legend typography and optional group helper copy. Pass `render` to merge the fieldset
|
|
8
8
|
* root with `RadioGroup`, `CheckboxGroup`, or another compatible root.
|
|
9
9
|
*
|
|
10
|
-
* @
|
|
10
|
+
* @defaultValue Base UI pass-through props keep upstream defaults.
|
|
11
11
|
*/
|
|
12
12
|
export type FieldsetProps = FieldsetRoot.Props & {
|
|
13
13
|
/**
|
|
14
14
|
* Visible legend copy rendered with shared internal `FieldLabel`.
|
|
15
15
|
*
|
|
16
|
-
* @
|
|
16
|
+
* @defaultValue No legend is rendered.
|
|
17
17
|
*/
|
|
18
18
|
label?: React.ReactNode;
|
|
19
19
|
/**
|
|
20
20
|
* Group helper copy rendered below the legend while valid.
|
|
21
21
|
* Requires a `Field.Root` ancestor for `FieldHelperCopy`.
|
|
22
22
|
*
|
|
23
|
-
* @
|
|
23
|
+
* @defaultValue No description is rendered.
|
|
24
24
|
*/
|
|
25
25
|
description?: React.ReactNode;
|
|
26
26
|
/**
|
|
27
27
|
* Group error copy rendered below the legend when invalid.
|
|
28
28
|
* Requires a `Field.Root` ancestor.
|
|
29
29
|
*
|
|
30
|
-
* @
|
|
30
|
+
* @defaultValue No static error copy is rendered.
|
|
31
31
|
*/
|
|
32
32
|
error?: React.ReactNode;
|
|
33
33
|
};
|
|
@@ -5,13 +5,13 @@ import type * as React from 'react';
|
|
|
5
5
|
* Includes standard `div` attributes such as `children`, `id`, `className`, and event handlers,
|
|
6
6
|
* plus an optional fitted font-size cap.
|
|
7
7
|
*
|
|
8
|
-
* @
|
|
8
|
+
* @defaultValue Native div pass-through props keep React defaults.
|
|
9
9
|
*/
|
|
10
10
|
export type FitTextProps = React.ComponentPropsWithRef<'div'> & {
|
|
11
11
|
/**
|
|
12
12
|
* Caps the fitted font size using any valid CSS length string.
|
|
13
13
|
*
|
|
14
|
-
* @
|
|
14
|
+
* @defaultValue No maximum — fitted size may grow without an upper bound.
|
|
15
15
|
*/
|
|
16
16
|
maxFontSize?: string;
|
|
17
17
|
};
|
|
@@ -6,69 +6,69 @@ import type * as React from 'react';
|
|
|
6
6
|
* Glow root is a transparent Surface shell that exposes only `radius` (token, per-corner
|
|
7
7
|
* tuple, or `auto`). Put the visual card as children (typically `Surface` with `radius="auto"`).
|
|
8
8
|
*
|
|
9
|
-
* @
|
|
9
|
+
* @defaultValue Glow-owned props use the defaults below; `radius` keeps Surface defaults when omitted.
|
|
10
10
|
*/
|
|
11
11
|
export type GlowProps = React.ComponentProps<'div'> & Pick<SurfaceProps, 'radius'> & {
|
|
12
12
|
/**
|
|
13
13
|
* Distance from the surface edge where the glow becomes fully active.
|
|
14
14
|
*
|
|
15
|
-
* @
|
|
15
|
+
* @defaultValue 170
|
|
16
16
|
*/
|
|
17
17
|
proximity?: number;
|
|
18
18
|
/**
|
|
19
19
|
* Angular width of the highlighted arc (degrees, used as a unitless CSS number).
|
|
20
20
|
*
|
|
21
|
-
* @
|
|
21
|
+
* @defaultValue 250
|
|
22
22
|
*/
|
|
23
23
|
spread?: number;
|
|
24
24
|
/**
|
|
25
25
|
* Resting opacity of the glow when the pointer is outside proximity.
|
|
26
26
|
*
|
|
27
|
-
* @
|
|
27
|
+
* @defaultValue 0
|
|
28
28
|
*/
|
|
29
29
|
opacity?: number;
|
|
30
30
|
/**
|
|
31
31
|
* Shrinks the root to fit its content (`max-width: fit-content`).
|
|
32
32
|
*
|
|
33
|
-
* @
|
|
33
|
+
* @defaultValue false
|
|
34
34
|
*/
|
|
35
35
|
fitContent?: boolean;
|
|
36
36
|
/**
|
|
37
37
|
* Width of the masked glow border ring.
|
|
38
38
|
*
|
|
39
|
-
* @
|
|
39
|
+
* @defaultValue 2
|
|
40
40
|
*/
|
|
41
41
|
borderWidth?: number;
|
|
42
42
|
/**
|
|
43
43
|
* Color of the masked border ring under the highlight.
|
|
44
44
|
*
|
|
45
|
-
* @
|
|
45
|
+
* @defaultValue var(--global-contrast)
|
|
46
46
|
*/
|
|
47
47
|
borderColor?: string;
|
|
48
48
|
/**
|
|
49
49
|
* Offset of the glow ring from the surface edge. Negative values place the ring outside.
|
|
50
50
|
*
|
|
51
|
-
* @
|
|
51
|
+
* @defaultValue 5
|
|
52
52
|
*/
|
|
53
53
|
borderOffset?: number;
|
|
54
54
|
/**
|
|
55
55
|
* Overrides the glow gradient with a solid color or custom background value.
|
|
56
56
|
* Ignored when `rainbowColors` is true.
|
|
57
57
|
*
|
|
58
|
-
* @
|
|
58
|
+
* @defaultValue Theme highlight conic gradient
|
|
59
59
|
*/
|
|
60
60
|
glowColor?: string;
|
|
61
61
|
/**
|
|
62
62
|
* Shares the highlight gradient across cards via `background-attachment: fixed`.
|
|
63
63
|
* Forced off when `rainbowColors` is true.
|
|
64
64
|
*
|
|
65
|
-
* @
|
|
65
|
+
* @defaultValue true
|
|
66
66
|
*/
|
|
67
67
|
globalHighlight?: boolean;
|
|
68
68
|
/**
|
|
69
69
|
* Uses the multi-stop rainbow highlight gradient and disables global highlight attachment.
|
|
70
70
|
*
|
|
71
|
-
* @
|
|
71
|
+
* @defaultValue false
|
|
72
72
|
*/
|
|
73
73
|
rainbowColors?: boolean;
|
|
74
74
|
/**
|
|
@@ -76,7 +76,7 @@ export type GlowProps = React.ComponentProps<'div'> & Pick<SurfaceProps, 'radius
|
|
|
76
76
|
* set `0` for instant snap. Tracker writes an unwrapped continuous angle so the
|
|
77
77
|
* transition does not take the long way across the 0° seam.
|
|
78
78
|
*
|
|
79
|
-
* @
|
|
79
|
+
* @defaultValue 80
|
|
80
80
|
*/
|
|
81
81
|
angleLag?: number;
|
|
82
82
|
};
|
|
@@ -7,45 +7,45 @@ type GridItemSubgrid = boolean | 'column' | 'row';
|
|
|
7
7
|
* Includes standard `div` attributes such as `id`, `role`, `title`, and event handlers,
|
|
8
8
|
* plus placement controls and Base UI `render` support for replacing the item root.
|
|
9
9
|
*
|
|
10
|
-
* @
|
|
10
|
+
* @defaultValue Base UI pass-through props keep upstream defaults.
|
|
11
11
|
*/
|
|
12
12
|
export type GridItemProps = React.ComponentPropsWithoutRef<'div'> & {
|
|
13
13
|
/**
|
|
14
14
|
* Replaces the default `div` root using Base UI render semantics.
|
|
15
15
|
*
|
|
16
|
-
* @
|
|
16
|
+
* @defaultValue The item renders a `div` root.
|
|
17
17
|
*/
|
|
18
18
|
render?: useRender.RenderProp;
|
|
19
19
|
/**
|
|
20
20
|
* Ref forwarded to the rendered item root element.
|
|
21
21
|
*
|
|
22
|
-
* @
|
|
22
|
+
* @defaultValue No ref is attached.
|
|
23
23
|
*/
|
|
24
24
|
ref?: React.Ref<HTMLElement>;
|
|
25
25
|
/**
|
|
26
26
|
* Spans the item across every column track (`grid-column: 1 / -1`).
|
|
27
27
|
* Wins over `column` when both are set.
|
|
28
28
|
*
|
|
29
|
-
* @
|
|
29
|
+
* @defaultValue false
|
|
30
30
|
*/
|
|
31
31
|
fullWidth?: boolean;
|
|
32
32
|
/**
|
|
33
33
|
* Spans the item across every row track (`grid-row: 1 / -1`).
|
|
34
34
|
* Wins over `row` when both are set.
|
|
35
35
|
*
|
|
36
|
-
* @
|
|
36
|
+
* @defaultValue false
|
|
37
37
|
*/
|
|
38
38
|
fullHeight?: boolean;
|
|
39
39
|
/**
|
|
40
40
|
* Sets explicit `grid-column` placement via `--vui-grid-item-column`.
|
|
41
41
|
*
|
|
42
|
-
* @
|
|
42
|
+
* @defaultValue No explicit column placement.
|
|
43
43
|
*/
|
|
44
44
|
column?: React.CSSProperties['gridColumn'];
|
|
45
45
|
/**
|
|
46
46
|
* Sets explicit `grid-row` placement via `--vui-grid-item-row`.
|
|
47
47
|
*
|
|
48
|
-
* @
|
|
48
|
+
* @defaultValue No explicit row placement.
|
|
49
49
|
*/
|
|
50
50
|
row?: React.CSSProperties['gridRow'];
|
|
51
51
|
/**
|
|
@@ -54,7 +54,7 @@ export type GridItemProps = React.ComponentPropsWithoutRef<'div'> & {
|
|
|
54
54
|
* Pass `true` for both axes, or `'column'` / `'row'` for one axis.
|
|
55
55
|
* Pair with `fullWidth` / `fullHeight` or a `column` / `row` span so the item covers the tracks to inherit.
|
|
56
56
|
*
|
|
57
|
-
* @
|
|
57
|
+
* @defaultValue false
|
|
58
58
|
*/
|
|
59
59
|
subgrid?: GridItemSubgrid;
|
|
60
60
|
};
|
|
@@ -10,19 +10,19 @@ type GridAxisPadding = GridSpace | [GridSpace | 0, GridSpace | 0];
|
|
|
10
10
|
* Includes standard `div` attributes such as `id`, `role`, `title`, and event handlers,
|
|
11
11
|
* plus Vira-owned CSS Grid controls and Base UI `render` support for replacing the root element.
|
|
12
12
|
*
|
|
13
|
-
* @
|
|
13
|
+
* @defaultValue Base UI pass-through props keep upstream defaults.
|
|
14
14
|
*/
|
|
15
15
|
export type GridProps = React.ComponentPropsWithoutRef<'div'> & {
|
|
16
16
|
/**
|
|
17
17
|
* Replaces the default `div` root using Base UI render semantics.
|
|
18
18
|
*
|
|
19
|
-
* @
|
|
19
|
+
* @defaultValue The grid renders a `div` root.
|
|
20
20
|
*/
|
|
21
21
|
render?: useRender.RenderProp;
|
|
22
22
|
/**
|
|
23
23
|
* Ref forwarded to the rendered grid root element.
|
|
24
24
|
*
|
|
25
|
-
* @
|
|
25
|
+
* @defaultValue No ref is attached.
|
|
26
26
|
*/
|
|
27
27
|
ref?: React.Ref<HTMLElement>;
|
|
28
28
|
/**
|
|
@@ -33,32 +33,32 @@ export type GridProps = React.ComponentPropsWithoutRef<'div'> & {
|
|
|
33
33
|
* explicit `colMinWidth` as well for fixed-breadth tracks and
|
|
34
34
|
* `data-grid-fixed-breadth="true"` (`inline-size: max-content`).
|
|
35
35
|
*
|
|
36
|
-
* @
|
|
36
|
+
* @defaultValue No fixed column count (uses `filling` auto tracks).
|
|
37
37
|
*/
|
|
38
38
|
columns?: number;
|
|
39
39
|
/**
|
|
40
40
|
* Fixes the number of row tracks via `--vui-grid-rows`.
|
|
41
41
|
*
|
|
42
|
-
* @
|
|
42
|
+
* @defaultValue No fixed row count.
|
|
43
43
|
*/
|
|
44
44
|
rows?: number;
|
|
45
45
|
/**
|
|
46
46
|
* Sets the gap between grid rows using the Vira space token scale.
|
|
47
47
|
*
|
|
48
|
-
* @
|
|
48
|
+
* @defaultValue No row gap (`0`).
|
|
49
49
|
*/
|
|
50
50
|
rowGap?: GridSpace;
|
|
51
51
|
/**
|
|
52
52
|
* Sets the gap between grid columns using the Vira space token scale.
|
|
53
53
|
*
|
|
54
|
-
* @
|
|
54
|
+
* @defaultValue No column gap (`0`).
|
|
55
55
|
*/
|
|
56
56
|
columnGap?: GridSpace;
|
|
57
57
|
/**
|
|
58
58
|
* Controls `repeat(auto-fill|auto-fit, …)` when `columns` is unset.
|
|
59
59
|
* Pass `false` to skip the filling data attribute.
|
|
60
60
|
*
|
|
61
|
-
* @
|
|
61
|
+
* @defaultValue 'fill'
|
|
62
62
|
*/
|
|
63
63
|
filling?: 'fit' | 'fill' | false;
|
|
64
64
|
/**
|
|
@@ -67,25 +67,25 @@ export type GridProps = React.ComponentPropsWithoutRef<'div'> & {
|
|
|
67
67
|
* tracks (`repeat(N, var(--vui-grid-column-min-w))`) and sets
|
|
68
68
|
* `data-grid-fixed-breadth`; omit this prop to keep fluid `1fr` tracks.
|
|
69
69
|
*
|
|
70
|
-
* @
|
|
70
|
+
* @defaultValue '10rem'
|
|
71
71
|
*/
|
|
72
72
|
colMinWidth?: string;
|
|
73
73
|
/**
|
|
74
74
|
* Minimum row track size used when `rows` is set.
|
|
75
75
|
*
|
|
76
|
-
* @
|
|
76
|
+
* @defaultValue '1fr'
|
|
77
77
|
*/
|
|
78
78
|
rowMinHeight?: string;
|
|
79
79
|
/**
|
|
80
80
|
* Sets inline padding using one token for both sides or a `[start, end]` tuple.
|
|
81
81
|
*
|
|
82
|
-
* @
|
|
82
|
+
* @defaultValue No inline padding.
|
|
83
83
|
*/
|
|
84
84
|
hPadding?: GridAxisPadding;
|
|
85
85
|
/**
|
|
86
86
|
* Sets block padding using one token for both sides or a `[start, end]` tuple.
|
|
87
87
|
*
|
|
88
|
-
* @
|
|
88
|
+
* @defaultValue No block padding.
|
|
89
89
|
*/
|
|
90
90
|
vPadding?: GridAxisPadding;
|
|
91
91
|
};
|
|
@@ -18,13 +18,13 @@ export type IconButtonLinkProps = Omit<ButtonLinkProps, 'children' | 'addon' | '
|
|
|
18
18
|
/**
|
|
19
19
|
* Controls the visual button size.
|
|
20
20
|
*
|
|
21
|
-
* @
|
|
21
|
+
* @defaultValue 'm'
|
|
22
22
|
*/
|
|
23
23
|
size?: ButtonLinkProps['size'];
|
|
24
24
|
/**
|
|
25
25
|
* Icon rendered as the sole visible control content.
|
|
26
26
|
*
|
|
27
|
-
* @
|
|
27
|
+
* @defaultValue No default; required for every IconButtonLink.
|
|
28
28
|
*/
|
|
29
29
|
icon: ReactNode;
|
|
30
30
|
};
|
|
@@ -17,13 +17,13 @@ export type IconButtonProps = Omit<ButtonProps, 'children' | 'addon' | 'addonPos
|
|
|
17
17
|
/**
|
|
18
18
|
* Controls the visual button size.
|
|
19
19
|
*
|
|
20
|
-
* @
|
|
20
|
+
* @defaultValue 'm'
|
|
21
21
|
*/
|
|
22
22
|
size?: ButtonProps['size'];
|
|
23
23
|
/**
|
|
24
24
|
* Icon rendered as the sole visible control content.
|
|
25
25
|
*
|
|
26
|
-
* @
|
|
26
|
+
* @defaultValue No default; required for every IconButton.
|
|
27
27
|
*/
|
|
28
28
|
icon: ReactNode;
|
|
29
29
|
};
|
|
@@ -12,6 +12,7 @@ export * from './checkbox';
|
|
|
12
12
|
export * from './chip';
|
|
13
13
|
export * from './clamp-text';
|
|
14
14
|
export * from './dialog';
|
|
15
|
+
export * from './disclosure';
|
|
15
16
|
export * from './elevator';
|
|
16
17
|
export * from './fieldset';
|
|
17
18
|
export * from './fit-text';
|
|
@@ -22,6 +23,7 @@ export * from './linear-progress';
|
|
|
22
23
|
export * from './masonry';
|
|
23
24
|
export * from './menu';
|
|
24
25
|
export * from './meter';
|
|
26
|
+
export * from './number-field';
|
|
25
27
|
export * from './otp-field';
|
|
26
28
|
export * from './popover';
|
|
27
29
|
export * from './progressive-blur';
|
|
@@ -6,19 +6,19 @@ import type * as React from 'react';
|
|
|
6
6
|
* Includes Base UI progress root props such as `value`, `min`, `max`, `format`,
|
|
7
7
|
* and `getAriaValueText`, plus optional label, description, and value display.
|
|
8
8
|
*
|
|
9
|
-
* @
|
|
9
|
+
* @defaultValue Base UI pass-through props keep upstream defaults.
|
|
10
10
|
*/
|
|
11
11
|
export type LinearProgressProps = ProgressRoot.Props & {
|
|
12
12
|
/**
|
|
13
13
|
* Visible label rendered through `Progress.Label` with shared internal `FieldLabel`.
|
|
14
14
|
*
|
|
15
|
-
* @
|
|
15
|
+
* @defaultValue No label is rendered.
|
|
16
16
|
*/
|
|
17
17
|
label?: React.ReactNode;
|
|
18
18
|
/**
|
|
19
19
|
* Static helper copy rendered with `Text` below the progress track.
|
|
20
20
|
*
|
|
21
|
-
* @
|
|
21
|
+
* @defaultValue No description is rendered.
|
|
22
22
|
*/
|
|
23
23
|
description?: React.ReactNode;
|
|
24
24
|
/**
|
|
@@ -27,7 +27,7 @@ export type LinearProgressProps = ProgressRoot.Props & {
|
|
|
27
27
|
* Pass `true` for Base UI default formatting, or a function matching
|
|
28
28
|
* `Progress.Value` `children` to customize the printed label.
|
|
29
29
|
*
|
|
30
|
-
* @
|
|
30
|
+
* @defaultValue Value UI is hidden.
|
|
31
31
|
*/
|
|
32
32
|
renderValue?: boolean | Exclude<React.ComponentProps<typeof PrimitiveProgress.Value>['children'], null | undefined>;
|
|
33
33
|
};
|