@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.
- package/dist/avl/index.cjs +43 -43
- package/dist/avl/index.js +43 -43
- package/dist/components/atoms/AnimatedGraphic.d.ts +29 -0
- package/dist/components/atoms/AnimatedReveal.d.ts +24 -0
- package/dist/components/atoms/index.d.ts +2 -0
- package/dist/components/index.cjs +2277 -1929
- package/dist/components/index.js +1415 -1069
- package/dist/components/organisms/debug/RuntimeDebugger.d.ts +2 -2
- package/dist/components/organisms/game/three/index.cjs +41 -41
- package/dist/components/organisms/game/three/index.js +41 -41
- package/dist/docs/index.cjs +144 -142
- package/dist/docs/index.js +144 -142
- package/dist/illustrations/index.cjs +17 -17
- package/dist/illustrations/index.js +17 -17
- package/dist/lib/index.cjs +62 -50
- package/dist/lib/index.js +62 -50
- package/dist/marketing/index.cjs +457 -172
- package/dist/marketing/index.d.cts +54 -1
- package/dist/marketing/index.d.ts +4 -0
- package/dist/marketing/index.js +457 -174
- package/dist/providers/index.cjs +628 -329
- package/dist/providers/index.js +540 -241
- package/dist/runtime/index.cjs +2151 -1770
- package/dist/runtime/index.js +1392 -1011
- package/package.json +1 -1
- package/tailwind-preset.cjs +32 -134
package/dist/marketing/index.cjs
CHANGED
|
@@ -2638,28 +2638,28 @@ var marginYStyles = {
|
|
|
2638
2638
|
};
|
|
2639
2639
|
var bgStyles = {
|
|
2640
2640
|
transparent: "bg-transparent",
|
|
2641
|
-
primary: "bg-
|
|
2642
|
-
secondary: "bg-
|
|
2643
|
-
muted: "bg-
|
|
2644
|
-
accent: "bg-
|
|
2645
|
-
surface: "bg-
|
|
2646
|
-
overlay: "bg-
|
|
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-
|
|
2651
|
-
md: "rounded-
|
|
2652
|
-
lg: "rounded-
|
|
2653
|
-
xl: "rounded-
|
|
2654
|
-
"2xl": "rounded-
|
|
2655
|
-
full: "rounded-
|
|
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-
|
|
2660
|
-
md: "shadow
|
|
2661
|
-
lg: "shadow-
|
|
2662
|
-
xl: "shadow-
|
|
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-
|
|
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-
|
|
2858
|
-
h2: "text-3xl font-bold tracking-tight text-
|
|
2859
|
-
h3: "text-2xl font-bold text-
|
|
2860
|
-
h4: "text-xl font-bold text-
|
|
2861
|
-
h5: "text-lg font-bold text-
|
|
2862
|
-
h6: "text-base font-bold text-
|
|
2863
|
-
heading: "text-2xl font-bold text-
|
|
2864
|
-
subheading: "text-lg font-semibold text-
|
|
2865
|
-
body1: "text-base font-normal text-
|
|
2866
|
-
body2: "text-sm font-normal text-
|
|
2867
|
-
body: "text-base font-normal text-
|
|
2868
|
-
caption: "text-xs font-normal text-
|
|
2869
|
-
overline: "text-xs uppercase tracking-wide font-bold text-
|
|
2870
|
-
small: "text-sm font-normal text-
|
|
2871
|
-
large: "text-lg font-medium text-
|
|
2872
|
-
label: "text-sm font-medium text-
|
|
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-
|
|
2876
|
-
secondary: "text-
|
|
2877
|
-
muted: "text-
|
|
2878
|
-
error: "text-
|
|
2879
|
-
success: "text-
|
|
2880
|
-
warning: "text-
|
|
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-
|
|
3043
|
+
"bg-primary text-primary-foreground",
|
|
3044
3044
|
"border-none",
|
|
3045
|
-
"shadow-
|
|
3046
|
-
"hover:bg-
|
|
3047
|
-
"active:scale-[var(--active-scale)] active:shadow-
|
|
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-
|
|
3051
|
-
"border-
|
|
3052
|
-
"hover:bg-
|
|
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-
|
|
3057
|
-
"
|
|
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-
|
|
3062
|
-
"border-[length:var(--border-width)] border-
|
|
3063
|
-
"shadow-
|
|
3064
|
-
"hover:bg-
|
|
3065
|
-
"active:scale-[var(--active-scale)] active:shadow-
|
|
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-
|
|
3069
|
-
"border-[length:var(--border-width)] border-
|
|
3070
|
-
"shadow-
|
|
3071
|
-
"hover:bg-
|
|
3072
|
-
"active:scale-[var(--active-scale)] active:shadow-
|
|
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-
|
|
3076
|
-
"border-[length:var(--border-width)] border-
|
|
3077
|
-
"shadow-
|
|
3078
|
-
"hover:bg-
|
|
3079
|
-
"active:scale-[var(--active-scale)] active:shadow-
|
|
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-
|
|
3084
|
-
"border-[length:var(--border-width-thin)] border-
|
|
3085
|
-
"hover:bg-
|
|
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-
|
|
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-
|
|
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-
|
|
3180
|
-
"border-[length:var(--border-width-thin)] border-
|
|
3181
|
+
"bg-muted text-foreground",
|
|
3182
|
+
"border-[length:var(--border-width-thin)] border-border"
|
|
3181
3183
|
].join(" "),
|
|
3182
|
-
primary: "bg-
|
|
3183
|
-
secondary: "bg-
|
|
3184
|
+
primary: "bg-primary text-primary-foreground",
|
|
3185
|
+
secondary: "bg-secondary text-secondary-foreground",
|
|
3184
3186
|
success: [
|
|
3185
|
-
"bg-
|
|
3186
|
-
"border-[length:var(--border-width)] border-
|
|
3187
|
+
"bg-surface text-success",
|
|
3188
|
+
"border-[length:var(--border-width)] border-success"
|
|
3187
3189
|
].join(" "),
|
|
3188
3190
|
warning: [
|
|
3189
|
-
"bg-
|
|
3190
|
-
"border-[length:var(--border-width)] border-
|
|
3191
|
+
"bg-surface text-warning",
|
|
3192
|
+
"border-[length:var(--border-width)] border-warning"
|
|
3191
3193
|
].join(" "),
|
|
3192
3194
|
danger: [
|
|
3193
|
-
"bg-
|
|
3194
|
-
"border-[length:var(--border-width)] border-
|
|
3195
|
+
"bg-surface text-error",
|
|
3196
|
+
"border-[length:var(--border-width)] border-error"
|
|
3195
3197
|
].join(" "),
|
|
3196
3198
|
error: [
|
|
3197
|
-
"bg-
|
|
3198
|
-
"border-[length:var(--border-width)] border-
|
|
3199
|
+
"bg-surface text-error",
|
|
3200
|
+
"border-[length:var(--border-width)] border-error"
|
|
3199
3201
|
].join(" "),
|
|
3200
3202
|
info: [
|
|
3201
|
-
"bg-
|
|
3202
|
-
"border-[length:var(--border-width)] border-
|
|
3203
|
+
"bg-surface text-info",
|
|
3204
|
+
"border-[length:var(--border-width)] border-info"
|
|
3203
3205
|
].join(" "),
|
|
3204
3206
|
neutral: [
|
|
3205
|
-
"bg-
|
|
3206
|
-
"border-[length:var(--border-width-thin)] 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-
|
|
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-
|
|
3244
|
-
"border-[length:var(--border-width)] border-
|
|
3245
|
-
"shadow-
|
|
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-
|
|
3249
|
+
"hover:shadow-lg hover:-translate-y-0.5"
|
|
3248
3250
|
].join(" "),
|
|
3249
3251
|
bordered: [
|
|
3250
|
-
"bg-
|
|
3251
|
-
"border-[length:var(--border-width)] border-
|
|
3252
|
-
"shadow-
|
|
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-
|
|
3256
|
+
"hover:shadow-lg hover:-translate-y-0.5"
|
|
3255
3257
|
].join(" "),
|
|
3256
3258
|
elevated: [
|
|
3257
|
-
"bg-
|
|
3258
|
-
"border-[length:var(--border-width)] border-
|
|
3259
|
-
"shadow
|
|
3259
|
+
"bg-card",
|
|
3260
|
+
"border-[length:var(--border-width)] border-border",
|
|
3261
|
+
"shadow",
|
|
3260
3262
|
"transition-all duration-[var(--transition-normal)]",
|
|
3261
|
-
"hover:shadow-
|
|
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-
|
|
3266
|
-
"border-[length:var(--border-width)] border-
|
|
3267
|
-
"shadow
|
|
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-
|
|
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-
|
|
3282
|
-
md: "shadow
|
|
3283
|
-
lg: "shadow-
|
|
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-
|
|
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-
|
|
3312
|
-
subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
3485
|
-
dark: "bg-
|
|
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:
|
|
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(
|
|
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
|
|
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: "
|
|
3551
|
+
size: "sm",
|
|
3552
|
+
leftIcon: copied ? "check" : "copy",
|
|
3554
3553
|
onClick: handleCopy,
|
|
3555
|
-
className: "flex-shrink-0
|
|
3556
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
3747
|
-
background === "dark" && "bg-
|
|
3748
|
-
background === "gradient" && "bg-
|
|
3749
|
-
background === "primary" && "bg-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
3936
|
-
"shadow-
|
|
3935
|
+
"border-[length:2px] border-primary",
|
|
3936
|
+
"shadow-lg",
|
|
3937
3937
|
"scale-[1.05]",
|
|
3938
|
-
"ring-2 ring-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
4060
|
+
"bg-primary text-primary-foreground"
|
|
4061
4061
|
),
|
|
4062
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: step.icon, size: "sm", className: "text-
|
|
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-
|
|
4072
|
+
"bg-primary text-primary-foreground"
|
|
4073
4073
|
),
|
|
4074
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold text-sm text-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
4272
|
-
offline: "bg-
|
|
4273
|
-
away: "bg-
|
|
4274
|
-
busy: "bg-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
4388
|
-
"border-2 border-
|
|
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-
|
|
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-
|
|
4498
|
-
"border-t 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-
|
|
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-
|
|
4521
|
-
"hover:text-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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;
|