@viraui/react 0.0.26 → 0.0.27

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 (85) hide show
  1. package/dist/catalog.json +102 -84
  2. package/dist/components/accordion/accordion-item.js +1 -1
  3. package/dist/components/accordion/accordion.module.js +14 -7
  4. package/dist/components/avatar/avatar.module.js +8 -4
  5. package/dist/components/avatar-group/avatar-group.js +1 -1
  6. package/dist/components/avatar-group/avatar-group.module.js +12 -6
  7. package/dist/components/basic-input/basic-input.module.js +4 -2
  8. package/dist/components/basic-input/field-label.module.js +4 -2
  9. package/dist/components/bleed/bleed.module.js +4 -2
  10. package/dist/components/button/button.css +1 -1
  11. package/dist/components/button/button.js +1 -1
  12. package/dist/components/button/button.module.js +8 -4
  13. package/dist/components/checkbox/checkbox.js +1 -1
  14. package/dist/components/checkbox/checkbox.module.js +16 -8
  15. package/dist/components/chip/chip.module.js +10 -5
  16. package/dist/components/clamp-text/clamp-text.module.js +4 -2
  17. package/dist/components/dialog/dialog-sheet.js +2 -2
  18. package/dist/components/dialog/dialog.module.js +24 -12
  19. package/dist/components/elevator/elevator.js +2 -2
  20. package/dist/components/fieldset/fieldset.js +1 -1
  21. package/dist/components/icon/icon.module.js +4 -2
  22. package/dist/components/index.d.ts +18 -15
  23. package/dist/components/linear-progress/linear-progress.js +1 -1
  24. package/dist/components/linear-progress/linear-progress.module.js +8 -4
  25. package/dist/components/masonry/masonry.module.js +6 -3
  26. package/dist/components/meter/meter.js +1 -1
  27. package/dist/components/meter/meter.module.js +8 -4
  28. package/dist/components/popover/popover-sheet.js +2 -2
  29. package/dist/components/popover/popover.module.js +10 -5
  30. package/dist/components/progressive-blur/progressive-blur.module.js +6 -3
  31. package/dist/components/radio/radio.js +1 -1
  32. package/dist/components/radio/radio.module.js +8 -4
  33. package/dist/components/select/select-group.js +1 -1
  34. package/dist/components/select/select-option.js +2 -2
  35. package/dist/components/select/select.js +4 -4
  36. package/dist/components/select/select.module.js +36 -18
  37. package/dist/components/separator/separator.module.js +4 -2
  38. package/dist/components/shimmer/shimmer.module.js +4 -2
  39. package/dist/components/skeleton/skeleton.module.js +4 -2
  40. package/dist/components/slider/slider.js +1 -1
  41. package/dist/components/slider/slider.module.js +20 -10
  42. package/dist/components/spinner/spinner.module.js +6 -3
  43. package/dist/components/stack/stack.module.js +4 -2
  44. package/dist/components/static-noise/static-noise.module.js +6 -3
  45. package/dist/components/surface/surface-radius-context.js +1 -1
  46. package/dist/components/surface/surface.module.js +4 -2
  47. package/dist/components/switch/switch.js +1 -1
  48. package/dist/components/switch/switch.module.js +10 -5
  49. package/dist/components/tabs/tabs.module.js +16 -8
  50. package/dist/components/text/text.module.js +4 -2
  51. package/dist/components/textarea/textarea.js +1 -1
  52. package/dist/components/textarea/textarea.module.js +10 -5
  53. package/dist/components/textfield/textfield.js +1 -1
  54. package/dist/components/textfield/textfield.module.js +14 -7
  55. package/dist/components/title/title.module.js +4 -2
  56. package/dist/components/toast/toast-banner.js +1 -1
  57. package/dist/components/toast/toast.css +1 -1
  58. package/dist/components/toast/toast.module.js +8 -4
  59. package/dist/components/toggle-button/index.d.ts +2 -0
  60. package/dist/components/toggle-button/toggle-button.d.ts +39 -0
  61. package/dist/components/toggle-button/toggle-button.guide.json +25 -0
  62. package/dist/components/toggle-button/toggle-button.js +25 -0
  63. package/dist/components/toggle-group/index.d.ts +2 -0
  64. package/dist/components/toggle-group/toggle-group.d.ts +11 -0
  65. package/dist/components/toggle-group/toggle-group.guide.json +26 -0
  66. package/dist/components/toggle-group/toggle-group.js +15 -0
  67. package/dist/components/tooltip/index.d.ts +6 -0
  68. package/dist/components/tooltip/tooltip-content.d.ts +15 -0
  69. package/dist/components/tooltip/tooltip-content.js +32 -0
  70. package/dist/components/tooltip/tooltip.css +1 -0
  71. package/dist/components/tooltip/tooltip.d.ts +13 -0
  72. package/dist/components/tooltip/tooltip.guide.json +25 -0
  73. package/dist/components/tooltip/tooltip.js +20 -0
  74. package/dist/components/tooltip/tooltip.module.js +11 -0
  75. package/dist/components/typewriter/index.d.ts +3 -0
  76. package/dist/components/typewriter/typewriter.css +1 -0
  77. package/dist/components/typewriter/typewriter.d.ts +68 -0
  78. package/dist/components/typewriter/typewriter.guide.json +39 -0
  79. package/dist/components/typewriter/typewriter.js +105 -0
  80. package/dist/components/typewriter/typewriter.module.js +18 -0
  81. package/dist/components/typewriter/typewriter.utils.d.ts +23 -0
  82. package/dist/components/typewriter/typewriter.utils.js +100 -0
  83. package/dist/index.js +22 -17
  84. package/dist/preflight.css +1 -1
  85. package/package.json +6 -6
