@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.
Files changed (122) hide show
  1. package/dist/catalog.json +13 -1
  2. package/dist/components/accordion/accordion-item.d.ts +10 -10
  3. package/dist/components/accordion/accordion.d.ts +2 -2
  4. package/dist/components/annotate/annotate.d.ts +15 -15
  5. package/dist/components/autocomplete/autocomplete-item.d.ts +3 -3
  6. package/dist/components/autocomplete/autocomplete.d.ts +12 -12
  7. package/dist/components/avatar/avatar.d.ts +6 -6
  8. package/dist/components/avatar-group/avatar-group.d.ts +6 -6
  9. package/dist/components/badge/badge.d.ts +5 -5
  10. package/dist/components/basic-input/basic-input.d.ts +1 -1
  11. package/dist/components/basic-input/input-control-group.d.ts +2 -2
  12. package/dist/components/beam/beam.css +1 -1
  13. package/dist/components/beam/beam.d.ts +12 -12
  14. package/dist/components/bleed/bleed.d.ts +3 -3
  15. package/dist/components/button/button-link.d.ts +1 -1
  16. package/dist/components/button/button.d.ts +1 -1
  17. package/dist/components/checkbox/checkbox-group.d.ts +1 -1
  18. package/dist/components/checkbox/checkbox.d.ts +7 -7
  19. package/dist/components/chip/chip.d.ts +6 -6
  20. package/dist/components/clamp-text/clamp-text.d.ts +5 -5
  21. package/dist/components/dialog/dialog-close.d.ts +1 -1
  22. package/dist/components/dialog/dialog-indent-background.d.ts +1 -1
  23. package/dist/components/dialog/dialog-indent.d.ts +1 -1
  24. package/dist/components/dialog/dialog-sheet.d.ts +10 -10
  25. package/dist/components/dialog/dialog-trigger.d.ts +1 -1
  26. package/dist/components/dialog/dialog.d.ts +1 -1
  27. package/dist/components/disclosure/disclosure-panel.d.ts +12 -0
  28. package/dist/components/disclosure/disclosure-panel.js +13 -0
  29. package/dist/components/disclosure/disclosure-trigger.d.ts +46 -0
  30. package/dist/components/disclosure/disclosure-trigger.js +82 -0
  31. package/dist/components/disclosure/disclosure.css +1 -0
  32. package/dist/components/disclosure/disclosure.d.ts +25 -0
  33. package/dist/components/disclosure/disclosure.js +30 -0
  34. package/dist/components/disclosure/disclosure.module.js +15 -0
  35. package/dist/components/disclosure/index.d.ts +4 -0
  36. package/dist/components/elevator/elevator.d.ts +7 -7
  37. package/dist/components/fieldset/fieldset.d.ts +4 -4
  38. package/dist/components/fit-text/fit-text.d.ts +2 -2
  39. package/dist/components/glow/glow.d.ts +12 -12
  40. package/dist/components/grid/grid-item.d.ts +8 -8
  41. package/dist/components/grid/grid.d.ts +12 -12
  42. package/dist/components/icon-button/icon-button-link.d.ts +2 -2
  43. package/dist/components/icon-button/icon-button.d.ts +2 -2
  44. package/dist/components/index.d.ts +2 -0
  45. package/dist/components/linear-progress/linear-progress.d.ts +4 -4
  46. package/dist/components/masonry/masonry-item.d.ts +3 -3
  47. package/dist/components/masonry/masonry.d.ts +4 -4
  48. package/dist/components/menu/menu-checkbox-item.d.ts +4 -4
  49. package/dist/components/menu/menu-item.d.ts +4 -4
  50. package/dist/components/menu/menu-link-item.d.ts +4 -4
  51. package/dist/components/menu/menu-popup.d.ts +2 -2
  52. package/dist/components/menu/menu-radio-group.d.ts +2 -2
  53. package/dist/components/menu/menu-radio-item.d.ts +4 -4
  54. package/dist/components/menu/menu-separator.d.ts +1 -1
  55. package/dist/components/menu/menu-submenu-trigger.d.ts +3 -3
  56. package/dist/components/menu/menu.d.ts +3 -3
  57. package/dist/components/meter/meter.d.ts +5 -5
  58. package/dist/components/number-field/index.d.ts +2 -0
  59. package/dist/components/number-field/number-field.css +1 -0
  60. package/dist/components/number-field/number-field.d.ts +78 -0
  61. package/dist/components/number-field/number-field.js +120 -0
  62. package/dist/components/number-field/number-field.module.js +21 -0
  63. package/dist/components/otp-field/index.d.ts +1 -1
  64. package/dist/components/otp-field/otp-field-input.d.ts +1 -1
  65. package/dist/components/otp-field/otp-field-separator.d.ts +3 -1
  66. package/dist/components/otp-field/otp-field-separator.js +5 -1
  67. package/dist/components/otp-field/otp-field.d.ts +4 -5
  68. package/dist/components/otp-field/otp-field.js +0 -1
  69. package/dist/components/popover/popover-sheet.d.ts +6 -6
  70. package/dist/components/popover/popover.d.ts +5 -5
  71. package/dist/components/progressive-blur/progressive-blur.d.ts +5 -5
  72. package/dist/components/prose/prose.css +1 -1
  73. package/dist/components/prose/prose.d.ts +4 -4
  74. package/dist/components/radio/radio-group.d.ts +1 -1
  75. package/dist/components/radio/radio.d.ts +6 -6
  76. package/dist/components/select/select-indicator-slot.d.ts +1 -1
  77. package/dist/components/select/select-option.d.ts +4 -4
  78. package/dist/components/select/select-separator.d.ts +1 -1
  79. package/dist/components/select/select.d.ts +10 -10
  80. package/dist/components/separator/separator.d.ts +9 -9
  81. package/dist/components/shimmer/shimmer.d.ts +6 -6
  82. package/dist/components/skeleton/skeleton-overlay.d.ts +5 -5
  83. package/dist/components/skeleton/skeleton.d.ts +9 -9
  84. package/dist/components/slider/slider.d.ts +7 -7
  85. package/dist/components/spinner/spinner.d.ts +3 -3
  86. package/dist/components/stack/stack.d.ts +17 -17
  87. package/dist/components/static-noise/static-noise.d.ts +5 -5
  88. package/dist/components/surface/surface.d.ts +12 -12
  89. package/dist/components/switch/switch.d.ts +7 -7
  90. package/dist/components/tabs/tabs-list.d.ts +1 -1
  91. package/dist/components/tabs/tabs-panel.d.ts +1 -1
  92. package/dist/components/tabs/tabs-tab.d.ts +3 -3
  93. package/dist/components/tabs/tabs.d.ts +2 -2
  94. package/dist/components/text/text.d.ts +23 -23
  95. package/dist/components/textarea/textarea.d.ts +6 -6
  96. package/dist/components/textfield/textfield.d.ts +1 -1
  97. package/dist/components/title/title.d.ts +21 -21
  98. package/dist/components/toast/toast-action.d.ts +1 -1
  99. package/dist/components/toast/toast-banner.d.ts +7 -7
  100. package/dist/components/toast/toast-viewport.d.ts +2 -2
  101. package/dist/components/toggle-button/toggle-button.d.ts +6 -6
  102. package/dist/components/toggle-group/toggle-group.d.ts +1 -1
  103. package/dist/components/tooltip/tooltip-content.d.ts +2 -2
  104. package/dist/components/typewriter/typewriter.d.ts +10 -10
  105. package/dist/index.js +3 -1
  106. package/dist/specs/components/accordion/usage.xml +1 -0
  107. package/dist/specs/components/disclosure/a11y.xml +9 -0
  108. package/dist/specs/components/disclosure/meta.xml +20 -0
  109. package/dist/specs/components/disclosure/patterns.xml +55 -0
  110. package/dist/specs/components/disclosure/props.xml +54 -0
  111. package/dist/specs/components/disclosure/usage.xml +11 -0
  112. package/dist/specs/components/number-field/a11y.xml +10 -0
  113. package/dist/specs/components/number-field/meta.xml +21 -0
  114. package/dist/specs/components/number-field/patterns.xml +43 -0
  115. package/dist/specs/components/number-field/props.xml +35 -0
  116. package/dist/specs/components/number-field/usage.xml +12 -0
  117. package/dist/specs/components/otp-field/meta.xml +1 -4
  118. package/dist/specs/components/otp-field/patterns.xml +8 -8
  119. package/dist/specs/components/otp-field/props.xml +2 -2
  120. package/dist/specs/components/otp-field/usage.xml +4 -4
  121. package/dist/specs/index.xml +22 -2
  122. 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 };
