@waveso/ui 0.8.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/accordion.js CHANGED
@@ -25,7 +25,7 @@ function AccordionTrigger({ className, children, ...props }) {
25
25
  className: "flex",
26
26
  children: /* @__PURE__ */ jsxs(Accordion$1.Trigger, {
27
27
  "data-slot": "accordion-trigger",
28
- className: cn("cursor-clickable focus-visible:ring-focus/50 focus-visible:border-focus focus-visible:after:border-focus **:data-[slot=accordion-trigger-icon]:text-muted group/accordion-trigger relative flex flex-1 items-start justify-between rounded-md border border-transparent py-2.5 text-left text-sm font-medium motion-color outline-none hover:underline focus-visible:ring-3 aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4", className),
28
+ className: cn("cursor-clickable focus-visible:ring-focus/50 focus-visible:border-focus focus-visible:after:border-focus **:data-[slot=accordion-trigger-icon]:text-muted group/accordion-trigger relative flex flex-1 items-start justify-between rounded-md border border-transparent py-2.5 text-left text-sm font-medium motion-color outline-hidden hover:underline focus-visible:ring-3 aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4", className),
29
29
  ...props,
30
30
  children: [
31
31
  children,
@@ -197,7 +197,7 @@ function ActionBarProvider({ children, message = "You have unsaved changes", plu
197
197
  className: "fixed bottom-6 left-1/2 z-50",
198
198
  children: /* @__PURE__ */ jsxs("div", {
199
199
  "data-slot": "action-bar-content",
200
- className: cn("flex items-center gap-6 rounded-lg border border-line/60 bg-surface px-5 py-2.5 shadow-lg ring-1 ring-line backdrop-blur-sm", className),
200
+ className: cn("flex items-center gap-6 rounded-lg border border-line/60 bg-surface px-5 py-2.5 shadow-lg ring-1 ring-line", className),
201
201
  children: [/* @__PURE__ */ jsx("span", {
202
202
  "data-slot": "action-bar-message",
203
203
  className: cn("whitespace-nowrap text-sm font-medium", saveError ? "text-destructive" : "text-contrast"),
@@ -34,7 +34,7 @@ function AlertDialogContent({ className, size = "default", ...props }) {
34
34
  return /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [/* @__PURE__ */ jsx(AlertDialogOverlay, {}), /* @__PURE__ */ jsx(AlertDialog$1.Popup, {
35
35
  "data-slot": "alert-dialog-content",
36
36
  "data-size": size,
37
- className: cn("motion-scale-lg bg-foundation ring-contrast/10 group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-4 rounded-lg p-4 ring-1 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=lg]:max-w-lg data-[size=xl]:max-w-xl data-[size=default]:sm:max-w-sm data-[size=lg]:sm:max-w-lg data-[size=xl]:sm:max-w-xl", className),
37
+ className: cn("motion-scale-lg bg-foundation ring-contrast/10 group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-4 rounded-lg p-4 ring-1 outline-hidden data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=lg]:max-w-lg data-[size=xl]:max-w-xl data-[size=default]:sm:max-w-sm data-[size=lg]:sm:max-w-lg data-[size=xl]:sm:max-w-xl", className),
38
38
  ...props
39
39
  })] });
40
40
  }
@@ -76,7 +76,7 @@ function AlertDialogDescription({ className, ...props }) {
76
76
  function AlertDialogAction({ className, ...props }) {
77
77
  return /* @__PURE__ */ jsx(Button, {
78
78
  "data-slot": "alert-dialog-action",
79
- className: cn(className),
79
+ className,
80
80
  ...props
81
81
  });
82
82
  }
@@ -13,7 +13,7 @@ function Autocomplete({ ...props }) {
13
13
  function AutocompleteInput({ className, ...props }) {
14
14
  return /* @__PURE__ */ jsx(Autocomplete$1.Input, {
15
15
  "data-slot": "autocomplete-input",
16
- className: cn("dark:bg-edge/30 border-edge focus-visible:border-focus focus-visible:ring-focus/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 disabled:bg-edge/50 dark:disabled:bg-edge/80 placeholder:text-soft h-8 w-full min-w-0 rounded-md border bg-transparent px-2.5 py-1 text-base transition-colors outline-none focus-visible:ring-3 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3 md:text-sm", className),
16
+ className: cn("dark:bg-edge/30 border-edge focus-visible:border-focus focus-visible:ring-focus/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 disabled:bg-edge/50 dark:disabled:bg-edge/80 placeholder:text-soft h-8 w-full min-w-0 rounded-md border bg-transparent px-2.5 py-1 text-base transition-colors outline-hidden focus-visible:ring-3 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3 md:text-sm", className),
17
17
  ...props
18
18
  });
19
19
  }
@@ -47,7 +47,7 @@ function AutocompleteValue({ ...props }) {
47
47
  function AutocompletePortal({ className, ...props }) {
48
48
  return /* @__PURE__ */ jsx(Autocomplete$1.Portal, {
49
49
  "data-slot": "autocomplete-portal",
50
- className: cn(className),
50
+ className,
51
51
  ...props
52
52
  });
53
53
  }
@@ -61,7 +61,7 @@ function AutocompleteBackdrop({ className, ...props }) {
61
61
  function AutocompletePositioner({ className, ...props }) {
62
62
  return /* @__PURE__ */ jsx(Autocomplete$1.Positioner, {
63
63
  "data-slot": "autocomplete-positioner",
64
- className: cn(className),
64
+ className,
65
65
  ...props
66
66
  });
67
67
  }
@@ -103,7 +103,7 @@ function AutocompleteList({ className, ...props }) {
103
103
  function AutocompleteRow({ className, ...props }) {
104
104
  return /* @__PURE__ */ jsx(Autocomplete$1.Row, {
105
105
  "data-slot": "autocomplete-row",
106
- className: cn(className),
106
+ className,
107
107
  ...props
108
108
  });
109
109
  }
package/dist/badge.d.ts CHANGED
@@ -5,7 +5,7 @@ import * as _$class_variance_authority_types0 from "class-variance-authority/typ
5
5
 
6
6
  //#region src/badge.d.ts
7
7
  declare const badgeVariants: (props?: ({
8
- variant?: "default" | "destructive" | "link" | "success" | "warning" | "secondary" | "outline" | "ghost" | null | undefined;
8
+ variant?: "default" | "success" | "destructive" | "warning" | "secondary" | "outline" | "ghost" | "link" | null | undefined;
9
9
  } & _$class_variance_authority_types0.ClassProp) | undefined) => string;
10
10
  type BadgeProps = useRender.ComponentProps<"span"> & VariantProps<typeof badgeVariants>;
11
11
  declare function Badge({
@@ -1,5 +1,5 @@
1
1
  import { Separator } from "./separator.js";
2
- import * as _$react from "react";
2
+ import * as React from "react";
3
3
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
4
  import { VariantProps } from "class-variance-authority";
5
5
  import { useRender } from "@base-ui/react/use-render";
@@ -21,7 +21,7 @@ declare function ButtonGroupText({
21
21
  className,
22
22
  render,
23
23
  ...props
24
- }: ButtonGroupTextProps): _$react.ReactElement<unknown, string | _$react.JSXElementConstructor<any>>;
24
+ }: ButtonGroupTextProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
25
25
  declare function ButtonGroupSeparator({
26
26
  className,
27
27
  orientation,
@@ -1,6 +1,7 @@
1
1
  "use client";
2
2
  import { cn } from "./lib/utils.js";
3
3
  import { Separator } from "./separator.js";
4
+ import "react";
4
5
  import { jsx } from "react/jsx-runtime";
5
6
  import { cva } from "class-variance-authority";
6
7
  import { mergeProps } from "@base-ui/react/merge-props";
package/dist/button.d.ts CHANGED
@@ -6,8 +6,8 @@ import * as _$class_variance_authority_types0 from "class-variance-authority/typ
6
6
 
7
7
  //#region src/button.d.ts
8
8
  declare const buttonVariants: (props?: ({
9
- variant?: "default" | "destructive" | "link" | "success" | "secondary" | "outline" | "ghost" | null | undefined;
10
- size?: "default" | "xs" | "sm" | "icon-xs" | "icon-sm" | "icon" | "lg" | "xl" | "icon-lg" | null | undefined;
9
+ variant?: "default" | "success" | "destructive" | "secondary" | "outline" | "ghost" | "link" | null | undefined;
10
+ size?: "default" | "xs" | "sm" | "lg" | "xl" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
11
11
  } & _$class_variance_authority_types0.ClassProp) | undefined) => string;
12
12
  type ButtonProps = React.ComponentProps<typeof Button$1> & VariantProps<typeof buttonVariants>;
13
13
  declare function Button({
package/dist/button.js CHANGED
@@ -5,7 +5,7 @@ import { jsx } from "react/jsx-runtime";
5
5
  import { Button as Button$1 } from "@base-ui/react/button";
6
6
  import { cva } from "class-variance-authority";
7
7
  //#region src/button.tsx
8
- const buttonVariants = cva("cursor-clickable focus-visible:border-focus focus-visible:ring-focus/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 rounded-md border border-transparent bg-clip-padding text-sm font-medium focus-visible:ring-3 aria-invalid:ring-3 [&_svg:not([class*='size-'])]:size-4 inline-flex items-center justify-center whitespace-nowrap motion-color disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none shrink-0 [&_svg]:shrink-0 outline-none group/button select-none", {
8
+ const buttonVariants = cva("cursor-clickable focus-visible:border-focus focus-visible:ring-focus/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 rounded-md border border-transparent bg-clip-padding text-sm font-medium focus-visible:ring-3 aria-invalid:ring-3 [&_svg:not([class*='size-'])]:size-4 inline-flex items-center justify-center whitespace-nowrap motion-color disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none shrink-0 [&_svg]:shrink-0 outline-hidden group/button select-none", {
9
9
  variants: {
10
10
  variant: {
11
11
  default: "bg-primary text-white hover:bg-primary/80",
package/dist/checkbox.js CHANGED
@@ -8,7 +8,7 @@ import { Checkbox as Checkbox$1 } from "@base-ui/react/checkbox";
8
8
  function Checkbox({ className, ...props }) {
9
9
  return /* @__PURE__ */ jsx(Checkbox$1.Root, {
10
10
  "data-slot": "checkbox",
11
- className: cn("cursor-clickable border-edge dark:bg-edge/30 data-checked:bg-primary data-indeterminate:bg-primary data-checked:text-white data-indeterminate:text-white dark:data-checked:bg-primary dark:data-indeterminate:bg-primary data-checked:border-primary data-indeterminate:border-primary aria-invalid:aria-checked:border-primary aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 focus-visible:border-focus focus-visible:ring-focus/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-3 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3", className),
11
+ className: cn("cursor-clickable border-edge dark:bg-edge/30 data-checked:bg-primary data-indeterminate:bg-primary data-checked:text-white data-indeterminate:text-white dark:data-checked:bg-primary dark:data-indeterminate:bg-primary data-checked:border-primary data-indeterminate:border-primary aria-invalid:aria-checked:border-primary aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 focus-visible:border-focus focus-visible:ring-focus/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border transition-colors outline-hidden group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-3 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3", className),
12
12
  ...props,
13
13
  children: /* @__PURE__ */ jsxs(Checkbox$1.Indicator, {
14
14
  "data-slot": "checkbox-indicator",
package/dist/combobox.js CHANGED
@@ -119,7 +119,7 @@ function ComboboxItem({ className, children, ...props }) {
119
119
  function ComboboxGroup({ className, ...props }) {
120
120
  return /* @__PURE__ */ jsx(Combobox$1.Group, {
121
121
  "data-slot": "combobox-group",
122
- className: cn(className),
122
+ className,
123
123
  ...props
124
124
  });
125
125
  }
@@ -177,7 +177,7 @@ function ComboboxChip({ className, children, showRemove = true, ...props }) {
177
177
  function ComboboxChipsInput({ className, ...props }) {
178
178
  return /* @__PURE__ */ jsx(Combobox$1.Input, {
179
179
  "data-slot": "combobox-chip-input",
180
- className: cn("min-w-16 flex-1 outline-none", className),
180
+ className: cn("min-w-16 flex-1 outline-hidden", className),
181
181
  ...props
182
182
  });
183
183
  }
@@ -28,14 +28,14 @@ function ContextMenuTrigger({ className, ...props }) {
28
28
  function ContextMenuContent({ className, align = "start", alignOffset = 4, side = "right", sideOffset = 0, restoreFocusOnClose, finalFocus, ...props }) {
29
29
  return /* @__PURE__ */ jsx(ContextMenu$1.Portal, { children: /* @__PURE__ */ jsx(ContextMenu$1.Positioner, {
30
30
  "data-slot": "context-menu-positioner",
31
- className: "isolate z-50 outline-none",
31
+ className: "isolate z-50 outline-hidden",
32
32
  align,
33
33
  alignOffset,
34
34
  side,
35
35
  sideOffset,
36
36
  children: /* @__PURE__ */ jsx(ContextMenu$1.Popup, {
37
37
  "data-slot": "context-menu-content",
38
- className: cn("motion-pop-md ring-contrast/10 bg-elevated text-contrast z-50 max-h-(--available-height) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md p-1 shadow-md ring-1 outline-none", className),
38
+ className: cn("motion-pop-md ring-contrast/10 bg-elevated text-contrast z-50 max-h-(--available-height) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md p-1 shadow-md ring-1 outline-hidden", className),
39
39
  finalFocus: resolveFinalFocus(restoreFocusOnClose, finalFocus),
40
40
  ...props
41
41
  })
package/dist/dialog.js CHANGED
@@ -41,7 +41,7 @@ function DialogOverlay({ className, ...props }) {
41
41
  function DialogContent({ className, children, showCloseButton = true, ...props }) {
42
42
  return /* @__PURE__ */ jsxs(DialogPortal, { children: [/* @__PURE__ */ jsx(DialogOverlay, {}), /* @__PURE__ */ jsxs(Dialog$1.Popup, {
43
43
  "data-slot": "dialog-content",
44
- className: cn("motion-scale-lg bg-foundation ring-contrast/10 fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-lg p-4 text-sm ring-1 outline-none sm:max-w-sm", className),
44
+ className: cn("motion-scale-lg bg-foundation ring-contrast/10 fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-lg p-4 text-sm ring-1 outline-hidden sm:max-w-sm", className),
45
45
  ...props,
46
46
  children: [children, showCloseButton && /* @__PURE__ */ jsxs(Dialog$1.Close, {
47
47
  "data-slot": "dialog-close",
package/dist/drawer.js CHANGED
@@ -40,10 +40,10 @@ function DrawerOverlay({ className, ...props }) {
40
40
  function DrawerContent({ className, children, showCloseButton = false, ...props }) {
41
41
  return /* @__PURE__ */ jsxs(DrawerPortal, { children: [/* @__PURE__ */ jsx(DrawerOverlay, {}), /* @__PURE__ */ jsx(Drawer$1.Viewport, {
42
42
  "data-slot": "drawer-viewport",
43
- className: "fixed inset-0 z-50 outline-none",
43
+ className: "fixed inset-0 z-50 outline-hidden",
44
44
  children: /* @__PURE__ */ jsxs(Drawer$1.Popup, {
45
45
  "data-slot": "drawer-content",
46
- className: cn("group/drawer-content bg-foundation fixed z-50 flex flex-col overflow-y-auto border-edge text-sm shadow-lg outline-none", "transition-[translate] duration-(--duration-lg) ease-(--ease) data-[swiping]:duration-0", "data-[swipe-direction=down]:inset-x-0 data-[swipe-direction=down]:bottom-0 data-[swipe-direction=down]:mt-24 data-[swipe-direction=down]:max-h-[80vh] data-[swipe-direction=down]:rounded-t-lg data-[swipe-direction=down]:border-t", "data-[swipe-direction=up]:inset-x-0 data-[swipe-direction=up]:top-0 data-[swipe-direction=up]:mb-24 data-[swipe-direction=up]:max-h-[80vh] data-[swipe-direction=up]:rounded-b-lg data-[swipe-direction=up]:border-b", "data-[swipe-direction=left]:inset-y-0 data-[swipe-direction=left]:left-0 data-[swipe-direction=left]:w-3/4 data-[swipe-direction=left]:rounded-r-lg data-[swipe-direction=left]:border-r data-[swipe-direction=left]:sm:max-w-sm", "data-[swipe-direction=right]:inset-y-0 data-[swipe-direction=right]:right-0 data-[swipe-direction=right]:w-3/4 data-[swipe-direction=right]:rounded-l-lg data-[swipe-direction=right]:border-l data-[swipe-direction=right]:sm:max-w-sm", "data-[swipe-direction=down]:data-[starting-style]:translate-y-full data-[swipe-direction=down]:data-[ending-style]:translate-y-full", "data-[swipe-direction=up]:data-[starting-style]:-translate-y-full data-[swipe-direction=up]:data-[ending-style]:-translate-y-full", "data-[swipe-direction=left]:data-[starting-style]:-translate-x-full data-[swipe-direction=left]:data-[ending-style]:-translate-x-full", "data-[swipe-direction=right]:data-[starting-style]:translate-x-full data-[swipe-direction=right]:data-[ending-style]:translate-x-full", className),
46
+ className: cn("group/drawer-content bg-foundation fixed z-50 flex flex-col overflow-y-auto border-edge text-sm shadow-lg outline-hidden", "transition-[translate] duration-(--duration-lg) ease-(--ease) data-[swiping]:duration-0", "data-[swipe-direction=down]:inset-x-0 data-[swipe-direction=down]:bottom-0 data-[swipe-direction=down]:mt-24 data-[swipe-direction=down]:max-h-[80vh] data-[swipe-direction=down]:rounded-t-lg data-[swipe-direction=down]:border-t", "data-[swipe-direction=up]:inset-x-0 data-[swipe-direction=up]:top-0 data-[swipe-direction=up]:mb-24 data-[swipe-direction=up]:max-h-[80vh] data-[swipe-direction=up]:rounded-b-lg data-[swipe-direction=up]:border-b", "data-[swipe-direction=left]:inset-y-0 data-[swipe-direction=left]:left-0 data-[swipe-direction=left]:w-3/4 data-[swipe-direction=left]:rounded-r-lg data-[swipe-direction=left]:border-r data-[swipe-direction=left]:sm:max-w-sm", "data-[swipe-direction=right]:inset-y-0 data-[swipe-direction=right]:right-0 data-[swipe-direction=right]:w-3/4 data-[swipe-direction=right]:rounded-l-lg data-[swipe-direction=right]:border-l data-[swipe-direction=right]:sm:max-w-sm", "data-[swipe-direction=down]:data-[starting-style]:translate-y-full data-[swipe-direction=down]:data-[ending-style]:translate-y-full", "data-[swipe-direction=up]:data-[starting-style]:-translate-y-full data-[swipe-direction=up]:data-[ending-style]:-translate-y-full", "data-[swipe-direction=left]:data-[starting-style]:-translate-x-full data-[swipe-direction=left]:data-[ending-style]:-translate-x-full", "data-[swipe-direction=right]:data-[starting-style]:translate-x-full data-[swipe-direction=right]:data-[ending-style]:translate-x-full", className),
47
47
  ...props,
48
48
  children: [
49
49
  /* @__PURE__ */ jsx("div", {
@@ -11,7 +11,7 @@ function InputGroup({ className, ...props }) {
11
11
  return /* @__PURE__ */ jsx("div", {
12
12
  "data-slot": "input-group",
13
13
  role: "group",
14
- className: cn("border-edge dark:bg-edge/30 has-[[data-slot=input-group-control]:focus-visible]:border-focus has-[[data-slot=input-group-control]:focus-visible]:ring-focus/50 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-disabled:bg-edge/50 dark:has-disabled:bg-edge/80 group/input-group relative flex h-8 w-full min-w-0 items-center rounded-md border transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 not-has-disabled:has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-3 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5", className),
14
+ className: cn("border-edge dark:bg-edge/30 has-[[data-slot=input-group-control]:focus-visible]:border-focus has-[[data-slot=input-group-control]:focus-visible]:ring-focus/50 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-disabled:bg-edge/50 dark:has-disabled:bg-edge/80 group/input-group relative flex h-8 w-full min-w-0 items-center rounded-md border transition-colors outline-hidden in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 not-has-disabled:has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-3 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5", className),
15
15
  ...props
16
16
  });
17
17
  }
@@ -40,7 +40,7 @@ function InputGroupAddon({ className, align = "inline-start", ...props }) {
40
40
  const inputGroupButtonVariants = cva("gap-2 text-sm shadow-none flex items-center", {
41
41
  variants: { size: {
42
42
  xs: "h-6 gap-1 rounded-sm px-1.5 [&>svg:not([class*='size-'])]:size-3.5",
43
- sm: "",
43
+ sm: "h-7 gap-1.5 rounded-sm px-2 [&>svg:not([class*='size-'])]:size-4",
44
44
  "icon-xs": "size-6 rounded-sm p-0",
45
45
  "icon-sm": "size-8 p-0"
46
46
  } },
package/dist/input-otp.js CHANGED
@@ -26,7 +26,7 @@ function InputOTPSlot({ index, className, ...props }) {
26
26
  return /* @__PURE__ */ jsxs("div", {
27
27
  "data-slot": "input-otp-slot",
28
28
  "data-active": isActive || void 0,
29
- className: cn("border-edge dark:bg-edge/30 relative flex size-9 items-center justify-center border-y border-r text-sm motion-color outline-none first:rounded-l-md first:border-l last:rounded-r-md", "data-active:border-focus data-active:ring-3 data-active:ring-focus/50 data-active:z-10", "group-has-aria-invalid/input-otp:border-destructive group-has-aria-invalid/input-otp:data-active:ring-3 group-has-aria-invalid/input-otp:data-active:ring-destructive/20 dark:group-has-aria-invalid/input-otp:data-active:ring-destructive/40", className),
29
+ className: cn("border-edge dark:bg-edge/30 relative flex size-9 items-center justify-center border-y border-r text-sm motion-color outline-hidden first:rounded-l-md first:border-l last:rounded-r-md", "data-active:border-focus data-active:ring-3 data-active:ring-focus/50 data-active:z-10", "group-has-aria-invalid/input-otp:border-destructive group-has-aria-invalid/input-otp:data-active:ring-3 group-has-aria-invalid/input-otp:data-active:ring-destructive/20 dark:group-has-aria-invalid/input-otp:data-active:ring-destructive/40", className),
30
30
  ...props,
31
31
  children: [char, hasFakeCaret && /* @__PURE__ */ jsx("div", {
32
32
  className: "pointer-events-none absolute inset-0 flex items-center justify-center",
package/dist/input.js CHANGED
@@ -7,7 +7,7 @@ function Input({ className, type, ...props }) {
7
7
  return /* @__PURE__ */ jsx(Input$1, {
8
8
  type,
9
9
  "data-slot": "input",
10
- className: cn("dark:bg-edge/30 border-edge focus-visible:border-focus focus-visible:ring-focus/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 disabled:bg-edge/50 dark:disabled:bg-edge/80 file:text-contrast placeholder:text-soft h-8 w-full min-w-0 rounded-md border bg-transparent px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:ring-3 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3 md:text-sm", className),
10
+ className: cn("dark:bg-edge/30 border-edge focus-visible:border-focus focus-visible:ring-focus/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 disabled:bg-edge/50 dark:disabled:bg-edge/80 file:text-contrast placeholder:text-soft h-8 w-full min-w-0 rounded-md border bg-transparent px-2.5 py-1 text-base transition-colors outline-hidden file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:ring-3 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3 md:text-sm", className),
11
11
  ...props
12
12
  });
13
13
  }
package/dist/item.d.ts CHANGED
@@ -11,7 +11,7 @@ declare const itemVariants: (props?: ({
11
11
  size?: "default" | "xs" | "sm" | null | undefined;
12
12
  } & _$class_variance_authority_types0.ClassProp) | undefined) => string;
13
13
  declare const itemMediaVariants: (props?: ({
14
- variant?: "default" | "icon" | "image" | null | undefined;
14
+ variant?: "default" | "image" | "icon" | null | undefined;
15
15
  } & _$class_variance_authority_types0.ClassProp) | undefined) => string;
16
16
  type ItemGroupProps = React.ComponentProps<"div">;
17
17
  type ItemSeparatorProps = React.ComponentProps<typeof Separator>;
package/dist/item.js CHANGED
@@ -7,7 +7,7 @@ import { cva } from "class-variance-authority";
7
7
  import { mergeProps } from "@base-ui/react/merge-props";
8
8
  import { useRender } from "@base-ui/react/use-render";
9
9
  //#region src/item.tsx
10
- const itemVariants = cva("[a]:hover:bg-secondary rounded-md border text-sm w-full group/item focus-visible:border-focus focus-visible:ring-focus/50 flex items-center flex-wrap outline-none motion-color focus-visible:ring-3", {
10
+ const itemVariants = cva("[a]:hover:bg-secondary rounded-md border text-sm w-full group/item focus-visible:border-focus focus-visible:ring-focus/50 flex items-center flex-wrap outline-hidden motion-color focus-visible:ring-3", {
11
11
  variants: {
12
12
  variant: {
13
13
  default: "border-transparent",
package/dist/kbd.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import * as React from "react";
1
2
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
2
3
 
3
4
  //#region src/kbd.d.ts
package/dist/kbd.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { cn } from "./lib/utils.js";
2
+ import "react";
2
3
  import { jsx } from "react/jsx-runtime";
3
4
  //#region src/kbd.tsx
4
5
  function Kbd({ className, ...props }) {
@@ -1,12 +1,7 @@
1
- import * as _$react from "react";
1
+ import * as React from "react";
2
2
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/lib/internal-icons.d.ts
5
- /**
6
- * Internal-only SVG icons used by wave-ui components.
7
- *
8
- * NOT a public entry point — imported by components via relative paths.
9
- */
10
5
  type IconProps = React.SVGProps<SVGSVGElement>;
11
6
  declare function ChevronDownIcon(props: IconProps): _$react_jsx_runtime0.JSX.Element;
12
7
  declare function ChevronUpIcon(props: IconProps): _$react_jsx_runtime0.JSX.Element;
@@ -19,8 +14,7 @@ declare function EllipsisIcon(props: IconProps): _$react_jsx_runtime0.JSX.Elemen
19
14
  declare function EllipsisVerticalIcon(props: IconProps): _$react_jsx_runtime0.JSX.Element;
20
15
  declare function ChevronsUpDownIcon(props: IconProps): _$react_jsx_runtime0.JSX.Element;
21
16
  declare function SidebarPanelIcon(props: IconProps): _$react_jsx_runtime0.JSX.Element;
22
- /** `forwardRef` because `Spinner` exposes this as `React.ComponentProps<"svg">`. */
23
- declare const LoaderIcon: _$react.ForwardRefExoticComponent<Omit<IconProps, "ref"> & _$react.RefAttributes<SVGSVGElement>>;
17
+ declare function LoaderIcon(props: IconProps): _$react_jsx_runtime0.JSX.Element;
24
18
  declare function AlertTriangleIcon(props: IconProps): _$react_jsx_runtime0.JSX.Element;
25
19
  declare function SuccessCircleIcon(props: IconProps): _$react_jsx_runtime0.JSX.Element;
26
20
  declare function InfoCircleIcon(props: IconProps): _$react_jsx_runtime0.JSX.Element;
@@ -1,11 +1,6 @@
1
- import { forwardRef } from "react";
1
+ import "react";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  //#region src/lib/internal-icons.tsx
4
- /**
5
- * Internal-only SVG icons used by wave-ui components.
6
- *
7
- * NOT a public entry point — imported by components via relative paths.
8
- */
9
4
  const SVG_BASE = {
10
5
  xmlns: "http://www.w3.org/2000/svg",
11
6
  width: 24,
@@ -134,11 +129,9 @@ function SidebarPanelIcon(props) {
134
129
  }), /* @__PURE__ */ jsx("path", { d: "M9 3v18" })]
135
130
  });
136
131
  }
137
- /** `forwardRef` because `Spinner` exposes this as `React.ComponentProps<"svg">`. */
138
- const LoaderIcon = forwardRef(function LoaderIcon(props, ref) {
132
+ function LoaderIcon(props) {
139
133
  return /* @__PURE__ */ jsxs("svg", {
140
134
  ...SVG_BASE,
141
- ref,
142
135
  ...props,
143
136
  children: [
144
137
  /* @__PURE__ */ jsx("path", { d: "M12 2v4" }),
@@ -151,7 +144,7 @@ const LoaderIcon = forwardRef(function LoaderIcon(props, ref) {
151
144
  /* @__PURE__ */ jsx("path", { d: "m4.9 4.9 2.9 2.9" })
152
145
  ]
153
146
  });
154
- });
147
+ }
155
148
  function AlertTriangleIcon(props) {
156
149
  return /* @__PURE__ */ jsxs("svg", {
157
150
  ...SVG_BASE,
package/dist/menu.js CHANGED
@@ -27,14 +27,14 @@ function MenuTrigger(props) {
27
27
  function MenuContent({ align = "start", alignOffset = 0, side = "bottom", sideOffset = 4, className, restoreFocusOnClose, finalFocus, ...props }) {
28
28
  return /* @__PURE__ */ jsx(MenuPortal, { children: /* @__PURE__ */ jsx(Menu$1.Positioner, {
29
29
  "data-slot": "menu-positioner",
30
- className: "isolate z-50 outline-none",
30
+ className: "isolate z-50 outline-hidden",
31
31
  align,
32
32
  alignOffset,
33
33
  side,
34
34
  sideOffset,
35
35
  children: /* @__PURE__ */ jsx(Menu$1.Popup, {
36
36
  "data-slot": "menu-content",
37
- className: cn("motion-pop-md ring-contrast/10 bg-elevated text-contrast z-50 max-h-(--available-height) max-w-(--available-width) w-auto min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md p-1 shadow-md ring-1 outline-none data-closed:overflow-hidden", className),
37
+ className: cn("motion-pop-md ring-contrast/10 bg-elevated text-contrast z-50 max-h-(--available-height) max-w-(--available-width) w-auto min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md p-1 shadow-md ring-1 outline-hidden data-closed:overflow-hidden", className),
38
38
  finalFocus: resolveFinalFocus(restoreFocusOnClose, finalFocus),
39
39
  ...props
40
40
  })
package/dist/radio.js CHANGED
@@ -7,7 +7,7 @@ import { Radio as Radio$1 } from "@base-ui/react/radio";
7
7
  function Radio({ className, ...props }) {
8
8
  return /* @__PURE__ */ jsx(Radio$1.Root, {
9
9
  "data-slot": "radio",
10
- className: cn("cursor-clickable border-edge dark:bg-edge/30 data-checked:bg-primary data-checked:text-white data-checked:border-primary aria-invalid:aria-checked:border-primary aria-invalid:border-destructive focus-visible:border-focus focus-visible:ring-focus/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 dark:aria-invalid:border-destructive/50 group/radio peer relative flex aspect-square size-4 shrink-0 rounded-full border outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-3 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3", className),
10
+ className: cn("cursor-clickable border-edge dark:bg-edge/30 data-checked:bg-primary data-checked:text-white data-checked:border-primary aria-invalid:aria-checked:border-primary aria-invalid:border-destructive focus-visible:border-focus focus-visible:ring-focus/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 dark:aria-invalid:border-destructive/50 group/radio peer relative flex aspect-square size-4 shrink-0 rounded-full border outline-hidden after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-3 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3", className),
11
11
  ...props,
12
12
  children: /* @__PURE__ */ jsx(RadioIndicator, {})
13
13
  });
@@ -12,7 +12,7 @@ function ScrollArea({ className, children, ...props }) {
12
12
  children: [
13
13
  /* @__PURE__ */ jsx(ScrollArea$1.Viewport, {
14
14
  "data-slot": "scroll-area-viewport",
15
- className: "focus-visible:ring-focus/50 size-full rounded-[inherit] motion-color outline-none focus-visible:ring-3 focus-visible:outline-1",
15
+ className: "focus-visible:ring-focus/50 size-full rounded-[inherit] motion-color outline-hidden focus-visible:ring-3 focus-visible:outline-1",
16
16
  children
17
17
  }),
18
18
  /* @__PURE__ */ jsx(ScrollBar, {}),
package/dist/select.js CHANGED
@@ -49,7 +49,7 @@ function SelectTrigger({ className, size = "default", children, ...props }) {
49
49
  return /* @__PURE__ */ jsxs(Select$1.Trigger, {
50
50
  "data-slot": "select-trigger",
51
51
  "data-size": size,
52
- className: cn("border-edge data-placeholder:text-soft dark:bg-edge/30 dark:hover:bg-edge/50 focus-visible:border-focus focus-visible:ring-focus/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 flex w-fit items-center justify-between gap-1.5 rounded-md border bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap motion-color outline-none select-none focus-visible:ring-3 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3 data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-sm *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
52
+ className: cn("border-edge data-placeholder:text-soft dark:bg-edge/30 dark:hover:bg-edge/50 focus-visible:border-focus focus-visible:ring-focus/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 flex w-fit items-center justify-between gap-1.5 rounded-md border bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap motion-color outline-hidden select-none focus-visible:ring-3 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3 data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-sm *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
53
53
  ...props,
54
54
  children: [children, /* @__PURE__ */ jsx(Select$1.Icon, {
55
55
  "data-slot": "select-icon",
package/dist/sidebar.js CHANGED
@@ -184,7 +184,7 @@ function SidebarTrigger({ className, onClick, ...props }) {
184
184
  "aria-expanded": open,
185
185
  variant: "ghost",
186
186
  size: "icon-sm",
187
- className: cn(className),
187
+ className,
188
188
  onClick: (event) => {
189
189
  onClick?.(event);
190
190
  toggleSidebar();
@@ -1,3 +1,4 @@
1
+ import * as React from "react";
1
2
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
2
3
 
3
4
  //#region src/skeleton.d.ts
package/dist/skeleton.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { cn } from "./lib/utils.js";
2
+ import "react";
2
3
  import { jsx } from "react/jsx-runtime";
3
4
  //#region src/skeleton.tsx
4
5
  function Skeleton({ className, ...props }) {
package/dist/spinner.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import * as React from "react";
1
2
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
2
3
 
3
4
  //#region src/spinner.d.ts
package/dist/spinner.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { cn } from "./lib/utils.js";
2
2
  import { LoaderIcon } from "./lib/internal-icons.js";
3
+ import "react";
3
4
  import { jsx } from "react/jsx-runtime";
4
5
  //#region src/spinner.tsx
5
6
  function Spinner({ className, ...props }) {
package/dist/styles.css CHANGED
@@ -17,8 +17,10 @@
17
17
  * file's location in node_modules/@waveso/ui/dist/. */
18
18
  @source "./";
19
19
 
20
- /* Tailwind v4 `dark:` variant — applied when any ancestor has `.dark`. */
21
- @custom-variant dark (&:is(.dark *));
20
+ /* Tailwind v4 `dark:` variant — applies to the `.dark` element itself and any
21
+ * descendant. `:where()` keeps utilities at their normal (zero-added) specificity
22
+ * so the cascade is decided by source order, like every other Tailwind utility. */
23
+ @custom-variant dark (&:where(.dark, .dark *));
22
24
 
23
25
  /* ---------------------------------------------------------------------------
24
26
  * Light theme (default)
@@ -164,9 +166,11 @@
164
166
  --info: var(--wave-500); /* the one blue — Wave Blue (= --primary / --focus) */
165
167
 
166
168
  /* Presence */
167
- --presence-online: oklch(0.710 0.185 155); /* = success colour */
168
- --presence-away: oklch(0.830 0.156 93); /* = warning colour */
169
- --presence-busy: oklch(0.620 0.200 25); /* = destructive colour */
169
+ /* Presence dots reuse the status colours aliased, not duplicated, so they
170
+ * stay in sync (and follow a consumer's `--success`/etc. override). */
171
+ --presence-online: var(--success);
172
+ --presence-away: var(--warning);
173
+ --presence-busy: var(--destructive);
170
174
  --presence-invisible: var(--foundation); /* invisible = the page itself; pair with a border so the dot reads as a hollow ring */
171
175
 
172
176
  /* Radius */
@@ -253,10 +257,10 @@
253
257
  --info: var(--wave-400); /* brighter Wave Blue for legible text-info on dark surfaces */
254
258
 
255
259
  /* Presence */
256
- --presence-online: oklch(0.735 0.185 155); /* brighter on dark, like status */
257
- --presence-away: oklch(0.850 0.156 93);
258
- --presence-busy: oklch(0.630 0.200 25);
259
- --presence-invisible: var(--foundation); /* re-declared so it re-resolves to the dark foundation */
260
+ --presence-online: var(--success);
261
+ --presence-away: var(--warning);
262
+ --presence-busy: var(--destructive);
263
+ --presence-invisible: var(--foundation); /* re-resolves to the dark foundation */
260
264
  }
261
265
 
262
266
  /* ---------------------------------------------------------------------------
package/dist/switch.js CHANGED
@@ -5,7 +5,7 @@ import { jsx } from "react/jsx-runtime";
5
5
  import { cva } from "class-variance-authority";
6
6
  import { Switch as Switch$1 } from "@base-ui/react/switch";
7
7
  //#region src/switch.tsx
8
- const switchVariants = cva("cursor-clickable data-checked:bg-primary data-unchecked:bg-edge focus-visible:border-focus focus-visible:ring-focus/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 dark:data-unchecked:bg-edge/80 peer relative inline-flex shrink-0 items-center rounded-full border border-transparent motion-color outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-3 aria-invalid:ring-3 data-disabled:cursor-not-allowed data-disabled:opacity-50", {
8
+ const switchVariants = cva("cursor-clickable data-checked:bg-primary data-unchecked:bg-edge focus-visible:border-focus focus-visible:ring-focus/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 dark:data-unchecked:bg-edge/80 peer relative inline-flex shrink-0 items-center rounded-full border border-transparent motion-color outline-hidden after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-3 aria-invalid:ring-3 data-disabled:cursor-not-allowed data-disabled:opacity-50", {
9
9
  variants: { size: {
10
10
  default: "h-[18.4px] w-[32px]",
11
11
  sm: "h-[14px] w-[24px]"
package/dist/tabs.js CHANGED
@@ -38,7 +38,7 @@ function TabsTrigger({ className, ...props }) {
38
38
  function TabsContent({ className, ...props }) {
39
39
  return /* @__PURE__ */ jsx(Tabs$1.Panel, {
40
40
  "data-slot": "tabs-content",
41
- className: cn("flex-1 text-sm outline-none", className),
41
+ className: cn("flex-1 text-sm outline-hidden", className),
42
42
  ...props
43
43
  });
44
44
  }
package/dist/textarea.js CHANGED
@@ -10,7 +10,7 @@ function Textarea({ className, onChange, onValueChange, ...props }) {
10
10
  }
11
11
  return /* @__PURE__ */ jsx("textarea", {
12
12
  "data-slot": "textarea",
13
- className: cn("border-edge dark:bg-edge/30 focus-visible:border-focus focus-visible:ring-focus/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 resize-none disabled:bg-edge/50 disabled:cursor-not-allowed dark:disabled:bg-edge/80 placeholder:text-soft flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-2.5 py-2 text-base transition-colors outline-none focus-visible:ring-3 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3 md:text-sm", className),
13
+ className: cn("border-edge dark:bg-edge/30 focus-visible:border-focus focus-visible:ring-focus/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 resize-none disabled:bg-edge/50 disabled:cursor-not-allowed dark:disabled:bg-edge/80 placeholder:text-soft flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-2.5 py-2 text-base transition-colors outline-hidden focus-visible:ring-3 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3 md:text-sm", className),
14
14
  onChange: handleChange,
15
15
  ...props
16
16
  });
package/dist/toast.d.ts CHANGED
@@ -5,7 +5,7 @@ import * as _$class_variance_authority_types0 from "class-variance-authority/typ
5
5
  import * as _$_base_ui_react0 from "@base-ui/react";
6
6
 
7
7
  //#region src/toast.d.ts
8
- declare const toastRootClass = "bg-elevated text-contrast ring-contrast/10 rounded-md p-4 text-sm shadow-md ring-1 outline-none select-none";
8
+ declare const toastRootClass = "bg-elevated text-contrast ring-contrast/10 rounded-md p-4 text-sm shadow-md ring-1 outline-hidden select-none";
9
9
  declare const toastIconVariants: (props?: ({
10
10
  type?: "success" | "warning" | "loading" | "info" | "error" | null | undefined;
11
11
  } & _$class_variance_authority_types0.ClassProp) | undefined) => string;
package/dist/toast.js CHANGED
@@ -6,7 +6,7 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
6
  import { cva } from "class-variance-authority";
7
7
  import { Toast as Toast$1 } from "@base-ui/react/toast";
8
8
  //#region src/toast.tsx
9
- const toastRootClass = "bg-elevated text-contrast ring-contrast/10 rounded-md p-4 text-sm shadow-md ring-1 outline-none select-none";
9
+ const toastRootClass = "bg-elevated text-contrast ring-contrast/10 rounded-md p-4 text-sm shadow-md ring-1 outline-hidden select-none";
10
10
  const toastIconVariants = cva("mt-0.5 size-4 shrink-0", { variants: { type: {
11
11
  loading: "text-muted animate-spin",
12
12
  success: "text-success",
@@ -14,7 +14,7 @@ const toastIconVariants = cva("mt-0.5 size-4 shrink-0", { variants: { type: {
14
14
  warning: "text-warning",
15
15
  error: "text-destructive"
16
16
  } } });
17
- const toastViewportVariants = cva("fixed z-[100] flex w-full outline-none sm:max-w-sm", {
17
+ const toastViewportVariants = cva("fixed z-[100] flex w-full outline-hidden sm:max-w-sm", {
18
18
  variants: { position: {
19
19
  "top-left": "top-4 left-4",
20
20
  "top-center": "top-4 right-0 left-0 mx-auto",
@@ -113,14 +113,14 @@ function ToastDescription({ className, ...props }) {
113
113
  function ToastAction({ className, ...props }) {
114
114
  return /* @__PURE__ */ jsx(Toast$1.Action, {
115
115
  "data-slot": "toast-action",
116
- className: cn("hover:bg-secondary inline-flex h-7 items-center rounded-md border border-line px-2.5 text-xs font-medium transition-colors outline-none focus-visible:border-focus focus-visible:ring-focus/50 focus-visible:ring-3", className),
116
+ className: cn("hover:bg-secondary inline-flex h-7 items-center rounded-md border border-line px-2.5 text-xs font-medium transition-colors outline-hidden focus-visible:border-focus focus-visible:ring-focus/50 focus-visible:ring-3", className),
117
117
  ...props
118
118
  });
119
119
  }
120
120
  function ToastClose({ className, children, ...props }) {
121
121
  return /* @__PURE__ */ jsx(Toast$1.Close, {
122
122
  "data-slot": "toast-close",
123
- className: cn("text-muted hover:text-contrast shrink-0 rounded-md p-0.5 transition-colors outline-none focus-visible:ring-focus/50 focus-visible:ring-3", className),
123
+ className: cn("text-muted hover:text-contrast shrink-0 rounded-md p-0.5 transition-colors outline-hidden focus-visible:ring-focus/50 focus-visible:ring-3", className),
124
124
  ...props,
125
125
  children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(CloseIcon, { className: "size-4" }), /* @__PURE__ */ jsx("span", {
126
126
  className: "sr-only",
package/dist/toggle.js CHANGED
@@ -5,7 +5,7 @@ import { jsx } from "react/jsx-runtime";
5
5
  import { cva } from "class-variance-authority";
6
6
  import { Toggle as Toggle$1 } from "@base-ui/react/toggle";
7
7
  //#region src/toggle.tsx
8
- const toggleVariants = cva("cursor-clickable hover:text-contrast focus-visible:border-focus focus-visible:ring-focus/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-pressed:bg-secondary gap-1 rounded-md text-sm font-medium motion-color [&_svg:not([class*='size-'])]:size-4 group/toggle hover:bg-secondary inline-flex items-center justify-center whitespace-nowrap outline-none focus-visible:ring-3 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0", {
8
+ const toggleVariants = cva("cursor-clickable hover:text-contrast focus-visible:border-focus focus-visible:ring-focus/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-pressed:bg-secondary gap-1 rounded-md text-sm font-medium motion-color [&_svg:not([class*='size-'])]:size-4 group/toggle hover:bg-secondary inline-flex items-center justify-center whitespace-nowrap outline-hidden focus-visible:ring-3 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0", {
9
9
  variants: {
10
10
  variant: {
11
11
  default: "bg-transparent",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@waveso/ui",
3
- "version": "0.8.0",
3
+ "version": "0.8.1",
4
4
  "description": "Wave UI component library built on Base UI and Tailwind CSS",
5
5
  "type": "module",
6
6
  "sideEffects": [