@viraui/react 1.0.12 → 1.0.14

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 (144) hide show
  1. package/dist/catalog.json +16 -4
  2. package/dist/components/accordion/accordion.css +1 -1
  3. package/dist/components/accordion/accordion.guide.json +26 -0
  4. package/dist/components/annotate/annotate.css +1 -1
  5. package/dist/components/annotate/annotate.guide.json +46 -57
  6. package/dist/components/avatar/avatar.css +1 -1
  7. package/dist/components/avatar/avatar.guide.json +22 -10
  8. package/dist/components/avatar/avatar.js +0 -2
  9. package/dist/components/avatar-group/avatar-group.css +1 -7
  10. package/dist/components/avatar-group/avatar-group.guide.json +23 -16
  11. package/dist/components/badge/badge.css +1 -0
  12. package/dist/components/badge/badge.d.ts +39 -0
  13. package/dist/components/badge/badge.guide.json +59 -0
  14. package/dist/components/badge/badge.js +50 -0
  15. package/dist/components/badge/badge.module.js +11 -0
  16. package/dist/components/badge/index.d.ts +2 -0
  17. package/dist/components/basic-input/basic-input.css +1 -1
  18. package/dist/components/basic-input/field-label.css +1 -1
  19. package/dist/components/basic-input/field-label.js +2 -0
  20. package/dist/components/bleed/bleed.guide.json +9 -6
  21. package/dist/components/button/button-chrome.d.ts +3 -1
  22. package/dist/components/button/button-chrome.js +3 -2
  23. package/dist/components/button/button-link.guide.json +55 -1
  24. package/dist/components/button/button-link.js +2 -1
  25. package/dist/components/button/button.css +1 -1
  26. package/dist/components/button/button.guide.json +27 -7
  27. package/dist/components/button/button.js +2 -1
  28. package/dist/components/checkbox/checkbox.css +1 -1
  29. package/dist/components/checkbox/checkbox.guide.json +40 -1
  30. package/dist/components/checkbox/checkbox.js +2 -2
  31. package/dist/components/checkbox/checkbox.module.js +1 -3
  32. package/dist/components/chip/chip.css +1 -1
  33. package/dist/components/chip/chip.guide.json +23 -6
  34. package/dist/components/chip/chip.js +2 -1
  35. package/dist/components/clamp-text/clamp-text.css +1 -1
  36. package/dist/components/clamp-text/clamp-text.guide.json +9 -0
  37. package/dist/components/clamp-text/clamp-text.js +1 -1
  38. package/dist/components/dialog/dialog-sheet.js +1 -1
  39. package/dist/components/dialog/dialog.css +1 -1
  40. package/dist/components/dialog/dialog.guide.json +24 -0
  41. package/dist/components/dialog/dialog.module.js +1 -3
  42. package/dist/components/elevator/elevator.guide.json +23 -1
  43. package/dist/components/fieldset/fieldset.guide.json +16 -3
  44. package/dist/components/fieldset/fieldset.js +6 -6
  45. package/dist/components/fit-text/fit-text.css +1 -1
  46. package/dist/components/fit-text/fit-text.guide.json +2 -4
  47. package/dist/components/icon-button/icon-button-link.guide.json +52 -1
  48. package/dist/components/icon-button/icon-button-link.js +2 -2
  49. package/dist/components/icon-button/icon-button.d.ts +1 -1
  50. package/dist/components/icon-button/icon-button.guide.json +48 -3
  51. package/dist/components/icon-button/icon-button.js +2 -2
  52. package/dist/components/index.d.ts +2 -0
  53. package/dist/components/linear-progress/linear-progress.guide.json +16 -5
  54. package/dist/components/linear-progress/linear-progress.js +0 -1
  55. package/dist/components/masonry/masonry.d.ts +1 -1
  56. package/dist/components/masonry/masonry.guide.json +11 -9
  57. package/dist/components/masonry/masonry.js +1 -1
  58. package/dist/components/menu/index.d.ts +11 -0
  59. package/dist/components/menu/menu-checkbox-item.d.ts +42 -0
  60. package/dist/components/menu/menu-checkbox-item.js +28 -0
  61. package/dist/components/menu/menu-group.d.ts +12 -0
  62. package/dist/components/menu/menu-group.js +36 -0
  63. package/dist/components/menu/menu-indicator-slot.d.ts +15 -0
  64. package/dist/components/menu/menu-indicator-slot.js +52 -0
  65. package/dist/components/menu/menu-item-row.d.ts +18 -0
  66. package/dist/components/menu/menu-item-row.js +47 -0
  67. package/dist/components/menu/menu-item.d.ts +36 -0
  68. package/dist/components/menu/menu-item.js +23 -0
  69. package/dist/components/menu/menu-link-item.d.ts +36 -0
  70. package/dist/components/menu/menu-link-item.js +26 -0
  71. package/dist/components/menu/menu-popup.d.ts +17 -0
  72. package/dist/components/menu/menu-popup.js +28 -0
  73. package/dist/components/menu/menu-radio-group.d.ts +16 -0
  74. package/dist/components/menu/menu-radio-group.js +36 -0
  75. package/dist/components/menu/menu-radio-item.d.ts +42 -0
  76. package/dist/components/menu/menu-radio-item.js +28 -0
  77. package/dist/components/menu/menu-separator.d.ts +9 -0
  78. package/dist/components/menu/menu-separator.js +15 -0
  79. package/dist/components/menu/menu-submenu-trigger.d.ts +29 -0
  80. package/dist/components/menu/menu-submenu-trigger.js +26 -0
  81. package/dist/components/menu/menu.css +1 -0
  82. package/dist/components/menu/menu.d.ts +58 -0
  83. package/dist/components/menu/menu.guide.json +101 -0
  84. package/dist/components/menu/menu.js +36 -0
  85. package/dist/components/menu/menu.module.js +13 -0
  86. package/dist/components/meter/meter.guide.json +15 -4
  87. package/dist/components/meter/meter.js +0 -1
  88. package/dist/components/popover/popover-sheet.js +1 -1
  89. package/dist/components/popover/popover.guide.json +25 -1
  90. package/dist/components/progressive-blur/progressive-blur.css +1 -1
  91. package/dist/components/progressive-blur/progressive-blur.guide.json +14 -4
  92. package/dist/components/progressive-blur/progressive-blur.js +2 -2
  93. package/dist/components/radio/radio.css +1 -1
  94. package/dist/components/radio/radio.guide.json +34 -1
  95. package/dist/components/radio/radio.js +28 -31
  96. package/dist/components/select/select-group.js +1 -1
  97. package/dist/components/select/select-option.d.ts +1 -1
  98. package/dist/components/select/select-option.js +2 -5
  99. package/dist/components/select/select-separator.js +7 -4
  100. package/dist/components/select/select.css +1 -1
  101. package/dist/components/select/select.guide.json +49 -8
  102. package/dist/components/select/select.js +1 -1
  103. package/dist/components/select/select.module.js +1 -5
  104. package/dist/components/separator/separator.guide.json +28 -1
  105. package/dist/components/shimmer/shimmer.css +1 -1
  106. package/dist/components/shimmer/shimmer.guide.json +19 -16
  107. package/dist/components/skeleton/skeleton.guide.json +24 -31
  108. package/dist/components/slider/slider.guide.json +27 -7
  109. package/dist/components/spinner/spinner.guide.json +5 -4
  110. package/dist/components/stack/stack.guide.json +49 -47
  111. package/dist/components/static-noise/static-noise.guide.json +18 -2
  112. package/dist/components/surface/surface.css +1 -1
  113. package/dist/components/surface/surface.guide.json +41 -48
  114. package/dist/components/switch/switch.css +1 -1
  115. package/dist/components/switch/switch.guide.json +25 -10
  116. package/dist/components/tabs/tabs.guide.json +11 -0
  117. package/dist/components/text/text.css +1 -1
  118. package/dist/components/text/text.guide.json +67 -76
  119. package/dist/components/textarea/textarea.css +1 -1
  120. package/dist/components/textarea/textarea.d.ts +4 -3
  121. package/dist/components/textarea/textarea.guide.json +19 -7
  122. package/dist/components/textfield/textfield.css +1 -1
  123. package/dist/components/textfield/textfield.guide.json +22 -7
  124. package/dist/components/title/title.css +1 -1
  125. package/dist/components/title/title.guide.json +62 -72
  126. package/dist/components/title/title.js +0 -1
  127. package/dist/components/toast/toast.css +1 -1
  128. package/dist/components/toast/toast.guide.json +32 -1
  129. package/dist/components/toggle-button/toggle-button.css +1 -0
  130. package/dist/components/toggle-button/toggle-button.d.ts +7 -0
  131. package/dist/components/toggle-button/toggle-button.guide.json +29 -2
  132. package/dist/components/toggle-button/toggle-button.js +18 -3
  133. package/dist/components/toggle-button/toggle-button.module.js +9 -0
  134. package/dist/components/toggle-group/toggle-group.d.ts +2 -1
  135. package/dist/components/toggle-group/toggle-group.guide.json +2 -3
  136. package/dist/components/tooltip/tooltip.guide.json +8 -1
  137. package/dist/components/typewriter/typewriter.css +1 -1
  138. package/dist/components/typewriter/typewriter.guide.json +27 -5
  139. package/dist/index.js +13 -2
  140. package/dist/internal/chrome-icons/chrome-icons.d.ts +2 -0
  141. package/dist/internal/chrome-icons/chrome-icons.js +7 -1
  142. package/dist/preflight-surface.json +1 -1
  143. package/dist/preflight.css +1 -1
  144. package/package.json +2 -2
