@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.
- 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 +2272 -1924
- package/dist/components/index.js +1410 -1064
- 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 +142 -142
- package/dist/docs/index.js +142 -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 +452 -167
- package/dist/marketing/index.d.cts +54 -1
- package/dist/marketing/index.d.ts +4 -0
- package/dist/marketing/index.js +452 -169
- package/dist/providers/index.cjs +623 -327
- package/dist/providers/index.js +535 -239
- package/dist/runtime/index.cjs +2146 -1768
- package/dist/runtime/index.js +1387 -1009
- package/package.json +1 -1
- package/tailwind-preset.cjs +30 -188
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,49 @@ 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-transparent text-
|
|
3051
|
-
"border 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
|
-
"hover:text-
|
|
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-
|
|
3062
|
-
"border-[length:var(--border-width)] border-
|
|
3063
|
-
"shadow-
|
|
3064
|
-
"hover:bg-
|
|
3065
|
-
"active:scale-[var(--active-scale)] active:shadow-
|
|
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-
|
|
3069
|
-
"border-[length:var(--border-width)] border-
|
|
3070
|
-
"shadow-
|
|
3071
|
-
"hover:bg-
|
|
3072
|
-
"active:scale-[var(--active-scale)] active:shadow-
|
|
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-
|
|
3076
|
-
"border-[length:var(--border-width)] border-
|
|
3077
|
-
"shadow-
|
|
3078
|
-
"hover:bg-
|
|
3079
|
-
"active:scale-[var(--active-scale)] active:shadow-
|
|
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-
|
|
3084
|
-
"border-[length:var(--border-width-thin)] border-
|
|
3085
|
-
"hover:bg-
|
|
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-
|
|
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-
|
|
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-
|
|
3181
|
-
"border-[length:var(--border-width-thin)] border-
|
|
3180
|
+
"bg-muted text-foreground",
|
|
3181
|
+
"border-[length:var(--border-width-thin)] border-border"
|
|
3182
3182
|
].join(" "),
|
|
3183
|
-
primary: "bg-
|
|
3184
|
-
secondary: "bg-
|
|
3183
|
+
primary: "bg-primary text-primary-foreground",
|
|
3184
|
+
secondary: "bg-secondary text-secondary-foreground",
|
|
3185
3185
|
success: [
|
|
3186
|
-
"bg-
|
|
3187
|
-
"border-[length:var(--border-width)] border-
|
|
3186
|
+
"bg-surface text-success",
|
|
3187
|
+
"border-[length:var(--border-width)] border-success"
|
|
3188
3188
|
].join(" "),
|
|
3189
3189
|
warning: [
|
|
3190
|
-
"bg-
|
|
3191
|
-
"border-[length:var(--border-width)] border-
|
|
3190
|
+
"bg-surface text-warning",
|
|
3191
|
+
"border-[length:var(--border-width)] border-warning"
|
|
3192
3192
|
].join(" "),
|
|
3193
3193
|
danger: [
|
|
3194
|
-
"bg-
|
|
3195
|
-
"border-[length:var(--border-width)] border-
|
|
3194
|
+
"bg-surface text-error",
|
|
3195
|
+
"border-[length:var(--border-width)] border-error"
|
|
3196
3196
|
].join(" "),
|
|
3197
3197
|
error: [
|
|
3198
|
-
"bg-
|
|
3199
|
-
"border-[length:var(--border-width)] border-
|
|
3198
|
+
"bg-surface text-error",
|
|
3199
|
+
"border-[length:var(--border-width)] border-error"
|
|
3200
3200
|
].join(" "),
|
|
3201
3201
|
info: [
|
|
3202
|
-
"bg-
|
|
3203
|
-
"border-[length:var(--border-width)] border-
|
|
3202
|
+
"bg-surface text-info",
|
|
3203
|
+
"border-[length:var(--border-width)] border-info"
|
|
3204
3204
|
].join(" "),
|
|
3205
3205
|
neutral: [
|
|
3206
|
-
"bg-
|
|
3207
|
-
"border-[length:var(--border-width-thin)] 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-
|
|
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-
|
|
3245
|
-
"border-[length:var(--border-width)] border-
|
|
3246
|
-
"shadow-
|
|
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-
|
|
3248
|
+
"hover:shadow-lg hover:-translate-y-0.5"
|
|
3249
3249
|
].join(" "),
|
|
3250
3250
|
bordered: [
|
|
3251
|
-
"bg-
|
|
3252
|
-
"border-[length:var(--border-width)] border-
|
|
3253
|
-
"shadow-
|
|
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-
|
|
3255
|
+
"hover:shadow-lg hover:-translate-y-0.5"
|
|
3256
3256
|
].join(" "),
|
|
3257
3257
|
elevated: [
|
|
3258
|
-
"bg-
|
|
3259
|
-
"border-[length:var(--border-width)] border-
|
|
3260
|
-
"shadow
|
|
3258
|
+
"bg-card",
|
|
3259
|
+
"border-[length:var(--border-width)] border-border",
|
|
3260
|
+
"shadow",
|
|
3261
3261
|
"transition-all duration-[var(--transition-normal)]",
|
|
3262
|
-
"hover:shadow-
|
|
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-
|
|
3267
|
-
"border-[length:var(--border-width)] border-
|
|
3268
|
-
"shadow
|
|
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-
|
|
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-
|
|
3283
|
-
md: "shadow
|
|
3284
|
-
lg: "shadow-
|
|
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-
|
|
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-
|
|
3313
|
-
subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
3486
|
-
dark: "bg-
|
|
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-
|
|
3536
|
-
"rounded-
|
|
3537
|
-
"border-[length:var(--border-width)] 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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
3748
|
-
background === "dark" && "bg-
|
|
3749
|
-
background === "gradient" && "bg-
|
|
3750
|
-
background === "primary" && "bg-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
3937
|
-
"shadow-
|
|
3936
|
+
"border-[length:2px] border-primary",
|
|
3937
|
+
"shadow-lg",
|
|
3938
3938
|
"scale-[1.05]",
|
|
3939
|
-
"ring-2 ring-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
4061
|
+
"bg-primary text-primary-foreground"
|
|
4062
4062
|
),
|
|
4063
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: step.icon, size: "sm", className: "text-
|
|
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-
|
|
4073
|
+
"bg-primary text-primary-foreground"
|
|
4074
4074
|
),
|
|
4075
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold text-sm text-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
4273
|
-
offline: "bg-
|
|
4274
|
-
away: "bg-
|
|
4275
|
-
busy: "bg-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
4389
|
-
"border-2 border-
|
|
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-
|
|
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-
|
|
4499
|
-
"border-t 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-
|
|
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-
|
|
4522
|
-
"hover:text-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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;
|