@almadar/ui 2.25.4 → 2.27.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.
@@ -2638,28 +2638,28 @@ var marginYStyles = {
2638
2638
  };
2639
2639
  var bgStyles = {
2640
2640
  transparent: "bg-transparent",
2641
- primary: "bg-[var(--color-primary)] text-[var(--color-primary-foreground)]",
2642
- secondary: "bg-[var(--color-secondary)] text-[var(--color-secondary-foreground)]",
2643
- muted: "bg-[var(--color-muted)] text-[var(--color-foreground)]",
2644
- accent: "bg-[var(--color-accent)] text-[var(--color-accent-foreground)]",
2645
- surface: "bg-[var(--color-card)]",
2646
- overlay: "bg-[var(--color-card)]/80 backdrop-blur-sm"
2641
+ primary: "bg-primary text-primary-foreground",
2642
+ secondary: "bg-secondary text-secondary-foreground",
2643
+ muted: "bg-muted text-foreground",
2644
+ accent: "bg-accent text-accent-foreground",
2645
+ surface: "bg-card",
2646
+ overlay: "bg-card/80 backdrop-blur-sm"
2647
2647
  };
2648
2648
  var roundedStyles = {
2649
2649
  none: "rounded-none",
2650
- sm: "rounded-[var(--radius-sm)]",
2651
- md: "rounded-[var(--radius-md)]",
2652
- lg: "rounded-[var(--radius-lg)]",
2653
- xl: "rounded-[var(--radius-xl)]",
2654
- "2xl": "rounded-[var(--radius-xl)]",
2655
- full: "rounded-[var(--radius-full)]"
2650
+ sm: "rounded-sm",
2651
+ md: "rounded-md",
2652
+ lg: "rounded-lg",
2653
+ xl: "rounded-xl",
2654
+ "2xl": "rounded-xl",
2655
+ full: "rounded-full"
2656
2656
  };
2657
2657
  var shadowStyles = {
2658
2658
  none: "shadow-none",
2659
- sm: "shadow-[var(--shadow-sm)]",
2660
- md: "shadow-[var(--shadow-main)]",
2661
- lg: "shadow-[var(--shadow-lg)]",
2662
- xl: "shadow-[var(--shadow-lg)]"
2659
+ sm: "shadow-sm",
2660
+ md: "shadow",
2661
+ lg: "shadow-lg",
2662
+ xl: "shadow-lg"
2663
2663
  };