@@ -0,0 +1,100 @@
1
+ var resolveTextsKey = (texts, children) => {
2
+ if (texts?.length) return texts.join("\0");
3
+ if (typeof children === "string") return children;
4
+ return "";
5
+ };
6
+ var splitTextsKey = (textsKey) => textsKey ? textsKey.split("\0") : [];
7
+ var graphemeSegmenterCache;
8
+ var getGraphemeSegmenter = () => {
9
+ if (graphemeSegmenterCache !== void 0) return graphemeSegmenterCache;
10
+ graphemeSegmenterCache = typeof Intl !== "undefined" && typeof Intl.Segmenter === "function" ? new Intl.Segmenter(void 0, { granularity: "grapheme" }) : null;
11
+ return graphemeSegmenterCache;
12
+ };
13
+ var splitGraphemes = (text) => {
14
+ if (!text) return [];
15
+ const segmenter = getGraphemeSegmenter();
16
+ if (segmenter) return [...segmenter.segment(text)].map((segment) => segment.segment);
17
+ return [...text];
18
+ };
19
+ var commonPrefixLength = (previous, next) => {
20
+ const limit = Math.min(previous.length, next.length);
21
+ let index = 0;
22
+ while (index < limit && previous[index] === next[index]) index += 1;
23
+ return index;
24
+ };
25
+ var joinGraphemes = (graphemes, count) => graphemes.slice(0, count).join("");
26
+ var delay = (milliseconds, signal) => new Promise((resolve, reject) => {
27
+ if (signal.aborted) {
28
+ reject(new DOMException("Aborted", "AbortError"));
29
+ return;
30
+ }
31
+ let timeoutId;
32
+ const onAbort = () => {
33
+ window.clearTimeout(timeoutId);
34
+ reject(new DOMException("Aborted", "AbortError"));
35
+ };
36
+ timeoutId = window.setTimeout(() => {
37
+ signal.removeEventListener("abort", onAbort);
38
+ resolve();
39
+ }, milliseconds);
40
+ signal.addEventListener("abort", onAbort, { once: true });
41
+ });
42
+ var runTypewriterAnimation = async ({ texts, loop, typeDelay, deleteDelay, pause, delay: initialDelay, reducedMotion, onPhraseComplete, signal, ...nodes }) => {
43
+ if (texts.length === 0) return;
44
+ const display = { node: nodes.textNode };
45
+ const ghost = nodes.ghostTextNode ? { node: nodes.ghostTextNode } : null;
46
+ const writeDisplayText = (value) => {
47
+ display.node.data = value;
48
+ };
49
+ const writeGhostText = (value) => {
50
+ if (ghost) ghost.node.data = value;
51
+ };
52
+ const setGhostText = (text) => {
53
+ writeGhostText(text);
54
+ };
55
+ const typeSuffix = async (graphemes, fromIndex) => {
56
+ for (let graphemeIndex = fromIndex + 1; graphemeIndex <= graphemes.length; graphemeIndex += 1) {
57
+ await delay(typeDelay, signal);
58
+ writeDisplayText(joinGraphemes(graphemes, graphemeIndex));
59
+ }
60
+ };
61
+ const deleteSuffix = async (graphemes, keepCount) => {
62
+ for (let graphemeIndex = graphemes.length - 1; graphemeIndex >= keepCount; graphemeIndex -= 1) {
63
+ await delay(deleteDelay, signal);
64
+ writeDisplayText(joinGraphemes(graphemes, graphemeIndex));
65
+ }
66
+ };
67
+ const getUpcomingGraphemes = (phraseIndex) => {
68
+ return splitGraphemes(texts[loop ? (phraseIndex + 1) % texts.length : phraseIndex + 1] ?? "");
69
+ };
70
+ try {
71
+ if (reducedMotion) {
72
+ const finalText = texts.at(-1) ?? "";
73
+ setGhostText(finalText);
74
+ writeDisplayText(finalText);
75
+ onPhraseComplete(finalText);
76
+ return;
77
+ }
78
+ await delay(initialDelay, signal);
79
+ let currentGraphemes = [];
80
+ do
81
+ for (let phraseIndex = 0; phraseIndex < texts.length; phraseIndex += 1) {
82
+ const text = texts[phraseIndex] ?? "";
83
+ const phraseGraphemes = splitGraphemes(text);
84
+ const isLastPhrase = phraseIndex === texts.length - 1;
85
+ setGhostText(text);
86
+ await typeSuffix(phraseGraphemes, commonPrefixLength(currentGraphemes, phraseGraphemes) - 1);
87
+ currentGraphemes = phraseGraphemes;
88
+ onPhraseComplete(text);
89
+ if (!loop && isLastPhrase) return;
90
+ await delay(pause, signal);
91
+ const upcomingGraphemes = getUpcomingGraphemes(phraseIndex);
92
+ const keepCount = commonPrefixLength(currentGraphemes, upcomingGraphemes);
93
+ await deleteSuffix(currentGraphemes, keepCount);
94
+ currentGraphemes = currentGraphemes.slice(0, keepCount);
95
+ }
96
+ while (loop);
97
+ } catch {}
98
+ };
99
+ //#endregion
100
+ export { commonPrefixLength, resolveTextsKey, runTypewriterAnimation, splitGraphemes, splitTextsKey };
package/dist/index.js CHANGED
@@ -2,45 +2,50 @@ import { Accordion } from "./components/accordion/accordion.js";
2
2
  import { Avatar } from "./components/avatar/avatar.js";
