@almadar/ui 2.24.5 → 2.24.9

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