2664
2664
  var displayStyles = {
2665
2665
  block: "block",
@@ -2747,7 +2747,7 @@ var Box = React5__default.default.forwardRef(
2747
2747
  // Background
2748
2748
  bgStyles[bg],
2749
2749
  // Border - uses theme variables
2750
- border && "border-[length:var(--border-width)] border-[var(--color-border)]",
2750
+ border && "border-[length:var(--border-width)] border-border",
2751
2751
  // Rounded
2752
2752
  roundedStyles[rounded],
2753
2753
  // Shadow
@@ -2854,30 +2854,30 @@ var Stack = ({
2854
2854
  var VStack = (props) => /* @__PURE__ */ jsxRuntime.jsx(Stack, { direction: "vertical", ...props });
2855
2855
  var HStack = (props) => /* @__PURE__ */ jsxRuntime.jsx(Stack, { direction: "horizontal", ...props });
2856
2856
  var variantStyles = {
2857
- h1: "text-4xl font-bold tracking-tight text-[var(--color-foreground)]",
2858
- h2: "text-3xl font-bold tracking-tight text-[var(--color-foreground)]",
2859
- h3: "text-2xl font-bold text-[var(--color-foreground)]",
2860
- h4: "text-xl font-bold text-[var(--color-foreground)]",
2861
- h5: "text-lg font-bold text-[var(--color-foreground)]",
2862
- h6: "text-base font-bold text-[var(--color-foreground)]",
2863
- heading: "text-2xl font-bold text-[var(--color-foreground)]",
2864
- subheading: "text-lg font-semibold text-[var(--color-foreground)]",
2865
- body1: "text-base font-normal text-[var(--color-foreground)]",
2866
- body2: "text-sm font-normal text-[var(--color-foreground)]",
2867
- body: "text-base font-normal text-[var(--color-foreground)]",
2868
- caption: "text-xs font-normal text-[var(--color-muted-foreground)]",
2869
- overline: "text-xs uppercase tracking-wide font-bold text-[var(--color-muted-foreground)]",
2870
- small: "text-sm font-normal text-[var(--color-foreground)]",
2871
- large: "text-lg font-medium text-[var(--color-foreground)]",
2872
- label: "text-sm font-medium text-[var(--color-foreground)]"
2857
+ h1: "text-4xl font-bold tracking-tight text-foreground",
2858
+ h2: "text-3xl font-bold tracking-tight text-foreground",
2859
+ h3: "text-2xl font-bold text-foreground",
2860
+ h4: "text-xl font-bold text-foreground",
2861
+ h5: "text-lg font-bold text-foreground",
2862
+ h6: "text-base font-bold text-foreground",
2863
+ heading: "text-2xl font-bold text-foreground",
2864
+ subheading: "text-lg font-semibold text-foreground",
2865
+ body1: "text-base font-normal text-foreground",
2866
+ body2: "text-sm font-normal text-foreground",
2867
+ body: "text-base font-normal text-foreground",
2868
+ caption: "text-xs font-normal text-muted-foreground",
2869
+ overline: "text-xs uppercase tracking-wide font-bold text-muted-foreground",
2870
+ small: "text-sm font-normal text-foreground",
2871
+ large: "text-lg font-medium text-foreground",
2872
+ label: "text-sm font-medium text-foreground"
2873
2873
  };
2874
2874
  var colorStyles = {
2875
- primary: "text-[var(--color-foreground)]",
2876
- secondary: "text-[var(--color-muted-foreground)]",
2877
- muted: "text-[var(--color-muted-foreground)]",
2878
- error: "text-[var(--color-error)]",
2879
- success: "text-[var(--color-success)]",
2880
- warning: "text-[var(--color-warning)]",
2875
+ primary: "text-foreground",
2876
+ secondary: "text-muted-foreground",
2877
+ muted: "text-muted-foreground",
2878
+ error: "text-error",
2879
+ success: "text-success",
2880
+ warning: "text-warning",
2881
2881
  inherit: "text-inherit"
2882
2882
  };
2883
2883
  var weightStyles = {
@@ -3040,49 +3040,49 @@ var Icon = ({
3040
3040
  Icon.displayName = "Icon";
3041
3041
  var variantStyles2 = {
3042
3042
  primary: [
3043
- "bg-[var(--color-primary)] text-[var(--color-primary-foreground)]",
3043
+ "bg-primary text-primary-foreground",
3044
3044
  "border-none",
3045
- "shadow-[var(--shadow-sm)]",
3046
- "hover:bg-[var(--color-primary-hover)] hover:shadow-[var(--shadow-hover)]",
3047
- "active:scale-[var(--active-scale)] active:shadow-[var(--shadow-active)]"
3045
+ "shadow-sm",
3046
+ "hover:bg-primary-hover hover:shadow-lg",
3047
+ "active:scale-[var(--active-scale)] active:shadow-sm"
3048
3048
  ].join(" "),
3049
3049
  secondary: [
3050
- "bg-transparent text-[var(--color-accent)]",
3051
- "border border-[var(--color-accent)]",
3052
- "hover:bg-[var(--color-accent)] hover:text-white hover:border-[var(--color-accent)]",
3050
+ "bg-transparent text-accent",
3051
+ "border border-accent",
3052
+ "hover:bg-accent hover:text-white hover:border-accent",
3053
3053
  "active:scale-[var(--active-scale)]"
3054
3054
  ].join(" "),
3055
3055
  ghost: [
3056
- "bg-transparent text-[var(--color-muted-foreground)]",
3057
- "hover:text-[var(--color-foreground)] hover:bg-[var(--color-muted)]",
3056
+ "bg-transparent text-muted-foreground",
3057
+ "hover:text-foreground hover:bg-muted",
3058
3058
  "active:scale-[var(--active-scale)]"
3059
3059
  ].join(" "),
3060
3060
  danger: [
3061
- "bg-[var(--color-surface)] text-[var(--color-error)]",
3062
- "border-[length:var(--border-width)] border-[var(--color-error)]",
3063
- "shadow-[var(--shadow-sm)]",
3064
- "hover:bg-[var(--color-error)] hover:text-[var(--color-error-foreground)] hover:shadow-[var(--shadow-hover)]",
3065
- "active:scale-[var(--active-scale)] active:shadow-[var(--shadow-active)]"
3061
+ "bg-surface text-error",
3062
+ "border-[length:var(--border-width)] border-error",
3063
+ "shadow-sm",
3064
+ "hover:bg-error hover:text-error-foreground hover:shadow-lg",
3065
+ "active:scale-[var(--active-scale)] active:shadow-sm"
3066
3066
  ].join(" "),
3067
3067
  success: [
3068
- "bg-[var(--color-surface)] text-[var(--color-success)]",
3069
- "border-[length:var(--border-width)] border-[var(--color-success)]",
3070
- "shadow-[var(--shadow-sm)]",
3071
- "hover:bg-[var(--color-success)] hover:text-[var(--color-success-foreground)] hover:shadow-[var(--shadow-hover)]",
3072
- "active:scale-[var(--active-scale)] active:shadow-[var(--shadow-active)]"
3068
+ "bg-surface text-success",
3069
+ "border-[length:var(--border-width)] border-success",
3070
+ "shadow-sm",
3071
+ "hover:bg-success hover:text-success-foreground hover:shadow-lg",
3072
+ "active:scale-[var(--active-scale)] active:shadow-sm"
3073
3073
  ].join(" "),
3074
3074
  warning: [
3075
- "bg-[var(--color-surface)] text-[var(--color-warning)]",
3076
- "border-[length:var(--border-width)] border-[var(--color-warning)]",
3077
- "shadow-[var(--shadow-sm)]",
3078
- "hover:bg-[var(--color-warning)] hover:text-[var(--color-warning-foreground)] hover:shadow-[var(--shadow-hover)]",
3079
- "active:scale-[var(--active-scale)] active:shadow-[var(--shadow-active)]"
3075
+ "bg-surface text-warning",
3076
+ "border-[length:var(--border-width)] border-warning",
3077
+ "shadow-sm",
3078
+ "hover:bg-warning hover:text-warning-foreground hover:shadow-lg",
3079
+ "active:scale-[var(--active-scale)] active:shadow-sm"
3080
3080
  ].join(" "),
3081
3081
  // "default" is an alias for secondary
3082
3082
  default: [
3083
- "bg-[var(--color-secondary)] text-[var(--color-secondary-foreground)]",
3084
- "border-[length:var(--border-width-thin)] border-[var(--color-border)]",
3085
- "hover:bg-[var(--color-secondary-hover)]",
3083
+ "bg-secondary text-secondary-foreground",
3084
+ "border-[length:var(--border-width-thin)] border-border",
3085
+ "hover:bg-secondary-hover",
3086
3086
  "active:scale-[var(--active-scale)]"
3087
3087
  ].join(" ")
3088
3088
  };
@@ -3153,10 +3153,10 @@ var Button = React5__default.default.forwardRef(
3153
3153
  className: cn(
3154
3154
  "inline-flex items-center justify-center gap-2",
3155
3155
  "font-[var(--font-weight-medium)]",
3156
- "rounded-[var(--radius-sm)]",
3156
+ "rounded-sm",
3157
3157
  "cursor-pointer",
3158
3158
  "transition-all duration-[var(--transition-normal)]",
3159
- "focus:outline-none focus:ring-[length:var(--focus-ring-width)] focus:ring-[var(--color-ring)] focus:ring-offset-[length:var(--focus-ring-offset)]",
3159
+ "focus:outline-none focus:ring-[length:var(--focus-ring-width)] focus:ring-ring focus:ring-offset-[length:var(--focus-ring-offset)]",
3160
3160
  "disabled:opacity-50 disabled:cursor-not-allowed",
3161
3161
  variantStyles2[variant],
3162
3162
  sizeStyles2[size],
@@ -3177,34 +3177,34 @@ var Button = React5__default.default.forwardRef(
3177
3177
  Button.displayName = "Button";
3178
3178
  var variantStyles3 = {
3179
3179
  default: [
3180
- "bg-[var(--color-muted)] text-[var(--color-foreground)]",
3181
- "border-[length:var(--border-width-thin)] border-[var(--color-border)]"
3180
+ "bg-muted text-foreground",
3181
+ "border-[length:var(--border-width-thin)] border-border"
3182
3182
  ].join(" "),
3183
- primary: "bg-[var(--color-primary)] text-[var(--color-primary-foreground)]",
3184
- secondary: "bg-[var(--color-secondary)] text-[var(--color-secondary-foreground)]",
3183
+ primary: "bg-primary text-primary-foreground",
3184
+ secondary: "bg-secondary text-secondary-foreground",
3185
3185
  success: [
3186
- "bg-[var(--color-surface)] text-[var(--color-success)]",
3187
- "border-[length:var(--border-width)] border-[var(--color-success)]"
3186
+ "bg-surface text-success",
3187
+ "border-[length:var(--border-width)] border-success"
3188
3188
  ].join(" "),
3189
3189
  warning: [
3190
- "bg-[var(--color-surface)] text-[var(--color-warning)]",
3191
- "border-[length:var(--border-width)] border-[var(--color-warning)]"
3190
+ "bg-surface text-warning",
3191
+ "border-[length:var(--border-width)] border-warning"
3192
3192
  ].join(" "),
3193
3193
  danger: [
3194
- "bg-[var(--color-surface)] text-[var(--color-error)]",
3195
- "border-[length:var(--border-width)] border-[var(--color-error)]"
3194
+ "bg-surface text-error",
3195
+ "border-[length:var(--border-width)] border-error"
3196
3196
  ].join(" "),
3197
3197
  error: [
3198
- "bg-[var(--color-surface)] text-[var(--color-error)]",
3199
- "border-[length:var(--border-width)] border-[var(--color-error)]"
3198
+ "bg-surface text-error",
3199
+ "border-[length:var(--border-width)] border-error"
3200
3200
  ].join(" "),
3201
3201
  info: [
3202
- "bg-[var(--color-surface)] text-[var(--color-info)]",
3203
- "border-[length:var(--border-width)] border-[var(--color-info)]"
3202
+ "bg-surface text-info",
3203
+ "border-[length:var(--border-width)] border-info"
3204
3204
  ].join(" "),
3205
3205
  neutral: [
3206
- "bg-[var(--color-muted)] text-[var(--color-muted-foreground)]",
3207
- "border-[length:var(--border-width-thin)] border-[var(--color-border)]"
3206
+ "bg-muted text-muted-foreground",
3207
+ "border-[length:var(--border-width-thin)] border-border"
3208
3208
  ].join(" ")
3209
3209
  };
3210
3210
  var sizeStyles3 = {
@@ -3224,7 +3224,7 @@ var Badge = React5__default.default.forwardRef(
3224
3224
  {
3225
3225
  ref,
3226
3226
  className: cn(
3227
- "inline-flex items-center gap-1 font-bold rounded-[var(--radius-sm)]",
3227
+ "inline-flex items-center gap-1 font-bold rounded-sm",
3228
3228
  variantStyles3[variant],
3229
3229
  sizeStyles3[size],
3230
3230
  className
@@ -3241,34 +3241,34 @@ var Badge = React5__default.default.forwardRef(
3241
3241
  Badge.displayName = "Badge";
3242
3242
  var variantStyles4 = {
3243
3243
  default: [
3244
- "bg-[var(--color-card)]",
3245
- "border-[length:var(--border-width)] border-[var(--color-border)]",
3246
- "shadow-[var(--shadow-sm)]",
3244
+ "bg-card",
3245
+ "border-[length:var(--border-width)] border-border",
3246
+ "shadow-sm",
3247
3247
  "transition-all duration-[var(--transition-normal)]",
3248
- "hover:shadow-[var(--shadow-hover)] hover:-translate-y-0.5"
3248
+ "hover:shadow-lg hover:-translate-y-0.5"
3249
3249
  ].join(" "),
3250
3250
  bordered: [
3251
- "bg-[var(--color-card)]",
3252
- "border-[length:var(--border-width)] border-[var(--color-border)]",
3253
- "shadow-[var(--shadow-sm)]",
3251
+ "bg-card",
3252
+ "border-[length:var(--border-width)] border-border",
3253
+ "shadow-sm",
3254
3254
  "transition-all duration-[var(--transition-normal)]",
3255
- "hover:shadow-[var(--shadow-hover)] hover:-translate-y-0.5"
3255
+ "hover:shadow-lg hover:-translate-y-0.5"
3256
3256
  ].join(" "),
3257
3257
  elevated: [
3258
- "bg-[var(--color-card)]",
3259
- "border-[length:var(--border-width)] border-[var(--color-border)]",
3260
- "shadow-[var(--shadow-main)]",
3258
+ "bg-card",
3259
+ "border-[length:var(--border-width)] border-border",
3260
+ "shadow",
3261
3261
  "transition-all duration-[var(--transition-normal)]",
3262
- "hover:shadow-[var(--shadow-hover)] hover:-translate-y-0.5"
3262
+ "hover:shadow-lg hover:-translate-y-0.5"
3263
3263
  ].join(" "),
3264
3264
  // Interactive variant with theme-specific hover effects
3265
3265
  interactive: [
3266
- "bg-[var(--color-card)]",
3267
- "border-[length:var(--border-width)] border-[var(--color-border)]",
3268
- "shadow-[var(--shadow-main)]",
3266
+ "bg-card",
3267
+ "border-[length:var(--border-width)] border-border",
3268
+ "shadow",
3269
3269
  "cursor-pointer",
3270
3270
  "transition-all duration-[var(--transition-normal)]",
3271
- "hover:shadow-[var(--shadow-hover)]"
3271
+ "hover:shadow-lg"
3272
3272
  ].join(" ")
3273
3273
  };
3274
3274
  var paddingStyles2 = {
@@ -3279,9 +3279,9 @@ var paddingStyles2 = {
3279
3279
  };
3280
3280
  var shadowStyles2 = {
3281
3281
  none: "shadow-none",
3282
- sm: "shadow-[var(--shadow-sm)]",
3283
- md: "shadow-[var(--shadow-main)]",
3284
- lg: "shadow-[var(--shadow-lg)]"
3282
+ sm: "shadow-sm",
3283
+ md: "shadow",
3284
+ lg: "shadow-lg"
3285
3285
  };
3286
3286
  var Card = React5__default.default.forwardRef(
3287
3287
  ({
@@ -3299,7 +3299,7 @@ var Card = React5__default.default.forwardRef(
3299
3299
  {
3300
3300
  ref,
3301
3301
  className: cn(
3302
- "rounded-[var(--radius-md)]",
3302
+ "rounded-md",
3303
3303
  "transition-all duration-[var(--transition-normal)]",
3304
3304
  variantStyles4[variant],
3305
3305
  paddingStyles2[padding],
@@ -3309,8 +3309,8 @@ var Card = React5__default.default.forwardRef(
3309
3309
  ...props,
3310
3310
  children: [
3311
3311
  (title || subtitle) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4", children: [
3312
- title && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg text-[var(--color-card-foreground)] font-[var(--font-weight-bold)]", children: title }),
3313
- subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-[var(--color-muted-foreground)] mt-1", children: subtitle })
3312
+ title && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg text-card-foreground font-[var(--font-weight-bold)]", children: title }),
3313
+ subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground mt-1", children: subtitle })
3314
3314
  ] }),
3315
3315
  children
3316
3316
  ]
@@ -3326,7 +3326,7 @@ var CardTitle = React5__default.default.forwardRef(({ className, ...props }, ref
3326
3326
  {
3327
3327
  ref,
3328
3328
  className: cn(
3329
- "text-lg text-[var(--color-card-foreground)]",
3329
+ "text-lg text-card-foreground",
3330
3330
  "font-[var(--font-weight-bold)]",
3331
3331
  className
3332
3332
  ),
@@ -3363,7 +3363,7 @@ var Divider = ({
3363
3363
  "div",
3364
3364
  {
3365
3365
  className: cn(
3366
- "w-0 h-full border-l border-[var(--color-border)]",
3366
+ "w-0 h-full border-l border-border",
3367
3367
  variantStyles5[variant],
3368
3368
  className
3369
3369
  ),
@@ -3384,17 +3384,17 @@ var Divider = ({
3384
3384
  "div",
3385
3385
  {
3386
3386
  className: cn(
3387
- "flex-1 h-0 border-t border-[var(--color-border)]",
3387
+ "flex-1 h-0 border-t border-border",
3388
3388
  variantStyles5[variant]
3389
3389
  )
3390
3390
  }
3391
3391
  ),
3392
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-[var(--color-foreground)] font-bold uppercase tracking-wide", children: label }),
3392
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-foreground font-bold uppercase tracking-wide", children: label }),
3393
3393
  /* @__PURE__ */ jsxRuntime.jsx(
3394
3394
  "div",
3395
3395
  {
3396
3396
  className: cn(
3397
- "flex-1 h-0 border-t border-[var(--color-border)]",
3397
+ "flex-1 h-0 border-t border-border",
3398
3398
  variantStyles5[variant]
3399
3399
  )
3400
3400
  }
@@ -3407,7 +3407,7 @@ var Divider = ({
3407
3407
  "div",
3408
3408
  {
3409
3409
  className: cn(
3410
- "w-full h-0 border-t border-[var(--color-border)] my-4",
3410
+ "w-full h-0 border-t border-border my-4",
3411
3411
  variantStyles5[variant],
3412
3412
  className
3413
3413
  ),
@@ -3482,8 +3482,8 @@ var Spacer = ({
3482
3482
  };
3483
3483
  var backgroundClasses = {
3484
3484
  default: "",
3485
- alt: "bg-[var(--color-surface)]",
3486
- dark: "bg-[var(--color-foreground)] text-[var(--color-background)]",
3485
+ alt: "bg-surface",
3486
+ dark: "bg-foreground text-background",
3487
3487
  gradient: [
3488
3488
  "bg-gradient-to-b",
3489
3489
  "from-[var(--color-primary)]/5",
@@ -3532,9 +3532,9 @@ var InstallBox = ({
3532
3532
  Box,
3533
3533
  {
3534
3534
  className: cn(
3535
- "bg-[var(--color-foreground)]",
3536
- "rounded-[var(--radius-md)]",
3537
- "border-[length:var(--border-width)] border-[var(--color-border)]"
3535
+ "bg-foreground",
3536
+ "rounded-md",
3537
+ "border-[length:var(--border-width)] border-border"
3538
3538
  ),
3539
3539
  padding: "md",
3540
3540
  children: /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "md", align: "center", children: [
@@ -3542,7 +3542,7 @@ var InstallBox = ({
3542
3542
  Typography,
3543
3543
  {
3544
3544
  variant: "body2",
3545
- className: "font-mono flex-1 min-w-0 text-[var(--color-background)] select-all",
3545
+ className: "font-mono flex-1 min-w-0 text-background select-all",
3546
3546
  truncate: true,
3547
3547
  children: command
3548
3548
  }
@@ -3553,7 +3553,7 @@ var InstallBox = ({
3553
3553
  variant: "ghost",
3554
3554
  size: "md",
3555
3555
  onClick: handleCopy,
3556
- className: "flex-shrink-0 text-[var(--color-background)] hover:text-[var(--color-background)]",
3556
+ className: "flex-shrink-0 text-background hover:text-background",
3557
3557
  children: copied ? "Copied!" : "Copy"
3558
3558
  }
3559
3559
  )
@@ -3572,7 +3572,7 @@ var MarketingImage = ({ src, alt, className }) => /* @__PURE__ */ jsxRuntime.jsx
3572
3572
  Box,
3573
3573
  {
3574
3574
  className: cn(
3575
- "overflow-hidden rounded-[var(--radius-lg)] bg-cover bg-center bg-no-repeat",
3575
+ "overflow-hidden rounded-lg bg-cover bg-center bg-no-repeat",
3576
3576
  className
3577
3577
  ),
3578
3578
  style: { backgroundImage: `url(${src})` },
@@ -3607,7 +3607,7 @@ var HeroSection = ({
3607
3607
  align: isCenter ? "center" : "left",
3608
3608
  className: cn(
3609
3609
  "max-w-3xl leading-tight",
3610
- isDark && "text-[var(--color-background)]"
3610
+ isDark && "text-background"
3611
3611
  ),
3612
3612
  children: [
3613
3613
  title,
@@ -3617,7 +3617,7 @@ var HeroSection = ({
3617
3617
  {
3618
3618
  as: "span",
3619
3619
  variant: "h1",
3620
- className: "text-[var(--color-primary)]",
3620
+ className: "text-primary",
3621
3621
  children: titleAccent
3622
3622
  }
3623
3623
  )
@@ -3630,7 +3630,7 @@ var HeroSection = ({
3630
3630
  align: isCenter ? "center" : "left",
3631
3631
  className: cn(
3632
3632
  "max-w-3xl leading-tight",
3633
- isDark && "text-[var(--color-background)]"
3633
+ isDark && "text-background"
3634
3634
  ),
3635
3635
  children: title
3636
3636
  }
@@ -3744,10 +3744,10 @@ var CTABanner = ({
3744
3744
  {
3745
3745
  className: cn(
3746
3746
  "py-16",
3747
- background === "alt" && "bg-[var(--color-surface)]",
3748
- background === "dark" && "bg-[var(--color-surface)]",
3749
- background === "gradient" && "bg-[var(--color-surface)]",
3750
- background === "primary" && "bg-[var(--color-surface)]",
3747
+ background === "alt" && "bg-surface",
3748
+ background === "dark" && "bg-surface",
3749
+ background === "gradient" && "bg-surface",
3750
+ background === "primary" && "bg-surface",
3751
3751
  className
3752
3752
  ),
3753
3753
  children: /* @__PURE__ */ jsxRuntime.jsxs(
@@ -3814,7 +3814,7 @@ var FeatureCard = ({
3814
3814
  {
3815
3815
  name: icon,
3816
3816
  size: iconSizeMap[size],
3817
- className: "text-[var(--color-accent,#06b6d4)]"
3817
+ className: "text-accent"
3818
3818
  }
3819
3819
  );
3820
3820
  }
@@ -3831,7 +3831,7 @@ var FeatureCard = ({
3831
3831
  variant,
3832
3832
  padding: size,
3833
3833
  className: cn(
3834
- variant === "interactive" && "hover:border-[var(--color-primary)]",
3834
+ variant === "interactive" && "hover:border-primary",
3835
3835
  className
3836
3836
  ),
3837
3837
  onClick: variant === "interactive" && href ? handleLinkClick : void 0,
@@ -3845,7 +3845,7 @@ var FeatureCard = ({
3845
3845
  variant: "ghost",
3846
3846
  size: "sm",
3847
3847
  onClick: handleLinkClick,
3848
- className: "text-[var(--color-primary)] -ml-2",
3848
+ className: "text-primary -ml-2",
3849
3849
  children: linkLabel
3850
3850
  }
3851
3851
  )
@@ -3933,10 +3933,10 @@ var PricingCard = ({
3933
3933
  "flex flex-col h-full",
3934
3934
  "hover:-translate-y-1 transition-all",
3935
3935
  highlighted && [
3936
- "border-[length:2px] border-[var(--color-primary)]",
3937
- "shadow-[var(--shadow-lg)]",
3936
+ "border-[length:2px] border-primary",
3937
+ "shadow-lg",
3938
3938
  "scale-[1.05]",
3939
- "ring-2 ring-[var(--color-primary)]"
3939
+ "ring-2 ring-primary"
3940
3940
  ],
3941
3941
  className
3942
3942
  ),
@@ -3947,7 +3947,7 @@ var PricingCard = ({
3947
3947
  Typography,
3948
3948
  {
3949
3949
  variant: "h2",
3950
- className: "text-[var(--color-primary)] font-bold",
3950
+ className: "text-primary font-bold",
3951
3951
  children: price
3952
3952
  }
3953
3953
  ),
@@ -3959,7 +3959,7 @@ var PricingCard = ({
3959
3959
  {
3960
3960
  icon: LucideIcons.Check,
3961
3961
  size: "sm",
3962
- className: "flex-shrink-0 text-[var(--color-success)]"
3962
+ className: "flex-shrink-0 text-success"
3963
3963
  }
3964
3964
  ),
3965
3965
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", children: feature })
@@ -4014,7 +4014,7 @@ var SplitSection = ({
4014
4014
  {
4015
4015
  name: "check",
4016
4016
  size: "sm",
4017
- className: "text-[var(--color-primary)] flex-shrink-0 mt-0.5"
4017
+ className: "text-primary flex-shrink-0 mt-0.5"
4018
4018
  }
4019
4019
  ),
4020
4020
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", children: bullet })
@@ -4024,7 +4024,7 @@ var SplitSection = ({
4024
4024
  Box,
4025
4025
  {
4026
4026
  className: cn(
4027
- "flex-1 min-w-0 min-h-[240px] rounded-[var(--radius-md)]",
4027
+ "flex-1 min-w-0 min-h-[240px] rounded-md",
4028
4028
  "bg-cover bg-center"
4029
4029
  ),
4030
4030
  style: { backgroundImage: `url(${image.src})` },
@@ -4038,7 +4038,7 @@ var SplitSection = ({
4038
4038
  {
4039
4039
  className: cn(
4040
4040
  "w-full",
4041
- background === "alt" ? "bg-[var(--color-muted)]" : "bg-[var(--color-background)]",
4041
+ background === "alt" ? "bg-muted" : "bg-background",
4042
4042
  className
4043
4043
  ),
4044
4044
  padding: "lg",
@@ -4058,9 +4058,9 @@ var StepCircle = ({ step, index }) => {
4058
4058
  className: cn(
4059
4059
  "w-10 h-10 rounded-full flex-shrink-0",
4060
4060
  "flex items-center justify-center",
4061
- "bg-[var(--color-primary)] text-[var(--color-primary-foreground)]"
4061
+ "bg-primary text-primary-foreground"
4062
4062
  ),
4063
- children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: step.icon, size: "sm", className: "text-[var(--color-primary-foreground)]" })
4063
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: step.icon, size: "sm", className: "text-primary-foreground" })
4064
4064
  }
4065
4065
  );
4066
4066
  }
@@ -4070,9 +4070,9 @@ var StepCircle = ({ step, index }) => {
4070
4070
  className: cn(
4071
4071
  "w-10 h-10 rounded-full flex-shrink-0",
4072
4072
  "flex items-center justify-center",
4073
- "bg-[var(--color-primary)] text-[var(--color-primary-foreground)]"
4073
+ "bg-primary text-primary-foreground"
4074
4074
  ),
4075
- children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold text-sm text-[var(--color-primary-foreground)] leading-none", children: step.number ?? index + 1 })
4075
+ children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold text-sm text-primary-foreground leading-none", children: step.number ?? index + 1 })
4076
4076
  }
4077
4077
  );
4078
4078
  };
@@ -4087,7 +4087,7 @@ var StepFlow = ({
4087
4087
  return /* @__PURE__ */ jsxRuntime.jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsxRuntime.jsx(React5__default.default.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "md", align: "start", className: "w-full", children: [
4088
4088
  /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "none", align: "center", children: [
4089
4089
  /* @__PURE__ */ jsxRuntime.jsx(StepCircle, { step, index }),
4090
- showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-px h-8 bg-[var(--color-border)]" })
4090
+ showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "w-px h-8 bg-border" })
4091
4091
  ] }),
4092
4092
  /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "xs", className: "flex-1 pt-1", children: [
4093
4093
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h4", children: step.title }),
@@ -4115,7 +4115,7 @@ var StatsGrid = ({
4115
4115
  Typography,
4116
4116
  {
4117
4117
  variant: "h2",
4118
- className: "font-bold text-[var(--color-primary)]",
4118
+ className: "font-bold text-primary",
4119
4119
  children: stat.value
4120
4120
  }
4121
4121
  ),
@@ -4230,7 +4230,7 @@ var ShowcaseCard = ({
4230
4230
  {
4231
4231
  className: cn(
4232
4232
  "w-full aspect-video bg-cover bg-center",
4233
- "rounded-t-[var(--radius-md)]"
4233
+ "rounded-t-md"
4234
4234
  ),
4235
4235
  style: { backgroundImage: `url(${image.src})` },
4236
4236
  role: "img",
@@ -4269,10 +4269,10 @@ var statusSizeClasses = {
4269
4269
  xl: "w-4 h-4"
4270
4270
  };
4271
4271
  var statusClasses = {
4272
- online: "bg-[var(--color-success)]",
4273
- offline: "bg-[var(--color-muted-foreground)]",
4274
- away: "bg-[var(--color-warning)]",
4275
- busy: "bg-[var(--color-error)]"
4272
+ online: "bg-success",
4273
+ offline: "bg-muted-foreground",
4274
+ away: "bg-warning",
4275
+ busy: "bg-error"
4276
4276
  };
4277
4277
  var badgeSizeClasses = {
4278
4278
  xs: "w-3 h-3 text-[8px]",
@@ -4307,7 +4307,7 @@ var Avatar = ({
4307
4307
  const hasImage = !!src;
4308
4308
  const hasInitials = !!initials;
4309
4309
  const hasIcon = !!Icon2;
4310
- const getInitialsBackground = () => "bg-[var(--color-primary)] text-[var(--color-primary-foreground)]";
4310
+ const getInitialsBackground = () => "bg-primary text-primary-foreground";
4311
4311
  const isClickable = action || onClick;
4312
4312
  const handleClick = () => {
4313
4313
  if (action) {
@@ -4321,7 +4321,7 @@ var Avatar = ({
4321
4321
  {
4322
4322
  className: cn(
4323
4323
  "relative inline-flex items-center justify-center",
4324
- "bg-[var(--color-muted)] border-[length:var(--border-width)] border-[var(--color-border)]",
4324
+ "bg-muted border-[length:var(--border-width)] border-border",
4325
4325
  "overflow-hidden",
4326
4326
  sizeClasses2[size],
4327
4327
  isClickable && "cursor-pointer hover:bg-[var(--color-surface-hover)] transition-colors",
@@ -4354,7 +4354,7 @@ var Avatar = ({
4354
4354
  Icon2,
4355
4355
  {
4356
4356
  className: cn(
4357
- "text-[var(--color-foreground)]",
4357
+ "text-foreground",
4358
4358
  iconSizeClasses[size]
4359
4359
  )
4360
4360
  }
@@ -4362,7 +4362,7 @@ var Avatar = ({
4362
4362
  LucideIcons.User,
4363
4363
  {
4364
4364
  className: cn(
4365
- "text-[var(--color-foreground)]",
4365
+ "text-foreground",
4366
4366
  iconSizeClasses[size]
4367
4367
  )
4368
4368
  }
@@ -4373,7 +4373,7 @@ var Avatar = ({
4373
4373
  "div",
4374
4374
  {
4375
4375
  className: cn(
4376
- "absolute bottom-0 right-0 border-2 border-[var(--color-card)]",
4376
+ "absolute bottom-0 right-0 border-2 border-card",
4377
4377
  statusClasses[status],
4378
4378
  statusSizeClasses[size]
4379
4379
  ),
@@ -4385,8 +4385,8 @@ var Avatar = ({
4385
4385
  {
4386
4386
  className: cn(
4387
4387
  "absolute -top-1 -right-1 flex items-center justify-center",
4388
- "bg-[var(--color-primary)] text-[var(--color-primary-foreground)] font-bold",
4389
- "border-2 border-[var(--color-card)]",
4388
+ "bg-primary text-primary-foreground font-bold",
4389
+ "border-2 border-card",
4390
4390
  badgeSizeClasses[size]
4391
4391
  ),
4392
4392
  "aria-label": `Badge: ${badge}`,
@@ -4452,7 +4452,7 @@ var CaseStudyCard = ({
4452
4452
  variant: "ghost",
4453
4453
  size: "sm",
4454
4454
  onClick: handleClick,
4455
- className: "text-[var(--color-primary)] -ml-2",
4455
+ className: "text-primary -ml-2",
4456
4456
  children: [
4457
4457
  linkLabel,
4458
4458
  " \u2192"
@@ -4495,8 +4495,8 @@ var MarketingFooter = ({
4495
4495
  {
4496
4496
  as: "footer",
4497
4497
  className: cn(
4498
- "bg-[var(--color-surface)]",
4499
- "border-t border-[var(--color-border)]",
4498
+ "bg-surface",
4499
+ "border-t border-border",
4500
4500
  "pt-12 pb-8 px-4",
4501
4501
  className
4502
4502
  ),
@@ -4508,7 +4508,7 @@ var MarketingFooter = ({
4508
4508
  Typography,
4509
4509
  {
4510
4510
  variant: "body2",
4511
- className: "font-semibold text-[var(--color-foreground)] mb-1",
4511
+ className: "font-semibold text-foreground mb-1",
4512
4512
  children: col.title
4513
4513
  }
4514
4514
  ),
@@ -4518,8 +4518,8 @@ var MarketingFooter = ({
4518
4518
  href: item.href,
4519
4519
  className: cn(
4520
4520
  "text-sm no-underline",
4521
- "text-[var(--color-foreground)]/60",
4522
- "hover:text-[var(--color-accent)]",
4521
+ "text-foreground/60",
4522
+ "hover:text-accent",
4523
4523
  "transition-colors duration-150"
4524
4524
  ),
4525
4525
  target: item.href.startsWith("http") ? "_blank" : void 0,
@@ -4534,7 +4534,7 @@ var MarketingFooter = ({
4534
4534
  Typography,
4535
4535
  {
4536
4536
  variant: "caption",
4537
- className: "text-[var(--color-foreground)]/30 text-center w-full pt-6",
4537
+ className: "text-foreground/30 text-center w-full pt-6",
4538
4538
  children: copyright
4539
4539
  }
4540
4540
  )
@@ -4567,7 +4567,7 @@ var PullQuote = ({
4567
4567
  Box,
4568
4568
  {
4569
4569
  className: cn(
4570
- "border-l-4 border-l-[var(--color-primary)]",
4570
+ "border-l-4 border-l-primary",
4571
4571
  "pl-6 py-2 my-6",
4572
4572
  className
4573
4573
  ),
@@ -4575,7 +4575,7 @@ var PullQuote = ({
4575
4575
  Typography,
4576
4576
  {
4577
4577
  variant: "large",
4578
- className: "italic text-[var(--color-foreground)] opacity-90",
4578
+ className: "italic text-foreground opacity-90",
4579
4579
  children
4580
4580
  }
4581
4581
  )
@@ -4651,7 +4651,7 @@ var AnimatedCounter = ({
4651
4651
  Typography,
4652
4652
  {
4653
4653
  variant: "h2",
4654
- className: "text-[var(--color-primary)] font-bold tabular-nums",
4654
+ className: "text-primary font-bold tabular-nums",
4655
4655
  children: hasAnimated ? displayValue : "0"
4656
4656
  }
4657
4657
  ),
@@ -4659,6 +4659,289 @@ var AnimatedCounter = ({
4659
4659
  ] });
4660
4660
  };
4661
4661
  AnimatedCounter.displayName = "AnimatedCounter";
4662
+ var initialStyles = {
4663
+ "fade-up": { opacity: 0, transform: "translateY(24px)" },
4664
+ "fade-down": { opacity: 0, transform: "translateY(-24px)" },
4665
+ "fade-in": { opacity: 0 },
4666
+ "fade-left": { opacity: 0, transform: "translateX(24px)" },
4667
+ "fade-right": { opacity: 0, transform: "translateX(-24px)" },
4668
+ "scale": { opacity: 0, transform: "scale(0.92)" },
4669
+ "scale-up": { opacity: 0, transform: "scale(0.92) translateY(16px)" },
4670
+ "none": {}
4671
+ };
4672
+ var animatedStyles = {
4673
+ "fade-up": { opacity: 1, transform: "translateY(0)" },
4674
+ "fade-down": { opacity: 1, transform: "translateY(0)" },
4675
+ "fade-in": { opacity: 1 },
4676
+ "fade-left": { opacity: 1, transform: "translateX(0)" },
4677
+ "fade-right": { opacity: 1, transform: "translateX(0)" },
4678
+ "scale": { opacity: 1, transform: "scale(1)" },
4679
+ "scale-up": { opacity: 1, transform: "scale(1) translateY(0)" },
4680
+ "none": {}
4681
+ };
4682
+ var AnimatedReveal = React5__default.default.forwardRef(
4683
+ ({
4684
+ trigger = "scroll",
4685
+ animation = "fade-up",
4686
+ duration = 600,
4687
+ delay = 0,
4688
+ threshold = 0.15,
4689
+ once = true,
4690
+ animate: manualAnimate,
4691
+ easing = "cubic-bezier(0.16, 1, 0.3, 1)",
4692
+ children,
4693
+ className,
4694
+ style,
4695
+ ...props
4696
+ }, forwardedRef) => {
4697
+ const [isAnimated, setIsAnimated] = React5.useState(false);
4698
+ const internalRef = React5.useRef(null);
4699
+ const hasAnimated = React5.useRef(false);
4700
+ const setRef = React5.useCallback(
4701
+ (node) => {
4702
+ internalRef.current = node;
4703
+ if (typeof forwardedRef === "function") forwardedRef(node);
4704
+ else if (forwardedRef) forwardedRef.current = node;
4705
+ },
4706
+ [forwardedRef]
4707
+ );
4708
+ React5.useEffect(() => {
4709
+ if (trigger !== "scroll") return;
4710
+ const el = internalRef.current;
4711
+ if (!el) return;
4712
+ const observer = new IntersectionObserver(
4713
+ ([entry]) => {
4714
+ if (entry.isIntersecting) {
4715
+ if (once && hasAnimated.current) return;
4716
+ hasAnimated.current = true;
4717
+ setIsAnimated(true);
4718
+ } else if (!once) {
4719
+ setIsAnimated(false);
4720
+ }
4721
+ },
4722
+ { threshold }
4723
+ );
4724
+ observer.observe(el);
4725
+ return () => observer.disconnect();
4726
+ }, [trigger, threshold, once]);
4727
+ const handleMouseEnter = trigger === "hover" ? () => setIsAnimated(true) : void 0;
4728
+ const handleMouseLeave = trigger === "hover" ? () => {
4729
+ if (!once || !hasAnimated.current) {
4730
+ hasAnimated.current = true;
4731
+ setIsAnimated(false);
4732
+ }
4733
+ } : void 0;
4734
+ React5.useEffect(() => {
4735
+ if (trigger === "manual" && manualAnimate !== void 0) {
4736
+ setIsAnimated(manualAnimate);
4737
+ }
4738
+ }, [trigger, manualAnimate]);
4739
+ const active = isAnimated;
4740
+ const currentStyle = active ? animatedStyles[animation] : initialStyles[animation];
4741
+ return /* @__PURE__ */ jsxRuntime.jsx(
4742
+ "div",
4743
+ {
4744
+ ref: setRef,
4745
+ className: cn("will-change-[opacity,transform]", className),
4746
+ style: {
4747
+ ...currentStyle,
4748
+ transitionProperty: "opacity, transform",
4749
+ transitionDuration: `${duration}ms`,
4750
+ transitionDelay: `${delay}ms`,
4751
+ transitionTimingFunction: easing,
4752
+ ...style
4753
+ },
4754
+ onMouseEnter: handleMouseEnter,
4755
+ onMouseLeave: handleMouseLeave,
4756
+ ...props,
4757
+ children: typeof children === "function" ? children(active) : children
4758
+ }
4759
+ );
4760
+ }
4761
+ );
4762
+ AnimatedReveal.displayName = "AnimatedReveal";
4763
+ function useFetchedSvg(src) {
4764
+ const [svg, setSvg] = React5.useState(null);
4765
+ const cache = React5.useRef({});
4766
+ React5.useEffect(() => {
4767
+ if (!src) {
4768
+ setSvg(null);
4769
+ return;
4770
+ }
4771
+ if (cache.current[src]) {
4772
+ setSvg(cache.current[src]);
4773
+ return;
4774
+ }
4775
+ let cancelled = false;
4776
+ fetch(src).then((res) => {
4777
+ if (!res.ok) throw new Error(`Failed to fetch SVG: ${res.status}`);
4778
+ return res.text();
4779
+ }).then((text) => {
4780
+ if (cancelled) return;
4781
+ cache.current[src] = text;
4782
+ setSvg(text);
4783
+ }).catch(() => {
4784
+ if (!cancelled) setSvg(null);
4785
+ });
4786
+ return () => {
4787
+ cancelled = true;
4788
+ };
4789
+ }, [src]);
4790
+ return svg;
4791
+ }
4792
+ function applyDrawAnimation(container, animate, duration, delay, easing) {
4793
+ const paths = container.querySelectorAll("path, line, polyline, polygon, circle, ellipse, rect");
4794
+ paths.forEach((el) => {
4795
+ if ("getTotalLength" in el && typeof el.getTotalLength === "function") {
4796
+ const len = el.getTotalLength();
4797
+ el.style.strokeDasharray = `${len}`;
4798
+ el.style.strokeDashoffset = animate ? "0" : `${len}`;
4799
+ el.style.transition = `stroke-dashoffset ${duration}ms ${easing} ${delay}ms`;
4800
+ }
4801
+ });
4802
+ }
4803
+ function applyFillAnimation(container, animate, duration, delay, easing, fillColor) {
4804
+ const paths = container.querySelectorAll("path, circle, ellipse, rect, polygon");
4805
+ paths.forEach((el) => {
4806
+ if ("getTotalLength" in el && typeof el.getTotalLength === "function") {
4807
+ const geom = el;
4808
+ const len = geom.getTotalLength();
4809
+ geom.style.strokeDasharray = `${len}`;
4810
+ geom.style.strokeDashoffset = animate ? "0" : `${len}`;
4811
+ geom.style.transition = `stroke-dashoffset ${duration * 0.6}ms ${easing} ${delay}ms, fill-opacity ${duration * 0.4}ms ${easing} ${delay + duration * 0.6}ms`;
4812
+ }
4813
+ if (fillColor) el.style.fill = fillColor;
4814
+ el.style.fillOpacity = animate ? "1" : "0";
4815
+ });
4816
+ }
4817
+ function applyPulseAnimation(container, animate, duration) {
4818
+ const svg = container.querySelector("svg");
4819
+ if (!svg) return;
4820
+ if (animate) {
4821
+ svg.style.animation = `ag-pulse ${duration}ms ease-in-out infinite`;
4822
+ } else {
4823
+ svg.style.animation = "none";
4824
+ }
4825
+ }
4826
+ function applyMorphAnimation(container, animate, duration, delay, easing) {
4827
+ const paths = container.querySelectorAll("path, circle, ellipse, rect, polygon");
4828
+ paths.forEach((el) => {
4829
+ el.style.transition = `all ${duration}ms ${easing} ${delay}ms`;
4830
+ el.style.transform = animate ? "scale(1)" : "scale(0)";
4831
+ el.style.transformOrigin = "center";
4832
+ el.style.opacity = animate ? "1" : "0";
4833
+ });
4834
+ }
4835
+ var AnimatedGraphic = React5__default.default.forwardRef(
4836
+ ({
4837
+ src,
4838
+ svgContent,
4839
+ animation = "draw",
4840
+ animate = false,
4841
+ duration = 1200,
4842
+ delay = 0,
4843
+ easing = "cubic-bezier(0.16, 1, 0.3, 1)",
4844
+ width,
4845
+ height,
4846
+ strokeColor,
4847
+ fillColor,
4848
+ alt,
4849
+ className,
4850
+ style,
4851
+ children,
4852
+ ...props
4853
+ }, ref) => {
4854
+ const containerRef = React5.useRef(null);
4855
+ const fetchedSvg = useFetchedSvg(svgContent ? void 0 : src);
4856
+ const resolvedSvg = svgContent ?? fetchedSvg;
4857
+ const prevAnimateRef = React5.useRef(animate);
4858
+ const setRef = React5__default.default.useCallback(
4859
+ (node) => {
4860
+ containerRef.current = node;
4861
+ if (typeof ref === "function") ref(node);
4862
+ else if (ref) ref.current = node;
4863
+ },
4864
+ [ref]
4865
+ );
4866
+ React5.useEffect(() => {
4867
+ const el = containerRef.current;
4868
+ if (!el || !strokeColor) return;
4869
+ const paths = el.querySelectorAll("path, line, polyline, polygon, circle, ellipse, rect");
4870
+ paths.forEach((p) => {
4871
+ p.style.stroke = strokeColor;
4872
+ });
4873
+ }, [resolvedSvg, strokeColor]);
4874
+ React5.useEffect(() => {
4875
+ const el = containerRef.current;
4876
+ if (!el || !resolvedSvg) return;
4877
+ if (animation === "draw" || animation === "fill") {
4878
+ const paths = el.querySelectorAll("path, line, polyline, polygon, circle, ellipse, rect");
4879
+ paths.forEach((p) => {
4880
+ if ("getTotalLength" in p && typeof p.getTotalLength === "function") {
4881
+ const len = p.getTotalLength();
4882
+ p.style.strokeDasharray = `${len}`;
4883
+ p.style.strokeDashoffset = `${len}`;
4884
+ }
4885
+ if (animation === "fill") {
4886
+ p.style.fillOpacity = "0";
4887
+ }
4888
+ });
4889
+ }
4890
+ if (animation === "morph") {
4891
+ const paths = el.querySelectorAll("path, circle, ellipse, rect, polygon");
4892
+ paths.forEach((p) => {
4893
+ p.style.transform = "scale(0)";
4894
+ p.style.transformOrigin = "center";
4895
+ p.style.opacity = "0";
4896
+ });
4897
+ }
4898
+ }, [resolvedSvg, animation]);
4899
+ React5.useEffect(() => {
4900
+ const el = containerRef.current;
4901
+ if (!el) return;
4902
+ const id = requestAnimationFrame(() => {
4903
+ switch (animation) {
4904
+ case "draw":
4905
+ applyDrawAnimation(el, animate, duration, delay, easing);
4906
+ break;
4907
+ case "fill":
4908
+ applyFillAnimation(el, animate, duration, delay, easing, fillColor);
4909
+ break;
4910
+ case "pulse":
4911
+ applyPulseAnimation(el, animate, duration);
4912
+ break;
4913
+ case "morph":
4914
+ applyMorphAnimation(el, animate, duration, delay, easing);
4915
+ break;
4916
+ }
4917
+ });
4918
+ prevAnimateRef.current = animate;
4919
+ return () => cancelAnimationFrame(id);
4920
+ }, [animate, animation, duration, delay, easing, fillColor, resolvedSvg]);
4921
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4922
+ /* @__PURE__ */ jsxRuntime.jsx("style", { children: `@keyframes ag-pulse { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.04); opacity: 0.85; } }` }),
4923
+ /* @__PURE__ */ jsxRuntime.jsx(
4924
+ "div",
4925
+ {
4926
+ ref: setRef,
4927
+ className: cn("inline-flex items-center justify-center", className),
4928
+ style: { width, height, ...style },
4929
+ role: alt ? "img" : void 0,
4930
+ "aria-label": alt,
4931
+ ...props,
4932
+ children: resolvedSvg ? /* @__PURE__ */ jsxRuntime.jsx(
4933
+ "div",
4934
+ {
4935
+ className: "w-full h-full [&>svg]:w-full [&>svg]:h-full",
4936
+ dangerouslySetInnerHTML: { __html: resolvedSvg }
4937
+ }
4938
+ ) : children
4939
+ }
4940
+ )
4941
+ ] });
4942
+ }
4943
+ );
4944
+ AnimatedGraphic.displayName = "AnimatedGraphic";
4662
4945
  var PI = Math.PI;
4663
4946
  function lineIntersection(x1, y1, x2, y2, x3, y3, x4, y4) {
4664
4947
  const denom = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);
@@ -5675,6 +5958,8 @@ var EdgeDecoration = ({
5675
5958
  EdgeDecoration.displayName = "EdgeDecoration";
5676
5959
 
5677
5960
  exports.AnimatedCounter = AnimatedCounter;
5961
+ exports.AnimatedGraphic = AnimatedGraphic;
5962
+ exports.AnimatedReveal = AnimatedReveal;
5678
5963
  exports.ArticleSection = ArticleSection;
5679
5964
  exports.Badge = Badge;
5680
5965
  exports.Box = Box;