@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
@@ -10,10 +10,8 @@ var ScrollButton = "viraui__select-module__ScrollButton_sHBOa";
10
10
  var ScrollArrowUp = "viraui__select-module__ScrollArrowUp_DGXS-";
11
11
  var ScrollArrowDown = "viraui__select-module__ScrollArrowDown_vhJy0";
12
12
  var List = "viraui__select-module__List_jdUWx";
13
- var OptionText = "viraui__select-module__OptionText_UynBD";
14
13
  var Indicator = "viraui__select-module__Indicator_YNUuz";
15
14
  var Group = "viraui__select-module__Group_xzkuA";
16
- var Separator = "viraui__select-module__Separator_Q-ri9";
17
15
  var Value = "viraui__select-module__Value_uWHPX";
18
16
  var Option = "viraui__select-module__Option_KgYqz";
19
17
  var select_module_default = {
@@ -28,12 +26,10 @@ var select_module_default = {
28
26
  ScrollArrowUp,
29
27
  ScrollArrowDown,
30
28
  List,
31
- OptionText,
32
29
  Indicator,
33
30
  Group,
34
- Separator,
35
31
  Value,
36
32
  Option
37
33
  };
38
34
  //#endregion
39
- export { Description, Group, Icon, Indicator, Label, List, Option, OptionText, ScrollArrow, ScrollArrowDown, ScrollArrowUp, ScrollButton, Select, SelectPopup, Separator, Trigger, Value, select_module_default as default };
35
+ export { Description, Group, Icon, Indicator, Label, List, Option, ScrollArrow, ScrollArrowDown, ScrollArrowUp, ScrollButton, Select, SelectPopup, Trigger, Value, select_module_default as default };
@@ -21,5 +21,32 @@
21
21
  "Using Select.Separator for general layout dividers",
22
22
  "Replacing Surface borders with Separator for container chrome"
23
23
  ],
24
- "related": ["Stack", "Surface", "Select"]
24
+ "related": ["Stack", "Surface", "Select"],
25
+ "properties": {
26
+ "react": {
27
+ "hPadding": {
28
+ "description": "Sets inline padding on the Stack wrapper using one token for both sides or a `[start, end]` tuple."
29
+ },
30
+ "orientation": {
31
+ "description": "Sets the separator line direction."
32
+ },
33
+ "ref": {
34
+ "description": "Ref forwarded to the rendered line root element."
35
+ },
36
+ "render": {
37
+ "description": "Replaces the default `hr` line root using Base UI render semantics."
38
+ },
39
+ "size": {
40
+ "description": "Sets the line thickness preset."
41
+ },
42
+ "vPadding": {
43
+ "description": "Sets block padding on the Stack wrapper using one token for both sides or a `[start, end]` tuple."
44
+ }
45
+ },
46
+ "css": {
47
+ "size": {
48
+ "description": "Separator line thickness."
49
+ }
50
+ }
51
+ }
25
52
  }
