@waveso/ui 0.12.0 → 0.13.0

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/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" | "link" | "success" | "destructive" | "warning" | "secondary" | "outline" | "ghost" | null | undefined;
8
+ variant?: "default" | "outline" | "link" | "success" | "destructive" | "warning" | "secondary" | "ghost" | 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({
package/dist/badge.js CHANGED
@@ -4,16 +4,16 @@ import { cva } from "class-variance-authority";
4
4
  import { mergeProps } from "@base-ui/react/merge-props";
5
5
  import { useRender } from "@base-ui/react/use-render";
6
6
  //#region src/badge.tsx
7
- const badgeVariants = cva("h-5 gap-1 rounded-full border border-transparent px-2 py-0.5 text-xs font-medium motion-color has-data-[icon=inline-start]:pl-1.5 has-data-[icon=inline-end]:pr-1.5 [&>svg:not([class*='size-'])]:size-3 inline-flex items-center justify-center w-fit whitespace-nowrap shrink-0 [&>svg]:pointer-events-none focus-visible:border-focus focus-visible:ring-focus/50 focus-visible:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive overflow-hidden group/badge", {
7
+ const badgeVariants = cva("h-5 gap-1 rounded-full border border-transparent px-2 py-0.5 text-xs font-medium motion-color has-data-[icon=inline-start]:ps-1.5 has-data-[icon=inline-end]:pe-1.5 [&_svg:not([class*='size-'])]:size-3 inline-flex items-center justify-center w-fit whitespace-nowrap shrink-0 [&_svg]:shrink-0 [&_svg]:pointer-events-none focus-visible:border-focus focus-visible:ring-focus/50 focus-visible:ring-3 aria-invalid:ring-destructive/30 aria-invalid:border-destructive overflow-hidden group/badge", {
8
8
  variants: { variant: {
9
9
  default: "bg-primary text-white [a]:hover:bg-primary/80",
10
- success: "bg-success/10 [a]:hover:bg-success/20 focus-visible:ring-success/50 text-success dark:bg-success/20",
11
- destructive: "bg-destructive/10 text-destructive [a]:hover:bg-destructive/20 focus-visible:ring-destructive/50 dark:bg-destructive/20",
12
- warning: "bg-warning/10 text-warning [a]:hover:bg-warning/20 focus-visible:ring-warning/50 dark:bg-warning/20",
10
+ success: "bg-success text-contrast dark:text-foundation [a]:hover:bg-success/80",
11
+ destructive: "bg-destructive text-white [a]:hover:bg-destructive/80 [a]:focus-visible:ring-destructive/50",
12
+ warning: "bg-warning text-contrast dark:text-foundation [a]:hover:bg-warning/80",
13
13
  secondary: "bg-secondary text-contrast [a]:hover:bg-secondary/80",
14
- outline: "border-line text-contrast [a]:hover:bg-secondary [a]:hover:text-muted",
15
- ghost: "hover:bg-secondary hover:text-muted dark:hover:bg-secondary/50",
16
- link: "text-primary underline-offset-4 hover:underline"
14
+ outline: "border-edge bg-foundation [a]:hover:bg-secondary/80 [a]:hover:text-contrast dark:bg-edge/30",
15
+ ghost: "text-muted [a]:hover:bg-secondary/80",
16
+ link: "text-primary [a]:underline-offset-4 [a]:hover:underline"
17
17
  } },
18
18
  defaultVariants: { variant: "default" }
19
19
  });
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" | "link" | "destructive" | "secondary" | "outline" | "ghost" | null | undefined;
10
- size?: "default" | "icon" | "xs" | "sm" | "lg" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
9
+ variant?: "default" | "outline" | "link" | "destructive" | "secondary" | "ghost" | null | undefined;
10
+ size?: "default" | "sm" | "xs" | "icon" | "lg" | "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({
@@ -26,7 +26,7 @@ declare function InputGroupAddon({
26
26
  ...props
27
27
  }: InputGroupAddonProps): _$react_jsx_runtime0.JSX.Element;
28
28
  declare const inputGroupButtonVariants: (props?: ({
29
- size?: "xs" | "sm" | "icon-xs" | "icon-sm" | null | undefined;
29
+ size?: "sm" | "xs" | "icon-xs" | "icon-sm" | null | undefined;
30
30
  } & _$class_variance_authority_types0.ClassProp) | undefined) => string;
31
31
  declare function InputGroupButton({
32
32
  className,
package/dist/item.d.ts CHANGED
@@ -8,7 +8,7 @@ import * as _$class_variance_authority_types0 from "class-variance-authority/typ
8
8
  //#region src/item.d.ts
9
9
  declare const itemVariants: (props?: ({
10
10
  variant?: "default" | "outline" | "muted" | null | undefined;
11
- size?: "default" | "xs" | "sm" | null | undefined;
11
+ size?: "default" | "sm" | "xs" | null | undefined;
12
12
  } & _$class_variance_authority_types0.ClassProp) | undefined) => string;
13
13
  declare const itemMediaVariants: (props?: ({
14
14
  variant?: "default" | "icon" | "image" | null | undefined;
package/dist/styles.css CHANGED
@@ -36,6 +36,24 @@
36
36
  }
37
37
  }
38
38
 
39
+ /* ---------------------------------------------------------------------------
40
+ * Squircle corners — progressive enhancement. `corner-shape` renders every
41
+ * `border-radius` as a continuous superellipse (iOS-style) instead of a plain
42
+ * circular arc: softer, friendlier. It composes with `border-radius` and
43
+ * respects borders / rings / shadows, and degrades to normal rounding where
44
+ * unsupported (Chrome 2025+ today; Safari/Firefox pending). Pills and circles
45
+ * opt back out — a squircled circle reads as an app icon, not an avatar. */
46
+ @layer base {
47
+ *,
48
+ ::before,
49
+ ::after {
50
+ corner-shape: squircle;
51
+ }
52
+ [class*="rounded-full"] {
53
+ corner-shape: round;
54
+ }
55
+ }
56
+
39
57
  /* ---------------------------------------------------------------------------
40
58
  * Themes — named by identity: Paper (light) · Graphite (dark) · Ink (dark)
41
59
  *
@@ -230,6 +248,16 @@
230
248
  --stagger-lg: 90ms;
231
249
  }
232
250
 
251
+ /* A squircle reads tighter than a circular arc at the same radius, so where
252
+ * `corner-shape` is active we bump the radius to restore the intended roundness.
253
+ * Scoped via @supports — browsers without squircles keep the original values.
254
+ * Starting value; nudge by eye in Chrome. Feeds --radius-sm/md/lg (all calc off it). */
255
+ @supports (corner-shape: squircle) {
256
+ :root {
257
+ --radius: 1rem;
258
+ }
259
+ }
260
+
233
261
  /* ---------------------------------------------------------------------------
234
262
  * Paper — the LIGHT theme, and the default. The single source for Paper's
235
263
  * per-theme tokens, shared by `:root` (the default) and `.paper` (explicit —
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@waveso/ui",
3
- "version": "0.12.0",
3
+ "version": "0.13.0",
4
4
  "description": "Wave UI component library built on Base UI and Tailwind CSS",
5
5
  "type": "module",
6
6
  "sideEffects": [