@@ -0,0 +1,4 @@
1
+ export { Disclosure } from './disclosure';
2
+ export type { DisclosureProps } from './disclosure';
3
+ export type { DisclosureTriggerProps } from './disclosure-trigger';
4
+ export type { DisclosurePanelProps } from './disclosure-panel';
@@ -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
- * @default Native child pass-through props are preserved and merged with elevation hooks.
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
- * @default No default. Consumers must provide at least one child.
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
- * @default No default. Consumers must provide a resting level.
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
- * @default No hover elevation override.
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
- * @default 'bottom'
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
- * @default 'oklch(0% 0 0)'
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
- * @default Preflight transparent hairline from `elevations.css`.
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
- * @default Base UI pass-through props keep upstream defaults.
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
- * @default No legend is rendered.
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
- * @default No description is rendered.
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
- * @default No static error copy is rendered.
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
- * @default Native div pass-through props keep React defaults.
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
- * @default No maximum — fitted size may grow without an upper bound.
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
- * @default Glow-owned props use the defaults below; `radius` keeps Surface defaults when omitted.
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
- * @default 170
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
- * @default 250
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
- * @default 0
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
- * @default false
33
+ * @defaultValue false
34
34
  */
35
35
  fitContent?: boolean;
36
36
  /**
37
37
  * Width of the masked glow border ring.
38
38
  *
39
- * @default 2
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
- * @default var(--global-contrast)
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
- * @default 5
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
- * @default Theme highlight conic gradient
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
- * @default true
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
- * @default false
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
- * @default 80
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
- * @default Base UI pass-through props keep upstream defaults.
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
- * @default The item renders a `div` root.
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
- * @default No ref is attached.
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
- * @default false
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
- * @default false
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
- * @default No explicit column placement.
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
- * @default No explicit row placement.
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
- * @default false
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
- * @default Base UI pass-through props keep upstream defaults.
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
- * @default The grid renders a `div` root.
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
- * @default No ref is attached.
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
- * @default No fixed column count (uses `filling` auto tracks).
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
- * @default No fixed row count.
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
- * @default No row gap (`0`).
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
- * @default No column gap (`0`).
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
- * @default 'fill'
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
- * @default '10rem'
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
- * @default '1fr'
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
- * @default No inline padding.
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
- * @default No block padding.
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
- * @default 'm'
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
- * @default No default; required for every IconButtonLink.
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
- * @default 'm'
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
- * @default No default; required for every IconButton.
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
- * @default Base UI pass-through props keep upstream defaults.
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
- * @default No label is rendered.
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
- * @default No description is rendered.
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
- * @default Value UI is hidden.
30
+ * @defaultValue Value UI is hidden.
31
31
  */
32
32
  renderValue?: boolean | Exclude<React.ComponentProps<typeof PrimitiveProgress.Value>['children'], null | undefined>;
33
33
  };