@@ -1 +1 @@
1
- @layer viraui.preflight, viraui.components, viraui.overrides;@layer viraui.components{@property --vui-shimmer-duration{syntax:"<time>";inherits:false;initial-value:0s}@property --vui-shimmer-spread{syntax:"<length>";inherits:false;initial-value:0}@property --vui-shimmer-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@property --vui-shimmer-highlight{syntax:"<color>";inherits:false;initial-value:#0000}.viraui__shimmer-module__Shimmer_1k-ZM{--vui-shimmer-duration:var(--duration-slowest);--vui-shimmer-spread:calc(3ch + var(--space-2x-large));--shimmer-base:currentcolor;--vui-shimmer-highlight:oklch(from var(--shimmer-base) min(calc(l + 0.35),1) c h);background-image:linear-gradient(calc(90deg + var(--vui-shimmer-angle)),var(--shimmer-base) calc(50% - var(--vui-shimmer-spread)),color-mix(in oklch,var(--vui-shimmer-highlight),var(--shimmer-base) 50%) calc(50% - var(--vui-shimmer-spread) * .5),var(--vui-shimmer-highlight) 50%,color-mix(in oklch,var(--vui-shimmer-highlight),var(--shimmer-base) 50%) calc(50% + var(--vui-shimmer-spread) * .5),var(--shimmer-base) calc(50% + var(--vui-shimmer-spread)));background-repeat:no-repeat;background-size:calc(200% + var(--vui-shimmer-spread) * 2) 100%;background-position:0 0;background-clip:text;-webkit-text-fill-color:#0000;animation:viraui__shimmer-module__shimmer-slide_V1znC var(--vui-shimmer-duration) linear infinite;&::selection{background-color:var(--global-primary);color:contrast-color(var(--global-primary));-webkit-text-fill-color:contrast-color(var(--global-primary));background-image:none;background-clip:initial;text-shadow:none}@media (prefers-reduced-motion:reduce){animation:none;background-image:none;-webkit-text-fill-color:currentcolor}}@keyframes viraui__shimmer-module__shimmer-slide_V1znC{0%{background-position:0 0}to{background-position:100% 0}}}
1
+ @layer viraui.preflight, viraui.components, viraui.overrides;@layer viraui.components{@property --vui-shimmer-duration{syntax:"<time>";inherits:false;initial-value:0s}@property --vui-shimmer-spread{syntax:"<length>";inherits:false;initial-value:0}@property --vui-shimmer-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@property --vui-shimmer-highlight{syntax:"<color>";inherits:false;initial-value:#0000}@property --__shimmer-base{syntax:"<color>";inherits:false;initial-value:currentcolor}.viraui__shimmer-module__Shimmer_1k-ZM{--vui-shimmer-duration:var(--duration-slowest);--vui-shimmer-spread:calc(3ch + var(--space-2x-large));--vui-shimmer-highlight:oklch(from var(--__shimmer-base) min(calc(l + 0.35),1) c h);background-image:linear-gradient(calc(90deg + var(--vui-shimmer-angle)),var(--__shimmer-base) calc(50% - var(--vui-shimmer-spread)),color-mix(in oklch,var(--vui-shimmer-highlight),var(--__shimmer-base) 50%) calc(50% - var(--vui-shimmer-spread) * .5),var(--vui-shimmer-highlight) 50%,color-mix(in oklch,var(--vui-shimmer-highlight),var(--__shimmer-base) 50%) calc(50% + var(--vui-shimmer-spread) * .5),var(--__shimmer-base) calc(50% + var(--vui-shimmer-spread)));background-repeat:no-repeat;background-size:calc(200% + var(--vui-shimmer-spread) * 2) 100%;background-position:0 0;background-clip:text;-webkit-text-fill-color:#0000;animation:viraui__shimmer-module__shimmer-slide_V1znC var(--vui-shimmer-duration) linear infinite;&::selection{background-color:var(--global-primary);color:contrast-color(var(--global-primary));-webkit-text-fill-color:contrast-color(var(--global-primary));background-image:none;background-clip:initial;text-shadow:none}@media (prefers-reduced-motion:reduce){animation:none;background-image:none;-webkit-text-fill-color:currentcolor}}@keyframes viraui__shimmer-module__shimmer-slide_V1znC{0%{background-position:0 0}to{background-position:100% 0}}}
@@ -25,39 +25,42 @@
25
25
  "related": ["Text", "Title", "Skeleton"],
26
26
  "properties": {
27
27
  "react": {
28
+ "angle": {
29
+ "description": "Sets the shimmer gradient angle offset using any valid CSS angle string.",
30
+ "refCss": "angle"
31
+ },
28
32
  "duration": {
29
33
  "description": "Sets the shimmer sweep duration using any valid CSS time string.",
30
34
  "refCss": "duration"
31
35
  },
36
+ "highlightColor": {
37
+ "description": "Overrides the shimmer highlight color when relative base lightness tuning is not used.",
38
+ "refCss": "highlight"
39
+ },
40
+ "ref": {
41
+ "description": "Ref forwarded to the rendered shimmer root element."
42
+ },
32
43
  "spread": {
33
44
  "description": "Sets the shimmer highlight spread using any valid CSS length string.",
34
45
  "refCss": "spread"
35
- },
36
- "angle": {
37
- "description": "Sets the shimmer gradient angle offset using any valid CSS angle string.",
38
- "refCss": "angle"
39
- },
40
- "highlightColor": {
41
- "description": "Overrides the shimmer highlight color.",
42
- "refCss": "highlight"
43
46
  }
44
47
  },
45
48
  "css": {
46
- "duration": {
47
- "description": "Shimmer animation duration.",
48
- "refReact": "duration"
49
- },
50
- "spread": {
51
- "description": "Shimmer highlight spread width.",
52
- "refReact": "spread"
53
- },
54
49
  "angle": {
55
50
  "description": "Shimmer gradient angle offset.",
56
51
  "refReact": "angle"
57
52
  },
53
+ "duration": {
54
+ "description": "Shimmer animation duration.",
55
+ "refReact": "duration"
56
+ },
58
57
  "highlight": {
59
58
  "description": "Shimmer highlight color.",
60
59
  "refReact": "highlightColor"
60
+ },
61
+ "spread": {
62
+ "description": "Shimmer highlight spread width.",
63
+ "refReact": "spread"
61
64
  }
62
65
  }
63
66
  }
@@ -23,50 +23,43 @@
23
23
  "related": ["Avatar"],
24
24
  "properties": {
25
25
  "react": {
26
- "radius": {
27
- "description": "Sets the corner radius from the Vira radius token scale.",
28
- "refCss": "border-radius"
29
- },
30
- "width": {
31
- "description": "Sets the skeleton inline size.",
32
- "refCss": "inline-size"
33
- },
34
26
  "height": {
35
- "description": "Sets the skeleton block size.",
36
- "refCss": "block-size"
27
+ "description": "Sets the skeleton block size using any valid CSS size string."
28
+ },
29
+ "minHeight": {
30
+ "description": "Sets the skeleton minimum block size using any valid CSS size string."
37
31
  },
38
32
  "minWidth": {
39
- "description": "Sets the skeleton minimum inline size.",
40
- "refCss": "min-inline-size"
33
+ "description": "Sets the skeleton minimum inline size using any valid CSS size string."
41
34
  },
42
- "minHeight": {
43
- "description": "Sets the skeleton minimum block size.",
44
- "refCss": "min-block-size"
35
+ "radius": {
36
+ "description": "Sets the corner radius from the Vira radius token scale."
37
+ },
38
+ "ref": {
39
+ "description": "Ref forwarded to the rendered skeleton root element."
40
+ },
41
+ "width": {
42
+ "description": "Sets the skeleton inline size using any valid CSS size string."
45
43
  }
46
44
  },
47
45
  "css": {
48
- "border-radius": {
49
- "description": "Skeleton corner radius.",
50
- "refReact": "radius"
51
- },
52
- "inline-size": {
53
- "description": "Skeleton inline size.",
54
- "refReact": "width"
46
+ "background": {
47
+ "description": "Skeleton placeholder background color."
55
48
  },
56
49
  "block-size": {
57
- "description": "Skeleton block size.",
58
- "refReact": "height"
50
+ "description": "Skeleton block size."
59
51
  },
60
- "min-inline-size": {
61
- "description": "Skeleton minimum inline size.",
62
- "refReact": "minWidth"
52
+ "border-radius": {
53
+ "description": "Skeleton corner radius."
54
+ },
55
+ "inline-size": {
56
+ "description": "Skeleton inline size."
63
57
  },
64
58
  "min-block-size": {
65
- "description": "Skeleton minimum block size.",
66
- "refReact": "minHeight"
59
+ "description": "Skeleton minimum block size."
67
60
  },
68
- "background": {
69
- "description": "Skeleton placeholder background color."
61
+ "min-inline-size": {
62
+ "description": "Skeleton minimum inline size."
70
63
  }
71
64
  }
72
65
  }
@@ -22,21 +22,41 @@
22
22
  ],
23
23
  "related": ["Textfield", "Stack", "Text"],
24
24
  "properties": {
25
- "css": {
26
- "track-size": {
27
- "description": "Slider track thickness."
25
+ "react": {
26
+ "description": {
27
+ "description": "Helper copy rendered with `Field.Description` and `Text` while the field is valid."
28
28
  },
29
- "thumb-size": {
30
- "description": "Slider thumb size."
29
+ "error": {
30
+ "description": "Error copy rendered with `Field.Error` and `Text` in the same slot as `description`."
31
31
  },
32
- "track-background": {
33
- "description": "Slider track background color."
32
+ "label": {
33
+ "description": "Visible label rendered with shared internal `FieldLabel`."
34
+ },
35
+ "required": {
36
+ "description": "Marks the slider as required and shows a required indicator on the label."
34
37
  },
38
+ "showValue": {
39
+ "description": "Renders the formatted current value via `Slider.Value` and `Text`."
40
+ },
41
+ "thumbAriaLabel": {
42
+ "description": "Accessible name for the thumb when `label` is omitted. Pass a string to name the first thumb (single-thumb slider, or the minimum thumb on a range). Pass a two-element tuple to name each range thumb in order; on a single-thumb slider only the first tuple value is applied."
43
+ }
44
+ },
45
+ "css": {
35
46
  "progress-background": {
36
47
  "description": "Slider filled progress color."
37
48
  },
38
49
  "thumb-background": {
39
50
  "description": "Slider thumb fill color."
51
+ },
52
+ "thumb-size": {
53
+ "description": "Slider thumb size."
54
+ },
55
+ "track-background": {
56
+ "description": "Slider track background color."
57
+ },
58
+ "track-size": {
59
+ "description": "Slider track thickness."
40
60
  }
41
61
  }
42
62
  }
@@ -23,15 +23,16 @@
23
23
  "related": ["Button", "IconButton"],
24
24
  "properties": {
25
25
  "react": {
26
+ "color": {
27
+ "description": "Overrides the spinner fill color."
28
+ },
26
29
  "size": {
27
- "description": "Sets the rendered spinner size.",
28
- "refCss": "size"
30
+ "description": "Sets the rendered spinner size."
29
31
  }
30
32
  },
31
33
  "css": {
32
34
  "size": {
33
- "description": "Spinner glyph size on the root.",
34
- "refReact": "size"
35
+ "description": "Spinner glyph size on the root."
35
36
  }
36
37
  }
37
38
  }
@@ -24,77 +24,79 @@
24
24
  "related": ["Surface", "Text", "Button"],
25
25
  "properties": {
26
26
  "react": {
27
- "rowGap": {
28
- "description": "Sets row gap using a Vira space token.",
29
- "refCss": "row-gap"
30
- },
31
27
  "columnGap": {
32
- "description": "Sets column gap using a Vira space token.",
33
- "refCss": "column-gap"
28
+ "description": "Sets the gap between flex columns using the Vira space token scale."
34
29
  },
35
- "hAlign": {
36
- "description": "Sets main-axis alignment for column layouts and cross-axis for row layouts.",
37
- "refCss": "h-align"
30
+ "direction": {
31
+ "description": "Renders children across rows or columns using the chosen flex direction."
38
32
  },
39
- "vAlign": {
40
- "description": "Sets cross-axis alignment for column layouts and main-axis for row layouts.",
41
- "refCss": "v-align"
33
+ "fillChildren": {
34
+ "description": "Makes direct children grow to fill the available space within the stack."
35
+ },
36
+ "hAlign": {
37
+ "description": "Aligns content on the horizontal axis from the consumer point of view."
42
38
  },
43
39
  "hPadding": {
44
- "description": "Sets inline padding using one token or a [start, end] tuple."
40
+ "description": "Sets inline padding using one token for both sides or a `[start, end]` tuple."
45
41
  },
46
- "vPadding": {
47
- "description": "Sets block padding using one token or a [start, end] tuple."
42
+ "inline": {
43
+ "description": "Displays the stack as `inline-flex` instead of `flex`."
48
44
  },
49
45
  "maxWidth": {
50
- "description": "Constrains max inline size of the stack root.",
51
- "refCss": "max-width"
46
+ "description": "Applies a maximum width value to the stack root."
52
47
  },
53
48
  "minWidth": {
54
- "description": "Constrains min inline size of the stack root.",
55
- "refCss": "min-width"
49
+ "description": "Applies a minimum width value to the stack root."
50
+ },
51
+ "ref": {
52
+ "description": "Ref forwarded to the rendered stack root element."
53
+ },
54
+ "render": {
55
+ "description": "Replaces the default `div` root using Base UI render semantics."
56
+ },
57
+ "rowGap": {
58
+ "description": "Sets the gap between flex rows using the Vira space token scale."
59
+ },
60
+ "vAlign": {
61
+ "description": "Aligns content on the vertical axis from the consumer point of view."
62
+ },
63
+ "vPadding": {
64
+ "description": "Sets block padding using one token for both sides or a `[start, end]` tuple."
65
+ },
66
+ "wrap": {
67
+ "description": "Allows direct children to wrap onto additional lines when space is constrained."
56
68
  }
57
69
  },
58
70
  "css": {
59
- "row-gap": {
60
- "description": "Flex row gap on the root.",
61
- "refReact": "rowGap"
62
- },
63
71
  "column-gap": {
64
- "description": "Flex column gap on the root.",
65
- "refReact": "columnGap"
72
+ "description": "Flex column gap on the root."
66
73
  },
67
74
  "h-align": {
68
- "description": "Logical horizontal flex alignment hook.",
69
- "refReact": "hAlign"
75
+ "description": "Logical horizontal flex alignment hook."
70
76
  },
71
- "v-align": {
72
- "description": "Logical vertical flex alignment hook.",
73
- "refReact": "vAlign"
77
+ "max-width": {
78
+ "description": "Max inline size of the stack root."
74
79
  },
75
- "padding-inline-start": {
76
- "description": "Inline-start padding when padding is enabled.",
77
- "refReact": "hPadding"
80
+ "min-width": {
81
+ "description": "Min inline size of the stack root."
78
82
  },
79
- "padding-inline-end": {
80
- "description": "Inline-end padding when padding is enabled.",
81
- "refReact": "hPadding"
83
+ "padding-block-end": {
84
+ "description": "Block-end padding when padding is enabled."
82
85
  },
83
86
  "padding-block-start": {
84
- "description": "Block-start padding when padding is enabled.",
85
- "refReact": "vPadding"
87
+ "description": "Block-start padding when padding is enabled."
86
88
  },
87
- "padding-block-end": {
88
- "description": "Block-end padding when padding is enabled.",
89
- "refReact": "vPadding"
89
+ "padding-inline-end": {
90
+ "description": "Inline-end padding when padding is enabled."
90
91
  },
91
- "max-width": {
92
- "description": "Max inline size of the stack root.",
93
- "refReact": "maxWidth"
92
+ "padding-inline-start": {
93
+ "description": "Inline-start padding when padding is enabled."
94
94
  },
95
- "min-width": {
96
- "description": "Min inline size of the stack root.",
97
- "refReact": "minWidth"
95
+ "row-gap": {
96
+ "description": "Flex row gap on the root."
97
+ },
98
+ "v-align": {
99
+ "description": "Logical vertical flex alignment hook."
98
100
  }
99
101
  }
100
102
  }
@@ -13,7 +13,7 @@
13
13
  "Large numbers of simultaneous full-viewport overlays on the same page"
14
14
  ],
15
15
  "accessibility": [
16
- "StaticNoise is decorative — the root renders with aria-hidden by default",
16
+ "StaticNoise is decorative — the root hardcodes `aria-hidden=\"true\"` (not overridable via props)",
17
17
  "Parent surface or region must expose any meaningful label or busy state",
18
18
  "Consumer owns position, inset, z-index, and sizing for the overlay placement"
19
19
  ],
@@ -22,5 +22,21 @@
22
22
  "Using StaticNoise as the only loading announcement for a page",
23
23
  "Embedding layout positioning rules inside the component stylesheet"
24
24
  ],
25
- "related": ["Surface", "Skeleton"]
25
+ "related": ["Surface", "Skeleton"],
26
+ "properties": {
27
+ "react": {
28
+ "animate": {
29
+ "description": "Animates the internal turbulence filter by cycling `feTurbulence` seed values."
30
+ },
31
+ "baseFrequency": {
32
+ "description": "Sets the SVG turbulence `baseFrequency` for the internal noise filter."
33
+ },
34
+ "mixBlendMode": {
35
+ "description": "Sets the rendered overlay mix blend mode."
36
+ },
37
+ "opacity": {
38
+ "description": "Sets the rendered overlay opacity."
39
+ }
40
+ }
41
+ }
26
42
  }
@@ -1 +1 @@
1
- @layer viraui.preflight, viraui.components, viraui.overrides;@layer viraui.components{@property --vui-surface-background{syntax:"*";inherits:false;initial-value:none}@property --vui-surface-background-hover{syntax:"*";inherits:false;initial-value:none}@property --vui-surface-border-style{syntax:"<custom-ident>";inherits:false;initial-value:solid}@property --vui-surface-overflow{syntax:"<custom-ident>";inherits:false;initial-value:visible}@property --vui-surface-border-radius{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --vui-surface-border-radius-top-left{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --vui-surface-border-radius-top-right{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --vui-surface-border-radius-bottom-right{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --vui-surface-border-radius-bottom-left{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --vui-surface-padding-inline-start{syntax:"<length>";inherits:false;initial-value:0}@property --vui-surface-padding-inline-end{syntax:"<length>";inherits:false;initial-value:0}@property --vui-surface-padding-block-start{syntax:"<length>";inherits:false;initial-value:0}@property --vui-surface-padding-block-end{syntax:"<length>";inherits:false;initial-value:0}.viraui__surface-module__Surface_slEYq{--vui-surface-border-radius-top-left:var(--vui-surface-border-radius);--vui-surface-border-radius-top-right:var(--vui-surface-border-radius);--vui-surface-border-radius-bottom-right:var(--vui-surface-border-radius);--vui-surface-border-radius-bottom-left:var(--vui-surface-border-radius);--vui-surface-background-hover:var(--vui-surface-background);position:relative;overflow:var(--vui-surface-overflow);box-sizing:border-box;background:var(--vui-surface-background);border-radius:var(--vui-surface-border-radius-top-left) var(--vui-surface-border-radius-top-right) var(--vui-surface-border-radius-bottom-right) var(--vui-surface-border-radius-bottom-left);border:0;@container root not style(--vibrancy-enable: initial){&[data-vibrant]{background:oklab(from var(--vui-surface-background) l a b/80%)}}&[data-surface-radius=auto]{--vui-surface-border-radius-top-left:0;--vui-surface-border-radius-top-right:0;--vui-surface-border-radius-bottom-right:0;--vui-surface-border-radius-bottom-left:0}&[data-surface-has-padding=true]{padding:var(--vui-surface-padding-block-start) var(--vui-surface-padding-inline-end) var(--vui-surface-padding-block-end) var(--vui-surface-padding-inline-start)}&[data-surface-border]{border-style:var(--vui-surface-border-style);border-color:var(--global-contrast)}&[data-surface-border=all]{border-width:1px}&[data-surface-border=top]{border-width:1px 0 0}&[data-surface-border=right]{border-width:0 1px 0 0}&[data-surface-border=bottom]{border-width:0 0 1px}&[data-surface-border=left]{border-width:0 0 0 1px}&[data-surface-border=x]{border-width:0 1px}&[data-surface-border=y]{border-width:1px 0}@media (hover:hover) and (pointer:fine){&[data-surface-has-hover-color=true]:hover{background:var(--vui-surface-background-hover)}}}}
1
+ @layer viraui.preflight, viraui.components, viraui.overrides;@layer viraui.components{@property --vui-surface-background{syntax:"*";inherits:false;initial-value:none}@property --vui-surface-background-hover{syntax:"*";inherits:false;initial-value:none}@property --vui-surface-border-style{syntax:"<custom-ident>";inherits:false;initial-value:solid}@property --vui-surface-overflow{syntax:"<custom-ident>";inherits:false;initial-value:visible}@property --vui-surface-border-radius{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --vui-surface-border-radius-top-left{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --vui-surface-border-radius-top-right{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --vui-surface-border-radius-bottom-right{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --vui-surface-border-radius-bottom-left{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --vui-surface-padding-inline-start{syntax:"<length>";inherits:false;initial-value:0}@property --vui-surface-padding-inline-end{syntax:"<length>";inherits:false;initial-value:0}@property --vui-surface-padding-block-start{syntax:"<length>";inherits:false;initial-value:0}@property --vui-surface-padding-block-end{syntax:"<length>";inherits:false;initial-value:0}.viraui__surface-module__Surface_slEYq{--vui-surface-border-radius-top-left:var(--vui-surface-border-radius);--vui-surface-border-radius-top-right:var(--vui-surface-border-radius);--vui-surface-border-radius-bottom-right:var(--vui-surface-border-radius);--vui-surface-border-radius-bottom-left:var(--vui-surface-border-radius);--vui-surface-background-hover:var(--vui-surface-background);position:relative;overflow:var(--vui-surface-overflow);box-sizing:border-box;background:var(--vui-surface-background);border-radius:var(--vui-surface-border-radius-top-left) var(--vui-surface-border-radius-top-right) var(--vui-surface-border-radius-bottom-right) var(--vui-surface-border-radius-bottom-left);border:0;@container root not style(--vibrancy-enable: initial){&[data-vibrant]{background:oklab(from var(--vui-surface-background) l a b/80%)}}&[data-surface-has-padding=true]{padding:var(--vui-surface-padding-block-start) var(--vui-surface-padding-inline-end) var(--vui-surface-padding-block-end) var(--vui-surface-padding-inline-start)}&[data-surface-border]{border-style:var(--vui-surface-border-style);border-color:var(--global-contrast)}&[data-surface-border=all]{border-width:1px}&[data-surface-border=top]{border-width:1px 0 0}&[data-surface-border=right]{border-width:0 1px 0 0}&[data-surface-border=bottom]{border-width:0 0 1px}&[data-surface-border=left]{border-width:0 0 0 1px}&[data-surface-border=x]{border-width:0 1px}&[data-surface-border=y]{border-width:1px 0}@media (hover:hover) and (pointer:fine){&[data-surface-has-hover-color=true]:hover{background:var(--vui-surface-background-hover)}}}}
@@ -33,85 +33,78 @@
33
33
  "related": ["Elevator", "Stack"],
34
34
  "properties": {
35
35
  "react": {
36
+ "border": {
37
+ "description": "Applies the shared contrast border on the chosen side or axis. Omit for no border."
38
+ },
39
+ "borderStyle": {
40
+ "description": "Sets the CSS border style when `border` is set."
41
+ },
36
42
  "color": {
37
- "description": "Sets the resting background using a base ramp layer or literal CSS color.",
38
- "refCss": "background"
43
+ "description": "Sets the resting background using a base ramp layer (`1`–`3`) or a literal CSS color value."
39
44
  },
40
45
  "hoverColor": {
41
- "description": "Sets the hover background on hover-capable pointers.",
42
- "refCss": "background-hover"
46
+ "description": "Sets the hover background on hover-capable pointers using a base ramp layer (`1`–`3`) or literal CSS value."
43
47
  },
44
- "borderStyle": {
45
- "description": "Sets the CSS border style when border is set.",
46
- "refCss": "border-style"
48
+ "hPadding": {
49
+ "description": "Sets inline padding using one token for both sides or a `[start, end]` tuple."
47
50
  },
48
51
  "overflow": {
49
- "description": "Sets root overflow through the surface overflow custom property.",
52
+ "description": "Sets root overflow through the `--vui-surface-overflow` custom property.",
50
53
  "refCss": "overflow"
51
54
  },
52
55
  "radius": {
53
- "description": "Sets corner radius from tokens, a per-corner tuple, or auto for concentric radii.",
54
- "refCss": "border-radius"
56
+ "description": "Sets corner radius from the Vira radius token scale, a per-corner `[top-left, top-right, bottom-right, bottom-left]` tuple (`0` for square corners), or `auto` for concentric radii from the nearest ancestor Surface."
55
57
  },
56
- "hPadding": {
57
- "description": "Sets inline padding using one token or a [start, end] tuple."
58
+ "ref": {
59
+ "description": "Ref forwarded to the rendered surface root element."
60
+ },
61
+ "render": {
62
+ "description": "Replaces the default `div` root using Base UI render semantics."
58
63
  },
59
64
  "vPadding": {
60
- "description": "Sets block padding using one token or a [start, end] tuple."
65
+ "description": "Sets block padding using one token for both sides or a `[start, end]` tuple."
61
66
  }
62
67
  },
63
68
  "css": {
64
69
  "background": {
65
- "description": "Resting surface background on the root.",
66
- "refReact": "color"
70
+ "description": "Resting surface background on the root."
67
71
  },
68
72
  "background-hover": {
69
- "description": "Hover surface background on the root.",
70
- "refReact": "hoverColor"
73
+ "description": "Hover surface background on the root."
71
74
  },
72
- "border-style": {
73
- "description": "Border style when border is enabled.",
74
- "refReact": "borderStyle"
75
+ "border-radius": {
76
+ "description": "Uniform corner radius when radius is a single token."
75
77
  },
76
- "overflow": {
77
- "description": "Root overflow behavior.",
78
- "refReact": "overflow"
78
+ "border-radius-bottom-left": {
79
+ "description": "Bottom-left corner radius; radius tuple or auto resolves per corner."
79
80
  },
80
- "border-radius": {
81
- "description": "Uniform corner radius when radius is a single token.",
82
- "refReact": "radius"
81
+ "border-radius-bottom-right": {
82
+ "description": "Bottom-right corner radius; radius tuple or auto resolves per corner."
83
83
  },
84
84
  "border-radius-top-left": {
85
- "description": "Top-left corner radius; radius tuple or auto resolves per corner.",
86
- "refReact": "radius"
85
+ "description": "Top-left corner radius; radius tuple or auto resolves per corner."
87
86
  },
88
87
  "border-radius-top-right": {
89
- "description": "Top-right corner radius; radius tuple or auto resolves per corner.",
90
- "refReact": "radius"
88
+ "description": "Top-right corner radius; radius tuple or auto resolves per corner."
91
89
  },
92
- "border-radius-bottom-right": {
93
- "description": "Bottom-right corner radius; radius tuple or auto resolves per corner.",
94
- "refReact": "radius"
95
- },
96
- "border-radius-bottom-left": {
97
- "description": "Bottom-left corner radius; radius tuple or auto resolves per corner.",
98
- "refReact": "radius"
90
+ "border-style": {
91
+ "description": "Border style when border is enabled."
99
92
  },
100
- "padding-inline-start": {
101
- "description": "Inline-start padding when padding is enabled.",
102
- "refReact": "hPadding"
93
+ "overflow": {
94
+ "description": "Root overflow behavior.",
95
+ "refReact": "overflow"
103
96
  },
104
- "padding-inline-end": {
105
- "description": "Inline-end padding when padding is enabled.",
106
- "refReact": "hPadding"
97
+ "padding-block-end": {
98
+ "description": "Block-end padding when padding is enabled."
107
99
  },
108
100
  "padding-block-start": {
109
- "description": "Block-start padding when padding is enabled.",
110
- "refReact": "vPadding"
101
+ "description": "Block-start padding when padding is enabled."
111
102
  },
112
- "padding-block-end": {
113
- "description": "Block-end padding when padding is enabled.",
114
- "refReact": "vPadding"
103
+ "padding-inline-end": {
104
+ "description": "Inline-end padding when padding is enabled."
105
+ },
106
+ "padding-inline-start": {
107
+ "description": "Inline-start padding when padding is enabled."
115
108
  }
116
109
  }
117
110
  }
@@ -1 +1 @@
1
- @layer viraui.preflight, viraui.components, viraui.overrides;@layer viraui.components{@property --vui-switch-track-block-size{syntax:"<length>";inherits:false;initial-value:0}@property --vui-switch-track-radius{syntax:"<length-percentage>";inherits:true;initial-value:0}@property --vui-switch-track-background{syntax:"<color>";inherits:false;initial-value:#0000}@property --vui-switch-thumb-background{syntax:"<color>";inherits:true;initial-value:#0000}@property --vui-switch-thumb-size{syntax:"<length>";inherits:true;initial-value:0}@property --vui-switch-thumb-inset{syntax:"<length>";inherits:true;initial-value:0}.viraui__switch-module__Switch_L86y7{&:has([required]) .viraui__switch-module__Label_9R-rv:after{content:" *";color:var(--highlight-red)}}.viraui__switch-module__SwitchRoot_Zv9An{--vui-switch-track-block-size:var(--space-large);--vui-switch-track-radius:var(--radius-small);--vui-switch-track-background:var(--global-contrast);--vui-switch-thumb-background:var(--base-1);--vui-switch-thumb-size:calc(var(--space-large) - var(--space-x-small));--vui-switch-thumb-inset:var(--space-2x-small);position:relative;appearance:none;border:0;box-shadow:none;inline-size:calc((var(--vui-switch-thumb-size) * 2) + var(--vui-switch-thumb-inset) * 2);block-size:var(--vui-switch-track-block-size);background:var(--vui-switch-track-background);border-radius:var(--vui-switch-track-radius);&[data-size=small]{--vui-switch-track-radius:var(--radius-x-small);--vui-switch-track-block-size:var(--space-medium);--vui-switch-thumb-size:calc(var(--space-medium) - var(--space-x-small))}&[data-checked]:not([data-disabled]){--vui-switch-track-background:var(--global-primary);--vui-switch-thumb-background:contrast-color(var(--global-primary))}&[data-invalid]:not([data-disabled]),.viraui__switch-module__Switch_L86y7[data-invalid]>&:not([data-disabled]){box-shadow:inset 0 0 0 1px var(--highlight-red);outline-color:oklab(from var(--highlight-red) l a b/.5)}&[data-disabled],.viraui__switch-module__Switch_L86y7[data-disabled]>&{--vui-switch-track-background:var(--global-disabled-background);--vui-switch-thumb-background:var(--global-disabled-foreground);box-shadow:none;cursor:not-allowed}}.viraui__switch-module__Thumb_ldwJw{--switch-thumb-radius:calc(var(--vui-switch-track-radius) - var(--vui-switch-thumb-inset));position:absolute;inset-block:var(--vui-switch-thumb-inset);inset-inline-start:var(--vui-switch-thumb-inset);background:var(--vui-switch-thumb-background);inline-size:var(--vui-switch-thumb-size);block-size:var(--vui-switch-thumb-size);border-radius:var(--switch-thumb-radius);transition:translate var(--easing-entrance) var(--duration-fast);box-shadow:0 0 1px 1px var(--global-contrast);.viraui__switch-module__SwitchRoot_Zv9An[data-checked]>&{translate:100% 0;box-shadow:none}.viraui__switch-module__SwitchRoot_Zv9An[data-checked]:dir(rtl)>&{translate:-100% 0}}}
1
+ @layer viraui.preflight, viraui.components, viraui.overrides;@layer viraui.components{@property --vui-switch-track-block-size{syntax:"<length>";inherits:false;initial-value:0}@property --vui-switch-track-radius{syntax:"<length-percentage>";inherits:true;initial-value:0}@property --vui-switch-track-background{syntax:"<color>";inherits:false;initial-value:#0000}@property --vui-switch-thumb-background{syntax:"<color>";inherits:true;initial-value:#0000}@property --vui-switch-thumb-size{syntax:"<length>";inherits:true;initial-value:0}@property --vui-switch-thumb-inset{syntax:"<length>";inherits:true;initial-value:0}@property --__switch-thumb-radius{syntax:"<length-percentage>";inherits:true;initial-value:0}.viraui__switch-module__Switch_L86y7{&:has([required]) .viraui__switch-module__Label_9R-rv:after{content:" *";color:var(--highlight-red)}}.viraui__switch-module__SwitchRoot_Zv9An{--vui-switch-track-block-size:var(--space-large);--vui-switch-track-radius:var(--radius-small);--vui-switch-track-background:var(--global-contrast);--vui-switch-thumb-background:var(--base-1);--vui-switch-thumb-size:calc(var(--space-large) - var(--space-x-small));--vui-switch-thumb-inset:var(--space-2x-small);position:relative;appearance:none;border:0;box-shadow:none;inline-size:calc((var(--vui-switch-thumb-size) * 2) + var(--vui-switch-thumb-inset) * 2);block-size:var(--vui-switch-track-block-size);background:var(--vui-switch-track-background);border-radius:var(--vui-switch-track-radius);&[data-size=small]{--vui-switch-track-radius:var(--radius-x-small);--vui-switch-track-block-size:var(--space-medium);--vui-switch-thumb-size:calc(var(--space-medium) - var(--space-x-small))}&[data-checked]:not([data-disabled]){--vui-switch-track-background:var(--global-primary);--vui-switch-thumb-background:contrast-color(var(--global-primary))}&[data-invalid]:not([data-disabled]){box-shadow:inset 0 0 0 1px var(--highlight-red);outline-color:oklab(from var(--highlight-red) l a b/.5)}&[data-disabled]{--vui-switch-track-background:var(--global-disabled-background);--vui-switch-thumb-background:var(--global-disabled-foreground);box-shadow:none;cursor:not-allowed}}.viraui__switch-module__Thumb_ldwJw{--__switch-thumb-radius:calc(var(--vui-switch-track-radius) - var(--vui-switch-thumb-inset));position:absolute;inset-block:var(--vui-switch-thumb-inset);inset-inline-start:var(--vui-switch-thumb-inset);background:var(--vui-switch-thumb-background);inline-size:var(--vui-switch-thumb-size);block-size:var(--vui-switch-thumb-size);border-radius:var(--__switch-thumb-radius);transition:translate var(--easing-entrance) var(--duration-fast);box-shadow:0 0 1px 1px var(--global-contrast);.viraui__switch-module__SwitchRoot_Zv9An[data-checked]>&{translate:100% 0;box-shadow:none}.viraui__switch-module__SwitchRoot_Zv9An[data-checked]:dir(rtl)>&{translate:-100% 0}}}