@viraui/react 0.0.24 → 0.0.26

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 (138) hide show
  1. package/dist/catalog.json +44 -2
  2. package/dist/components/accordion/accordion-item.d.ts +58 -0
  3. package/dist/components/accordion/accordion-item.js +65 -0
  4. package/dist/components/accordion/accordion.css +1 -0
  5. package/dist/components/accordion/accordion.d.ts +26 -0
  6. package/dist/components/accordion/accordion.guide.json +30 -0
  7. package/dist/components/accordion/accordion.js +22 -0
  8. package/dist/components/accordion/accordion.module.js +10 -0
  9. package/dist/components/accordion/index.d.ts +3 -0
  10. package/dist/components/avatar/avatar.css +1 -1
  11. package/dist/components/avatar/avatar.guide.json +25 -1
  12. package/dist/components/avatar/avatar.js +1 -1
  13. package/dist/components/avatar-group/avatar-group.css +7 -1
  14. package/dist/components/avatar-group/avatar-group.d.ts +0 -7
  15. package/dist/components/avatar-group/avatar-group.guide.json +27 -1
  16. package/dist/components/avatar-group/avatar-group.js +3 -10
  17. package/dist/components/basic-input/basic-input.css +1 -1
  18. package/dist/components/basic-input/basic-input.js +3 -3
  19. package/dist/components/basic-input/field-label.css +1 -1
  20. package/dist/components/bleed/bleed.css +1 -0
  21. package/dist/components/bleed/bleed.d.ts +26 -0
  22. package/dist/components/bleed/bleed.guide.json +39 -0
  23. package/dist/components/bleed/bleed.js +24 -0
  24. package/dist/components/bleed/bleed.module.js +3 -0
  25. package/dist/components/bleed/index.d.ts +2 -0
  26. package/dist/components/button/button.css +1 -1
  27. package/dist/components/button/button.guide.json +33 -3
  28. package/dist/components/button/button.js +1 -1
  29. package/dist/components/checkbox/checkbox-group.js +2 -2
  30. package/dist/components/checkbox/checkbox.css +1 -1
  31. package/dist/components/chip/chip.css +1 -1
  32. package/dist/components/chip/chip.guide.json +26 -1
  33. package/dist/components/clamp-text/clamp-text.css +1 -1
  34. package/dist/components/clamp-text/clamp-text.guide.json +15 -1
  35. package/dist/components/clamp-text/clamp-text.js +1 -1
  36. package/dist/components/dialog/dialog-close.js +2 -2
  37. package/dist/components/dialog/dialog-indent-background.js +2 -2
  38. package/dist/components/dialog/dialog-indent.js +2 -2
  39. package/dist/components/dialog/dialog-sheet.js +1 -1
  40. package/dist/components/dialog/dialog-trigger.js +2 -2
  41. package/dist/components/dialog/dialog.css +1 -1
  42. package/dist/components/dialog/dialog.d.ts +5 -4
  43. package/dist/components/dialog/dialog.guide.json +15 -1
  44. package/dist/components/dialog/dialog.js +4 -3
  45. package/dist/components/fieldset/fieldset.js +1 -2
  46. package/dist/components/icon-button/icon-button.js +2 -2
  47. package/dist/components/index.d.ts +7 -0
  48. package/dist/components/linear-progress/linear-progress.css +1 -1
  49. package/dist/components/linear-progress/linear-progress.guide.json +14 -1
  50. package/dist/components/masonry/masonry.css +1 -1
  51. package/dist/components/masonry/masonry.guide.json +42 -1
  52. package/dist/components/masonry/masonry.js +3 -3
  53. package/dist/components/meter/index.d.ts +2 -0
  54. package/dist/components/meter/meter.css +1 -0
  55. package/dist/components/meter/meter.d.ts +44 -0
  56. package/dist/components/meter/meter.guide.json +39 -0
  57. package/dist/components/meter/meter.js +59 -0
  58. package/dist/components/meter/meter.module.js +7 -0
  59. package/dist/components/popover/index.d.ts +4 -0
  60. package/dist/components/popover/popover-sheet.d.ts +65 -0
  61. package/dist/components/popover/popover-sheet.js +79 -0
  62. package/dist/components/popover/popover.css +1 -0
  63. package/dist/components/popover/popover.d.ts +74 -0
  64. package/dist/components/popover/popover.guide.json +28 -0
  65. package/dist/components/popover/popover.js +23 -0
  66. package/dist/components/popover/popover.module.js +8 -0
  67. package/dist/components/progressive-blur/progressive-blur.css +1 -1
  68. package/dist/components/progressive-blur/progressive-blur.guide.json +15 -1
  69. package/dist/components/progressive-blur/progressive-blur.js +1 -1
  70. package/dist/components/radio/radio-group.d.ts +1 -1
  71. package/dist/components/radio/radio-group.js +2 -2
  72. package/dist/components/radio/radio.css +1 -1
  73. package/dist/components/select/select-option.js +1 -1
  74. package/dist/components/select/select.css +1 -1
  75. package/dist/components/select/select.guide.json +26 -1
  76. package/dist/components/select/select.js +1 -0
  77. package/dist/components/separator/separator.css +1 -1
  78. package/dist/components/separator/separator.js +1 -1
  79. package/dist/components/shimmer/index.d.ts +2 -0
  80. package/dist/components/shimmer/shimmer.css +1 -0
  81. package/dist/components/shimmer/shimmer.d.ts +43 -0
  82. package/dist/components/shimmer/shimmer.guide.json +63 -0
  83. package/dist/components/shimmer/shimmer.js +25 -0
  84. package/dist/components/shimmer/shimmer.module.js +6 -0
  85. package/dist/components/skeleton/skeleton.css +1 -1
  86. package/dist/components/skeleton/skeleton.guide.json +50 -1
  87. package/dist/components/skeleton/skeleton.js +5 -5
  88. package/dist/components/slider/slider.css +1 -1
  89. package/dist/components/slider/slider.guide.json +20 -1
  90. package/dist/components/slider/slider.js +1 -1
  91. package/dist/components/spinner/spinner.css +1 -1
  92. package/dist/components/spinner/spinner.guide.json +15 -1
  93. package/dist/components/stack/stack.css +1 -1
  94. package/dist/components/stack/stack.d.ts +1 -1
  95. package/dist/components/stack/stack.guide.json +84 -4
  96. package/dist/components/stack/stack.js +8 -8
  97. package/dist/components/surface/surface-radius-context.js +6 -6
  98. package/dist/components/surface/surface.css +1 -1
  99. package/dist/components/surface/surface.d.ts +1 -1
  100. package/dist/components/surface/surface.guide.json +90 -4
  101. package/dist/components/surface/surface.js +8 -8
  102. package/dist/components/switch/switch.css +1 -1
  103. package/dist/components/switch/switch.guide.json +32 -1
  104. package/dist/components/tabs/tabs-indicator.js +2 -2
  105. package/dist/components/tabs/tabs-list.js +2 -2
  106. package/dist/components/tabs/tabs-panel.js +2 -2
  107. package/dist/components/tabs/tabs-tab.js +2 -2
  108. package/dist/components/tabs/tabs-viewport.js +2 -2
  109. package/dist/components/tabs/tabs.css +1 -1
  110. package/dist/components/tabs/tabs.guide.json +8 -1
  111. package/dist/components/tabs/tabs.js +2 -2
  112. package/dist/components/text/text.css +1 -1
  113. package/dist/components/text/text.guide.json +125 -1
  114. package/dist/components/text/text.js +11 -11
  115. package/dist/components/textarea/textarea.css +1 -1
  116. package/dist/components/textarea/textarea.guide.json +14 -1
  117. package/dist/components/textfield/textfield.css +1 -1
  118. package/dist/components/textfield/textfield.guide.json +20 -1
  119. package/dist/components/title/title.css +1 -1
  120. package/dist/components/title/title.guide.json +123 -1
  121. package/dist/components/title/title.js +11 -11
  122. package/dist/components/toast/index.d.ts +2 -0
  123. package/dist/components/toast/toast-action.d.ts +9 -0
  124. package/dist/components/toast/toast-action.js +10 -0
  125. package/dist/components/toast/toast-banner.d.ts +59 -0
  126. package/dist/components/toast/toast-banner.js +66 -0
  127. package/dist/components/toast/toast-viewport.d.ts +17 -0
  128. package/dist/components/toast/toast-viewport.js +12 -0
  129. package/dist/components/toast/toast.css +1 -0
  130. package/dist/components/toast/toast.d.ts +18 -0
  131. package/dist/components/toast/toast.guide.json +26 -0
  132. package/dist/components/toast/toast.js +22 -0
  133. package/dist/components/toast/toast.module.js +7 -0
  134. package/dist/core/props/intrinsic-vira-props.js +3 -3
  135. package/dist/index.js +8 -1
  136. package/dist/preflight-surface.json +17 -4
  137. package/dist/preflight.css +1 -1
  138. package/package.json +13 -5