@@ -23,19 +23,32 @@
23
23
  "related": ["Textfield", "Stack", "Text"],
24
24
  "properties": {
25
25
  "react": {
26
+ "description": {
27
+ "description": "Helper copy rendered with `Field.Description` and `Text` while the field is valid."
28
+ },
29
+ "error": {
30
+ "description": "Error copy rendered with `Field.Error` and `Text` in the same slot as `description`. Replaces description while the field is invalid."
31
+ },
32
+ "hPadding": {
33
+ "description": "Sets inline padding using one token for both sides or a `[start, end]` tuple."
34
+ },
35
+ "label": {
36
+ "description": "Visible label rendered with shared internal `FieldLabel`."
37
+ },
26
38
  "size": {
27
39
  "description": "Controls the visual switch size.",
28
40
  "refCss": "track-block-size"
41
+ },
42
+ "vPadding": {
43
+ "description": "Sets block padding using one token for both sides or a `[start, end]` tuple."
29
44
  }
30
45
  },
31
46
  "css": {
32
- "track-block-size": {
33
- "description": "Switch track block size; size presets adjust track and thumb.",
34
- "refReact": "size"
47
+ "thumb-background": {
48
+ "description": "Switch thumb background color."
35
49
  },
36
- "track-radius": {
37
- "description": "Switch track corner radius.",
38
- "refReact": "size"
50
+ "thumb-inset": {
51
+ "description": "Inset between thumb and track edges."
39
52
  },
40
53
  "thumb-size": {
41
54
  "description": "Switch thumb size derived from track block size.",
@@ -44,11 +57,13 @@
44
57
  "track-background": {
45
58
  "description": "Switch track background color."
46
59
  },
47
- "thumb-background": {
48
- "description": "Switch thumb background color."
60
+ "track-block-size": {
61
+ "description": "Switch track block size; size presets adjust track and thumb.",
62
+ "refReact": "size"
49
63
  },
50
- "thumb-inset": {
51
- "description": "Inset between thumb and track edges."
64
+ "track-radius": {
65
+ "description": "Switch track corner radius.",
66
+ "refReact": "size"
52
67
  }
53
68
  }
54
69
  }
@@ -22,6 +22,17 @@
22
22
  ],
23
23
  "related": ["Surface", "Stack", "Text"],
24
24
  "properties": {
25
+ "react": {
26
+ "listAlignment": {
27
+ "description": "Horizontal alignment of tab list within root Stack."
28
+ },
29
+ "Tab.addon": {
30
+ "description": "Decorative addon rendered alongside the tab label."
31
+ },
32
+ "Tab.addonPosition": {
33
+ "description": "Controls whether the addon appears before or after the label."
34
+ }
35
+ },
25
36
  "css": {
26
37
  "translate-amount": {
27
38
  "description": "Panel entry translate distance for tab transitions."
@@ -1 +1 @@
1
- @layer viraui.preflight, viraui.components, viraui.overrides;@layer viraui.components{@property --vui-text-align{syntax:"*";inherits:false;initial-value:start}@property --vui-text-max-width{syntax:"*";inherits:false;initial-value:none}@property --vui-text-literal-color{syntax:"<color>";inherits:false;initial-value:#0000}@property --vui-text-white-space{syntax:"*";inherits:false;initial-value:normal}@property --vui-text-font-weight{syntax:"<number>";inherits:false;initial-value:400}@property --vui-text-font-width{syntax:"<number>";inherits:false;initial-value:100}@property --vui-text-font-opsz{syntax:"<number>";inherits:false;initial-value:16}@property --vui-text-trim{syntax:"*";inherits:false;initial-value:none}@property --vui-text-trim-type{syntax:"*";inherits:false;initial-value:none}@property --vui-text-padding-inline-start{syntax:"<length>";inherits:false;initial-value:0}@property --vui-text-padding-inline-end{syntax:"<length>";inherits:false;initial-value:0}@property --vui-text-padding-block-start{syntax:"<length>";inherits:false;initial-value:0}@property --vui-text-padding-block-end{syntax:"<length>";inherits:false;initial-value:0}@property --vui-text-font-size{syntax:"<length>";inherits:false;initial-value:1rem}@property --vui-text-font-family{syntax:"*";inherits:false;initial-value:sans-serif}@property --vui-text-line-height{syntax:"normal | <number> | <length-percentage>";inherits:false;initial-value:normal}.viraui__text-module__Text_bS8kv{--text-medium:clamp(var(--font-scale-body-medium),calc(var(--font-scale-body-medium) + var(--font-scale-body-x-small) / 12 + 0.24cqi),calc(var(--font-scale-body-medium) + var(--font-scale-body-x-small) / 3));--vui-text-font-family:var(--font-family-body);--vui-text-font-size:clamp(var(--font-scale-body-small),var(--text-medium),var(--font-scale-body-medium));--vui-text-line-height:var(--font-leading-standard);margin:0;min-inline-size:0;max-inline-size:var(--vui-text-max-width);font-family:var(--vui-text-font-family);font-size:var(--vui-text-font-size);line-height:var(--vui-text-line-height);text-align:var(--vui-text-align);white-space:var(--vui-text-white-space);word-break:break-word;font-weight:var(--vui-text-font-weight);font-stretch:calc(var(--vui-text-font-width) * 1%);font-optical-sizing:auto;font-variation-settings:"wght" var(--vui-text-font-weight),"wdth" var(--vui-text-font-width),"opsz" var(--vui-text-font-opsz);text-box:var(--vui-text-trim) var(--vui-text-trim-type);&[data-text-balanced=true]{text-wrap:balance}&[data-text-selection=false]{-webkit-user-select:none;user-select:none}&[data-text-has-padding=true]{padding:var(--vui-text-padding-block-start) var(--vui-text-padding-inline-end) var(--vui-text-padding-block-end) var(--vui-text-padding-inline-start)}&[data-text-family=mono]{--vui-text-font-family:var(--font-family-mono)}&[data-text-size=x-large]{--vui-text-font-size:clamp(var(--font-scale-body-large),calc(var(--text-medium) * pow(var(--font-heading-typescale), 2)),var(--font-scale-body-x-large))}&[data-text-size=large]{--vui-text-font-size:clamp(var(--font-scale-body-medium),calc(var(--text-medium) * pow(var(--font-heading-typescale), 1)),var(--font-scale-body-large))}&[data-text-size=medium]{--vui-text-font-size:clamp(var(--font-scale-body-small),var(--text-medium),var(--font-scale-body-medium))}&[data-text-size=small]{--vui-text-font-size:clamp(var(--font-scale-body-x-small),calc(var(--text-medium) * pow(var(--font-heading-typescale), -0.1)),var(--font-scale-body-small))}&[data-text-size=x-small]{--vui-text-font-size:var(--font-scale-body-x-small)}&[data-text-weight=light]{--vui-text-font-weight:200}&[data-text-weight=semibold]{--vui-text-font-weight:600}&[data-text-weight=bold]{--vui-text-font-weight:800}&[data-text-tone=muted]{color:var(--global-muted)}&[data-text-tone=interactive]{color:var(--global-interactive-text)}&[data-text-tone=positive]{color:var(--highlight-green)}&[data-text-tone=informative]{color:var(--highlight-blue)}&[data-text-tone=danger]{color:var(--highlight-red)}&[data-text-tone=warning]{color:var(--highlight-yellow)}&[data-text-has-literal-color=true]{color:var(--vui-text-literal-color)}&[data-text-line-height=none]{--vui-text-line-height:0}&[data-text-line-height=x-small]{--vui-text-line-height:var(--font-leading-x-small)}&[data-text-line-height=small]{--vui-text-line-height:var(--font-leading-small)}&[data-text-line-height=large]{--vui-text-line-height:var(--font-leading-large)}}}
1
+ @layer viraui.preflight, viraui.components, viraui.overrides;@layer viraui.components{@property --vui-text-align{syntax:"*";inherits:false;initial-value:start}@property --vui-text-max-width{syntax:"*";inherits:false;initial-value:none}@property --vui-text-literal-color{syntax:"<color>";inherits:false;initial-value:#0000}@property --vui-text-white-space{syntax:"*";inherits:false;initial-value:normal}@property --vui-text-font-weight{syntax:"<number>";inherits:false;initial-value:400}@property --vui-text-font-width{syntax:"<number>";inherits:false;initial-value:100}@property --vui-text-font-opsz{syntax:"<number>";inherits:false;initial-value:16}@property --vui-text-trim{syntax:"*";inherits:false;initial-value:trim-both}@property --vui-text-trim-type{syntax:"*";inherits:false;initial-value:cap alphabetic}@property --vui-text-padding-inline-start{syntax:"<length>";inherits:false;initial-value:0}@property --vui-text-padding-inline-end{syntax:"<length>";inherits:false;initial-value:0}@property --vui-text-padding-block-start{syntax:"<length>";inherits:false;initial-value:0}@property --vui-text-padding-block-end{syntax:"<length>";inherits:false;initial-value:0}@property --vui-text-font-size{syntax:"<length>";inherits:false;initial-value:1rem}@property --vui-text-font-family{syntax:"*";inherits:false;initial-value:sans-serif}@property --vui-text-line-height{syntax:"normal | <number> | <length-percentage>";inherits:false;initial-value:normal}@property --__text-medium{syntax:"*";inherits:false;initial-value:0}.viraui__text-module__Text_bS8kv{--__text-medium:clamp(var(--font-scale-body-medium),calc(var(--font-scale-body-medium) + var(--font-scale-body-x-small) / 12 + 0.24cqi),calc(var(--font-scale-body-medium) + var(--font-scale-body-x-small) / 3));--vui-text-font-family:var(--font-family-body);--vui-text-font-size:clamp(var(--font-scale-body-small),var(--__text-medium),var(--font-scale-body-medium));--vui-text-line-height:var(--font-leading-standard);margin:0;min-inline-size:0;max-inline-size:var(--vui-text-max-width);font-family:var(--vui-text-font-family);font-size:var(--vui-text-font-size);line-height:var(--vui-text-line-height);text-align:var(--vui-text-align);white-space:var(--vui-text-white-space);word-break:break-word;font-weight:var(--vui-text-font-weight);font-stretch:calc(var(--vui-text-font-width) * 1%);font-optical-sizing:auto;font-variation-settings:"wght" var(--vui-text-font-weight),"wdth" var(--vui-text-font-width),"opsz" var(--vui-text-font-opsz);text-box:var(--vui-text-trim) var(--vui-text-trim-type);&[data-text-balanced=true]{text-wrap:balance}&[data-text-selection=false]{-webkit-user-select:none;user-select:none}&[data-text-has-padding=true]{padding:var(--vui-text-padding-block-start) var(--vui-text-padding-inline-end) var(--vui-text-padding-block-end) var(--vui-text-padding-inline-start)}&[data-text-family=mono]{--vui-text-font-family:var(--font-family-mono)}&[data-text-size=x-large]{--vui-text-font-size:clamp(var(--font-scale-body-large),calc(var(--__text-medium) * pow(var(--font-heading-typescale), 2)),var(--font-scale-body-x-large))}&[data-text-size=large]{--vui-text-font-size:clamp(var(--font-scale-body-medium),calc(var(--__text-medium) * pow(var(--font-heading-typescale), 1)),var(--font-scale-body-large))}&[data-text-size=small]{--vui-text-font-size:clamp(var(--font-scale-body-x-small),calc(var(--__text-medium) * pow(var(--font-heading-typescale), -0.1)),var(--font-scale-body-small))}&[data-text-size=x-small]{--vui-text-font-size:var(--font-scale-body-x-small)}&[data-text-weight=light]{--vui-text-font-weight:200}&[data-text-weight=semibold]{--vui-text-font-weight:600}&[data-text-weight=bold]{--vui-text-font-weight:800}&[data-text-tone=muted]{color:var(--global-muted)}&[data-text-tone=interactive]{color:var(--global-interactive-text)}&[data-text-tone=positive]{color:var(--highlight-green)}&[data-text-tone=informative]{color:var(--highlight-blue)}&[data-text-tone=danger]{color:var(--highlight-red)}&[data-text-tone=warning]{color:var(--highlight-yellow)}&[data-text-has-literal-color=true]{color:var(--vui-text-literal-color)}&[data-text-line-height=none]{--vui-text-line-height:0}&[data-text-line-height=x-small]{--vui-text-line-height:var(--font-leading-x-small)}&[data-text-line-height=small]{--vui-text-line-height:var(--font-leading-small)}&[data-text-line-height=large]{--vui-text-line-height:var(--font-leading-large)}}}
@@ -24,55 +24,60 @@
24
24
  "description": "Aligns text using logical alignment values.",
25
25
  "refCss": "align"
26
26
  },
27
- "maxWidth": {
28
- "description": "Constrains the maximum inline size of the rendered text block.",
29
- "refCss": "max-width"
27
+ "balanced": {
28
+ "description": "Enables balanced wrapping for block-like copy."
30
29
  },
31
30
  "color": {
32
- "description": "Applies a literal color escape hatch when semantic tone is not used.",
33
- "refCss": "literal-color"
34
- },
35
- "whiteSpace": {
36
- "description": "Controls white-space preservation and wrapping behavior.",
37
- "refCss": "white-space"
31
+ "description": "Applies a literal color escape hatch when semantic `tone` is not used."
38
32
  },
39
- "weight": {
40
- "description": "Numeric font weight; maps to font-weight and the wght variation axis.",
41
- "refCss": "font-weight"
33
+ "family": {
34
+ "description": "Selects the semantic font family for body copy and inline code-like text."
42
35
  },
43
36
  "fontWidth": {
44
- "description": "Font width as a percentage (100 = normal); maps to font-stretch and the wdth variation axis.",
45
- "refCss": "font-width"
37
+ "description": "Overrides font width as a percentage (100 = normal); maps to `font-stretch` and `wdth`."
38
+ },
39
+ "hPadding": {
40
+ "description": "Sets inline padding using one token for both sides or a `[start, end]` tuple."
41
+ },
42
+ "lineHeight": {
43
+ "description": "Controls line height through foundation leading tokens."
44
+ },
45
+ "maxWidth": {
46
+ "description": "Constrains the maximum inline size of the rendered text block."
46
47
  },
47
48
  "opticalSize": {
48
- "description": "Optical size axis override (variable fonts); static fonts keep font-optical-sizing: auto.",
49
- "refCss": "font-opsz"
49
+ "description": "Overrides the optical size (`opsz`) axis on variable fonts; static fonts keep `font-optical-sizing: auto`."
50
+ },
51
+ "ref": {
52
+ "description": "Ref forwarded to the rendered text root element."
53
+ },
54
+ "render": {
55
+ "description": "Replaces the default `span` root using Base UI render semantics."
56
+ },
57
+ "selection": {
58
+ "description": "Enables text selection on the rendered copy."
59
+ },
60
+ "size": {
61
+ "description": "Selects a semantic body typography size from the active theme scale."
62
+ },
63
+ "tone": {
64
+ "description": "Sets the semantic text color role when no literal `color` override is used."
50
65
  },
51
66
  "trim": {
52
- "description": "Trims text box whitespace at the chosen edge.",
67
+ "description": "Trims text box whitespace at the chosen edge when the browser supports `text-box`.",
53
68
  "refCss": "trim"
54
69
  },
55
70
  "trimType": {
56
- "description": "Selects the text-box trim basis when trim is active.",
57
- "refCss": "trim-type"
58
- },
59
- "hPadding": {
60
- "description": "Sets inline padding using one token or a [start, end] tuple."
71
+ "description": "Selects the `text-box` trim basis when `trim` is active."
61
72
  },
62
73
  "vPadding": {
63
- "description": "Sets block padding using one token or a [start, end] tuple."
64
- },
65
- "size": {
66
- "description": "Selects a semantic body typography size from the active theme scale.",
67
- "refCss": "font-size"
74
+ "description": "Sets block padding using one token for both sides or a `[start, end]` tuple."
68
75
  },
69
- "family": {
70
- "description": "Selects the semantic font family for body copy.",
71
- "refCss": "font-family"
76
+ "weight": {
77
+ "description": "Selects a semantic weight keyword or a numeric weight (`font-weight` + `wght` axis)."
72
78
  },
73
- "lineHeight": {
74
- "description": "Controls line height through foundation leading tokens.",
75
- "refCss": "line-height"
79
+ "whiteSpace": {
80
+ "description": "Controls white-space preservation and wrapping behavior."
76
81
  }
77
82
  },
78
83
  "css": {
@@ -80,65 +85,51 @@
80
85
  "description": "Text alignment on the root.",
81
86
  "refReact": "align"
82
87
  },
83
- "max-width": {
84
- "description": "Max inline size of the text root.",
85
- "refReact": "maxWidth"
88
+ "font-family": {
89
+ "description": "Font family; family prop presets via data attributes."
86
90
  },
87
- "literal-color": {
88
- "description": "Literal color override on the root.",
89
- "refReact": "color"
91
+ "font-opsz": {
92
+ "description": "Optical size axis on the root (variable fonts)."
90
93
  },
91
- "white-space": {
92
- "description": "White-space behavior on the root.",
93
- "refReact": "whiteSpace"
94
+ "font-size": {
95
+ "description": "Body font size; size prop presets via data attributes."
94
96
  },
95
97
  "font-weight": {
96
- "description": "Font weight on the root.",
97
- "refReact": "weight"
98
+ "description": "Font weight on the root; keyword presets or numeric via weight prop."
98
99
  },
99
100
  "font-width": {
100
- "description": "Font width percentage on the root (font-stretch + wdth).",
101
- "refReact": "fontWidth"
101
+ "description": "Font width percentage on the root (font-stretch + wdth)."
102
102
  },
103
- "font-opsz": {
104
- "description": "Optical size axis on the root (variable fonts).",
105
- "refReact": "opticalSize"
106
- },
107
- "trim": {
108
- "description": "Text-box trim mode on the root.",
109
- "refReact": "trim"
103
+ "line-height": {
104
+ "description": "Line height; lineHeight prop presets via data attributes."
110
105
  },
111
- "trim-type": {
112
- "description": "Text-box trim basis on the root.",
113
- "refReact": "trimType"
106
+ "literal-color": {
107
+ "description": "Literal color override on the root."
114
108
  },
115
- "padding-inline-start": {
116
- "description": "Inline-start padding when padding is enabled.",
117
- "refReact": "hPadding"
109
+ "max-width": {
110
+ "description": "Max inline size of the text root."
118
111
  },
119
- "padding-inline-end": {
120
- "description": "Inline-end padding when padding is enabled.",
121
- "refReact": "hPadding"
112
+ "padding-block-end": {
113
+ "description": "Block-end padding when padding is enabled."
122
114
  },
123
115
  "padding-block-start": {
124
- "description": "Block-start padding when padding is enabled.",
125
- "refReact": "vPadding"
116
+ "description": "Block-start padding when padding is enabled."
126
117
  },
127
- "padding-block-end": {
128
- "description": "Block-end padding when padding is enabled.",
129
- "refReact": "vPadding"
118
+ "padding-inline-end": {
119
+ "description": "Inline-end padding when padding is enabled."
130
120
  },
131
- "font-size": {
132
- "description": "Body font size; size prop presets via data attributes.",
133
- "refReact": "size"
121
+ "padding-inline-start": {
122
+ "description": "Inline-start padding when padding is enabled."
134
123
  },
135
- "font-family": {
136
- "description": "Font family; family prop presets via data attributes.",
137
- "refReact": "family"
124
+ "trim": {
125
+ "description": "Text-box trim mode on the root.",
126
+ "refReact": "trim"
138
127
  },
139
- "line-height": {
140
- "description": "Line height; lineHeight prop presets via data attributes.",
141
- "refReact": "lineHeight"
128
+ "trim-type": {
129
+ "description": "Text-box trim basis on the root."
130
+ },
131
+ "white-space": {
132
+ "description": "White-space behavior on the root."
142
133
  }
143
134
  }
144
135
  }
@@ -1 +1 @@
1
- @layer viraui.preflight, viraui.components, viraui.overrides;@layer viraui.components{@property --vui-textarea-min-block-size{syntax:"<length>";inherits:true;initial-value:0}@property --vui-textarea-padding-block{syntax:"<length>";inherits:true;initial-value:0}@property --vui-textarea-input-border-radius{syntax:"<length-percentage>";inherits:true;initial-value:0}.viraui__textarea-module__Textarea_mtOUG{--vui-textarea-min-block-size:calc(var(--space-x-large) * 2);--vui-textarea-padding-block:var(--space-small);--vui-textarea-input-border-radius:var(--radius-small);--vui-field-label-padding-inline:calc(var(--vui-textarea-input-border-radius) / 2);inline-size:100%;&:has([required]) .viraui__textarea-module__Label_5dOso:after{content:" *";color:var(--highlight-red)}}.viraui__textarea-module__Description_er3zI{padding-inline:calc(var(--vui-textarea-input-border-radius) / 2)}}@layer viraui.overrides{.viraui__textarea-module__CustomBasicInput_Ce7yA{--vui-basic-input-border-radius:var(--vui-textarea-input-border-radius);border:1px solid var(--global-contrast);min-block-size:var(--vui-textarea-min-block-size);padding-block:var(--vui-textarea-padding-block);line-height:1.4;resize:none;&[data-resize=vertical]{resize:vertical}&[data-resize=both]{resize:both}&[data-invalid]{border-color:var(--highlight-red)}&:disabled,&[data-disabled]{border-color:#0000}}}
1
+ @layer viraui.preflight, viraui.components, viraui.overrides;@layer viraui.components{@property --vui-textarea-min-block-size{syntax:"<length>";inherits:true;initial-value:0}@property --vui-textarea-padding-block{syntax:"<length>";inherits:true;initial-value:0}@property --vui-textarea-input-border-radius{syntax:"<length-percentage>";inherits:true;initial-value:0}.viraui__textarea-module__Textarea_mtOUG{--vui-textarea-min-block-size:calc(var(--space-x-large) * 2);--vui-textarea-padding-block:var(--space-small);--vui-textarea-input-border-radius:var(--radius-small);--vui-field-label-padding-inline:calc(var(--vui-textarea-input-border-radius) / 2);inline-size:100%;&:has([required]) .viraui__textarea-module__Label_5dOso:after{content:" *";color:var(--highlight-red)}}.viraui__textarea-module__Description_er3zI{padding-inline:var(--vui-field-label-padding-inline)}}@layer viraui.overrides{.viraui__textarea-module__CustomBasicInput_Ce7yA{--vui-basic-input-border-radius:var(--vui-textarea-input-border-radius);border:1px solid var(--global-contrast);min-block-size:var(--vui-textarea-min-block-size);padding-block:var(--vui-textarea-padding-block);line-height:1.4;resize:none;&[data-resize=vertical]{resize:vertical}&[data-resize=horizontal]{resize:horizontal}&[data-resize=both]{resize:both}&[data-resize=block]{resize:block}&[data-resize=inline]{resize:inline}&[data-invalid]{border-color:var(--highlight-red)}&:disabled,&[data-disabled]{border-color:#0000}}}
@@ -32,12 +32,13 @@ export type TextareaProps = React.ComponentPropsWithRef<'textarea'> & Omit<Field
32
32
  */
33
33
  error?: React.ReactNode;
34
34
  /**
35
- * Resize behavior for the control. Omitted disables resize; `"vertical"` allows vertical resize;
36
- * `"both"` allows horizontal and vertical resize.
35
+ * Native CSS `resize` for the control, serialized to `data-resize`. Omitted keeps resize disabled
36
+ * (`none`); accepts any valid `CSSProperties['resize']` value such as `"vertical"`, `"horizontal"`,
37
+ * or `"both"`.
37
38
  *
38
39
  * @default undefined (no resize)
39
40
  */
40
- resize?: 'vertical' | 'both';
41
+ resize?: React.CSSProperties['resize'];
41
42
  /**
42
43
  * When `true`, sets `field-sizing: content` so the control grows with its value.
43
44
  * Still respects `min-block-size` and `resize`. Omitted / `false` keeps the browser fixed default.
@@ -4,7 +4,7 @@
4
4
  "summary": "Multi-line field control with shared field copy, optional resize, and optional content sizing.",
5
5
  "whenToUse": [
6
6
  "Multi-line text entry with label, description, and error",
7
- "Controlled vertical or bidirectional resize",
7
+ "Optional native CSS resize (vertical, horizontal, both, and other valid resize values)",
8
8
  "Content-sized growth via fitContent",
9
9
  "Native textarea attributes through the field control",
10
10
  "One or more Textareas inside Fieldset when they belong to a labeled form section with other fields"
@@ -23,19 +23,31 @@
23
23
  "related": ["Fieldset", "Textfield", "Text"],
24
24
  "properties": {
25
25
  "react": {
26
+ "description": {
27
+ "description": "Helper copy rendered with `Field.Description` and `Text` while the field is valid."
28
+ },
29
+ "error": {
30
+ "description": "Error copy rendered with `Field.Error` and `Text` in the same slot as `description`. Replaces description while the field is invalid. Validation messages from `validate` are shown by `Field.Error` even when this prop is omitted."
31
+ },
26
32
  "fitContent": {
27
- "description": "When true, sets field-sizing: content so the control grows with its value while still respecting min-block-size and resize. Omitted or false keeps the browser fixed default."
33
+ "description": "When `true`, sets `field-sizing: content` so the control grows with its value. Still respects `min-block-size` and `resize`. Omitted / `false` keeps the browser fixed default."
34
+ },
35
+ "label": {
36
+ "description": "Visible label rendered with shared internal `FieldLabel`."
37
+ },
38
+ "resize": {
39
+ "description": "Native CSS `resize` for the control, serialized to `data-resize`. Omitted keeps resize disabled (`none`); accepts any valid `CSSProperties['resize']` value such as `\"vertical\"`, `\"horizontal\"`, or `\"both\"`."
28
40
  }
29
41
  },
30
42
  "css": {
43
+ "input-border-radius": {
44
+ "description": "Corner radius for the BasicInput textarea control (also drives field label/description inline padding)."
45
+ },
31
46
  "min-block-size": {
32
- "description": "Minimum block size of the textarea field root."
47
+ "description": "Minimum block size of the BasicInput textarea control."
33
48
  },
34
49
  "padding-block": {
35
- "description": "Block padding applied through the textarea root."
36
- },
37
- "input-border-radius": {
38
- "description": "Corner radius for the textarea control group."
50
+ "description": "Block padding on the BasicInput textarea control."
39
51
  }
40
52
  }
41
53
  }
@@ -1 +1 @@
1
- @layer viraui.preflight, viraui.components, viraui.overrides;@layer viraui.components{@property --vui-textfield-input-height{syntax:"<length>";inherits:true;initial-value:0}@property --vui-textfield-control-group-background{syntax:"<color>";inherits:true;initial-value:#0000}@property --vui-textfield-control-group-color{syntax:"<color>";inherits:true;initial-value:#0000}@property --vui-textfield-control-group-border-color{syntax:"<color>";inherits:true;initial-value:#0000}@property --vui-textfield-control-group-border-radius{syntax:"<length-percentage>";inherits:true;initial-value:0}.viraui__textfield-module__Textfield_o-70A{--vui-textfield-input-height:var(--space-x-large);--vui-textfield-control-group-background:var(--base-1);--vui-textfield-control-group-color:var(--global-foreground);--vui-textfield-control-group-border-color:var(--global-contrast);--vui-textfield-control-group-border-radius:var(--radius-medium);--vui-field-label-padding-inline:calc(var(--vui-textfield-control-group-border-radius) / 2);inline-size:100%;&:has([required]) .viraui__textfield-module__Label_5rjr0:after{content:" *";color:var(--highlight-red)}}.viraui__textfield-module__ControlGroup_2W-OC{box-sizing:border-box;inline-size:100%;min-inline-size:0;block-size:var(--vui-textfield-input-height);background:var(--vui-textfield-control-group-background);border:1px solid var(--vui-textfield-control-group-border-color);border-radius:var(--vui-textfield-control-group-border-radius);&:has(.viraui__textfield-module__CustomBasicInput_oHgtd:focus-visible),&:has(.viraui__textfield-module__CustomBasicInput_oHgtd[data-focused]){outline:var(--outline);outline-offset:var(--outline-offset)}&:has(.viraui__textfield-module__CustomBasicInput_oHgtd[data-invalid]){--vui-textfield-control-group-border-color:var(--highlight-red);box-shadow:none;outline-color:oklab(from var(--highlight-red) l a b/.5)}&:has(.viraui__textfield-module__CustomBasicInput_oHgtd:disabled),&:has(.viraui__textfield-module__CustomBasicInput_oHgtd[data-disabled]){--vui-textfield-control-group-background:var(--global-disabled-background);--vui-textfield-control-group-border-color:#0000;box-shadow:none;cursor:not-allowed}&:has(.viraui__textfield-module__Addon_kK1ef[data-position=start])>.viraui__textfield-module__CustomBasicInput_oHgtd{padding-inline-start:var(--space-x-small)}&:has(.viraui__textfield-module__Addon_kK1ef[data-position=end])>.viraui__textfield-module__CustomBasicInput_oHgtd{padding-inline-end:var(--space-x-small)}}.viraui__textfield-module__Addon_kK1ef{min-inline-size:var(--space-x-large)}.viraui__textfield-module__Description_8Qxot{padding-inline:calc(var(--vui-textfield-control-group-border-radius) / 2)}}@layer viraui.overrides{.viraui__textfield-module__CustomBasicInput_oHgtd{flex:1 1 auto;min-inline-size:0;block-size:100%;line-height:1.2;border:none;background:#0000;box-shadow:none;border-radius:inherit;&:focus-visible{outline:none}&:disabled{cursor:not-allowed}}}
1
+ @layer viraui.preflight, viraui.components, viraui.overrides;@layer viraui.components{@property --vui-textfield-input-height{syntax:"<length>";inherits:true;initial-value:0}@property --vui-textfield-control-group-background{syntax:"<color>";inherits:true;initial-value:#0000}@property --vui-textfield-control-group-color{syntax:"<color>";inherits:true;initial-value:#0000}@property --vui-textfield-control-group-border-color{syntax:"<color>";inherits:true;initial-value:#0000}@property --vui-textfield-control-group-border-radius{syntax:"<length-percentage>";inherits:true;initial-value:0}.viraui__textfield-module__Textfield_o-70A{--vui-textfield-input-height:var(--space-x-large);--vui-textfield-control-group-background:var(--base-1);--vui-textfield-control-group-color:var(--global-foreground);--vui-textfield-control-group-border-color:var(--global-contrast);--vui-textfield-control-group-border-radius:var(--radius-medium);--vui-field-label-padding-inline:calc(var(--vui-textfield-control-group-border-radius) / 2);inline-size:100%;&:has([required]) .viraui__textfield-module__Label_5rjr0:after{content:" *";color:var(--highlight-red)}}.viraui__textfield-module__ControlGroup_2W-OC{box-sizing:border-box;inline-size:100%;min-inline-size:0;block-size:var(--vui-textfield-input-height);background:var(--vui-textfield-control-group-background);color:var(--vui-textfield-control-group-color);border:1px solid var(--vui-textfield-control-group-border-color);border-radius:var(--vui-textfield-control-group-border-radius);&:has(.viraui__textfield-module__CustomBasicInput_oHgtd:focus-visible),&:has(.viraui__textfield-module__CustomBasicInput_oHgtd[data-focused]){outline:var(--outline);outline-offset:var(--outline-offset)}&:has(.viraui__textfield-module__CustomBasicInput_oHgtd[data-invalid]){--vui-textfield-control-group-border-color:var(--highlight-red);box-shadow:none;outline-color:oklab(from var(--highlight-red) l a b/.5)}&:has(.viraui__textfield-module__CustomBasicInput_oHgtd:disabled),&:has(.viraui__textfield-module__CustomBasicInput_oHgtd[data-disabled]){--vui-textfield-control-group-background:var(--global-disabled-background);--vui-textfield-control-group-border-color:#0000;--vui-textfield-control-group-color:var(--global-disabled-foreground);box-shadow:none;cursor:not-allowed}&:has(.viraui__textfield-module__Addon_kK1ef[data-position=start])>.viraui__textfield-module__CustomBasicInput_oHgtd{padding-inline-start:var(--space-x-small)}&:has(.viraui__textfield-module__Addon_kK1ef[data-position=end])>.viraui__textfield-module__CustomBasicInput_oHgtd{padding-inline-end:var(--space-x-small)}}.viraui__textfield-module__Addon_kK1ef{min-inline-size:var(--space-x-large)}.viraui__textfield-module__Description_8Qxot{padding-inline:calc(var(--vui-textfield-control-group-border-radius) / 2)}}@layer viraui.overrides{.viraui__textfield-module__CustomBasicInput_oHgtd{flex:1 1 auto;block-size:100%;line-height:1.2;background:#0000;box-shadow:none;border-radius:inherit;&:focus-visible{outline:none}}}
@@ -26,25 +26,40 @@
26
26
  "related": ["Fieldset", "Textarea", "Select", "Text"],
27
27
  "properties": {
28
28
  "react": {
29
+ "description": {
30
+ "description": "Helper copy rendered with `Field.Description` and `Text` while the field is valid."
31
+ },
32
+ "endAddon": {
33
+ "description": "Trailing decoration (icon, button). Buttons must use `type=\"button\"`."
34
+ },
35
+ "error": {
36
+ "description": "Error copy rendered with `Field.Error` and `Text` in the same slot as `description`. Replaces description while the field is invalid. Validation messages from `validate` are shown by `Field.Error` even when this prop is omitted."
37
+ },
29
38
  "fitContent": {
30
- "description": "When true, sets field-sizing: content so the control grows inline with its value; block chrome stays the fixed textfield input height. Omitted or false keeps the browser fixed default."
39
+ "description": "When `true`, sets `field-sizing: content` so the control grows inline with its value. Block chrome stays `var(--vui-textfield-input-height)`. Omitted / `false` keeps the browser fixed default."
40
+ },
41
+ "label": {
42
+ "description": "Visible label rendered with shared internal `FieldLabel`."
43
+ },
44
+ "startAddon": {
45
+ "description": "Leading decoration (prefix text, icon). Not a second field control."
31
46
  }
32
47
  },
33
48
  "css": {
34
- "input-height": {
35
- "description": "Textfield control group block size."
36
- },
37
49
  "control-group-background": {
38
50
  "description": "Textfield control group background."
39
51
  },
40
- "control-group-color": {
41
- "description": "Textfield control group foreground color."
42
- },
43
52
  "control-group-border-color": {
44
53
  "description": "Textfield control group border color."
45
54
  },
46
55
  "control-group-border-radius": {
47
56
  "description": "Textfield control group corner radius."
57
+ },
58
+ "control-group-color": {
59
+ "description": "Textfield control group foreground color."
60
+ },
61
+ "input-height": {
62
+ "description": "Textfield control group block size."
48
63
  }
49
64
  }
50
65
  }
@@ -1 +1 @@
1
- @layer viraui.preflight, viraui.components, viraui.overrides;@layer viraui.components{@property --vui-title-align{syntax:"*";inherits:false;initial-value:start}@property --vui-title-max-width{syntax:"*";inherits:false;initial-value:none}@property --vui-title-literal-color{syntax:"<color>";inherits:false;initial-value:#0000}@property --vui-title-white-space{syntax:"*";inherits:false;initial-value:normal}@property --vui-title-font-weight{syntax:"<number>";inherits:false;initial-value:500}@property --vui-title-font-width{syntax:"<number>";inherits:false;initial-value:100}@property --vui-title-font-opsz{syntax:"<number>";inherits:false;initial-value:16}@property --vui-title-trim{syntax:"*";inherits:false;initial-value:none}@property --vui-title-trim-type{syntax:"*";inherits:false;initial-value:none}@property --vui-title-padding-inline-start{syntax:"<length>";inherits:false;initial-value:0}@property --vui-title-padding-inline-end{syntax:"<length>";inherits:false;initial-value:0}@property --vui-title-padding-block-start{syntax:"<length>";inherits:false;initial-value:0}@property --vui-title-padding-block-end{syntax:"<length>";inherits:false;initial-value:0}@property --vui-title-font-size{syntax:"<length>";inherits:false;initial-value:1rem}@property --vui-title-line-height{syntax:"normal | <number> | <length-percentage>";inherits:false;initial-value:normal}@property --vui-title-letter-spacing{syntax:"normal | <length>";inherits:false;initial-value:-.03em}@property --vui-title-font-family{syntax:"*";inherits:false;initial-value:sans-serif}.viraui__title-module__Title_CXMUX{--title-medium:clamp(var(--font-scale-body-medium),calc(var(--font-scale-body-medium) + var(--font-scale-body-x-small) / 12 + 0.24cqi),calc(var(--font-scale-body-medium) + var(--font-scale-body-x-small) / 3));--vui-title-font-size:clamp(var(--font-scale-h2),calc(var(--title-medium) * pow(var(--font-heading-typescale), 5)),var(--font-scale-h1));--vui-title-font-family:var(--font-family-heading);--vui-title-line-height:var(--font-leading-standard);margin:0;max-inline-size:var(--vui-title-max-width);font-family:var(--vui-title-font-family);font-size:var(--vui-title-font-size);line-height:var(--vui-title-line-height);letter-spacing:var(--vui-title-letter-spacing);text-align:var(--vui-title-align);white-space:var(--vui-title-white-space);word-break:break-word;font-weight:var(--vui-title-font-weight);font-stretch:calc(var(--vui-title-font-width) * 1%);font-optical-sizing:auto;font-variation-settings:"wght" var(--vui-title-font-weight),"wdth" var(--vui-title-font-width),"opsz" var(--vui-title-font-opsz);text-box:var(--vui-title-trim) var(--vui-title-trim-type);display:inline-flex;&[data-title-balanced=true]{text-wrap:balance}&[data-title-selection=false]{-webkit-user-select:none;user-select:none}&[data-title-has-padding=true]{padding:var(--vui-title-padding-block-start) var(--vui-title-padding-inline-end) var(--vui-title-padding-block-end) var(--vui-title-padding-inline-start)}&[data-title-size=display]{--vui-title-font-size:clamp(var(--font-scale-h1),calc(var(--font-scale-h1) + 4.643cqi - 0.9286rem),var(--font-scale-display))}&[data-title-size="1"]{--vui-title-font-size:clamp(var(--font-scale-h2),calc(var(--title-medium) * pow(var(--font-heading-typescale), 5)),var(--font-scale-h1))}&[data-title-size="2"]{--vui-title-font-size:clamp(var(--font-scale-h3),calc(var(--title-medium) * pow(var(--font-heading-typescale), 4)),var(--font-scale-h2))}&[data-title-size="3"]{--vui-title-font-size:clamp(var(--font-scale-h4),calc(var(--title-medium) * pow(var(--font-heading-typescale), 3)),var(--font-scale-h3))}&[data-title-size="4"]{--vui-title-font-size:clamp(var(--font-scale-h5),calc(var(--title-medium) * pow(var(--font-heading-typescale), 2)),var(--font-scale-h4))}&[data-title-size="5"]{--vui-title-font-size:clamp(var(--font-scale-h6),calc(var(--title-medium) * pow(var(--font-heading-typescale), 1)),var(--font-scale-h5));--vui-title-letter-spacing:-0.02em}&[data-title-size="6"]{--vui-title-font-size:clamp(var(--font-scale-body-medium),var(--title-medium),var(--font-scale-h6));--vui-title-letter-spacing:-0.02em}&[data-title-has-literal-color=true]{color:var(--vui-title-literal-color)}&[data-title-line-height=none]{--vui-title-line-height:0}&[data-title-line-height=x-small]{--vui-title-line-height:var(--font-leading-x-small)}&[data-title-line-height=small]{--vui-title-line-height:var(--font-leading-small)}&[data-title-line-height=large]{--vui-title-line-height:var(--font-leading-large)}}}
1
+ @layer viraui.preflight, viraui.components, viraui.overrides;@layer viraui.components{@property --vui-title-align{syntax:"*";inherits:false;initial-value:start}@property --vui-title-max-width{syntax:"*";inherits:false;initial-value:none}@property --vui-title-literal-color{syntax:"<color>";inherits:false;initial-value:#0000}@property --vui-title-white-space{syntax:"*";inherits:false;initial-value:normal}@property --vui-title-font-weight{syntax:"<number>";inherits:false;initial-value:500}@property --vui-title-font-width{syntax:"<number>";inherits:false;initial-value:100}@property --vui-title-font-opsz{syntax:"<number>";inherits:false;initial-value:16}@property --vui-title-trim{syntax:"*";inherits:false;initial-value:trim-both}@property --vui-title-trim-type{syntax:"*";inherits:false;initial-value:cap alphabetic}@property --vui-title-padding-inline-start{syntax:"<length>";inherits:false;initial-value:0}@property --vui-title-padding-inline-end{syntax:"<length>";inherits:false;initial-value:0}@property --vui-title-padding-block-start{syntax:"<length>";inherits:false;initial-value:0}@property --vui-title-padding-block-end{syntax:"<length>";inherits:false;initial-value:0}@property --vui-title-font-size{syntax:"<length>";inherits:false;initial-value:1rem}@property --vui-title-line-height{syntax:"normal | <number> | <length-percentage>";inherits:false;initial-value:normal}@property --vui-title-letter-spacing{syntax:"normal | <length>";inherits:false;initial-value:-.03em}@property --vui-title-font-family{syntax:"*";inherits:false;initial-value:sans-serif}@property --__title-medium{syntax:"*";inherits:false;initial-value:0}.viraui__title-module__Title_CXMUX{--__title-medium:clamp(var(--font-scale-body-medium),calc(var(--font-scale-body-medium) + var(--font-scale-body-x-small) / 12 + 0.24cqi),calc(var(--font-scale-body-medium) + var(--font-scale-body-x-small) / 3));--vui-title-font-size:clamp(var(--font-scale-h2),calc(var(--__title-medium) * pow(var(--font-heading-typescale), 5)),var(--font-scale-h1));--vui-title-font-family:var(--font-family-heading);--vui-title-line-height:var(--font-leading-standard);margin:0;max-inline-size:var(--vui-title-max-width);font-family:var(--vui-title-font-family);font-size:var(--vui-title-font-size);line-height:var(--vui-title-line-height);letter-spacing:var(--vui-title-letter-spacing);text-align:var(--vui-title-align);white-space:var(--vui-title-white-space);word-break:break-word;font-weight:var(--vui-title-font-weight);font-stretch:calc(var(--vui-title-font-width) * 1%);font-optical-sizing:auto;font-variation-settings:"wght" var(--vui-title-font-weight),"wdth" var(--vui-title-font-width),"opsz" var(--vui-title-font-opsz);text-box:var(--vui-title-trim) var(--vui-title-trim-type);display:inline-flex;&[data-title-balanced=true]{text-wrap:balance}&[data-title-selection=false]{-webkit-user-select:none;user-select:none}&[data-title-has-padding=true]{padding:var(--vui-title-padding-block-start) var(--vui-title-padding-inline-end) var(--vui-title-padding-block-end) var(--vui-title-padding-inline-start)}&[data-title-size=display]{--vui-title-font-size:clamp(var(--font-scale-h1),calc(var(--font-scale-h1) + 4.643cqi - 0.9286rem),var(--font-scale-display))}&[data-title-size="2"]{--vui-title-font-size:clamp(var(--font-scale-h3),calc(var(--__title-medium) * pow(var(--font-heading-typescale), 4)),var(--font-scale-h2))}&[data-title-size="3"]{--vui-title-font-size:clamp(var(--font-scale-h4),calc(var(--__title-medium) * pow(var(--font-heading-typescale), 3)),var(--font-scale-h3))}&[data-title-size="4"]{--vui-title-font-size:clamp(var(--font-scale-h5),calc(var(--__title-medium) * pow(var(--font-heading-typescale), 2)),var(--font-scale-h4))}&[data-title-size="5"]{--vui-title-font-size:clamp(var(--font-scale-h6),calc(var(--__title-medium) * pow(var(--font-heading-typescale), 1)),var(--font-scale-h5));--vui-title-letter-spacing:-0.02em}&[data-title-size="6"]{--vui-title-font-size:clamp(var(--font-scale-body-medium),var(--__title-medium),var(--font-scale-h6));--vui-title-letter-spacing:-0.02em}&[data-title-has-literal-color=true]{color:var(--vui-title-literal-color)}&[data-title-line-height=none]{--vui-title-line-height:0}&[data-title-line-height=x-small]{--vui-title-line-height:var(--font-leading-x-small)}&[data-title-line-height=small]{--vui-title-line-height:var(--font-leading-small)}&[data-title-line-height=large]{--vui-title-line-height:var(--font-leading-large)}}}