@viraui/react 2026.6.4 → 2026.7.0-next.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 +12 -0
- package/dist/components/autocomplete/autocomplete.js +1 -1
- package/dist/components/basic-input/basic-input.d.ts +2 -1
- package/dist/components/basic-input/basic-input.js +7 -0
- package/dist/components/beam/beam-pulse-driver.d.ts +1 -0
- package/dist/components/beam/beam-pulse-driver.js +2 -2
- package/dist/components/beam/beam.css +1 -1
- package/dist/components/beam/beam.d.ts +5 -2
- package/dist/components/beam/beam.js +31 -26
- package/dist/components/button/button-link.js +1 -0
- package/dist/components/chip/chip.js +1 -0
- package/dist/components/dialog/dialog-sheet.js +1 -1
- package/dist/components/dialog/dialog.css +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/menu/menu-link-item.js +1 -0
- package/dist/components/menu/menu-popup.js +1 -1
- package/dist/components/meter/meter.css +1 -1
- package/dist/components/meter/meter.d.ts +11 -1
- package/dist/components/meter/meter.js +2 -1
- package/dist/components/otp-field/index.d.ts +4 -0
- package/dist/components/otp-field/otp-field-input.d.ts +12 -0
- package/dist/components/otp-field/otp-field-input.js +29 -0
- package/dist/components/otp-field/otp-field-separator.d.ts +11 -0
- package/dist/components/otp-field/otp-field-separator.js +16 -0
- package/dist/components/otp-field/otp-field.css +1 -0
- package/dist/components/otp-field/otp-field.d.ts +49 -0
- package/dist/components/otp-field/otp-field.js +79 -0
- package/dist/components/otp-field/otp-field.module.js +23 -0
- package/dist/components/prose/index.d.ts +2 -0
- package/dist/components/prose/prose.css +1 -0
- package/dist/components/prose/prose.d.ts +40 -0
- package/dist/components/prose/prose.js +27 -0
- package/dist/components/prose/prose.module.js +5 -0
- package/dist/components/select/select.js +1 -1
- package/dist/components/separator/separator.d.ts +7 -0
- package/dist/components/separator/separator.js +2 -1
- package/dist/components/text/text.css +1 -1
- package/dist/components/text/text.d.ts +6 -3
- package/dist/components/text/text.js +4 -2
- package/dist/components/textfield/textfield.css +1 -1
- package/dist/components/textfield/textfield.d.ts +18 -10
- package/dist/components/textfield/textfield.js +43 -39
- package/dist/components/textfield/textfield.module.js +3 -1
- package/dist/components/title/title.css +1 -1
- package/dist/components/title/title.d.ts +2 -1
- package/dist/components/title/title.js +4 -2
- package/dist/components/toast/toast-banner.js +1 -1
- package/dist/index.js +5 -3
- package/dist/preflight.css +1 -1
- package/dist/specs/components/beam/a11y.xml +3 -3
- package/dist/specs/components/beam/props.xml +22 -1
- package/dist/specs/components/beam/usage.xml +1 -0
- package/dist/specs/components/button/usage.xml +1 -1
- package/dist/specs/components/chip/usage.xml +1 -1
- package/dist/specs/components/menu/usage.xml +1 -1
- package/dist/specs/components/meter/patterns.xml +12 -0
- package/dist/specs/components/meter/props.xml +7 -0
- package/dist/specs/components/meter/usage.xml +2 -0
- package/dist/specs/components/otp-field/a11y.xml +10 -0
- package/dist/specs/components/otp-field/meta.xml +23 -0
- package/dist/specs/components/otp-field/patterns.xml +66 -0
- package/dist/specs/components/otp-field/props.xml +29 -0
- package/dist/specs/components/otp-field/usage.xml +13 -0
- package/dist/specs/components/prose/a11y.xml +7 -0
- package/dist/specs/components/prose/meta.xml +18 -0
- package/dist/specs/components/prose/patterns.xml +59 -0
- package/dist/specs/components/prose/props.xml +37 -0
- package/dist/specs/components/prose/usage.xml +12 -0
- package/dist/specs/components/separator/props.xml +3 -0
- package/dist/specs/components/separator/usage.xml +1 -0
- package/dist/specs/components/text/patterns.xml +9 -0
- package/dist/specs/components/text/props.xml +6 -6
- package/dist/specs/components/text/usage.xml +3 -0
- package/dist/specs/components/textfield/meta.xml +1 -0
- package/dist/specs/components/textfield/props.xml +6 -1
- package/dist/specs/components/textfield/usage.xml +2 -1
- package/dist/specs/components/title/props.xml +2 -2
- package/dist/specs/components/title/usage.xml +2 -0
- package/dist/specs/components/typewriter/usage.xml +0 -1
- package/dist/specs/foundation/attributes.xml +5 -5
- package/dist/specs/foundation/modules.xml +2 -2
- package/dist/specs/index.xml +21 -1
- package/package.json +2 -2
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<usage surface="prose">
|
|
3
|
+
<do>Put headings and blocks as **direct** children — Title/Text with `render={<h* />}` / `render={<p />}`, plus native `ul`/`ol`/`blockquote` when needed</do>
|
|
4
|
+
<do>Pick `gap` `s` / `m` / `l` (default `l`) for density; `align` on Prose to set one `text-align` for the region (omit Title/Text `align` so they inherit)</do>
|
|
5
|
+
<do>Use `render={<article />}` (or another landmark) when the region is the document landmark; name it if the landmark needs a name</do>
|
|
6
|
+
<do>Leave type on Title/Text; Title inside Prose uses `lineHeight="s"`; override `--vui-prose-gap-*` on the Prose root only when the em triple must change</do>
|
|
7
|
+
<dont>Using Stack `rowGap` as article rhythm — one gap cannot split heading→body vs body→body</dont>
|
|
8
|
+
<dont>Expecting default Title/Text `span` hosts to join rhythm — they are not heading/block tags</dont>
|
|
9
|
+
<dont>Setting `as` — replace the root with `render` only</dont>
|
|
10
|
+
<dont>Setting `align` on every Title/Text inside Prose when one Prose `align` covers the region</dont>
|
|
11
|
+
<dont>Setting a widget `role` on Prose, or painting font/color/list/link chrome in Prose CSS</dont>
|
|
12
|
+
</usage>
|
|
@@ -30,6 +30,9 @@
|
|
|
30
30
|
<prop name="vPadding" kind="react">
|
|
31
31
|
<description>Sets block padding on the Stack wrapper using one token for both sides or a `[start, end]` tuple.</description>
|
|
32
32
|
</prop>
|
|
33
|
+
<prop name="maxWidth" kind="react">
|
|
34
|
+
<description>Caps the Stack wrapper inline size. Use for a short dash in a horizontal row.</description>
|
|
35
|
+
</prop>
|
|
33
36
|
<prop name="border-style" kind="css">
|
|
34
37
|
<description>Separator line border style.</description>
|
|
35
38
|
</prop>
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
<do>Bookend action strips — Separator above/below a Button row inside Surface (editor footers)</do>
|
|
6
6
|
<do>Vertical gutters or toolbar splits — `orientation="vertical"` in a row Stack beside content or Button groups</do>
|
|
7
7
|
<do>Token thickness (`size`) and `variant` (e.g. dashed); space with Separator `hPadding`/`vPadding` or parent Stack gap — no custom border CSS</do>
|
|
8
|
+
<do>Short dash in a row — `maxWidth` token (Stack cap), not extra width CSS</do>
|
|
8
9
|
<dont>Using Select.Separator for general layout dividers — that part is for Select option lists only</dont>
|
|
9
10
|
<dont>Replacing Surface borders or card outlines with Separator — use Surface `border` props for container chrome</dont>
|
|
10
11
|
<dont>Inventing divider margin/gap CSS when parent Stack `rowGap` / `columnGap` and Separator padding props cover spacing</dont>
|
|
@@ -61,6 +61,15 @@
|
|
|
61
61
|
<notes>From `auth/login-form` acknowledged state. `render={<p />}` for block semantics; default body size/tone.</notes>
|
|
62
62
|
</example>
|
|
63
63
|
|
|
64
|
+
<example title="Prose link">
|
|
65
|
+
<tsx><![CDATA[
|
|
66
|
+
<Text render={<a href="#" />} size="xs">
|
|
67
|
+
Forgot password?
|
|
68
|
+
</Text>
|
|
69
|
+
]]></tsx>
|
|
70
|
+
<notes>Text-as-a keeps preflight link chrome (animated underline). Do not set `data-no-link-style` — that attr is for painted chrome links only.</notes>
|
|
71
|
+
</example>
|
|
72
|
+
|
|
64
73
|
<example title="Empty-state centered">
|
|
65
74
|
<tsx><![CDATA[
|
|
66
75
|
<Stack hAlign="center" rowGap="m">
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<item>Inventing CSS `letter-spacing` / `text-transform` / `width: 100%` when `tracking` / `transform` / parent Stack `fullWidth` cover the need</item>
|
|
13
13
|
</when_not_to_use>
|
|
14
14
|
<prop name="align" kind="react">
|
|
15
|
-
<description>Aligns text using logical alignment values.</description>
|
|
15
|
+
<description>Aligns text using logical alignment values. Omit so `text-align` inherits from the parent.</description>
|
|
16
16
|
</prop>
|
|
17
17
|
<prop name="balanced" kind="react">
|
|
18
18
|
<description>Enables balanced wrapping for block-like copy.</description>
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
<description>Sets inline padding using one token for both sides or a `[start, end]` tuple (`0` allowed). Prefer the tuple for one-sided inset — never `style`/`paddingInline*` CSS when this prop covers it.</description>
|
|
34
34
|
</prop>
|
|
35
35
|
<prop name="lineHeight" kind="react">
|
|
36
|
-
<description>Controls line height through foundation leading tokens.</description>
|
|
36
|
+
<description>Controls line height through foundation leading tokens. Root Text without lineHeight uses leading `m`; omit on nested Text so line-height inherits the outer Text.</description>
|
|
37
37
|
</prop>
|
|
38
38
|
<prop name="maxWidth" kind="react">
|
|
39
39
|
<description>Constrains the maximum inline size of the rendered text block.</description>
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
<description>Enables text selection on the rendered copy.</description>
|
|
52
52
|
</prop>
|
|
53
53
|
<prop name="size" kind="react">
|
|
54
|
-
<description>Selects a semantic body typography size from the active theme scale (`4xl` \| `3xl` \| `2xl` \| `xl` \| `l` \| `m` \| `s` \| `xs`).
|
|
54
|
+
<description>Selects a semantic body typography size from the active theme scale (`4xl` \| `3xl` \| `2xl` \| `xl` \| `l` \| `m` \| `s` \| `xs`). Root Text without size locks at body `m`; omit size on nested Text so font-size inherits the outer Text. Fluid clamp (prev step→token) applies when `fluid` is true and --effect-fluid-typography is empty. Theme effect initial still locks all Text. size xs is always fixed (min=max).</description>
|
|
55
55
|
</prop>
|
|
56
56
|
<prop name="tone" kind="react">
|
|
57
57
|
<description>Sets the semantic text color role when no literal `color` override is used. `default` inherits; `primary` → `--global-primary`; `muted` → `--global-muted`; `interactive` → `--global-interactive-text`; `positive` / `informative` / `danger` / `warning` → `--highlight-green` / `--highlight-blue` / `--highlight-red` / `--highlight-yellow`.</description>
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
<description>Controls white-space preservation and wrapping behavior.</description>
|
|
79
79
|
</prop>
|
|
80
80
|
<prop name="align" kind="css">
|
|
81
|
-
<description>Text alignment on the root
|
|
81
|
+
<description>Text alignment on the root when the `align` prop is set; omitted inherits parent `text-align`.</description>
|
|
82
82
|
</prop>
|
|
83
83
|
<prop name="font-family" kind="css">
|
|
84
84
|
<description>Font family; family prop presets via data attributes.</description>
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
<description>Optical size axis on the root (variable fonts).</description>
|
|
88
88
|
</prop>
|
|
89
89
|
<prop name="font-size" kind="css">
|
|
90
|
-
<description>Body font size; size prop presets via data attributes.
|
|
90
|
+
<description>Body font size; size prop presets via data attributes. Root without size uses body `m`; nested Text without `data-text-size` inherits the outer Text font-size. Clamp (prev step→token) applies only when --effect-fluid-typography is on and `fluid` is true (Text defaults fluid false).</description>
|
|
91
91
|
</prop>
|
|
92
92
|
<prop name="font-weight" kind="css">
|
|
93
93
|
<description>Font weight on the root; keyword presets or numeric via weight prop.</description>
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
<description>Font width percentage on the root (font-stretch + wdth).</description>
|
|
97
97
|
</prop>
|
|
98
98
|
<prop name="line-height" kind="css">
|
|
99
|
-
<description>Line height; lineHeight prop presets via data attributes.</description>
|
|
99
|
+
<description>Line height; lineHeight prop presets via data attributes. Nested Text without `data-text-line-height` inherits the outer Text line-height.</description>
|
|
100
100
|
</prop>
|
|
101
101
|
<prop name="letter-spacing" kind="css">
|
|
102
102
|
<description>Letter spacing on the root. Prefer the `tracking` React prop; set this hook only when theming beyond the prop.</description>
|
|
@@ -8,7 +8,10 @@
|
|
|
8
8
|
<do>Hero / status motion: nest Typewriter inside Text when body tone/size should drive the typed line</do>
|
|
9
9
|
<do>Ellipsis: ClampText `render={<Text … />}` — FitText when copy must scale to fill width instead of truncate</do>
|
|
10
10
|
<do>Letter-spacing via `tracking`; text-transform via `transform`; width via `maxWidth` or parent Stack `fullWidth`</do>
|
|
11
|
+
<do>Omit `align` so copy inherits parent `text-align`; pass `align` only to override</do>
|
|
12
|
+
<do>Inline prose link: `Text render={<a href=… />}` — keeps preflight link chrome (no `data-no-link-style`)</do>
|
|
11
13
|
<dont>Using Text for headings — use Title (`render` for h1–h6)</dont>
|
|
14
|
+
<dont>Putting `data-no-link-style` on Text-as-a when the default underline hover is wanted</dont>
|
|
12
15
|
<dont>Inventing CSS `letter-spacing` / `text-transform` / `width: 100%` / `paddingBlock*` / `paddingInline*` when `tracking` / `transform` / Stack `fullWidth` / `hPadding`/`vPadding` tuples cover it</dont>
|
|
13
16
|
<dont>Setting body color with raw `--global-*` when `tone` covers the role</dont>
|
|
14
17
|
</usage>
|
|
@@ -5,14 +5,19 @@
|
|
|
5
5
|
<item>Start or end addon slots inside the shared control group</item>
|
|
6
6
|
<item>Label, description, and error copy with validation states</item>
|
|
7
7
|
<item>Several related Textfields grouped under one section legend as Fieldset children (e.g. billing details)</item>
|
|
8
|
+
<item>Control chrome inside another Field (`controlOnly`) — native `size` / `fitContent` still apply</item>
|
|
8
9
|
</when_to_use>
|
|
9
10
|
<when_not_to_use>
|
|
10
11
|
<item>Multi-line entry — use Textarea</item>
|
|
11
|
-
<item>Custom size or variant props — fixed medium treatment</item>
|
|
12
|
+
<item>Custom visual size or variant props — fixed medium treatment (native HTML `size` is allowed)</item>
|
|
12
13
|
<item>Wrapping a lone Textfield in Fieldset when its own label is sufficient — Fieldset is for multi-field sections or shared legends</item>
|
|
13
14
|
<item>Using Fieldset instead of the Textfield label for a single control</item>
|
|
14
15
|
<item>Inventing CSS `width: 100%` / `w-full` when the `fullWidth` prop covers it</item>
|
|
16
|
+
<item>`controlOnly` as a standalone labeled field — omit it when you need Field chrome</item>
|
|
15
17
|
</when_not_to_use>
|
|
18
|
+
<prop name="controlOnly" kind="react">
|
|
19
|
+
<description>When `true`, skip Field.Root / label / helper. Control group + input only. Use inside another Field (OTP slots). Native `size` and `fitContent` still apply. `label`, `description`, and `error` are ignored.</description>
|
|
20
|
+
</prop>
|
|
16
21
|
<prop name="description" kind="react">
|
|
17
22
|
<description>Helper copy rendered with `Field.Description` and `Text` while the field is valid.</description>
|
|
18
23
|
</prop>
|
|
@@ -7,9 +7,10 @@
|
|
|
7
7
|
<do>Span the form column with Textfield `fullWidth` — open props before inventing width CSS</do>
|
|
8
8
|
<do>`startAddon` / `endAddon` for prefix text, icons, or actions inside the control group — IconButton/Button addons use `size="s"` and `type="button"`</do>
|
|
9
9
|
<do>Label, description, and error copy with validation states</do>
|
|
10
|
+
<do>Compose the control inside another Field with `controlOnly` — native `size` / `fitContent` still apply; skip a second Field.Root</do>
|
|
10
11
|
<dont>Multi-line entry — use Textarea</dont>
|
|
11
12
|
<dont>Inventing `width: 100%` / `w-full` CSS on the Textfield root when `fullWidth` covers it</dont>
|
|
12
|
-
<dont>Passing
|
|
13
|
+
<dont>Passing visual size or variant props — chrome is fixed medium. Native HTML `size` on the input is allowed</dont>
|
|
13
14
|
<dont>Expecting a focus ring when focus is only on addon controls</dont>
|
|
14
15
|
<dont>Wrapping a lone Textfield in Fieldset when its own label is enough</dont>
|
|
15
16
|
</usage>
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<item>Inventing CSS `letter-spacing` / `text-transform` / `width: 100%` when `tracking` / `transform` / parent Stack `fullWidth` cover the need</item>
|
|
14
14
|
</when_not_to_use>
|
|
15
15
|
<prop name="align" kind="react">
|
|
16
|
-
<description>Aligns text using logical alignment values.</description>
|
|
16
|
+
<description>Aligns text using logical alignment values. Omit so `text-align` inherits from the parent.</description>
|
|
17
17
|
</prop>
|
|
18
18
|
<prop name="balanced" kind="react">
|
|
19
19
|
<description>Enables balanced wrapping for block-like titles.</description>
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
<description>Controls white-space preservation and wrapping behavior.</description>
|
|
74
74
|
</prop>
|
|
75
75
|
<prop name="align" kind="css">
|
|
76
|
-
<description>Title alignment on the root
|
|
76
|
+
<description>Title alignment on the root when the `align` prop is set; omitted inherits parent `text-align`.</description>
|
|
77
77
|
</prop>
|
|
78
78
|
<prop name="font-family" kind="css">
|
|
79
79
|
<description>Heading font family on the root.</description>
|
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
<do>Truncation: ClampText `render={<Title size=… render={<h* />} />}` — FitText wraps Title when short headlines must fill a constrained width</do>
|
|
8
8
|
<do>Fluid clamp across presets (`fluid` / theme `--effect-fluid-typography`); pass `fluid={false}` inside chrome or dense UI</do>
|
|
9
9
|
<do>Letter-spacing via `tracking`; text-transform via `transform`; width via `maxWidth` or parent Stack `fullWidth`</do>
|
|
10
|
+
<do>Omit `align` so the heading inherits parent `text-align`; pass `align` only to override</do>
|
|
11
|
+
<do>Title-as-prose-link (`render={<a />}`) keeps preflight link chrome — omit `data-no-link-style`</do>
|
|
10
12
|
<dont>Assuming `size` changes the HTML tag — choose `render` explicitly</dont>
|
|
11
13
|
<dont>Using Title for long body paragraphs — use Text</dont>
|
|
12
14
|
<dont>Inventing CSS `letter-spacing` / `text-transform` / `width: 100%` / `paddingBlock*` / `paddingInline*` when props / Stack / `hPadding`/`vPadding` tuples cover it</dont>
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
<usage surface="typewriter">
|
|
3
3
|
<do>Nest inside Title or Text so size/tone/heading `render` live on the parent — Typewriter stays decorative typed copy</do>
|
|
4
4
|
<do>Hero / marketing phrase cycles via `texts` + `preserveSpace` so layout holds through type/delete (see auth Title compose)</do>
|
|
5
|
-
<do>Wrapped `preserveSpace` copy: keep phrase lengths similar so reserved height stays honest across the cycle</do>
|
|
6
5
|
<do>Caret via `caret` / `caretColor`; timing via `speed` / `deleteSpeed` / `pause` / `delay` / `loop`</do>
|
|
7
6
|
<do>Loading shimmer on static copy is Shimmer inside Text/Title — Typewriter when progressive letter reveal is the intent</do>
|
|
8
7
|
<dont>Using Typewriter as the only source of critical status without a labeled surrounding region</dont>
|
|
@@ -19,14 +19,14 @@
|
|
|
19
19
|
</attr>
|
|
20
20
|
<attr name="data-no-link-style">
|
|
21
21
|
<presence>boolean attribute on anchor elements</presence>
|
|
22
|
-
<effect>Excludes the anchor from preflight default link styling (interactive color,
|
|
22
|
+
<effect>Excludes the anchor from all preflight default link styling (interactive color, text-decoration reset, animated underline on hover/focus). Every a:any-link without this attribute gets that chrome — class presence alone does not opt out.</effect>
|
|
23
23
|
<values>
|
|
24
24
|
<value>(boolean presence)</value>
|
|
25
25
|
</values>
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
<when>Component-owned or custom link chrome (ButtonLink, Chip-as-link, Menu.LinkItem, Surface-as-link, app anchors with their own paint)</when>
|
|
27
|
+
<when>Any anchor whose background must not receive the preflight underline gradient</when>
|
|
28
|
+
<when_not>Standard inline prose links (bare a, Text/Title render as a) that should keep preflight link styling</when_not>
|
|
29
|
+
<gotcha>A class on the anchor no longer suppresses link styles — only data-no-link-style does. Chrome components set it; prose Text/Title-as-a keep the underline with no extra markup.</gotcha>
|
|
30
30
|
</attr>
|
|
31
31
|
<attr name="data-elevation">
|
|
32
32
|
<presence>value required</presence>
|
|
@@ -51,8 +51,8 @@
|
|
|
51
51
|
<module id="typography">
|
|
52
52
|
<purpose>Semantic HTML element typography defaults and link chrome opt-out.</purpose>
|
|
53
53
|
<provides>element type defaults; data-no-link-style</provides>
|
|
54
|
-
<use>
|
|
55
|
-
<do_not>
|
|
54
|
+
<use>Every a:any-link gets preflight link chrome (interactive color + animated underline) unless data-no-link-style is set. Prose links — including Text/Title render as a — keep it. Chrome components set the attr (attributes.xml).</use>
|
|
55
|
+
<do_not>Rely on class presence to suppress link styles — use data-no-link-style only.</do_not>
|
|
56
56
|
</module>
|
|
57
57
|
<module id="vibrancy">
|
|
58
58
|
<purpose>Theme-gated backdrop-filter glass on opt-in hosts.</purpose>
|
package/dist/specs/index.xml
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<index package="@viraui/react" version="2026.
|
|
2
|
+
<index package="@viraui/react" version="2026.7.0-next.0" generated="2026-10-06T15:23:28.840Z">
|
|
3
3
|
<categories>
|
|
4
4
|
<category id="layout" />
|
|
5
5
|
<category id="action" />
|
|
@@ -251,6 +251,16 @@
|
|
|
251
251
|
<unit kind="patterns" href="components/meter/patterns.xml" />
|
|
252
252
|
</units>
|
|
253
253
|
</entry>
|
|
254
|
+
<entry id="otp-field" category="form" title="OTPField">
|
|
255
|
+
<summary>Field-wrapped one-time code slots. Default slots compose Textfield controlOnly; one label/helper on Root.</summary>
|
|
256
|
+
<units>
|
|
257
|
+
<unit kind="meta" href="components/otp-field/meta.xml" />
|
|
258
|
+
<unit kind="a11y" href="components/otp-field/a11y.xml" />
|
|
259
|
+
<unit kind="props" href="components/otp-field/props.xml" />
|
|
260
|
+
<unit kind="usage" href="components/otp-field/usage.xml" />
|
|
261
|
+
<unit kind="patterns" href="components/otp-field/patterns.xml" />
|
|
262
|
+
</units>
|
|
263
|
+
</entry>
|
|
254
264
|
<entry id="popover" category="overlay" title="Popover">
|
|
255
265
|
<summary>Compound popover built on Base UI Popover with `Popover.Trigger`, `Popover.Sheet`, `Popover.Close`, `Popover.Title`, `Popover.Description`, and `Popover.createHandle` for detached and multiple trigge…</summary>
|
|
256
266
|
<units>
|
|
@@ -271,6 +281,16 @@
|
|
|
271
281
|
<unit kind="patterns" href="components/progressive-blur/patterns.xml" />
|
|
272
282
|
</units>
|
|
273
283
|
</entry>
|
|
284
|
+
<entry id="prose" category="typography" title="Prose">
|
|
285
|
+
<summary>Grouping region that applies heading-aware em rhythm to direct document blocks.</summary>
|
|
286
|
+
<units>
|
|
287
|
+
<unit kind="meta" href="components/prose/meta.xml" />
|
|
288
|
+
<unit kind="a11y" href="components/prose/a11y.xml" />
|
|
289
|
+
<unit kind="props" href="components/prose/props.xml" />
|
|
290
|
+
<unit kind="usage" href="components/prose/usage.xml" />
|
|
291
|
+
<unit kind="patterns" href="components/prose/patterns.xml" />
|
|
292
|
+
</units>
|
|
293
|
+
</entry>
|
|
274
294
|
<entry id="radio" category="form" title="Radio">
|
|
275
295
|
<summary>Mutually exclusive choice within a RadioGroup, with optional per-option label and helper text.</summary>
|
|
276
296
|
<units>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@viraui/react",
|
|
3
|
-
"version": "2026.
|
|
3
|
+
"version": "2026.7.0-next.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"files": [
|
|
6
6
|
"dist"
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@base-ui/react": ">=1.8.0",
|
|
31
|
-
"@viraui/foundation": "2026.
|
|
31
|
+
"@viraui/foundation": "2026.7.0-next.0",
|
|
32
32
|
"@viraui/icons": "2026.1.0",
|
|
33
33
|
"@viraui/postcss-config": "2026.0.0",
|
|
34
34
|
"@viraui/tsconfig": "2026.0.0",
|