@@ -0,0 +1,59 @@
1
+ import { ToastRoot as ToastRootNamespace } from '@base-ui/react/toast';
2
+ import { ToastActionProps } from './toast-action';
3
+ import type * as React from 'react';
4
+ type ToastBannerChildren = React.ReactElement<ToastActionProps> | React.ReactElement<ToastActionProps>[];
5
+ /**
6
+ * Public Toast.Banner props.
7
+ *
8
+ * High-level toast API with heading from `title`, optional `description`, and Toast.Action children.
9
+ */
10
+ export type ToastBannerProps = ToastRootNamespace.Props & {
11
+ /**
12
+ * Toast instance from `useToastManager().toasts` or `createToastManager()`.
13
+ */
14
+ toast: ToastRootNamespace.ToastObject;
15
+ /**
16
+ * Heading above the description. Falls back to `toast.title` from `toastManager.add`.
17
+ *
18
+ * @default `toast.title` when set on the toast instance.
19
+ */
20
+ title?: React.ReactNode;
21
+ /**
22
+ * Supporting copy below the title.
23
+ *
24
+ * @default No description is rendered.
25
+ */
26
+ description?: React.ReactNode;
27
+ /**
28
+ * Whether to render the dismiss control.
29
+ *
30
+ * @default true
31
+ */
32
+ dismissable?: boolean;
33
+ /**
34
+ * Label for the dismiss control.
35
+ *
36
+ * @default 'Dismiss'
37
+ */
38
+ dismissLabel?: React.ReactNode;
39
+ /**
40
+ * Called when the dismiss control is activated, before Base UI closes the toast.
41
+ *
42
+ * @default No callback is invoked.
43
+ */
44
+ onDismiss?: () => void;
45
+ /**
46
+ * Optional action buttons. Accepts a single `Toast.Action` or an array of them.
47
+ *
48
+ * @default No actions are rendered.
49
+ */
50
+ children?: ToastBannerChildren;
51
+ /**
52
+ * Class name forwarded to the toast root.
53
+ *
54
+ * @default No extra class name.
55
+ */
56
+ className?: string;
57
+ };
58
+ export declare const ToastBanner: React.FC<ToastBannerProps>;
59
+ export {};
@@ -0,0 +1,66 @@
1
+ import { clsx } from "../../core/clsx.js";
2
+ import { Stack } from "../stack/stack.js";
3
+ import { Button } from "../button/button.js";
4
+ import { Text } from "../text/text.js";
5
+ import { Surface } from "../surface/surface.js";
6
+ import toast_module_default from "./toast.module.js";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ import { Toast } from "@base-ui/react/toast";
9
+ //#region src/components/toast/toast-banner.tsx
10
+ var ToastBanner = ({ children, className, description, dismissable = true, dismissLabel = "Dismiss", onDismiss, toast, title, ...otherProps }) => {
11
+ const actions = children ? [children].flat() : [];
12
+ const resolvedTitle = title ?? toast.title;
13
+ const resolvedDescription = description ?? toast.description;
14
+ return /* @__PURE__ */ jsx(Toast.Root, {
15
+ ...otherProps,
16
+ toast,
17
+ className: clsx(toast_module_default.Banner, className),
18
+ render: /* @__PURE__ */ jsx(Surface, {
19
+ color: 1,
20
+ border: "all",
21
+ radius: "large",
22
+ vibrant: true
23
+ }),
24
+ ...!resolvedTitle && resolvedDescription && { "aria-label": typeof resolvedDescription === "string" ? resolvedDescription : void 0 },
25
+ children: /* @__PURE__ */ jsxs(Toast.Content, {
26
+ render: /* @__PURE__ */ jsx(Stack, {
27
+ className: toast_module_default.Content,
28
+ columnGap: "medium",
29
+ direction: "row",
30
+ fillChildren: false,
31
+ hAlign: "space-between",
32
+ vAlign: "center",
33
+ hPadding: "large",
34
+ vPadding: "large"
35
+ }),
36
+ children: [/* @__PURE__ */ jsxs(Stack, {
37
+ fillChildren: false,
38
+ rowGap: "small",
39
+ children: [resolvedTitle && /* @__PURE__ */ jsx(Toast.Title, {
40
+ render: /* @__PURE__ */ jsx(Text, { size: "medium" }),
41
+ children: resolvedTitle
42
+ }), resolvedDescription && /* @__PURE__ */ jsx(Toast.Description, {
43
+ render: /* @__PURE__ */ jsx(Text, {
44
+ size: "small",
45
+ tone: "muted",
46
+ render: /* @__PURE__ */ jsx("p", {})
47
+ }),
48
+ children: resolvedDescription
49
+ })]
50
+ }), (dismissable || Boolean(actions.length)) && /* @__PURE__ */ jsxs(Stack, {
51
+ columnGap: "small",
52
+ direction: "row",
53
+ fillChildren: false,
54
+ children: [dismissable && /* @__PURE__ */ jsx(Toast.Close, {
55
+ render: /* @__PURE__ */ jsx(Button, { variant: "secondary" }),
56
+ onClick: () => {
57
+ onDismiss?.();
58
+ },
59
+ children: dismissLabel
60
+ }), Boolean(actions.length) && actions]
61
+ })]
62
+ })
63
+ });
64
+ };
65
+ //#endregion
66
+ export { ToastBanner };
@@ -0,0 +1,17 @@
1
+ import { ToastViewport as ToastViewportNamespace } from '@base-ui/react/toast';
2
+ import type * as React from 'react';
3
+ export type ToastViewportPosition = 'bottom-right' | 'bottom-left' | 'bottom-center' | 'top-right' | 'top-left' | 'top-center' | 'anchored';
4
+ /**
5
+ * Public Toast.Viewport props.
6
+ *
7
+ * @default `position` is `bottom-right`.
8
+ */
9
+ export type ToastViewportProps = ToastViewportNamespace.Props & {
10
+ /**
11
+ * Controls viewport placement and stacking layout hooks.
12
+ *
13
+ * @default 'bottom-right'
14
+ */
15
+ position?: ToastViewportPosition;
16
+ };
17
+ export declare const ToastViewport: React.FC<ToastViewportProps>;
@@ -0,0 +1,12 @@
1
+ import { clsx } from "../../core/clsx.js";
2
+ import toast_module_default from "./toast.module.js";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { Toast } from "@base-ui/react/toast";
5
+ //#region src/components/toast/toast-viewport.tsx
6
+ var ToastViewport = ({ className, position = "bottom-right", ...otherProps }) => /* @__PURE__ */ jsx(Toast.Viewport, {
7
+ className: clsx(toast_module_default.Viewport, className),
8
+ "data-position": position,
9
+ ...otherProps
10
+ });
11
+ //#endregion
12
+ export { ToastViewport };
@@ -0,0 +1 @@
1
+ .viraui__toast-module__Viewport_oSF5e{position:fixed;z-index:4;pointer-events:none;outline:0;inline-size:min(24rem,calc(100vw - 2 * var(--space-medium)));&[data-position=bottom-right]{inset-block-end:var(--space-medium);inset-inline-end:var(--space-medium)}&[data-position=bottom-left]{inset-block-end:var(--space-medium);inset-inline-start:var(--space-medium)}&[data-position=bottom-center]{inset-block-end:var(--space-medium);inset-inline:0;margin-inline:auto}&[data-position=top-right]{inset-block-start:var(--space-medium);inset-inline-end:var(--space-medium)}&[data-position=top-left]{inset-block-start:var(--space-medium);inset-inline-start:var(--space-medium)}&[data-position=top-center]{inset-block-start:var(--space-medium);inset-inline:0;margin-inline:auto}&[data-position=anchored]{inset:0;inline-size:auto}&>*{pointer-events:auto}}.viraui__toast-module__Banner_QkOlo{--gap:var(--space-small);--peek:var(--space-small);--scale:calc(max(0, 1 - (var(--toast-index, 0) * 0.1)));--shrink:calc(1 - var(--scale));--stack-height:var(--toast-frontmost-height,var(--toast-height,0px));--offset-y:calc(var(--toast-offset-y, 0px) * -1 + (var(--toast-index, 0) * var(--gap) * -1) + var(--toast-swipe-movement-y, 0px));position:absolute;inset-inline-end:0;inset-block-end:0;z-index:calc(1000 - var(--toast-index, 0));inline-size:100%;min-inline-size:16rem;will-change:translate,scale,opacity;block-size:var(--toast-frontmost-height,var(--toast-height,auto));transform-origin:bottom center;translate:var(--toast-swipe-movement-x,0) calc(var(--toast-swipe-movement-y, 0px) - (var(--toast-index, 0) * var(--peek)) - (var(--shrink) * var(--stack-height)));scale:var(--scale);transition:translate var(--duration-slow) var(--easing-elastic),scale var(--duration-slow) var(--easing-elastic),opacity var(--duration-slow) var(--easing-elastic);-webkit-user-select:none;user-select:none;&[data-expanded]{translate:var(--toast-swipe-movement-x,0) var(--offset-y);scale:1;block-size:var(--toast-height,auto)}&[data-starting-style]{translate:0 150%;scale:1}&[data-ending-style]{opacity:0;translate:0 150%;scale:1;&[data-swipe-direction=up]{translate:0 calc(var(--toast-swipe-movement-y, 0px) - 150%)}&[data-swipe-direction=down]{translate:0 calc(var(--toast-swipe-movement-y, 0px) + 150%)}&[data-swipe-direction=left]{translate:calc(var(--toast-swipe-movement-x, 0px) - 150%) var(--offset-y)}&[data-swipe-direction=right]{translate:calc(var(--toast-swipe-movement-x, 0px) + 150%) var(--offset-y)}}&[data-limited]{opacity:0}&:after{content:"";position:absolute;inset-block-start:100%;inset-inline-start:0;inline-size:100%;block-size:calc(var(--gap) + 1px)}@media (prefers-reduced-motion:reduce){transition:none}}:is(.viraui__toast-module__Viewport_oSF5e[data-position=bottom-left],.viraui__toast-module__Viewport_oSF5e[data-position=top-left]) .viraui__toast-module__Banner_QkOlo{inset-inline-end:auto;inset-inline-start:0}:is(.viraui__toast-module__Viewport_oSF5e[data-position=bottom-center],.viraui__toast-module__Viewport_oSF5e[data-position=top-center]) .viraui__toast-module__Banner_QkOlo{inset-inline:0;margin-inline:auto}.viraui__toast-module__Viewport_oSF5e[data-position^=top-] .viraui__toast-module__Banner_QkOlo{inset-block-end:auto;inset-block-start:0;transform-origin:top center;--offset-y:calc(var(--toast-offset-y, 0px) + (var(--toast-index, 0) * var(--gap)) + var(--toast-swipe-movement-y, 0px));translate:var(--toast-swipe-movement-x,0) calc(var(--toast-swipe-movement-y, 0px) + (var(--toast-index, 0) * var(--peek)) + (var(--shrink) * var(--stack-height)));scale:var(--scale);&:after{inset-block-start:auto;inset-block-end:100%}&[data-expanded]{translate:var(--toast-swipe-movement-x,0) var(--offset-y);scale:1}&[data-ending-style]:not([data-swipe-direction]),&[data-starting-style]{translate:0 -150%;scale:1}}.viraui__toast-module__Viewport_oSF5e[data-position=anchored] .viraui__toast-module__Banner_QkOlo{position:static;z-index:auto;min-inline-size:auto;block-size:auto;translate:0;scale:1;&:after{content:none}transition:translate var(--duration-slow) var(--easing-elastic),scale var(--duration-slow) var(--easing-elastic),opacity var(--duration-slow) var(--easing-elastic);&[data-ending-style],&[data-starting-style]{opacity:0;translate:0 var(--space-2x-small);scale:1}&[data-expanded]{translate:0;scale:1}}.viraui__toast-module__Content_5ODZr{overflow:hidden;transition:opacity .25s ease;&[data-behind]{opacity:0}&[data-expanded]{opacity:1}@media (prefers-reduced-motion:reduce){transition:none}}
@@ -0,0 +1,18 @@
1
+ import { ToastObject, Toast as PrimitiveToast } from '@base-ui/react/toast';
2
+ import { ToastActionProps } from './toast-action';
3
+ import { ToastBannerProps } from './toast-banner';
4
+ import { ToastViewportProps } from './toast-viewport';
5
+ import type * as React from 'react';
6
+ export type { ToastActionProps, ToastBannerProps, ToastObject, ToastViewportProps };
7
+ type ToastComponent = Omit<typeof PrimitiveToast, 'Viewport' | 'Action' | 'Arrow'> & {
8
+ Viewport: React.FC<ToastViewportProps>;
9
+ Banner: React.FC<ToastBannerProps>;
10
+ Action: React.FC<ToastActionProps>;
11
+ };
12
+ /**
13
+ * Compound toast namespace built on Base UI Toast primitives.
14
+ *
15
+ * Compose `Toast.Provider`, `Toast.Portal`, and `Toast.Viewport` with `Toast.Banner`
16
+ * for stacked notifications, or wrap anchored toasts in `Toast.Positioner`.
17
+ */
18
+ export declare const Toast: ToastComponent;
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "Toast",
3
+ "summary": "Transient notification surface with stacked or anchored placement, Banner high-level API, and optional action buttons.",
4
+ "whenToUse": [
5
+ "Confirming a completed action such as save or delete",
6
+ "Offering a short undo window after a reversible change",
7
+ "Showing contextual feedback anchored to the control that triggered it"
8
+ ],
9
+ "whenNotToUse": [
10
+ "Blocking errors that need immediate correction — use inline field errors or a dialog",
11
+ "Persistent status that should stay visible — use inline status text or a banner pattern",
12
+ "Long-form content that needs reading time — use a dialog or dedicated panel"
13
+ ],
14
+ "accessibility": [
15
+ "Pass title and description strings to toastManager.add for screen reader announcements on high-priority toasts",
16
+ "Keep toast copy concise; users can navigate the toast viewport landmark with F6",
17
+ "Ensure action and dismiss controls have visible labels",
18
+ "Use anchored toasts for contextual feedback tied to a specific trigger"
19
+ ],
20
+ "antiPatterns": [
21
+ "Nesting arbitrary components inside Toast.Banner — children must be Toast.Action only",
22
+ "Stacking many simultaneous toasts without a clear limit",
23
+ "Using toasts for critical validation errors that block task completion"
24
+ ],
25
+ "related": ["Button", "Surface", "Stack", "Dialog"]
26
+ }
@@ -0,0 +1,22 @@
1
+ "use client";
2
+ import './toast.css';
3
+ import { ToastAction } from "./toast-action.js";
4
+ import { ToastBanner } from "./toast-banner.js";
5
+ import { ToastViewport } from "./toast-viewport.js";
6
+ import { Toast } from "@base-ui/react/toast";
7
+ //#region src/components/toast/toast.tsx
8
+ var { Arrow: _PrimitiveToastArrow, Viewport: _PrimitiveToastViewport, Action: _PrimitiveToastAction, ...primitiveToast } = Toast;
9
+ /**
10
+ * Compound toast namespace built on Base UI Toast primitives.
11
+ *
12
+ * Compose `Toast.Provider`, `Toast.Portal`, and `Toast.Viewport` with `Toast.Banner`
13
+ * for stacked notifications, or wrap anchored toasts in `Toast.Positioner`.
14
+ */
15
+ var Toast$1 = {
16
+ ...primitiveToast,
17
+ Viewport: ToastViewport,
18
+ Banner: ToastBanner,
19
+ Action: ToastAction
20
+ };
21
+ //#endregion
22
+ export { Toast$1 as Toast };
@@ -0,0 +1,7 @@
1
+ var toast_module_default = {
2
+ Viewport: "viraui__toast-module__Viewport_oSF5e",
3
+ Banner: "viraui__toast-module__Banner_QkOlo",
4
+ Content: "viraui__toast-module__Content_5ODZr"
5
+ };
6
+ //#endregion
7
+ export { toast_module_default as default };
@@ -4,9 +4,9 @@ var extractIntrinsicViraProps = (props) => {
4
4
  return {
5
5
  componentProps,
6
6
  intrinsicAttributes: {
7
- ...grow === false ? { "data-grow": "false" } : {},
8
- ...shrink === false ? { "data-shrink": "false" } : {},
9
- ...vibrant === true ? { "data-vibrant": "" } : {}
7
+ ...grow === false && { "data-grow": "false" },
8
+ ...shrink === false && { "data-shrink": "false" },
9
+ ...vibrant && { "data-vibrant": "" }
10
10
  }
11
11
  };
12
12
  };