3
3
  import { AvatarGroup } from "./components/avatar-group/avatar-group.js";
4
4
  import { Bleed } from "./components/bleed/bleed.js";
5
+ import { Spinner } from "./components/spinner/spinner.js";
6
+ import { Button } from "./components/button/button.js";
7
+ import { Text } from "./components/text/text.js";
8
+ import { Checkbox } from "./components/checkbox/checkbox.js";
9
+ import { CheckboxGroup } from "./components/checkbox/checkbox-group.js";
5
10
  import { Stack } from "./components/stack/stack.js";
6
11
  import { Chip } from "./components/chip/chip.js";
12
+ import { ClampText } from "./components/clamp-text/clamp-text.js";
7
13
  import { DialogClose } from "./components/dialog/dialog-close.js";
8
14
  import { DialogIndent } from "./components/dialog/dialog-indent.js";
9
15
  import { DialogIndentBackground } from "./components/dialog/dialog-indent-background.js";
10
16
  import { DialogSheet } from "./components/dialog/dialog-sheet.js";
11
17
  import { DialogTrigger } from "./components/dialog/dialog-trigger.js";
12
18
  import { Dialog } from "./components/dialog/dialog.js";
13
- import { ClampText } from "./components/clamp-text/clamp-text.js";
14
19
  import { ELEVATION_DEFAULTS } from "./core/elevation/elevation-types.js";
15
20
  import { getElevationProps } from "./core/elevation/get-elevation-props.js";
16
21
  import { Elevator } from "./components/elevator/elevator.js";
17
- import { Spinner } from "./components/spinner/spinner.js";
18
- import { Button } from "./components/button/button.js";
22
+ import { Fieldset } from "./components/fieldset/fieldset.js";
23
+ import { Icon } from "./components/icon/icon.js";
19
24
  import { IconButton } from "./components/icon-button/icon-button.js";
20
- import { Text } from "./components/text/text.js";
21
25
  import { LinearProgress } from "./components/linear-progress/linear-progress.js";
22
- import { Meter } from "./components/meter/meter.js";
23
26
  import { Masonry } from "./components/masonry/masonry.js";
27
+ import { Meter } from "./components/meter/meter.js";
24
28
  import { PopoverSheet } from "./components/popover/popover-sheet.js";
25
29
  import { Popover, PopoverClose, PopoverDescription, PopoverTitle, PopoverTrigger } from "./components/popover/popover.js";
26
- import { Textfield } from "./components/textfield/textfield.js";
27
- import { Textarea } from "./components/textarea/textarea.js";
28
- import { Slider } from "./components/slider/slider.js";
29
- import { Switch } from "./components/switch/switch.js";
30
- import { Checkbox } from "./components/checkbox/checkbox.js";
31
- import { CheckboxGroup } from "./components/checkbox/checkbox-group.js";
32
- import { Fieldset } from "./components/fieldset/fieldset.js";
30
+ import { ProgressiveBlur } from "./components/progressive-blur/progressive-blur.js";
33
31
  import { Radio } from "./components/radio/radio.js";
34
32
  import { RadioGroup } from "./components/radio/radio-group.js";
35
33
  import { Select } from "./components/select/select.js";
36
34
  import { Separator } from "./components/separator/separator.js";
37
35
  import { Shimmer } from "./components/shimmer/shimmer.js";
38
- import { Icon } from "./components/icon/icon.js";
39
36
  import { Skeleton } from "./components/skeleton/skeleton.js";
37
+ import { Slider } from "./components/slider/slider.js";
38
+ import { StaticNoise } from "./components/static-noise/static-noise.js";
40
39
  import { Surface } from "./components/surface/surface.js";
40
+ import { Switch } from "./components/switch/switch.js";
41
41
  import { Tabs } from "./components/tabs/tabs.js";
42
- import { Toast } from "./components/toast/toast.js";
43
- import { StaticNoise } from "./components/static-noise/static-noise.js";
44
- import { ProgressiveBlur } from "./components/progressive-blur/progressive-blur.js";
42
+ import { Textarea } from "./components/textarea/textarea.js";
43
+ import { Textfield } from "./components/textfield/textfield.js";
45
44
  import { Title } from "./components/title/title.js";
