@wow-two-beta/ui 0.0.6 → 0.0.7

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.
@@ -10,7 +10,7 @@ export declare const buttonVariants: import("tailwind-variants").TVReturnType<{
10
10
  md: string;
11
11
  lg: string;
12
12
  };
13
- }, undefined, "inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-500 disabled:pointer-events-none disabled:opacity-50", import("tailwind-variants/dist/config.js").TVConfig<{
13
+ }, undefined, "inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50", import("tailwind-variants/dist/config.js").TVConfig<{
14
14
  variant: {
15
15
  primary: string;
16
16
  secondary: string;
@@ -54,7 +54,7 @@ export declare const buttonVariants: import("tailwind-variants").TVReturnType<{
54
54
  md: string;
55
55
  lg: string;
56
56
  };
57
- }, undefined, "inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-500 disabled:pointer-events-none disabled:opacity-50", import("tailwind-variants/dist/config.js").TVConfig<{
57
+ }, undefined, "inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50", import("tailwind-variants/dist/config.js").TVConfig<{
58
58
  variant: {
59
59
  primary: string;
60
60
  secondary: string;
@@ -17,7 +17,7 @@ export declare const iconButtonVariants: import("tailwind-variants").TVReturnTyp
17
17
  square: string;
18
18
  circle: string;
19
19
  };
20
- }, undefined, "inline-flex items-center justify-center transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-500 disabled:pointer-events-none disabled:opacity-50", import("tailwind-variants/dist/config.js").TVConfig<{
20
+ }, undefined, "inline-flex items-center justify-center transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50", import("tailwind-variants/dist/config.js").TVConfig<{
21
21
  variant: {
22
22
  solid: string;
23
23
  soft: string;
@@ -89,7 +89,7 @@ export declare const iconButtonVariants: import("tailwind-variants").TVReturnTyp
89
89
  square: string;
90
90
  circle: string;
91
91
  };
92
- }, undefined, "inline-flex items-center justify-center transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-500 disabled:pointer-events-none disabled:opacity-50", import("tailwind-variants/dist/config.js").TVConfig<{
92
+ }, undefined, "inline-flex items-center justify-center transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50", import("tailwind-variants/dist/config.js").TVConfig<{
93
93
  variant: {
94
94
  solid: string;
95
95
  soft: string;
@@ -1,4 +1,4 @@
1
- export { Button, IconButton, Link, buttonVariants, iconButtonVariants, linkVariants } from '../chunk-L2RYQWZZ.js';
1
+ export { Button, IconButton, Link, buttonVariants, iconButtonVariants, linkVariants } from '../chunk-HVJVLK6B.js';
2
2
  import '../chunk-33IOXQYO.js';
3
3
  import '../chunk-BMBIZLO4.js';
4
4
  import '../chunk-DN7WBRIV.js';
@@ -11,7 +11,7 @@ export declare const linkVariants: import("tailwind-variants").TVReturnType<{
11
11
  md: string;
12
12
  lg: string;
13
13
  };
14
- }, undefined, "inline-flex items-center transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-500 rounded-sm", import("tailwind-variants/dist/config.js").TVConfig<{
14
+ }, undefined, "inline-flex items-center transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm", import("tailwind-variants/dist/config.js").TVConfig<{
15
15
  variant: {
16
16
  default: string;
17
17
  subtle: string;
@@ -59,7 +59,7 @@ export declare const linkVariants: import("tailwind-variants").TVReturnType<{
59
59
  md: string;
60
60
  lg: string;
61
61
  };
62
- }, undefined, "inline-flex items-center transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-500 rounded-sm", import("tailwind-variants/dist/config.js").TVConfig<{
62
+ }, undefined, "inline-flex items-center transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm", import("tailwind-variants/dist/config.js").TVConfig<{
63
63
  variant: {
64
64
  default: string;
65
65
  subtle: string;
@@ -15,9 +15,9 @@ var spinnerVariants = tv({
15
15
  xl: "h-12 w-12 border-[3px]"
16
16
  },
17
17
  tone: {
18
- default: "text-neutral-500",
19
- brand: "text-brand-600",
20
- muted: "text-neutral-300",
18
+ default: "text-muted-foreground",
19
+ brand: "text-primary",
20
+ muted: "text-border",
21
21
  current: ""
22
22
  }
23
23
  },
@@ -36,7 +36,7 @@ Spinner.displayName = "Spinner";
36
36
 
37
37
  // src/feedback/skeleton/Skeleton.variants.ts
38
38
  var skeletonVariants = tv({
39
- base: "animate-pulse bg-neutral-200",
39
+ base: "animate-pulse bg-muted",
40
40
  variants: {
41
41
  shape: {
42
42
  rect: "rounded-md",
@@ -63,7 +63,7 @@ Skeleton.displayName = "Skeleton";
63
63
 
64
64
  // src/feedback/progressBar/ProgressBar.variants.ts
65
65
  var progressTrackVariants = tv({
66
- base: "h-2 w-full overflow-hidden rounded-full bg-neutral-200",
66
+ base: "h-2 w-full overflow-hidden rounded-full bg-muted",
67
67
  variants: {
68
68
  size: {
69
69
  sm: "h-1",
@@ -79,11 +79,11 @@ var progressFillVariants = tv({
79
79
  base: "h-full rounded-full transition-[width] duration-300",
80
80
  variants: {
81
81
  tone: {
82
- brand: "bg-brand-600",
83
- success: "bg-success-500",
84
- warning: "bg-warning-500",
85
- danger: "bg-danger-500",
86
- neutral: "bg-neutral-500"
82
+ brand: "bg-primary",
83
+ success: "bg-success",
84
+ warning: "bg-warning",
85
+ danger: "bg-destructive",
86
+ neutral: "bg-muted-foreground"
87
87
  }
88
88
  },
89
89
  defaultVariants: {
@@ -121,11 +121,11 @@ var ProgressBar = forwardRef(
121
121
  );
122
122
  ProgressBar.displayName = "ProgressBar";
123
123
  var TONE_CLASS = {
124
- brand: "text-brand-600",
125
- success: "text-success-500",
126
- warning: "text-warning-500",
127
- danger: "text-danger-500",
128
- neutral: "text-neutral-500"
124
+ brand: "text-primary",
125
+ success: "text-success",
126
+ warning: "text-warning",
127
+ danger: "text-destructive",
128
+ neutral: "text-muted-foreground"
129
129
  };
130
130
  var ProgressCircle = forwardRef(
131
131
  ({ value, max = 100, size = 40, thickness = 4, tone = "brand", label, className, ...props }, ref) => {
@@ -187,11 +187,11 @@ var alertSimpleVariants = tv({
187
187
  base: "rounded-md border px-4 py-3 text-sm",
188
188
  variants: {
189
189
  severity: {
190
- info: "border-info-100 bg-info-50 text-info-900",
191
- success: "border-success-100 bg-success-50 text-success-900",
192
- warning: "border-warning-100 bg-warning-50 text-warning-900",
193
- danger: "border-danger-100 bg-danger-50 text-danger-900",
194
- neutral: "border-neutral-200 bg-neutral-50 text-neutral-900"
190
+ info: "border-info-soft bg-info-soft text-info-soft-foreground",
191
+ success: "border-success-soft bg-success-soft text-success-soft-foreground",
192
+ warning: "border-warning-soft bg-warning-soft text-warning-soft-foreground",
193
+ danger: "border-destructive-soft bg-destructive-soft text-destructive-soft-foreground",
194
+ neutral: "border-border bg-muted text-foreground"
195
195
  }
196
196
  },
197
197
  defaultVariants: {
@@ -216,11 +216,11 @@ var bannerSimpleVariants = tv({
216
216
  base: "w-full px-6 py-3 text-sm",
217
217
  variants: {
218
218
  severity: {
219
- info: "bg-info-500 text-white",
220
- success: "bg-success-500 text-white",
221
- warning: "bg-warning-500 text-warning-900",
222
- danger: "bg-danger-500 text-white",
223
- neutral: "bg-neutral-900 text-neutral-50"
219
+ info: "bg-info text-info-foreground",
220
+ success: "bg-success text-success-foreground",
221
+ warning: "bg-warning text-warning-foreground",
222
+ danger: "bg-destructive text-destructive-foreground",
223
+ neutral: "bg-inverse text-inverse-foreground"
224
224
  }
225
225
  },
226
226
  defaultVariants: {
@@ -242,14 +242,14 @@ BannerSimple.displayName = "BannerSimple";
242
242
 
243
243
  // src/feedback/toastSimple/ToastSimple.variants.ts
244
244
  var toastSimpleVariants = tv({
245
- base: "pointer-events-auto rounded-md border bg-white shadow-lg px-4 py-3 text-sm",
245
+ base: "pointer-events-auto rounded-md border bg-popover text-popover-foreground shadow-lg px-4 py-3 text-sm",
246
246
  variants: {
247
247
  severity: {
248
- info: "border-info-100",
249
- success: "border-success-100",
250
- warning: "border-warning-100",
251
- danger: "border-danger-100",
252
- neutral: "border-neutral-200"
248
+ info: "border-info-soft",
249
+ success: "border-success-soft",
250
+ warning: "border-warning-soft",
251
+ danger: "border-destructive-soft",
252
+ neutral: "border-border"
253
253
  }
254
254
  },
255
255
  defaultVariants: {
@@ -271,5 +271,5 @@ var ToastSimple = forwardRef(
271
271
  ToastSimple.displayName = "ToastSimple";
272
272
 
273
273
  export { AlertSimple, BannerSimple, ProgressBar, ProgressCircle, Skeleton, Spinner, ToastSimple, alertSimpleVariants, bannerSimpleVariants, progressFillVariants, progressTrackVariants, skeletonVariants, spinnerVariants, toastSimpleVariants };
274
- //# sourceMappingURL=chunk-YLN7VMYU.js.map
275
- //# sourceMappingURL=chunk-YLN7VMYU.js.map
274
+ //# sourceMappingURL=chunk-62NXDB5V.js.map
275
+ //# sourceMappingURL=chunk-62NXDB5V.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/feedback/spinner/Spinner.variants.ts","../src/feedback/spinner/Spinner.tsx","../src/feedback/skeleton/Skeleton.variants.ts","../src/feedback/skeleton/Skeleton.tsx","../src/feedback/progressBar/ProgressBar.variants.ts","../src/feedback/progressBar/ProgressBar.tsx","../src/feedback/progressCircle/ProgressCircle.tsx","../src/feedback/alertSimple/AlertSimple.variants.ts","../src/feedback/alertSimple/AlertSimple.tsx","../src/feedback/bannerSimple/BannerSimple.variants.ts","../src/feedback/bannerSimple/BannerSimple.tsx","../src/feedback/toastSimple/ToastSimple.variants.ts","../src/feedback/toastSimple/ToastSimple.tsx"],"names":["forwardRef","jsx","jsxs"],"mappings":"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","file":"chunk-62NXDB5V.js","sourcesContent":["import { tv, type VariantProps } from '../../utils';\n\nexport const spinnerVariants = tv({\n base: 'inline-block animate-spin rounded-full border-current border-b-transparent',\n variants: {\n size: {\n xs: 'h-3 w-3 border',\n sm: 'h-4 w-4 border-2',\n md: 'h-5 w-5 border-2',\n lg: 'h-8 w-8 border-2',\n xl: 'h-12 w-12 border-[3px]',\n },\n tone: {\n default: 'text-muted-foreground',\n brand: 'text-primary',\n muted: 'text-border',\n current: '',\n },\n },\n defaultVariants: {\n size: 'md',\n tone: 'default',\n },\n});\n\nexport type SpinnerVariants = VariantProps<typeof spinnerVariants>;\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\nimport { spinnerVariants, type SpinnerVariants } from './Spinner.variants';\n\nexport interface SpinnerProps\n extends Omit<ComponentPropsWithoutRef<'span'>, 'children'>,\n SpinnerVariants {\n /** Accessible label. Default `\"Loading\"`. */\n label?: string;\n}\n\n/**\n * Indeterminate loading spinner. Renders a spinning circle and a visually\n * hidden text label for screen readers.\n */\nexport const Spinner = forwardRef<HTMLSpanElement, SpinnerProps>(\n ({ className, size, tone, label = 'Loading', role = 'status', ...props }, ref) => (\n <span ref={ref} role={role} {...props}>\n <span className={cn(spinnerVariants({ size, tone }), className)} />\n <span className=\"sr-only\">{label}</span>\n </span>\n ),\n);\nSpinner.displayName = 'Spinner';\n","import { tv, type VariantProps } from '../../utils';\n\nexport const skeletonVariants = tv({\n base: 'animate-pulse bg-muted',\n variants: {\n shape: {\n rect: 'rounded-md',\n text: 'h-4 rounded-sm',\n circle: 'rounded-full',\n },\n },\n defaultVariants: {\n shape: 'rect',\n },\n});\n\nexport type SkeletonVariants = VariantProps<typeof skeletonVariants>;\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\nimport { skeletonVariants, type SkeletonVariants } from './Skeleton.variants';\n\nexport interface SkeletonProps extends ComponentPropsWithoutRef<'div'>, SkeletonVariants {}\n\n/**\n * Loading placeholder. Use sized via `className` (e.g. `w-32 h-4`) for text\n * lines, or as a full block with `shape=\"rect\"`.\n */\nexport const Skeleton = forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, shape, ...props }, ref) => (\n <div\n ref={ref}\n aria-hidden=\"true\"\n className={cn(skeletonVariants({ shape }), className)}\n {...props}\n />\n ),\n);\nSkeleton.displayName = 'Skeleton';\n","import { tv, type VariantProps } from '../../utils';\n\nexport const progressTrackVariants = tv({\n base: 'h-2 w-full overflow-hidden rounded-full bg-muted',\n variants: {\n size: {\n sm: 'h-1',\n md: 'h-2',\n lg: 'h-3',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\nexport const progressFillVariants = tv({\n base: 'h-full rounded-full transition-[width] duration-300',\n variants: {\n tone: {\n brand: 'bg-primary',\n success: 'bg-success',\n warning: 'bg-warning',\n danger: 'bg-destructive',\n neutral: 'bg-muted-foreground',\n },\n },\n defaultVariants: {\n tone: 'brand',\n },\n});\n\nexport type ProgressBarVariants = VariantProps<typeof progressTrackVariants> &\n VariantProps<typeof progressFillVariants>;\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\nimport {\n progressFillVariants,\n progressTrackVariants,\n type ProgressBarVariants,\n} from './ProgressBar.variants';\n\nexport interface ProgressBarProps\n extends Omit<ComponentPropsWithoutRef<'div'>, 'children'>,\n ProgressBarVariants {\n /** Current value 0–100. Pass `undefined` for indeterminate. */\n value?: number;\n max?: number;\n /** Accessible label for the progress. */\n label?: string;\n}\n\n/**\n * Linear progress indicator. Set `value` (0–`max`) for determinate; omit\n * for indeterminate.\n */\nexport const ProgressBar = forwardRef<HTMLDivElement, ProgressBarProps>(\n ({ value, max = 100, size, tone, label, className, ...props }, ref) => {\n const determinate = typeof value === 'number';\n const pct = determinate ? Math.min(100, Math.max(0, (value / max) * 100)) : undefined;\n return (\n <div\n ref={ref}\n role=\"progressbar\"\n aria-label={label}\n aria-valuemin={0}\n aria-valuemax={max}\n aria-valuenow={determinate ? value : undefined}\n className={cn(progressTrackVariants({ size }), className)}\n {...props}\n >\n <div\n className={cn(\n progressFillVariants({ tone }),\n !determinate && 'w-1/3 animate-[indeterminate_1.4s_ease-in-out_infinite]',\n )}\n style={determinate ? { width: `${pct}%` } : undefined}\n />\n </div>\n );\n },\n);\nProgressBar.displayName = 'ProgressBar';\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\n\nexport interface ProgressCircleProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children'> {\n /** 0–100. Omit for indeterminate. */\n value?: number;\n max?: number;\n size?: number;\n thickness?: number;\n tone?: 'brand' | 'success' | 'warning' | 'danger' | 'neutral';\n label?: string;\n}\n\nconst TONE_CLASS: Record<NonNullable<ProgressCircleProps['tone']>, string> = {\n brand: 'text-primary',\n success: 'text-success',\n warning: 'text-warning',\n danger: 'text-destructive',\n neutral: 'text-muted-foreground',\n};\n\n/**\n * Circular progress indicator (SVG). Determinate when `value` is set;\n * indeterminate (rotating) when omitted.\n */\nexport const ProgressCircle = forwardRef<HTMLDivElement, ProgressCircleProps>(\n (\n { value, max = 100, size = 40, thickness = 4, tone = 'brand', label, className, ...props },\n ref,\n ) => {\n const determinate = typeof value === 'number';\n const radius = (size - thickness) / 2;\n const circumference = 2 * Math.PI * radius;\n const pct = determinate ? Math.min(100, Math.max(0, (value / max) * 100)) : 25;\n const offset = circumference - (pct / 100) * circumference;\n\n return (\n <div\n ref={ref}\n role=\"progressbar\"\n aria-label={label}\n aria-valuemin={0}\n aria-valuemax={max}\n aria-valuenow={determinate ? value : undefined}\n className={cn('inline-block', !determinate && 'animate-spin', TONE_CLASS[tone], className)}\n style={{ width: size, height: size }}\n {...props}\n >\n <svg width={size} height={size} viewBox={`0 0 ${size} ${size}`}>\n <circle\n cx={size / 2}\n cy={size / 2}\n r={radius}\n stroke=\"currentColor\"\n strokeWidth={thickness}\n fill=\"none\"\n opacity={0.2}\n />\n <circle\n cx={size / 2}\n cy={size / 2}\n r={radius}\n stroke=\"currentColor\"\n strokeWidth={thickness}\n strokeLinecap=\"round\"\n fill=\"none\"\n strokeDasharray={circumference}\n strokeDashoffset={offset}\n transform={`rotate(-90 ${size / 2} ${size / 2})`}\n style={{ transition: 'stroke-dashoffset 300ms ease' }}\n />\n </svg>\n </div>\n );\n },\n);\nProgressCircle.displayName = 'ProgressCircle';\n","import { tv, type VariantProps } from '../../utils';\n\nexport const alertSimpleVariants = tv({\n base: 'rounded-md border px-4 py-3 text-sm',\n variants: {\n severity: {\n info: 'border-info-soft bg-info-soft text-info-soft-foreground',\n success: 'border-success-soft bg-success-soft text-success-soft-foreground',\n warning: 'border-warning-soft bg-warning-soft text-warning-soft-foreground',\n danger: 'border-destructive-soft bg-destructive-soft text-destructive-soft-foreground',\n neutral: 'border-border bg-muted text-foreground',\n },\n },\n defaultVariants: {\n severity: 'info',\n },\n});\n\nexport type AlertSimpleVariants = VariantProps<typeof alertSimpleVariants>;\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\nimport { alertSimpleVariants, type AlertSimpleVariants } from './AlertSimple.variants';\n\nexport interface AlertSimpleProps\n extends ComponentPropsWithoutRef<'div'>,\n AlertSimpleVariants {}\n\n/**\n * Atomic alert — a styled colored container that takes free-form `children`.\n * No internal slots; consumer composes title/description/actions inline.\n *\n * For the structured Icon + Title + Description + Actions composition use\n * the `Alert` molecule (L4).\n */\nexport const AlertSimple = forwardRef<HTMLDivElement, AlertSimpleProps>(\n ({ className, severity, role = 'status', ...props }, ref) => (\n <div\n ref={ref}\n role={role}\n className={cn(alertSimpleVariants({ severity }), className)}\n {...props}\n />\n ),\n);\nAlertSimple.displayName = 'AlertSimple';\n","import { tv, type VariantProps } from '../../utils';\n\nexport const bannerSimpleVariants = tv({\n base: 'w-full px-6 py-3 text-sm',\n variants: {\n severity: {\n info: 'bg-info text-info-foreground',\n success: 'bg-success text-success-foreground',\n warning: 'bg-warning text-warning-foreground',\n danger: 'bg-destructive text-destructive-foreground',\n neutral: 'bg-inverse text-inverse-foreground',\n },\n },\n defaultVariants: {\n severity: 'info',\n },\n});\n\nexport type BannerSimpleVariants = VariantProps<typeof bannerSimpleVariants>;\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\nimport { bannerSimpleVariants, type BannerSimpleVariants } from './BannerSimple.variants';\n\nexport interface BannerSimpleProps\n extends ComponentPropsWithoutRef<'div'>,\n BannerSimpleVariants {}\n\n/**\n * Full-width banner — typically pinned to the top of the app to broadcast\n * status. Atom; for structured slotted layout use `Banner` (L4).\n */\nexport const BannerSimple = forwardRef<HTMLDivElement, BannerSimpleProps>(\n ({ className, severity, role = 'status', ...props }, ref) => (\n <div\n ref={ref}\n role={role}\n className={cn(bannerSimpleVariants({ severity }), className)}\n {...props}\n />\n ),\n);\nBannerSimple.displayName = 'BannerSimple';\n","import { tv, type VariantProps } from '../../utils';\n\nexport const toastSimpleVariants = tv({\n base: 'pointer-events-auto rounded-md border bg-popover text-popover-foreground shadow-lg px-4 py-3 text-sm',\n variants: {\n severity: {\n info: 'border-info-soft',\n success: 'border-success-soft',\n warning: 'border-warning-soft',\n danger: 'border-destructive-soft',\n neutral: 'border-border',\n },\n },\n defaultVariants: {\n severity: 'neutral',\n },\n});\n\nexport type ToastSimpleVariants = VariantProps<typeof toastSimpleVariants>;\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\nimport { toastSimpleVariants, type ToastSimpleVariants } from './ToastSimple.variants';\n\nexport interface ToastSimpleProps\n extends ComponentPropsWithoutRef<'div'>,\n ToastSimpleVariants {}\n\n/**\n * Atomic toast — a single notification card with free-form `children`.\n * Visual only; the queue / portal manager (`Toaster`) lives at L5. For\n * the structured Icon + Title + Description + Action layout, use the\n * `Toast` molecule (L4).\n */\nexport const ToastSimple = forwardRef<HTMLDivElement, ToastSimpleProps>(\n ({ className, severity, role = 'status', ...props }, ref) => (\n <div\n ref={ref}\n role={role}\n aria-live=\"polite\"\n className={cn(toastSimpleVariants({ severity }), className)}\n {...props}\n />\n ),\n);\nToastSimple.displayName = 'ToastSimple';\n"]}
@@ -7,7 +7,7 @@ import { X } from 'lucide-react';
7
7
 
8
8
  // src/display/heading/Heading.variants.ts
9
9
  var headingVariants = tv({
10
- base: "font-semibold tracking-tight text-neutral-900",
10
+ base: "font-semibold tracking-tight text-foreground",
11
11
  variants: {
12
12
  size: {
13
13
  xs: "text-sm",
@@ -69,13 +69,13 @@ var textVariants = tv({
69
69
  bold: "font-bold"
70
70
  },
71
71
  color: {
72
- default: "text-neutral-900",
73
- muted: "text-neutral-500",
74
- subtle: "text-neutral-400",
75
- brand: "text-brand-600",
76
- success: "text-success-600",
77
- warning: "text-warning-600",
78
- danger: "text-danger-600"
72
+ default: "text-foreground",
73
+ muted: "text-muted-foreground",
74
+ subtle: "text-subtle-foreground",
75
+ brand: "text-primary",
76
+ success: "text-success",
77
+ warning: "text-warning",
78
+ danger: "text-destructive"
79
79
  },
80
80
  align: {
81
81
  left: "text-left",
@@ -110,8 +110,8 @@ var codeVariants = tv({
110
110
  base: "font-mono text-sm",
111
111
  variants: {
112
112
  variant: {
113
- inline: "rounded-sm bg-neutral-100 px-1 py-0.5 text-neutral-900",
114
- block: "block w-full overflow-x-auto rounded-md bg-neutral-100 p-4 text-neutral-900"
113
+ inline: "rounded-sm bg-muted px-1 py-0.5 text-foreground",
114
+ block: "block w-full overflow-x-auto rounded-md bg-muted p-4 text-foreground"
115
115
  }
116
116
  },
117
117
  defaultVariants: {
@@ -127,8 +127,8 @@ var Kbd = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
127
127
  {
128
128
  ref,
129
129
  className: cn(
130
- "inline-flex h-5 min-w-5 items-center justify-center rounded-sm border border-neutral-300",
131
- "bg-neutral-100 px-1.5 font-mono text-xs text-neutral-700 shadow-[inset_0_-1px_0_0_rgb(0_0_0/0.05)]",
130
+ "inline-flex h-5 min-w-5 items-center justify-center rounded-sm border border-border",
131
+ "bg-muted px-1.5 font-mono text-xs text-muted-foreground shadow-[inset_0_-1px_0_0_rgb(0_0_0/0.05)]",
132
132
  className
133
133
  ),
134
134
  ...props
@@ -158,7 +158,7 @@ Image.displayName = "Image";
158
158
 
159
159
  // src/display/avatar/Avatar.variants.ts
160
160
  var avatarVariants = tv({
161
- base: "inline-flex shrink-0 select-none items-center justify-center overflow-hidden rounded-full bg-neutral-200 text-neutral-700 font-medium",
161
+ base: "inline-flex shrink-0 select-none items-center justify-center overflow-hidden rounded-full bg-muted text-muted-foreground font-medium",
162
162
  variants: {
163
163
  size: {
164
164
  xs: "h-6 w-6 text-xs",
@@ -215,13 +215,13 @@ var badgeVariants = tv({
215
215
  base: "inline-flex items-center rounded-full font-medium",
216
216
  variants: {
217
217
  variant: {
218
- neutral: "bg-neutral-100 text-neutral-800",
219
- brand: "bg-brand-100 text-brand-800",
220
- success: "bg-success-100 text-success-700",
221
- warning: "bg-warning-100 text-warning-700",
222
- danger: "bg-danger-100 text-danger-700",
223
- info: "bg-info-100 text-info-700",
224
- outline: "border border-neutral-300 text-neutral-800"
218
+ neutral: "bg-muted text-foreground",
219
+ brand: "bg-primary-soft text-primary-soft-foreground",
220
+ success: "bg-success-soft text-success-soft-foreground",
221
+ warning: "bg-warning-soft text-warning-soft-foreground",
222
+ danger: "bg-destructive-soft text-destructive-soft-foreground",
223
+ info: "bg-info-soft text-info-soft-foreground",
224
+ outline: "border border-border text-foreground"
225
225
  },
226
226
  size: {
227
227
  sm: "h-5 px-2 text-xs",
@@ -241,15 +241,15 @@ Badge.displayName = "Badge";
241
241
 
242
242
  // src/display/tag/Tag.variants.ts
243
243
  var tagVariants = tv({
244
- base: "inline-flex items-center gap-1 rounded-md border border-neutral-200 bg-white px-2 py-0.5 text-xs font-medium text-neutral-800",
244
+ base: "inline-flex items-center gap-1 rounded-md border border-border bg-card px-2 py-0.5 text-xs font-medium text-card-foreground",
245
245
  variants: {
246
246
  variant: {
247
247
  neutral: "",
248
- brand: "border-brand-200 bg-brand-50 text-brand-800",
249
- success: "border-success-100 bg-success-50 text-success-700",
250
- warning: "border-warning-100 bg-warning-50 text-warning-700",
251
- danger: "border-danger-100 bg-danger-50 text-danger-700",
252
- info: "border-info-100 bg-info-50 text-info-700"
248
+ brand: "border-transparent bg-primary-soft text-primary-soft-foreground",
249
+ success: "border-transparent bg-success-soft text-success-soft-foreground",
250
+ warning: "border-transparent bg-warning-soft text-warning-soft-foreground",
251
+ danger: "border-transparent bg-destructive-soft text-destructive-soft-foreground",
252
+ info: "border-transparent bg-info-soft text-info-soft-foreground"
253
253
  }
254
254
  },
255
255
  defaultVariants: {
@@ -265,7 +265,7 @@ var Tag = forwardRef(
265
265
  type: "button",
266
266
  "aria-label": closeLabel,
267
267
  onClick: onClose,
268
- className: "-mr-1 inline-flex h-4 w-4 items-center justify-center rounded-sm text-neutral-500 hover:bg-neutral-100 hover:text-neutral-900 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-brand-500",
268
+ className: "-mr-1 inline-flex h-4 w-4 items-center justify-center rounded-sm text-muted-foreground hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
269
269
  children: /* @__PURE__ */ jsx(Icon, { icon: X, size: 12 })
270
270
  }
271
271
  )
@@ -280,7 +280,7 @@ var Separator = forwardRef(
280
280
  role: decorative ? "none" : "separator",
281
281
  "aria-orientation": decorative ? void 0 : orientation,
282
282
  className: cn(
283
- "bg-neutral-200",
283
+ "bg-border",
284
284
  orientation === "horizontal" ? "h-px w-full" : "w-px self-stretch",
285
285
  className
286
286
  ),
@@ -293,7 +293,7 @@ var Mark = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
293
293
  "mark",
294
294
  {
295
295
  ref,
296
- className: cn("rounded-sm bg-warning-100 px-0.5 text-warning-900", className),
296
+ className: cn("rounded-sm bg-warning-soft px-0.5 text-warning-soft-foreground", className),
297
297
  ...props
298
298
  }
299
299
  ));
@@ -304,7 +304,7 @@ var Quote = forwardRef(
304
304
  {
305
305
  ref,
306
306
  className: cn(
307
- "border-l-4 border-neutral-200 pl-4 italic text-neutral-700",
307
+ "border-l-4 border-border pl-4 italic text-muted-foreground",
308
308
  className
309
309
  ),
310
310
  ...props
@@ -314,5 +314,5 @@ var Quote = forwardRef(
314
314
  Quote.displayName = "Quote";
315
315
 
316
316
  export { Avatar, Badge, Code, Heading, Image, Kbd, Mark, Quote, Separator, Tag, Text, avatarVariants, badgeVariants, codeVariants, headingVariants, tagVariants, textVariants };
317
- //# sourceMappingURL=chunk-MP4OTUFA.js.map
318
- //# sourceMappingURL=chunk-MP4OTUFA.js.map
317
+ //# sourceMappingURL=chunk-DBQ4VF2J.js.map
318
+ //# sourceMappingURL=chunk-DBQ4VF2J.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/display/heading/Heading.variants.ts","../src/display/heading/Heading.tsx","../src/display/text/Text.variants.ts","../src/display/text/Text.tsx","../src/display/code/Code.variants.ts","../src/display/code/Code.tsx","../src/display/kbd/Kbd.tsx","../src/display/image/Image.tsx","../src/display/avatar/Avatar.variants.ts","../src/display/avatar/Avatar.tsx","../src/display/badge/Badge.variants.ts","../src/display/badge/Badge.tsx","../src/display/tag/Tag.variants.ts","../src/display/tag/Tag.tsx","../src/display/separator/Separator.tsx","../src/display/mark/Mark.tsx","../src/display/quote/Quote.tsx"],"names":["Tag","forwardRef","jsx","useState"],"mappings":"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","file":"chunk-DBQ4VF2J.js","sourcesContent":["import { tv, type VariantProps } from '../../utils';\n\nexport const headingVariants = tv({\n base: 'font-semibold tracking-tight text-foreground',\n variants: {\n size: {\n xs: 'text-sm',\n sm: 'text-base',\n md: 'text-lg',\n lg: 'text-xl',\n xl: 'text-2xl',\n '2xl': 'text-3xl',\n '3xl': 'text-4xl',\n '4xl': 'text-5xl',\n },\n weight: {\n normal: 'font-normal',\n medium: 'font-medium',\n semibold: 'font-semibold',\n bold: 'font-bold',\n },\n align: {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n },\n },\n defaultVariants: {\n size: 'lg',\n weight: 'semibold',\n },\n});\n\nexport type HeadingVariants = VariantProps<typeof headingVariants>;\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\nimport { headingVariants, type HeadingVariants } from './Heading.variants';\n\ntype HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface HeadingProps\n extends Omit<ComponentPropsWithoutRef<'h2'>, 'size'>,\n HeadingVariants {\n /** Semantic heading level (1–6). Default 2. Visual size is independent — set via `size`. */\n level?: HeadingLevel;\n}\n\n/**\n * Semantic heading. `level` controls the rendered tag (`h1`–`h6`); `size`\n * controls the visual scale independently — so a visually-large heading\n * can still be the right outline level.\n */\nexport const Heading = forwardRef<HTMLHeadingElement, HeadingProps>(\n ({ level = 2, className, size, weight, align, ...props }, ref) => {\n const Tag = `h${level}` as 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n return (\n <Tag\n ref={ref}\n className={cn(headingVariants({ size, weight, align }), className)}\n {...props}\n />\n );\n },\n);\nHeading.displayName = 'Heading';\n","import { tv, type VariantProps } from '../../utils';\n\nexport const textVariants = tv({\n base: '',\n variants: {\n size: {\n xs: 'text-xs',\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n xl: 'text-xl',\n },\n weight: {\n normal: 'font-normal',\n medium: 'font-medium',\n semibold: 'font-semibold',\n bold: 'font-bold',\n },\n color: {\n default: 'text-foreground',\n muted: 'text-muted-foreground',\n subtle: 'text-subtle-foreground',\n brand: 'text-primary',\n success: 'text-success',\n warning: 'text-warning',\n danger: 'text-destructive',\n },\n align: {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n justify: 'text-justify',\n },\n truncate: {\n true: 'truncate',\n },\n },\n defaultVariants: {\n size: 'md',\n weight: 'normal',\n color: 'default',\n },\n});\n\nexport type TextVariants = VariantProps<typeof textVariants>;\n","import {\n forwardRef,\n type ComponentPropsWithoutRef,\n type ElementType,\n type Ref,\n} from 'react';\nimport { cn } from '../../utils';\nimport { textVariants, type TextVariants } from './Text.variants';\n\nexport interface TextProps\n extends Omit<ComponentPropsWithoutRef<'p'>, 'as' | 'color'>,\n TextVariants {\n as?: ElementType;\n}\n\n/**\n * Body text. Renders as `<p>` by default; pass `as=\"span\"` (or any element)\n * to keep semantics consistent with the surrounding markup.\n */\nexport const Text = forwardRef<HTMLElement, TextProps>(\n ({ as: Component = 'p', className, size, weight, color, align, truncate, ...props }, ref) => (\n <Component\n ref={ref as Ref<HTMLElement>}\n className={cn(textVariants({ size, weight, color, align, truncate }), className)}\n {...props}\n />\n ),\n);\nText.displayName = 'Text';\n","import { tv, type VariantProps } from '../../utils';\n\nexport const codeVariants = tv({\n base: 'font-mono text-sm',\n variants: {\n variant: {\n inline: 'rounded-sm bg-muted px-1 py-0.5 text-foreground',\n block: 'block w-full overflow-x-auto rounded-md bg-muted p-4 text-foreground',\n },\n },\n defaultVariants: {\n variant: 'inline',\n },\n});\n\nexport type CodeVariants = VariantProps<typeof codeVariants>;\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\nimport { codeVariants, type CodeVariants } from './Code.variants';\n\nexport interface CodeProps extends ComponentPropsWithoutRef<'code'>, CodeVariants {}\n\n/**\n * Inline or block code. For block, wrap children in a `<pre>` if you need\n * pre-wrap whitespace; this atom only styles. Syntax highlighting is L5.\n */\nexport const Code = forwardRef<HTMLElement, CodeProps>(\n ({ className, variant, ...props }, ref) => (\n <code ref={ref} className={cn(codeVariants({ variant }), className)} {...props} />\n ),\n);\nCode.displayName = 'Code';\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\n\nexport type KbdProps = ComponentPropsWithoutRef<'kbd'>;\n\n/**\n * Keyboard key affordance — `<kbd>` styled with subtle border and inset\n * shadow. Single key per `<Kbd>`; chain via `<Kbd>⌘</Kbd> + <Kbd>K</Kbd>`.\n */\nexport const Kbd = forwardRef<HTMLElement, KbdProps>(({ className, ...props }, ref) => (\n <kbd\n ref={ref}\n className={cn(\n 'inline-flex h-5 min-w-5 items-center justify-center rounded-sm border border-border',\n 'bg-muted px-1.5 font-mono text-xs text-muted-foreground shadow-[inset_0_-1px_0_0_rgb(0_0_0/0.05)]',\n className,\n )}\n {...props}\n />\n));\nKbd.displayName = 'Kbd';\n","import { forwardRef, useState, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport { cn } from '../../utils';\n\nexport interface ImageProps extends ComponentPropsWithoutRef<'img'> {\n /** Element rendered when the image fails to load. */\n fallback?: ReactNode;\n}\n\n/**\n * Image with built-in error fallback. The fallback element replaces the\n * `<img>` on error (broken `src`, network failure). For aspect-locked\n * images, wrap in `AspectRatio`.\n */\nexport const Image = forwardRef<HTMLImageElement, ImageProps>(\n ({ fallback, onError, alt = '', className, ...props }, ref) => {\n const [errored, setErrored] = useState(false);\n if (errored && fallback !== undefined) return <>{fallback}</>;\n return (\n <img\n ref={ref}\n alt={alt}\n className={cn('block max-w-full', className)}\n onError={(e) => {\n setErrored(true);\n onError?.(e);\n }}\n {...props}\n />\n );\n },\n);\nImage.displayName = 'Image';\n","import { tv, type VariantProps } from '../../utils';\n\nexport const avatarVariants = tv({\n base: 'inline-flex shrink-0 select-none items-center justify-center overflow-hidden rounded-full bg-muted text-muted-foreground font-medium',\n variants: {\n size: {\n xs: 'h-6 w-6 text-xs',\n sm: 'h-8 w-8 text-sm',\n md: 'h-10 w-10 text-base',\n lg: 'h-12 w-12 text-lg',\n xl: 'h-16 w-16 text-xl',\n '2xl': 'h-20 w-20 text-2xl',\n },\n shape: {\n circle: 'rounded-full',\n square: 'rounded-md',\n },\n },\n defaultVariants: {\n size: 'md',\n shape: 'circle',\n },\n});\n\nexport type AvatarVariants = VariantProps<typeof avatarVariants>;\n","import {\n forwardRef,\n useState,\n type ComponentPropsWithoutRef,\n type ReactNode,\n} from 'react';\nimport { cn } from '../../utils';\nimport { avatarVariants, type AvatarVariants } from './Avatar.variants';\n\nexport interface AvatarProps\n extends Omit<ComponentPropsWithoutRef<'span'>, 'children'>,\n AvatarVariants {\n /** Image source. Falls back to `name` initials or `fallback` on error. */\n src?: string;\n /** Person/entity name — used to derive initials when no image. */\n name?: string;\n /** Custom fallback (overrides initials). */\n fallback?: ReactNode;\n /** Alt text for the underlying `<img>`. Defaults to `name`. */\n alt?: string;\n}\n\nfunction getInitials(name: string): string {\n const parts = name.trim().split(/\\s+/);\n if (parts.length === 0) return '';\n const first = parts[0]?.[0] ?? '';\n const last = parts.length > 1 ? parts[parts.length - 1]?.[0] ?? '' : '';\n return (first + last).toUpperCase();\n}\n\n/**\n * Image avatar with initials fallback. Strict atom — fallback is rendered\n * inline (raw text), not via the `Text` atom, to keep this self-contained.\n */\nexport const Avatar = forwardRef<HTMLSpanElement, AvatarProps>(\n ({ src, name = '', fallback, alt, className, size, shape, ...props }, ref) => {\n const [errored, setErrored] = useState(false);\n const showImage = src && !errored;\n return (\n <span\n ref={ref}\n className={cn(avatarVariants({ size, shape }), className)}\n {...props}\n >\n {showImage ? (\n <img\n src={src}\n alt={alt ?? name}\n className=\"h-full w-full object-cover\"\n onError={() => setErrored(true)}\n />\n ) : (\n fallback ?? getInitials(name)\n )}\n </span>\n );\n },\n);\nAvatar.displayName = 'Avatar';\n","import { tv, type VariantProps } from '../../utils';\n\nexport const badgeVariants = tv({\n base: 'inline-flex items-center rounded-full font-medium',\n variants: {\n variant: {\n neutral: 'bg-muted text-foreground',\n brand: 'bg-primary-soft text-primary-soft-foreground',\n success: 'bg-success-soft text-success-soft-foreground',\n warning: 'bg-warning-soft text-warning-soft-foreground',\n danger: 'bg-destructive-soft text-destructive-soft-foreground',\n info: 'bg-info-soft text-info-soft-foreground',\n outline: 'border border-border text-foreground',\n },\n size: {\n sm: 'h-5 px-2 text-xs',\n md: 'h-6 px-2.5 text-xs',\n lg: 'h-7 px-3 text-sm',\n },\n },\n defaultVariants: {\n variant: 'neutral',\n size: 'md',\n },\n});\n\nexport type BadgeVariants = VariantProps<typeof badgeVariants>;\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\nimport { badgeVariants, type BadgeVariants } from './Badge.variants';\n\nexport interface BadgeProps extends ComponentPropsWithoutRef<'span'>, BadgeVariants {}\n\n/**\n * Pill-shaped status / category indicator. Non-interactive — for clickable\n * use `Tag`. For severity-tinted callouts at message scale, use `Alert*`.\n */\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, variant, size, ...props }, ref) => (\n <span ref={ref} className={cn(badgeVariants({ variant, size }), className)} {...props} />\n ),\n);\nBadge.displayName = 'Badge';\n","import { tv, type VariantProps } from '../../utils';\n\nexport const tagVariants = tv({\n base: 'inline-flex items-center gap-1 rounded-md border border-border bg-card px-2 py-0.5 text-xs font-medium text-card-foreground',\n variants: {\n variant: {\n neutral: '',\n brand: 'border-transparent bg-primary-soft text-primary-soft-foreground',\n success: 'border-transparent bg-success-soft text-success-soft-foreground',\n warning: 'border-transparent bg-warning-soft text-warning-soft-foreground',\n danger: 'border-transparent bg-destructive-soft text-destructive-soft-foreground',\n info: 'border-transparent bg-info-soft text-info-soft-foreground',\n },\n },\n defaultVariants: {\n variant: 'neutral',\n },\n});\n\nexport type TagVariants = VariantProps<typeof tagVariants>;\n","import { forwardRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport { X } from 'lucide-react';\nimport { cn } from '../../utils';\nimport { Icon } from '../../icons';\nimport { tagVariants, type TagVariants } from './Tag.variants';\n\nexport interface TagProps\n extends Omit<ComponentPropsWithoutRef<'span'>, 'children'>,\n TagVariants {\n children?: ReactNode;\n /** Show a close (×) button. Pass a handler to receive the click. */\n onClose?: () => void;\n /** Accessible label for the close button. Default `\"Remove\"`. */\n closeLabel?: string;\n}\n\n/**\n * Pill with an optional close button. The close button is a raw `<button>`\n * (not `IconButton`) so this stays a strict atom.\n */\nexport const Tag = forwardRef<HTMLSpanElement, TagProps>(\n ({ children, onClose, closeLabel = 'Remove', variant, className, ...props }, ref) => (\n <span ref={ref} className={cn(tagVariants({ variant }), className)} {...props}>\n {children}\n {onClose && (\n <button\n type=\"button\"\n aria-label={closeLabel}\n onClick={onClose}\n className=\"-mr-1 inline-flex h-4 w-4 items-center justify-center rounded-sm text-muted-foreground hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring\"\n >\n <Icon icon={X} size={12} />\n </button>\n )}\n </span>\n ),\n);\nTag.displayName = 'Tag';\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\n\nexport interface SeparatorProps extends ComponentPropsWithoutRef<'div'> {\n orientation?: 'horizontal' | 'vertical';\n /** When `true`, the separator is purely decorative — `role=\"none\"` and\n * unannounced. Default `true`. Set `false` when meaningful in context. */\n decorative?: boolean;\n}\n\n/**\n * Visual divider. Defaults to a horizontal hairline; pass `orientation=\"vertical\"`\n * for column dividers (use inside a flex/grid with explicit height).\n */\nexport const Separator = forwardRef<HTMLDivElement, SeparatorProps>(\n ({ orientation = 'horizontal', decorative = true, className, ...props }, ref) => (\n <div\n ref={ref}\n role={decorative ? 'none' : 'separator'}\n aria-orientation={decorative ? undefined : orientation}\n className={cn(\n 'bg-border',\n orientation === 'horizontal' ? 'h-px w-full' : 'w-px self-stretch',\n className,\n )}\n {...props}\n />\n ),\n);\nSeparator.displayName = 'Separator';\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\n\nexport type MarkProps = ComponentPropsWithoutRef<'mark'>;\n\n/**\n * Highlighted text — semantic `<mark>` with a yellow tint. Use for search\n * matches and \"you mentioned this\" affordances.\n */\nexport const Mark = forwardRef<HTMLElement, MarkProps>(({ className, ...props }, ref) => (\n <mark\n ref={ref}\n className={cn('rounded-sm bg-warning-soft px-0.5 text-warning-soft-foreground', className)}\n {...props}\n />\n));\nMark.displayName = 'Mark';\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\n\nexport type QuoteProps = ComponentPropsWithoutRef<'blockquote'>;\n\n/**\n * Block quote with subtle left border and italic body text.\n */\nexport const Quote = forwardRef<HTMLQuoteElement, QuoteProps>(\n ({ className, ...props }, ref) => (\n <blockquote\n ref={ref}\n className={cn(\n 'border-l-4 border-border pl-4 italic text-muted-foreground',\n className,\n )}\n {...props}\n />\n ),\n);\nQuote.displayName = 'Quote';\n"]}
@@ -6,12 +6,12 @@ import { tv } from 'tailwind-variants';
6
6
  import { jsx } from 'react/jsx-runtime';
7
7
 
8
8
  var buttonVariants = tv({
9
- base: "inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-500 disabled:pointer-events-none disabled:opacity-50",
9
+ base: "inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",
10
10
  variants: {
11
11
  variant: {
12
- primary: "bg-brand-600 text-white hover:bg-brand-700",
13
- secondary: "bg-neutral-200 text-neutral-900 hover:bg-neutral-100",
14
- ghost: "bg-transparent text-neutral-900 hover:bg-neutral-100"
12
+ primary: "bg-primary text-primary-foreground hover:bg-primary/90",
13
+ secondary: "bg-muted text-foreground hover:bg-muted/80",
14
+ ghost: "bg-transparent text-foreground hover:bg-muted"
15
15
  },
16
16
  size: {
17
17
  sm: "h-8 px-3 text-sm rounded-md",
@@ -40,14 +40,14 @@ Button.displayName = "Button";
40
40
 
41
41
  // src/actions/iconButton/IconButton.variants.ts
42
42
  var iconButtonVariants = tv$1({
43
- base: "inline-flex items-center justify-center transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-500 disabled:pointer-events-none disabled:opacity-50",
43
+ base: "inline-flex items-center justify-center transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",
44
44
  variants: {
45
45
  variant: {
46
- solid: "bg-brand-600 text-white hover:bg-brand-700",
47
- soft: "bg-brand-50 text-brand-700 hover:bg-brand-100",
48
- outline: "border border-neutral-300 bg-white text-neutral-900 hover:bg-neutral-50",
49
- ghost: "bg-transparent text-neutral-900 hover:bg-neutral-100",
50
- danger: "bg-danger-600 text-white hover:bg-danger-700"
46
+ solid: "bg-primary text-primary-foreground hover:bg-primary/90",
47
+ soft: "bg-primary-soft text-primary-soft-foreground hover:bg-primary-soft/80",
48
+ outline: "border border-input bg-background text-foreground hover:bg-muted",
49
+ ghost: "bg-transparent text-foreground hover:bg-muted",
50
+ danger: "bg-destructive text-destructive-foreground hover:bg-destructive/90"
51
51
  },
52
52
  size: {
53
53
  xs: "h-6 w-6 rounded-sm",
@@ -81,12 +81,12 @@ IconButton.displayName = "IconButton";
81
81
 
82
82
  // src/actions/link/Link.variants.ts
83
83
  var linkVariants = tv$1({
84
- base: "inline-flex items-center transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-500 rounded-sm",
84
+ base: "inline-flex items-center transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm",
85
85
  variants: {
86
86
  variant: {
87
- default: "text-brand-600 hover:text-brand-700 hover:underline",
88
- subtle: "text-neutral-700 hover:text-neutral-900 hover:underline",
89
- muted: "text-neutral-500 hover:text-neutral-700 hover:underline",
87
+ default: "text-primary hover:text-primary/85 hover:underline",
88
+ subtle: "text-foreground hover:underline",
89
+ muted: "text-muted-foreground hover:text-foreground hover:underline",
90
90
  inherit: "text-current underline-offset-2 hover:underline"
91
91
  },
92
92
  size: {
@@ -116,5 +116,5 @@ var Link = forwardRef(
116
116
  Link.displayName = "Link";
117
117
 
118
118
  export { Button, IconButton, Link, buttonVariants, iconButtonVariants, linkVariants };
119
- //# sourceMappingURL=chunk-L2RYQWZZ.js.map
120
- //# sourceMappingURL=chunk-L2RYQWZZ.js.map
119
+ //# sourceMappingURL=chunk-HVJVLK6B.js.map
120
+ //# sourceMappingURL=chunk-HVJVLK6B.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/actions/button/Button.variants.ts","../src/actions/button/Button.tsx","../src/actions/iconButton/IconButton.variants.ts","../src/actions/iconButton/IconButton.tsx","../src/actions/link/Link.variants.ts","../src/actions/link/Link.tsx"],"names":["tv","forwardRef","jsx"],"mappings":"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","file":"chunk-HVJVLK6B.js","sourcesContent":["import { tv, type VariantProps } from 'tailwind-variants';\n\nexport const buttonVariants = tv({\n base: 'inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50',\n variants: {\n variant: {\n primary: 'bg-primary text-primary-foreground hover:bg-primary/90',\n secondary: 'bg-muted text-foreground hover:bg-muted/80',\n ghost: 'bg-transparent text-foreground hover:bg-muted',\n },\n size: {\n sm: 'h-8 px-3 text-sm rounded-md',\n md: 'h-10 px-4 text-sm rounded-md',\n lg: 'h-12 px-6 text-base rounded-lg',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n },\n});\n\nexport type ButtonVariants = VariantProps<typeof buttonVariants>;\n","import { forwardRef, type ButtonHTMLAttributes } from 'react';\nimport { cn } from '../../utils';\nimport { buttonVariants, type ButtonVariants } from './Button.variants';\n\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement>, ButtonVariants {}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, ...props }, ref) => {\n return (\n <button\n ref={ref}\n className={cn(buttonVariants({ variant, size }), className)}\n {...props}\n />\n );\n },\n);\n\nButton.displayName = 'Button';\n","import { tv, type VariantProps } from '../../utils';\n\nexport const iconButtonVariants = tv({\n base: 'inline-flex items-center justify-center transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50',\n variants: {\n variant: {\n solid: 'bg-primary text-primary-foreground hover:bg-primary/90',\n soft: 'bg-primary-soft text-primary-soft-foreground hover:bg-primary-soft/80',\n outline: 'border border-input bg-background text-foreground hover:bg-muted',\n ghost: 'bg-transparent text-foreground hover:bg-muted',\n danger: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\n },\n size: {\n xs: 'h-6 w-6 rounded-sm',\n sm: 'h-8 w-8 rounded-md',\n md: 'h-10 w-10 rounded-md',\n lg: 'h-12 w-12 rounded-lg',\n },\n shape: {\n square: '',\n circle: 'rounded-full',\n },\n },\n defaultVariants: {\n variant: 'ghost',\n size: 'md',\n shape: 'square',\n },\n});\n\nexport type IconButtonVariants = VariantProps<typeof iconButtonVariants>;\n","import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from 'react';\nimport { cn } from '../../utils';\nimport { iconButtonVariants, type IconButtonVariants } from './IconButton.variants';\n\nexport interface IconButtonProps\n extends ButtonHTMLAttributes<HTMLButtonElement>,\n IconButtonVariants {\n /** REQUIRED accessible label. IconButton has no visible text. */\n 'aria-label': string;\n children: ReactNode;\n}\n\n/**\n * Square / circular button containing only an icon. `aria-label` is\n * required by the type — there is no visible text fallback.\n */\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(\n ({ className, variant, size, shape, type = 'button', ...props }, ref) => (\n <button\n ref={ref}\n type={type}\n className={cn(iconButtonVariants({ variant, size, shape }), className)}\n {...props}\n />\n ),\n);\nIconButton.displayName = 'IconButton';\n","import { tv, type VariantProps } from '../../utils';\n\nexport const linkVariants = tv({\n base: 'inline-flex items-center transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm',\n variants: {\n variant: {\n default: 'text-primary hover:text-primary/85 hover:underline',\n subtle: 'text-foreground hover:underline',\n muted: 'text-muted-foreground hover:text-foreground hover:underline',\n inherit: 'text-current underline-offset-2 hover:underline',\n },\n size: {\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n});\n\nexport type LinkVariants = VariantProps<typeof linkVariants>;\n","import { forwardRef, type AnchorHTMLAttributes } from 'react';\nimport { cn } from '../../utils';\nimport { Slot } from '../../primitives/slot/Slot';\nimport { linkVariants, type LinkVariants } from './Link.variants';\n\nexport interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement>, LinkVariants {\n /** When true, render the child element as the link instead of an `<a>`.\n * Use for router `<Link>` components from Next.js / React Router. */\n asChild?: boolean;\n}\n\n/**\n * Anchor with consistent focus / hover styling. Pass `asChild` to render a\n * router `<Link>` while inheriting our visuals.\n */\nexport const Link = forwardRef<HTMLAnchorElement, LinkProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a';\n return (\n <Comp\n ref={ref}\n className={cn(linkVariants({ variant, size }), className)}\n {...(props as AnchorHTMLAttributes<HTMLAnchorElement>)}\n />\n );\n },\n);\nLink.displayName = 'Link';\n"]}