package/dist/index.js CHANGED
@@ -1,5 +1,7 @@
1
+ import { Accordion } from "./components/accordion/accordion.js";
1
2
  import { Avatar } from "./components/avatar/avatar.js";
2
3
  import { AvatarGroup } from "./components/avatar-group/avatar-group.js";
4
+ import { Bleed } from "./components/bleed/bleed.js";
3
5
  import { Stack } from "./components/stack/stack.js";
4
6
  import { Chip } from "./components/chip/chip.js";
5
7
  import { DialogClose } from "./components/dialog/dialog-close.js";
@@ -17,7 +19,10 @@ import { Button } from "./components/button/button.js";
17
19
  import { IconButton } from "./components/icon-button/icon-button.js";
18
20
  import { Text } from "./components/text/text.js";
19
21
  import { LinearProgress } from "./components/linear-progress/linear-progress.js";
22
+ import { Meter } from "./components/meter/meter.js";
20
23
  import { Masonry } from "./components/masonry/masonry.js";
24
+ import { PopoverSheet } from "./components/popover/popover-sheet.js";
25
+ import { Popover, PopoverClose, PopoverDescription, PopoverTitle, PopoverTrigger } from "./components/popover/popover.js";
21
26
  import { Textfield } from "./components/textfield/textfield.js";