46
- export { Accordion, Avatar, AvatarGroup, Bleed, Button, Checkbox, CheckboxGroup, Chip, ClampText, Dialog, DialogClose, DialogIndent, DialogIndentBackground, DialogSheet, DialogTrigger, ELEVATION_DEFAULTS, Elevator, Fieldset, Icon, IconButton, LinearProgress, Masonry, Meter, Popover, PopoverClose, PopoverDescription, PopoverSheet, PopoverTitle, PopoverTrigger, ProgressiveBlur, Radio, RadioGroup, Select, Separator, Shimmer, Skeleton, Slider, Spinner, Stack, StaticNoise, Surface, Switch, Tabs, Text, Textarea, Textfield, Title, Toast, getElevationProps };
45
+ import { Toast } from "./components/toast/toast.js";
46
+ import { ToggleButton } from "./components/toggle-button/toggle-button.js";
47
+ import { ToggleGroup } from "./components/toggle-group/toggle-group.js";
48
+ import { Typewriter } from "./components/typewriter/typewriter.js";
49
+ import { TooltipContent } from "./components/tooltip/tooltip-content.js";
50
+ import { Tooltip, TooltipProvider, TooltipTrigger } from "./components/tooltip/tooltip.js";
51
+ export { Accordion, Avatar, AvatarGroup, Bleed, Button, Checkbox, CheckboxGroup, Chip, ClampText, Dialog, DialogClose, DialogIndent, DialogIndentBackground, DialogSheet, DialogTrigger, ELEVATION_DEFAULTS, Elevator, Fieldset, Icon, IconButton, LinearProgress, Masonry, Meter, Popover, PopoverClose, PopoverDescription, PopoverSheet, PopoverTitle, PopoverTrigger, ProgressiveBlur, Radio, RadioGroup, Select, Separator, Shimmer, Skeleton, Slider, Spinner, Stack, StaticNoise, Surface, Switch, Tabs, Text, Textarea, Textfield, Title, Toast, ToggleButton, ToggleGroup, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Typewriter, getElevationProps };
@@ -1 +1 @@
1
- @layer viraui.preflight;@layer viraui.preflight{@property --scrollbar-thumb{syntax:"<color>";initial-value:#0000;inherits:true}@property --scrollbar-track{syntax:"<color>";initial-value:#0000;inherits:true}@property --outline-offset{syntax:"<length>";initial-value:2px;inherits:true}@property --outline-color{syntax:"<color>";initial-value:currentcolor;inherits:true}@property --outline{syntax:"*";initial-value:2px solid currentcolor;inherits:true}@property --is-light-theme{syntax:"<color>";initial-value:#000;inherits:true}}@layer viraui.preflight{html{--scrollbar-thumb:oklab(from var(--global-contrast) l a b/0.3);--scrollbar-track:#0000;--outline-offset:2px;--outline-color:var(--global-outline);--outline:2px solid var(--outline-color);--is-light-theme:contrast-color(var(--global-background));font-size:100%;box-sizing:border-box;line-height:1.5;background-color:var(--global-background);color:var(--global-foreground);container:root/normal}*{@container root not style(--corner-shape-enable: initial){corner-shape:var(--corner-shape-squircle)}}*,:after,:before{margin:0;box-sizing:inherit;scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}:focus-visible{outline:var(--outline);outline-offset:var(--outline-offset)}body{color:var(--global-foreground);margin:0;font-size:var(--font-scale-body-medium);font-optical-sizing:auto;font-family:var(--font-family-body),system-ui,sans-serif;font-variation-settings:"wght" 400;font-variant-numeric:tabular-nums}::selection{background-color:var(--global-primary);color:contrast-color(var(--global-primary));text-shadow:none}img{display:block;inline-size:100%;max-inline-size:100%}svg:not([fill]){fill:currentcolor}ol ul,ul ol{font-size:medium}table{border-spacing:0;inline-size:100%;border-collapse:collapse}table[data-layout-fixed]{table-layout:fixed}table thead{box-shadow:inset 0 -3px 0 var(--base-2)}table[data-table-separators] tr+tr{border-top:1px solid var(--base-2)}table th{white-space:nowrap;font-variation-settings:"wght" 800}table :is(td,th){border:none;text-align:left;font-size:medium;padding:calc(var(--space-x-small) + var(--space-2x-small)) var(--space-small)}fieldset{padding:0;margin:0;border:0}[data-elevation]{--shadow-direction:1;--shadow-opacity-factor:0.16;--extra-shadow:0 0 0 1px #0000;--shadow-color:oklab(0 0 0);transition-property:box-shadow;transition-duration:var(--elevation-transition-duration,.16s);transition-timing-function:var(--elevation-transition-easing,ease)}}@layer viraui.preflight{[data-elevation]:where([data-elevation-direction=bottom],[data-elevation-direction=right]){--shadow-direction:1}[data-elevation]:where([data-elevation-direction=top],[data-elevation-direction=left]){--shadow-direction:-1}[data-elevation-hover="0"]:hover,[data-elevation="0"]{--y1:0px;--x1:0px;box-shadow:calc(var(--x1) * var(--shadow-direction)) calc(var(--y1) * var(--shadow-direction)) 0 oklch(from var(--shadow-color) l c h/var(--shadow-opacity-factor)),0 0 0 color-mix(in oklch,var(--shadow-color),#0000 calc(94% - var(--shadow-opacity-factor))),0 0 0 oklch(from var(--shadow-color) l c h/var(--shadow-opacity-factor)),var(--extra-shadow)}[data-elevation-hover="1"]:hover,[data-elevation-hover="2"]:hover,[data-elevation-hover="3"]:hover,[data-elevation-hover="4"]:hover,[data-elevation="1"],[data-elevation="2"],[data-elevation="3"],[data-elevation="4"]{box-shadow:calc(var(--x1) * var(--shadow-direction)) calc(var(--y1) * var(--shadow-direction)) var(--shadow-blur-1) oklab(from var(--shadow-color) l a b/.1),calc(var(--x2) * var(--shadow-direction)) calc(var(--y2) * var(--shadow-direction)) var(--shadow-blur-2) oklab(from var(--shadow-color) l a b/.09),calc(var(--x3) * var(--shadow-direction)) calc(var(--y3) * var(--shadow-direction)) var(--shadow-blur-3) oklab(from var(--shadow-color) l a b/.05),calc(var(--x4) * var(--shadow-direction)) calc(var(--y4) * var(--shadow-direction)) var(--shadow-blur-4) oklab(from var(--shadow-color) l a b/.01),var(--extra-shadow)}[data-elevation-hover="1"]:hover,[data-elevation="1"]{--y1:0px;--y2:2px;--y3:4px;--y4:7px;--x1:0px;--x2:0px;--x3:0px;--x4:0px;--shadow-blur-1:1px;--shadow-blur-2:2px;--shadow-blur-3:2px;--shadow-blur-4:3px}[data-elevation-hover="1"]:where([data-elevation-direction=left],[data-elevation-direction=right]):hover,[data-elevation="1"]:where([data-elevation-direction=left],[data-elevation-direction=right]){--y1:0px;--y2:0px;--y3:0px;--y4:0px;--x1:0px;--x2:2px;--x3:4px;--x4:7px}[data-elevation-hover="2"]:hover,[data-elevation="2"]{--y1:1px;--y2:5px;--y3:11px;--y4:19px;--x1:0px;--x2:0px;--x3:0px;--x4:0px;--shadow-blur-1:3px;--shadow-blur-2:5px;--shadow-blur-3:6px;--shadow-blur-4:8px}[data-elevation-hover="2"]:where([data-elevation-direction=top],[data-elevation-direction=left]):hover,[data-elevation="2"]:where([data-elevation-direction=top],[data-elevation-direction=left]){--shadow-blur-3:7px}[data-elevation-hover="2"]:where([data-elevation-direction=left],[data-elevation-direction=right]):hover,[data-elevation="2"]:where([data-elevation-direction=left],[data-elevation-direction=right]){--y1:0px;--y2:0px;--y3:0px;--y4:0px;--x1:1px;--x2:5px;--x3:11px;--x4:19px}[data-elevation-hover="2"]:where([data-elevation-direction=right]):hover,[data-elevation="2"]:where([data-elevation-direction=right]){--shadow-blur-3:6px}[data-elevation-hover="3"]:hover,[data-elevation="3"]{--y1:2px;--y2:7px;--y3:16px;--y4:29px;--x1:0px;--x2:0px;--x3:0px;--x4:0px;--shadow-blur-1:4px;--shadow-blur-2:7px;--shadow-blur-3:10px;--shadow-blur-4:12px}[data-elevation-hover="3"]:where([data-elevation-direction=left],[data-elevation-direction=right]):hover,[data-elevation="3"]:where([data-elevation-direction=left],[data-elevation-direction=right]){--y1:0px;--y2:0px;--y3:0px;--y4:0px;--x1:2px;--x2:7px;--x3:16px;--x4:29px}[data-elevation-hover="3"]:where([data-elevation-direction=right]):hover,[data-elevation="3"]:where([data-elevation-direction=right]){--x2:10px;--x3:22px;--x4:39px;--shadow-blur-1:5px;--shadow-blur-2:10px;--shadow-blur-3:13px;--shadow-blur-4:15px}[data-elevation-hover="4"]:hover,[data-elevation="4"]{--y1:4px;--y2:14px;--y3:33px;--y4:58px;--x1:0px;--x2:0px;--x3:0px;--x4:0px;--shadow-blur-1:8px;--shadow-blur-2:14px;--shadow-blur-3:20px;--shadow-blur-4:23px}[data-elevation-hover="4"]:where([data-elevation-direction=top]):hover,[data-elevation="4"]:where([data-elevation-direction=top]){--y2:15px;--shadow-blur-2:15px}[data-elevation-hover="4"]:where([data-elevation-direction=left]):hover,[data-elevation="4"]:where([data-elevation-direction=left]){--y1:0px;--y2:0px;--y3:0px;--y4:0px;--x1:4px;--x2:15px;--x3:33px;--x4:58px;--shadow-blur-2:15px}[data-elevation-hover="4"]:where([data-elevation-direction=right]):hover,[data-elevation="4"]:where([data-elevation-direction=right]){--y1:0px;--y2:0px;--y3:0px;--y4:0px;--x1:4px;--x2:14px;--x3:33px;--x4:58px}}@layer viraui.preflight{[data-grow=false]{--vira-flex-grow:0;flex-grow:0}[data-shrink=false]{--vira-flex-shrink:0;flex-shrink:0}}@layer viraui.preflight{:where(p){line-height:1.5;min-block-size:.01vh;font-size:var(--font-scale-body-medium)}small{font-size:.7em}b,strong{font-variation-settings:"wght" 700}:where(a:any-link):not([data-no-link-style]){text-decoration:none;color:var(--global-interactive-text);word-break:break-word;&:not([class]){background:linear-gradient(currentcolor,currentcolor) no-repeat 0 100%;background-size:0 1px;transition:background-size var(--duration-fast) var(--easing-entrance);&:focus,&:hover{background-size:100% 1px}}}del{padding:0 .4em;margin:0 .2em;background-color:oklab(from var(--highlight-red) l a b/12%);color:var(--highlight-red);box-shadow:0 0 0 1px oklab(from var(--highlight-red) l a b/50%);border-radius:var(--radius-small)}ins{background-color:oklab(from var(--highlight-green) l a b/15%);color:var(--highlight-green);box-shadow:0 0 0 1px oklab(from var(--highlight-green) l a b/50%)}ins,mark{padding:0 .4em;margin:0 .2em;text-decoration:none;border-radius:var(--radius-small)}mark{background-color:oklab(from var(--highlight-yellow) l a b/15%);color:var(--highlight-yellow);box-shadow:0 0 0 1px oklab(from var(--highlight-yellow) l a b/50%)}address{font-style:normal;line-height:inherit}dt{font-variation-settings:"wght" 600}dd{margin:0;padding:0}ul{font-size:medium;padding-left:1rem;& li::marker{font-size:inherit;text-align:right;font-variation-settings:"wght" 400;min-inline-size:var(--space-x-large);color:oklab(from currentColor l a b/80%)}}ol{font-size:medium;& li::marker{font-size:inherit;font-variation-settings:"wght" 400;min-inline-size:var(--space-x-large);font-variant-numeric:tabular-nums;white-space:nowrap;color:oklab(from currentColor l a b/80%)}}kbd{padding:.2em .4em;border-radius:var(--radius-small);font-variation-settings:"wght" 600;box-shadow:var(--global-contrast);background:var(--global-contrast)}abbr{text-decoration:underline dashed var(--global-primary)}label,legend{font-size:inherit}code{background-color:var(--global-contrast);border-radius:var(--radius-small);box-shadow:var(--global-contrast);padding:.2em .4em;font-size:1em;font-family:var(--font-family-mono);vertical-align:top}pre code{box-shadow:none}s{text-decoration:line-through;color:var(--global-disabled-foreground);text-decoration-color:oklab(from var(--global-foreground) l a b/50%)}:root{color-scheme:light dark}[data-theme=dark]{color-scheme:dark}[data-theme=light]{color-scheme:light}}@layer viraui.preflight{[data-theme=inverted]{@container root style(--is-light-theme: black){color-scheme:dark}@container root style(--is-light-theme: white){color-scheme:light}}}@layer viraui.preflight{@container root not style(--vibrancy-enable: initial){[data-vibrant]{backdrop-filter:brightness(var(--vibrancy-brightness)) blur(calc(var(--vibrancy-blur) * 1px)) saturate(150%);@container root style(--is-light-theme: black){backdrop-filter:brightness(100%) blur(calc(var(--vibrancy-blur) * 1px)) saturate(150%)}}}}
1
+ @layer viraui.preflight;@layer viraui.preflight{@property --scrollbar-thumb{syntax:"<color>";initial-value:#0000;inherits:true}@property --scrollbar-track{syntax:"<color>";initial-value:#0000;inherits:true}@property --outline-offset{syntax:"<length>";initial-value:2px;inherits:true}@property --outline-color{syntax:"<color>";initial-value:currentcolor;inherits:true}@property --outline{syntax:"*";initial-value:2px solid currentcolor;inherits:true}@property --is-light-theme{syntax:"<color>";initial-value:#000;inherits:true}}@layer viraui.preflight{html{--scrollbar-thumb:oklab(from var(--global-contrast) l a b/0.3);--scrollbar-track:#0000;--outline-offset:2px;--outline-color:var(--global-outline);--outline:2px solid var(--outline-color);--is-light-theme:contrast-color(var(--global-background));font-size:100%;box-sizing:border-box;line-height:1.5;background-color:var(--global-background);color:var(--global-foreground);container:root/normal}*{@container root not style(--corner-shape-enable: initial){corner-shape:var(--corner-shape-squircle)}}*,:after,:before{margin:0;box-sizing:inherit;scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}:focus-visible{outline:var(--outline);outline-offset:var(--outline-offset)}body{color:var(--global-foreground);margin:0;font-size:var(--font-scale-body-medium);font-optical-sizing:auto;font-family:var(--font-family-body),system-ui,sans-serif;font-variation-settings:"wght" 400;font-variant-numeric:tabular-nums}::selection{background-color:var(--global-primary);color:contrast-color(var(--global-primary));text-shadow:none}img{display:block;inline-size:100%;max-inline-size:100%}svg:not([fill]){fill:currentcolor}ol ul,ul ol{font-size:medium}table{border-spacing:0;inline-size:100%;border-collapse:collapse}table[data-layout-fixed]{table-layout:fixed}table thead{box-shadow:inset 0 -3px 0 var(--base-2)}table[data-table-separators] tr+tr{border-top:1px solid var(--base-2)}table th{white-space:nowrap;font-variation-settings:"wght" 800}table :is(td,th){border:none;text-align:left;font-size:medium;padding:calc(var(--space-x-small) + var(--space-2x-small)) var(--space-small)}button,fieldset{padding:0;margin:0;border:0}button{appearance:none;background:none;font-size:inherit;font-family:inherit;display:inline-flex;cursor:pointer;color:inherit}[data-elevation]{--shadow-direction:1;--shadow-opacity-factor:0.16;--extra-shadow:0 0 0 1px #0000;--shadow-color:oklab(0 0 0);transition-property:box-shadow;transition-duration:var(--elevation-transition-duration,.16s);transition-timing-function:var(--elevation-transition-easing,ease)}}@layer viraui.preflight{[data-elevation]:where([data-elevation-direction=bottom],[data-elevation-direction=right]){--shadow-direction:1}[data-elevation]:where([data-elevation-direction=top],[data-elevation-direction=left]){--shadow-direction:-1}[data-elevation-hover="0"]:hover,[data-elevation="0"]{--y1:0px;--x1:0px;box-shadow:calc(var(--x1) * var(--shadow-direction)) calc(var(--y1) * var(--shadow-direction)) 0 oklch(from var(--shadow-color) l c h/var(--shadow-opacity-factor)),0 0 0 color-mix(in oklch,var(--shadow-color),#0000 calc(94% - var(--shadow-opacity-factor))),0 0 0 oklch(from var(--shadow-color) l c h/var(--shadow-opacity-factor)),var(--extra-shadow)}[data-elevation-hover="1"]:hover,[data-elevation-hover="2"]:hover,[data-elevation-hover="3"]:hover,[data-elevation-hover="4"]:hover,[data-elevation="1"],[data-elevation="2"],[data-elevation="3"],[data-elevation="4"]{box-shadow:calc(var(--x1) * var(--shadow-direction)) calc(var(--y1) * var(--shadow-direction)) var(--shadow-blur-1) oklab(from var(--shadow-color) l a b/.1),calc(var(--x2) * var(--shadow-direction)) calc(var(--y2) * var(--shadow-direction)) var(--shadow-blur-2) oklab(from var(--shadow-color) l a b/.09),calc(var(--x3) * var(--shadow-direction)) calc(var(--y3) * var(--shadow-direction)) var(--shadow-blur-3) oklab(from var(--shadow-color) l a b/.05),calc(var(--x4) * var(--shadow-direction)) calc(var(--y4) * var(--shadow-direction)) var(--shadow-blur-4) oklab(from var(--shadow-color) l a b/.01),var(--extra-shadow)}[data-elevation-hover="1"]:hover,[data-elevation="1"]{--y1:0px;--y2:2px;--y3:4px;--y4:7px;--x1:0px;--x2:0px;--x3:0px;--x4:0px;--shadow-blur-1:1px;--shadow-blur-2:2px;--shadow-blur-3:2px;--shadow-blur-4:3px}[data-elevation-hover="1"]:where([data-elevation-direction=left],[data-elevation-direction=right]):hover,[data-elevation="1"]:where([data-elevation-direction=left],[data-elevation-direction=right]){--y1:0px;--y2:0px;--y3:0px;--y4:0px;--x1:0px;--x2:2px;--x3:4px;--x4:7px}[data-elevation-hover="2"]:hover,[data-elevation="2"]{--y1:1px;--y2:5px;--y3:11px;--y4:19px;--x1:0px;--x2:0px;--x3:0px;--x4:0px;--shadow-blur-1:3px;--shadow-blur-2:5px;--shadow-blur-3:6px;--shadow-blur-4:8px}[data-elevation-hover="2"]:where([data-elevation-direction=top],[data-elevation-direction=left]):hover,[data-elevation="2"]:where([data-elevation-direction=top],[data-elevation-direction=left]){--shadow-blur-3:7px}[data-elevation-hover="2"]:where([data-elevation-direction=left],[data-elevation-direction=right]):hover,[data-elevation="2"]:where([data-elevation-direction=left],[data-elevation-direction=right]){--y1:0px;--y2:0px;--y3:0px;--y4:0px;--x1:1px;--x2:5px;--x3:11px;--x4:19px}[data-elevation-hover="2"]:where([data-elevation-direction=right]):hover,[data-elevation="2"]:where([data-elevation-direction=right]){--shadow-blur-3:6px}[data-elevation-hover="3"]:hover,[data-elevation="3"]{--y1:2px;--y2:7px;--y3:16px;--y4:29px;--x1:0px;--x2:0px;--x3:0px;--x4:0px;--shadow-blur-1:4px;--shadow-blur-2:7px;--shadow-blur-3:10px;--shadow-blur-4:12px}[data-elevation-hover="3"]:where([data-elevation-direction=left],[data-elevation-direction=right]):hover,[data-elevation="3"]:where([data-elevation-direction=left],[data-elevation-direction=right]){--y1:0px;--y2:0px;--y3:0px;--y4:0px;--x1:2px;--x2:7px;--x3:16px;--x4:29px}[data-elevation-hover="3"]:where([data-elevation-direction=right]):hover,[data-elevation="3"]:where([data-elevation-direction=right]){--x2:10px;--x3:22px;--x4:39px;--shadow-blur-1:5px;--shadow-blur-2:10px;--shadow-blur-3:13px;--shadow-blur-4:15px}[data-elevation-hover="4"]:hover,[data-elevation="4"]{--y1:4px;--y2:14px;--y3:33px;--y4:58px;--x1:0px;--x2:0px;--x3:0px;--x4:0px;--shadow-blur-1:8px;--shadow-blur-2:14px;--shadow-blur-3:20px;--shadow-blur-4:23px}[data-elevation-hover="4"]:where([data-elevation-direction=top]):hover,[data-elevation="4"]:where([data-elevation-direction=top]){--y2:15px;--shadow-blur-2:15px}[data-elevation-hover="4"]:where([data-elevation-direction=left]):hover,[data-elevation="4"]:where([data-elevation-direction=left]){--y1:0px;--y2:0px;--y3:0px;--y4:0px;--x1:4px;--x2:15px;--x3:33px;--x4:58px;--shadow-blur-2:15px}[data-elevation-hover="4"]:where([data-elevation-direction=right]):hover,[data-elevation="4"]:where([data-elevation-direction=right]){--y1:0px;--y2:0px;--y3:0px;--y4:0px;--x1:4px;--x2:14px;--x3:33px;--x4:58px}}@layer viraui.preflight{[data-grow=false]{--vira-flex-grow:0;flex-grow:0}[data-shrink=false]{--vira-flex-shrink:0;flex-shrink:0}}@layer viraui.preflight{:where(p){line-height:1.5;min-block-size:.01vh;font-size:var(--font-scale-body-medium)}small{font-size:.7em}b,strong{font-variation-settings:"wght" 700}:where(a:any-link):not([data-no-link-style]){text-decoration:none;color:var(--global-interactive-text);word-break:break-word;&:not([class]){background:linear-gradient(currentcolor,currentcolor) no-repeat 0 100%;background-size:0 1px;transition:background-size var(--duration-fast) var(--easing-entrance);&:focus,&:hover{background-size:100% 1px}}}del{padding:0 .4em;margin:0 .2em;background-color:oklab(from var(--highlight-red) l a b/12%);color:var(--highlight-red);box-shadow:0 0 0 1px oklab(from var(--highlight-red) l a b/50%);border-radius:var(--radius-small)}ins{background-color:oklab(from var(--highlight-green) l a b/15%);color:var(--highlight-green);box-shadow:0 0 0 1px oklab(from var(--highlight-green) l a b/50%)}ins,mark{padding:0 .4em;margin:0 .2em;text-decoration:none;border-radius:var(--radius-small)}mark{background-color:oklab(from var(--highlight-yellow) l a b/15%);color:var(--highlight-yellow);box-shadow:0 0 0 1px oklab(from var(--highlight-yellow) l a b/50%)}address{font-style:normal;line-height:inherit}dt{font-variation-settings:"wght" 600}dd{margin:0;padding:0}ul{font-size:medium;padding-left:1rem;& li::marker{font-size:inherit;text-align:right;font-variation-settings:"wght" 400;min-inline-size:var(--space-x-large);color:oklab(from currentColor l a b/80%)}}ol{font-size:medium;& li::marker{font-size:inherit;font-variation-settings:"wght" 400;min-inline-size:var(--space-x-large);font-variant-numeric:tabular-nums;white-space:nowrap;color:oklab(from currentColor l a b/80%)}}kbd{padding:.2em .4em;border-radius:var(--radius-small);font-variation-settings:"wght" 600;box-shadow:var(--global-contrast);background:var(--global-contrast)}abbr{text-decoration:underline dashed var(--global-primary)}label,legend{font-size:inherit}code{background-color:var(--global-contrast);border-radius:var(--radius-small);box-shadow:var(--global-contrast);padding:.2em .4em;font-size:1em;font-family:var(--font-family-mono);vertical-align:top}pre code{box-shadow:none}s{text-decoration:line-through;color:var(--global-disabled-foreground);text-decoration-color:oklab(from var(--global-foreground) l a b/50%)}:root{color-scheme:light dark}[data-theme=dark]{color-scheme:dark}[data-theme=light]{color-scheme:light}}@layer viraui.preflight{[data-theme=inverted]{@container root style(--is-light-theme: black){color-scheme:dark}@container root style(--is-light-theme: white){color-scheme:light}}}@layer viraui.preflight{@container root not style(--vibrancy-enable: initial){[data-vibrant]{backdrop-filter:brightness(var(--vibrancy-brightness)) blur(calc(var(--vibrancy-blur) * 1px)) saturate(150%);@container root style(--is-light-theme: black){backdrop-filter:brightness(100%) blur(calc(var(--vibrancy-blur) * 1px)) saturate(150%)}}}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@viraui/react",
3
- "version": "0.0.26",
3
+ "version": "0.0.27",
4
4
  "private": false,
5
5
  "files": [
6
6
  "dist"
@@ -34,15 +34,15 @@
34
34
  },
35
35
  "devDependencies": {
36
36
  "@base-ui/react": "1.6.0",
37
- "postcss": "8.5.6",
37
+ "postcss": "8.5.19",
38
38
  "postcss-cli": "11.0.1",
39
39
  "react": ">=19.2.7",
40
40
  "react-dom": ">=19.2.7",
41
41
  "svger-cli": "4.0.8",
42
- "vite": "8.0.16",
43
- "vite-plugin-dts": "4.5.4",
44
- "vite-plugin-static-copy": "2.3.0",
45
- "@viraui/foundation": "0.0.26",
42
+ "unplugin-dts": "1.0.3",
43
+ "vite": "8.1.4",
44
+ "vite-plugin-static-copy": "4.1.1",
45
+ "@viraui/foundation": "0.0.27",
46
46
  "@viraui/icons": "0.0.15",
47
47
  "@viraui/postcss-config": "0.0.17",
48
48
  "@viraui/tsconfig": "0.0.17"