22
27
  import { Textarea } from "./components/textarea/textarea.js";
23
28
  import { Slider } from "./components/slider/slider.js";
@@ -29,11 +34,13 @@ import { Radio } from "./components/radio/radio.js";
29
34
  import { RadioGroup } from "./components/radio/radio-group.js";
30
35
  import { Select } from "./components/select/select.js";
31
36
  import { Separator } from "./components/separator/separator.js";
37
+ import { Shimmer } from "./components/shimmer/shimmer.js";
32
38
  import { Icon } from "./components/icon/icon.js";
33
39
  import { Skeleton } from "./components/skeleton/skeleton.js";
34
40
  import { Surface } from "./components/surface/surface.js";
35
41
  import { Tabs } from "./components/tabs/tabs.js";
42
+ import { Toast } from "./components/toast/toast.js";
36
43
  import { StaticNoise } from "./components/static-noise/static-noise.js";
37
44
  import { ProgressiveBlur } from "./components/progressive-blur/progressive-blur.js";
38
45
  import { Title } from "./components/title/title.js";
39
- export { Avatar, AvatarGroup, Button, Checkbox, CheckboxGroup, Chip, ClampText, Dialog, DialogClose, DialogIndent, DialogIndentBackground, DialogSheet, DialogTrigger, ELEVATION_DEFAULTS, Elevator, Fieldset, Icon, IconButton, LinearProgress, Masonry, ProgressiveBlur, Radio, RadioGroup, Select, Separator, Skeleton, Slider, Spinner, Stack, StaticNoise, Surface, Switch, Tabs, Text, Textarea, Textfield, Title, getElevationProps };
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 };
@@ -5,7 +5,12 @@
5
5
  {
6
6
  "id": "themes",
7
7
  "file": "themes.css",
8
- "purpose": "Runtime color-scheme hints for light and dark mode."
8
+ "purpose": "Runtime color-scheme hints for light, dark, and inverted mode."
9
+ },
10
+ {
11
+ "id": "core",
12
+ "file": "core.css",
13
+ "purpose": "Root baseline, --is-light-theme registration, and global element defaults."
9
14
  },
10
15
  {
11
16
  "id": "typography",
@@ -27,12 +32,13 @@
27
32
  {
28
33
  "name": "data-theme",
29
34
  "module": "themes",
30
- "values": ["light", "dark"],
35
+ "values": ["light", "dark", "inverted"],
31
36
  "presence": "value required",
32
- "effect": "Narrows color-scheme on the element subtree: light forces light, dark forces dark.",
37
+ "effect": "Narrows color-scheme on the element subtree: light forces light, dark forces dark, inverted flips color-scheme relative to the active theme using --is-light-theme on the root container.",
33
38
  "whenToUse": [
34
39
  "Toggle runtime light or dark mode on html, body, or a layout wrapper",
35
- "Scope a subtree to one mode while the rest of the page stays unchanged"
40
+ "Scope a subtree to one mode while the rest of the page stays unchanged",
41
+ "Invert color-scheme on a nested surface that must contrast the active theme, for example a primary Chip addon inside a primary Button"
36
42
  ],
37
43
  "whenNotToUse": [
38
44
  "As a substitute for loading compatible theme CSS",
@@ -117,6 +123,13 @@
117
123
  }
118
124
  ],
119
125
  "customProperties": [
126
+ {
127
+ "name": "--is-light-theme",
128
+ "module": "themes",
129
+ "setBy": "html root in core.css from contrast-color(var(--global-background))",
130
+ "default": "black",
131
+ "purpose": "Registers the active theme polarity for @container root queries; data-theme=\"inverted\" flips color-scheme against this value."
132
+ },
120
133
  {
121
134
  "name": "--shadow-color",
122
135
  "module": "elevations",
@@ -1 +1 @@
1
- @layer viraui.preflight;@layer viraui.preflight{html{--scrollbar-thumb:light-dark(var(--base-4),var(--base-3));--scrollbar-track:transparent;--outline-offset:2px;--outline-color:var(--global-outline);--outline:2px solid var(--outline-color);font-size:100%;box-sizing:border-box;line-height:1.5;background-color:var(--global-background);color:var(--global-foreground)}*{--is-corner-shape-enabled:var(--corner-shape-enable);--corner-shape-value:var(--is-corner-shape-enabled) var(--corner-shape-squircle);corner-shape:var(--corner-shape-value,unset)}*,: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),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 td,table 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 transparent;--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),transparent 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}[data-vibrant]{--is-vibrancy-active:var(--vibrancy-enable);--vibrancy-filter:var(--vibrancy-enable) brightness(var(--vibrancy-brightness)) blur(calc(var(--vibrancy-blur) * 1px));backdrop-filter:var(--vibrancy-filter,none)}}@layer viraui.preflight{}@layer viraui.preflight{}
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%)}}}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@viraui/react",
3
- "version": "0.0.24",
3
+ "version": "0.0.26",
4
4
  "private": false,
5
5
  "files": [
6
6
  "dist"
@@ -33,7 +33,7 @@
33
33
  "registry": "https://registry.npmjs.org/"
34
34
  },
35
35
  "devDependencies": {
36
- "@base-ui/react": "1.5.0",
36
+ "@base-ui/react": "1.6.0",
37
37
  "postcss": "8.5.6",
38
38
  "postcss-cli": "11.0.1",
39
39
  "react": ">=19.2.7",
@@ -42,16 +42,24 @@
42
42
  "vite": "8.0.16",
43
43
  "vite-plugin-dts": "4.5.4",
44
44
  "vite-plugin-static-copy": "2.3.0",
45
- "@viraui/foundation": "0.0.24",
46
- "@viraui/postcss-config": "0.0.16",
45
+ "@viraui/foundation": "0.0.26",
47
46
  "@viraui/icons": "0.0.15",
47
+ "@viraui/postcss-config": "0.0.17",
48
48
  "@viraui/tsconfig": "0.0.17"
49
49
  },
50
50
  "peerDependencies": {
51
- "@base-ui/react": ">=1.5.0",
51
+ "@base-ui/react": ">=1.6.0",
52
52
  "react": ">=19.0.0",
53
53
  "react-dom": ">=19.0.0"
54
54
  },
55
+ "browserslist": [
56
+ "last 2 Chrome versions",
57
+ "last 2 Firefox versions",
58
+ "last 2 Safari versions",
59
+ "last 2 Edge versions",
60
+ "not dead",
61
+ "not op_mini all"
62
+ ],
55
63
  "scripts": {
56
64
  "clean": "rimraf dist",
57
65
  "build": "run-s clean build:icons build:lib build:preflight build:catalog",