nexoreui 1.8.3 → 1.8.5
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/bin/nexoreui.js +64 -75
- package/dist/index.js +22 -22
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +22 -22
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/bin/nexoreui.js
CHANGED
|
@@ -2244,7 +2244,7 @@ export const AuroraSearchPill = React.forwardRef<HTMLDivElement, AuroraSearchPil
|
|
|
2244
2244
|
sizeStyle.height,
|
|
2245
2245
|
active ? cn(sizeStyle.paddingSearch, sizeStyle.minWidthSearch) : sizeStyle.paddingDots,
|
|
2246
2246
|
bodyThemeClass,
|
|
2247
|
-
'transition-all duration-500 ease-
|
|
2247
|
+
'transition-all duration-500 ease-out'
|
|
2248
2248
|
)}
|
|
2249
2249
|
>
|
|
2250
2250
|
{/* STATE 1: Pulsing Dots (Idle/Listening) */}
|
|
@@ -2252,7 +2252,7 @@ export const AuroraSearchPill = React.forwardRef<HTMLDivElement, AuroraSearchPil
|
|
|
2252
2252
|
className={cn(
|
|
2253
2253
|
'flex items-center',
|
|
2254
2254
|
sizeStyle.dotGap,
|
|
2255
|
-
'transition-all duration-400 ease-
|
|
2255
|
+
'transition-all duration-400 ease-out',
|
|
2256
2256
|
active
|
|
2257
2257
|
? 'opacity-0 scale-50 -translate-y-2 pointer-events-none absolute'
|
|
2258
2258
|
: 'opacity-100 scale-100 translate-y-0'
|
|
@@ -2274,7 +2274,7 @@ export const AuroraSearchPill = React.forwardRef<HTMLDivElement, AuroraSearchPil
|
|
|
2274
2274
|
<div
|
|
2275
2275
|
className={cn(
|
|
2276
2276
|
'flex items-center gap-2.5 whitespace-nowrap',
|
|
2277
|
-
'transition-all duration-400 ease-
|
|
2277
|
+
'transition-all duration-400 ease-out',
|
|
2278
2278
|
active
|
|
2279
2279
|
? 'opacity-100 scale-100 translate-y-0'
|
|
2280
2280
|
: 'opacity-0 scale-90 translate-y-2 pointer-events-none absolute'
|
|
@@ -2431,7 +2431,7 @@ const Avatar = React.forwardRef<HTMLDivElement, AvatarProps>(
|
|
|
2431
2431
|
{...props}
|
|
2432
2432
|
>
|
|
2433
2433
|
{variant === "gradient" ? (
|
|
2434
|
-
<div className="flex h-full w-full items-center justify-center rounded-full bg-background p-
|
|
2434
|
+
<div className="flex h-full w-full items-center justify-center rounded-full bg-background p-px">
|
|
2435
2435
|
{children}
|
|
2436
2436
|
</div>
|
|
2437
2437
|
) : (
|
|
@@ -2589,7 +2589,7 @@ export const StackAvatar = ({
|
|
|
2589
2589
|
}
|
|
2590
2590
|
|
|
2591
2591
|
export const DottedAvatar = ({ src, fallback, size, status, className }: any) => (
|
|
2592
|
-
<Avatar size={size} status={status} className={cn("border-2 border-dashed border-primary p-
|
|
2592
|
+
<Avatar size={size} status={status} className={cn("border-2 border-dashed border-primary p-px", className)}>
|
|
2593
2593
|
{src ? <AvatarImage src={src} /> : <AvatarFallback>{fallback}</AvatarFallback>}
|
|
2594
2594
|
</Avatar>
|
|
2595
2595
|
)
|
|
@@ -3074,7 +3074,7 @@ export const ThreeDButton = React.forwardRef<HTMLButtonElement, ButtonProps>(
|
|
|
3074
3074
|
<Button
|
|
3075
3075
|
ref={ref}
|
|
3076
3076
|
className={cn(
|
|
3077
|
-
"shadow-[0_5px_0_hsl(var(--primary-dark,240_5.9%_30%))] hover:shadow-[0_2px_0_hsl(var(--primary-dark,240_5.9%_30%))] active:translate-y-
|
|
3077
|
+
"shadow-[0_5px_0_hsl(var(--primary-dark,240_5.9%_30%))] hover:shadow-[0_2px_0_hsl(var(--primary-dark,240_5.9%_30%))] active:translate-y-0.75 active:shadow-[0_0px_0_transparent] transition-all",
|
|
3078
3078
|
className
|
|
3079
3079
|
)}
|
|
3080
3080
|
{...props}
|
|
@@ -3163,7 +3163,7 @@ export const BorderBeamButton = React.forwardRef<HTMLButtonElement, ButtonProps>
|
|
|
3163
3163
|
{...props}
|
|
3164
3164
|
>
|
|
3165
3165
|
<div className="absolute inset-0 bg-linear-to-r from-primary to-transparent opacity-0 group-hover:opacity-20 transition-opacity"></div>
|
|
3166
|
-
<div className="absolute top-0 left-0 w-full h-
|
|
3166
|
+
<div className="absolute top-0 left-0 w-full h-0.5 bg-primary scale-x-0 group-hover:scale-x-100 transition-transform origin-left"></div>
|
|
3167
3167
|
<span className="relative z-10">{children}</span>
|
|
3168
3168
|
</Button>
|
|
3169
3169
|
)
|
|
@@ -4183,7 +4183,7 @@ export function Timeline({ items, className }: { items: TimelineItem[]; classNam
|
|
|
4183
4183
|
{items.map((item, index) => (
|
|
4184
4184
|
<div key={index} className="relative flex gap-6 pb-8 last:pb-0">
|
|
4185
4185
|
{index !== items.length - 1 && (
|
|
4186
|
-
<div className="absolute left-[11px] top-4 h-full w-
|
|
4186
|
+
<div className="absolute left-[11px] top-4 h-full w-0.5 bg-border" />
|
|
4187
4187
|
)}
|
|
4188
4188
|
<div
|
|
4189
4189
|
className={cn(
|
|
@@ -4343,7 +4343,7 @@ export function Divider({ orientation = "horizontal", className, ...props }: Div
|
|
|
4343
4343
|
<div
|
|
4344
4344
|
className={cn(
|
|
4345
4345
|
"bg-border shrink-0",
|
|
4346
|
-
orientation === "horizontal" ? "h-
|
|
4346
|
+
orientation === "horizontal" ? "h-px w-full" : "w-px h-full",
|
|
4347
4347
|
className
|
|
4348
4348
|
)}
|
|
4349
4349
|
{...props}
|
|
@@ -6932,7 +6932,7 @@ export function Steps({ items, className }: { items: Step[]; className?: string
|
|
|
6932
6932
|
</motion.div>
|
|
6933
6933
|
{index !== items.length - 1 && (
|
|
6934
6934
|
<div className={cn(
|
|
6935
|
-
"h-full w-
|
|
6935
|
+
"h-full w-0.5 min-h-[30px] my-2 transition-colors duration-300",
|
|
6936
6936
|
item.status === "complete" ? "bg-emerald-500" : "bg-border"
|
|
6937
6937
|
)} />
|
|
6938
6938
|
)}
|
|
@@ -7036,9 +7036,9 @@ export const BreadcrumbTrail = () => (
|
|
|
7036
7036
|
export const StepIndicator = () => (
|
|
7037
7037
|
<div className="flex items-center w-full max-w-sm">
|
|
7038
7038
|
<div className="flex items-center text-primary"><div className="w-8 h-8 rounded-full border-2 border-primary bg-primary text-primary-foreground flex items-center justify-center font-bold text-sm">1</div></div>
|
|
7039
|
-
<div className="flex-1 h-
|
|
7039
|
+
<div className="flex-1 h-0.5 bg-primary mx-2"></div>
|
|
7040
7040
|
<div className="flex items-center text-primary"><div className="w-8 h-8 rounded-full border-2 border-primary bg-background flex items-center justify-center font-bold text-sm">2</div></div>
|
|
7041
|
-
<div className="flex-1 h-
|
|
7041
|
+
<div className="flex-1 h-0.5 bg-muted mx-2"></div>
|
|
7042
7042
|
<div className="flex items-center text-muted-foreground"><div className="w-8 h-8 rounded-full border-2 border-muted bg-background flex items-center justify-center font-bold text-sm">3</div></div>
|
|
7043
7043
|
</div>
|
|
7044
7044
|
)
|
|
@@ -8421,8 +8421,8 @@ export function CreditCardVisual({
|
|
|
8421
8421
|
<div className="flex items-center gap-3">
|
|
8422
8422
|
{/* Gold EMV Chip */}
|
|
8423
8423
|
<div className="w-10 h-7 rounded-md bg-linear-to-br from-amber-300 via-amber-400 to-amber-600 border border-amber-200/50 shadow-xs relative overflow-hidden">
|
|
8424
|
-
<div className="absolute inset-x-0 top-1/2 -translate-y-1/2 h-
|
|
8425
|
-
<div className="absolute inset-y-0 left-1/2 -translate-x-1/2 w-
|
|
8424
|
+
<div className="absolute inset-x-0 top-1/2 -translate-y-1/2 h-px bg-amber-900/30" />
|
|
8425
|
+
<div className="absolute inset-y-0 left-1/2 -translate-x-1/2 w-px bg-amber-900/30" />
|
|
8426
8426
|
</div>
|
|
8427
8427
|
|
|
8428
8428
|
{/* Contactless Wave */}
|
|
@@ -11785,7 +11785,7 @@ export function TextButton({ children, className, ...props }: React.ButtonHTMLAt
|
|
|
11785
11785
|
{...props}
|
|
11786
11786
|
>
|
|
11787
11787
|
{children}
|
|
11788
|
-
<span className="absolute bottom-0 left-0 h-
|
|
11788
|
+
<span className="absolute bottom-0 left-0 h-0.5 w-0 bg-primary transition-all duration-300 group-hover:w-full" />
|
|
11789
11789
|
</button>
|
|
11790
11790
|
)
|
|
11791
11791
|
}
|
|
@@ -14363,9 +14363,9 @@ const ScrollBar = React.forwardRef<
|
|
|
14363
14363
|
className={cn(
|
|
14364
14364
|
"flex touch-none select-none transition-colors duration-150 rounded-full",
|
|
14365
14365
|
orientation === "vertical" &&
|
|
14366
|
-
"h-full w-2 border-l border-l-transparent p-
|
|
14366
|
+
"h-full w-2 border-l border-l-transparent p-px hover:bg-black/5 dark:hover:bg-white/5",
|
|
14367
14367
|
orientation === "horizontal" &&
|
|
14368
|
-
"h-2 flex-col border-t border-t-transparent p-
|
|
14368
|
+
"h-2 flex-col border-t border-t-transparent p-px hover:bg-black/5 dark:hover:bg-white/5",
|
|
14369
14369
|
className
|
|
14370
14370
|
)}
|
|
14371
14371
|
{...props}
|
|
@@ -15065,7 +15065,7 @@ export function TypingAnimation({
|
|
|
15065
15065
|
<motion.span
|
|
15066
15066
|
animate={{ opacity: [1, 0, 1] }}
|
|
15067
15067
|
transition={{ duration: 0.8, repeat: Infinity, ease: "linear" }}
|
|
15068
|
-
className="ml-0.5 inline-block w-
|
|
15068
|
+
className="ml-0.5 inline-block w-0.5 h-[1.1em] bg-current font-normal align-middle"
|
|
15069
15069
|
>
|
|
15070
15070
|
|
|
|
15071
15071
|
</motion.span>
|
|
@@ -15364,7 +15364,7 @@ export const Stepper = React.forwardRef<HTMLDivElement, StepperProps>(
|
|
|
15364
15364
|
|
|
15365
15365
|
{/* Vertical Connector Line perfectly centered under the circle */}
|
|
15366
15366
|
{!isLast && (
|
|
15367
|
-
<div className="w-
|
|
15367
|
+
<div className="w-0.5 min-h-[36px] bg-muted/40 my-1 rounded-full relative overflow-hidden flex-1">
|
|
15368
15368
|
<motion.div
|
|
15369
15369
|
className="absolute top-0 left-0 right-0 bg-primary"
|
|
15370
15370
|
initial={{ height: "0%" }}
|
|
@@ -15496,7 +15496,7 @@ export const Stepper = React.forwardRef<HTMLDivElement, StepperProps>(
|
|
|
15496
15496
|
<ChevronRight className={cn("h-4 w-4 shrink-0 transition-colors", isCompleted && "text-primary")} />
|
|
15497
15497
|
</div>
|
|
15498
15498
|
) : (
|
|
15499
|
-
<div className="h-
|
|
15499
|
+
<div className="h-0.5 w-full bg-muted/50 rounded-full overflow-hidden relative">
|
|
15500
15500
|
<motion.div
|
|
15501
15501
|
className="absolute inset-y-0 left-0 bg-primary"
|
|
15502
15502
|
initial={{ width: "0%" }}
|
|
@@ -16495,7 +16495,7 @@ export function AnimatedGradientBorder({
|
|
|
16495
16495
|
duration = 3,
|
|
16496
16496
|
}: AnimatedGradientBorderProps) {
|
|
16497
16497
|
return (
|
|
16498
|
-
<div className={cn("relative rounded-xl p-
|
|
16498
|
+
<div className={cn("relative rounded-xl p-px", containerClassName)}>
|
|
16499
16499
|
<motion.div
|
|
16500
16500
|
className={cn(
|
|
16501
16501
|
"absolute inset-0 rounded-xl",
|
|
@@ -16678,7 +16678,7 @@ export function Meteors({ number = 20, className }: MeteorsProps) {
|
|
|
16678
16678
|
animationDuration: meteor.animationDuration,
|
|
16679
16679
|
}}
|
|
16680
16680
|
>
|
|
16681
|
-
<div className="absolute top-1/2 -translate-y-1/2 w-
|
|
16681
|
+
<div className="absolute top-1/2 -translate-y-1/2 w-px h-full bg-linear-to-b from-foreground/30 to-transparent" />
|
|
16682
16682
|
</span>
|
|
16683
16683
|
))}
|
|
16684
16684
|
</div>
|
|
@@ -37816,7 +37816,7 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url))
|
|
|
37816
37816
|
function injectThemeCss(baseDir, cssRelativePath, themeName, radiusValue, fontFamily = "system", density = "default", animationStyle = "energetic") {
|
|
37817
37817
|
const cssAbsolutePath = path4.join(baseDir, cssRelativePath);
|
|
37818
37818
|
const palette = THEME_PALETTES[themeName] || THEME_PALETTES.cyan;
|
|
37819
|
-
const radius = typeof radiusValue === "number" ? radiusValue : parseFloat(radiusValue)
|
|
37819
|
+
const radius = typeof radiusValue === "number" ? radiusValue : radiusValue !== void 0 && !isNaN(parseFloat(radiusValue)) ? parseFloat(radiusValue) : 0.75;
|
|
37820
37820
|
const fontMap = {
|
|
37821
37821
|
inter: "'Inter', sans-serif",
|
|
37822
37822
|
geist: "'Geist', sans-serif",
|
|
@@ -37830,14 +37830,17 @@ function injectThemeCss(baseDir, cssRelativePath, themeName, radiusValue, fontFa
|
|
|
37830
37830
|
if (animationStyle === "none") {
|
|
37831
37831
|
animationCss = `
|
|
37832
37832
|
/* NexoreUI Animation Style: None */
|
|
37833
|
-
|
|
37834
|
-
|
|
37835
|
-
|
|
37836
|
-
|
|
37833
|
+
:root {
|
|
37834
|
+
--motion-ease: linear;
|
|
37835
|
+
--motion-duration: 0s;
|
|
37836
|
+
}
|
|
37837
|
+
button, a, input, select, textarea, [role="button"] {
|
|
37838
|
+
transition-duration: 0s !important;
|
|
37837
37839
|
}
|
|
37838
37840
|
`;
|
|
37839
37841
|
} else if (animationStyle === "subtle") {
|
|
37840
37842
|
animationCss = `
|
|
37843
|
+
/* NexoreUI Animation Style: Subtle */
|
|
37841
37844
|
:root {
|
|
37842
37845
|
--motion-ease: cubic-bezier(0.16, 1, 0.3, 1);
|
|
37843
37846
|
--motion-duration: 0.35s;
|
|
@@ -37845,6 +37848,7 @@ function injectThemeCss(baseDir, cssRelativePath, themeName, radiusValue, fontFa
|
|
|
37845
37848
|
`;
|
|
37846
37849
|
} else {
|
|
37847
37850
|
animationCss = `
|
|
37851
|
+
/* NexoreUI Animation Style: Energetic */
|
|
37848
37852
|
:root {
|
|
37849
37853
|
--motion-ease: cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
37850
37854
|
--motion-duration: 0.2s;
|
|
@@ -37934,44 +37938,23 @@ function injectThemeCss(baseDir, cssRelativePath, themeName, radiusValue, fontFa
|
|
|
37934
37938
|
--density-gap: ${densityGap};
|
|
37935
37939
|
}
|
|
37936
37940
|
|
|
37937
|
-
body {
|
|
37941
|
+
html, body {
|
|
37942
|
+
font-family: var(--font-sans);
|
|
37938
37943
|
background-color: var(--background);
|
|
37939
37944
|
color: var(--foreground);
|
|
37940
37945
|
}
|
|
37941
37946
|
${animationCss}
|
|
37942
37947
|
/* End NexoreUI Theme Tokens */`;
|
|
37943
|
-
|
|
37944
|
-
let existingContent = fs4.readFileSync(cssAbsolutePath, "utf8");
|
|
37945
|
-
existingContent = existingContent.replace(/#root\s*\{[^}]*\}/g, "");
|
|
37946
|
-
existingContent = existingContent.replace(/:root\s*\{[^}]*color:\s*rgba\(255,\s*255,\s*255[^}]*\}/g, "");
|
|
37947
|
-
existingContent = existingContent.replace(/body\s*\{[^}]*place-items:\s*center[^}]*\}/g, "");
|
|
37948
|
-
if (existingContent.includes("/* NexoreUI Theme Tokens */")) {
|
|
37949
|
-
existingContent = existingContent.replace(
|
|
37950
|
-
/\/\* NexoreUI Theme Tokens \*\/[\s\S]*?\/\* End NexoreUI Theme Tokens \*\//,
|
|
37951
|
-
themeBlock
|
|
37952
|
-
);
|
|
37953
|
-
fs4.writeFileSync(cssAbsolutePath, existingContent, "utf8");
|
|
37954
|
-
return true;
|
|
37955
|
-
} else if (existingContent.includes("--color-primary")) {
|
|
37956
|
-
existingContent = existingContent.replace(/(@source[\s\S]*|@theme[\s\S]*)/, themeBlock);
|
|
37957
|
-
fs4.writeFileSync(cssAbsolutePath, existingContent, "utf8");
|
|
37958
|
-
return true;
|
|
37959
|
-
} else {
|
|
37960
|
-
let finalContent = existingContent.trim() + "\n\n" + themeBlock;
|
|
37961
|
-
if (!finalContent.includes('@import "tailwindcss"') && !finalContent.includes("@import 'tailwindcss'")) {
|
|
37962
|
-
finalContent = '@import "tailwindcss";\n' + finalContent;
|
|
37963
|
-
}
|
|
37964
|
-
fs4.writeFileSync(cssAbsolutePath, finalContent, "utf8");
|
|
37965
|
-
return true;
|
|
37966
|
-
}
|
|
37967
|
-
} else {
|
|
37968
|
-
const cssDir = path4.dirname(cssAbsolutePath);
|
|
37969
|
-
if (!fs4.existsSync(cssDir)) fs4.mkdirSync(cssDir, { recursive: true });
|
|
37970
|
-
fs4.writeFileSync(cssAbsolutePath, `@import "tailwindcss";
|
|
37948
|
+
const cleanFullCss = `@import "tailwindcss";
|
|
37971
37949
|
|
|
37972
|
-
|
|
37973
|
-
|
|
37974
|
-
|
|
37950
|
+
@custom-variant dark (&:where(.dark, .dark *));
|
|
37951
|
+
|
|
37952
|
+
${themeBlock}
|
|
37953
|
+
`;
|
|
37954
|
+
const cssDir = path4.dirname(cssAbsolutePath);
|
|
37955
|
+
if (!fs4.existsSync(cssDir)) fs4.mkdirSync(cssDir, { recursive: true });
|
|
37956
|
+
fs4.writeFileSync(cssAbsolutePath, cleanFullCss, "utf8");
|
|
37957
|
+
return true;
|
|
37975
37958
|
}
|
|
37976
37959
|
function installPeerDependencies(baseDir, packageManager, dependencies = ["clsx", "tailwind-merge", "lucide-react", "framer-motion", "class-variance-authority"]) {
|
|
37977
37960
|
try {
|
|
@@ -38060,22 +38043,28 @@ async function initCommand(options = {}) {
|
|
|
38060
38043
|
if (didInjectCss) {
|
|
38061
38044
|
console.log(`\x1B[32m\u2714\x1B[0m Injected Tailwind CSS v4 @theme tokens into \x1B[1m${defaultCssFile}\x1B[0m`);
|
|
38062
38045
|
}
|
|
38063
|
-
|
|
38064
|
-
|
|
38065
|
-
|
|
38066
|
-
|
|
38067
|
-
|
|
38068
|
-
|
|
38069
|
-
|
|
38070
|
-
|
|
38071
|
-
|
|
38072
|
-
|
|
38073
|
-
|
|
38074
|
-
});
|
|
38075
|
-
fs5.writeFileSync(indexHtmlPath, html, "utf8");
|
|
38076
|
-
}
|
|
38077
|
-
} catch {
|
|
38046
|
+
const indexHtmlPath = path5.join(project.baseDir, "index.html");
|
|
38047
|
+
if (fs5.existsSync(indexHtmlPath)) {
|
|
38048
|
+
try {
|
|
38049
|
+
let html = fs5.readFileSync(indexHtmlPath, "utf8");
|
|
38050
|
+
if (mode === "dark" && !html.includes('class="dark"')) {
|
|
38051
|
+
html = html.replace(/<html(\s+[^>]*)?>/i, (match) => {
|
|
38052
|
+
if (match.includes('class="')) {
|
|
38053
|
+
return match.replace('class="', 'class="dark ');
|
|
38054
|
+
}
|
|
38055
|
+
return match.replace("<html", '<html class="dark"');
|
|
38056
|
+
});
|
|
38078
38057
|
}
|
|
38058
|
+
if (!html.includes("fonts.googleapis.com")) {
|
|
38059
|
+
const fontLinks = ` <!-- NexoreUI Fonts -->
|
|
38060
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
38061
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
38062
|
+
<link href="https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&display=swap" rel="stylesheet">
|
|
38063
|
+
</head>`;
|
|
38064
|
+
html = html.replace("</head>", fontLinks);
|
|
38065
|
+
}
|
|
38066
|
+
fs5.writeFileSync(indexHtmlPath, html, "utf8");
|
|
38067
|
+
} catch {
|
|
38079
38068
|
}
|
|
38080
38069
|
}
|
|
38081
38070
|
installPeerDependencies(project.baseDir, project.packageManager);
|
|
@@ -38180,7 +38169,7 @@ export default function App() {
|
|
|
38180
38169
|
|
|
38181
38170
|
{/* Hero Title */}
|
|
38182
38171
|
<div className="space-y-3">
|
|
38183
|
-
<h1 className="text-4xl sm:text-5xl font-extrabold tracking-tight">
|
|
38172
|
+
<h1 className="text-4xl sm:text-5xl font-extrabold tracking-tight text-foreground">
|
|
38184
38173
|
Welcome to <span className="text-primary">NexoreUI</span>
|
|
38185
38174
|
</h1>
|
|
38186
38175
|
<p className="text-muted-foreground text-sm sm:text-base max-w-md mx-auto">
|
package/dist/index.js
CHANGED
|
@@ -641,7 +641,7 @@ var ThreeDButton = React.forwardRef(
|
|
|
641
641
|
{
|
|
642
642
|
ref,
|
|
643
643
|
className: cn(
|
|
644
|
-
"shadow-[0_5px_0_hsl(var(--primary-dark,240_5.9%_30%))] hover:shadow-[0_2px_0_hsl(var(--primary-dark,240_5.9%_30%))] active:translate-y-
|
|
644
|
+
"shadow-[0_5px_0_hsl(var(--primary-dark,240_5.9%_30%))] hover:shadow-[0_2px_0_hsl(var(--primary-dark,240_5.9%_30%))] active:translate-y-0.75 active:shadow-[0_0px_0_transparent] transition-all",
|
|
645
645
|
className
|
|
646
646
|
),
|
|
647
647
|
...props,
|
|
@@ -704,7 +704,7 @@ var BorderBeamButton = React.forwardRef(
|
|
|
704
704
|
...props,
|
|
705
705
|
children: [
|
|
706
706
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "absolute inset-0 bg-linear-to-r from-primary to-transparent opacity-0 group-hover:opacity-20 transition-opacity" }),
|
|
707
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "absolute top-0 left-0 w-full h-
|
|
707
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "absolute top-0 left-0 w-full h-0.5 bg-primary scale-x-0 group-hover:scale-x-100 transition-transform origin-left" }),
|
|
708
708
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "relative z-10", children })
|
|
709
709
|
]
|
|
710
710
|
}
|
|
@@ -1516,7 +1516,7 @@ var Avatar = React4.forwardRef(
|
|
|
1516
1516
|
ref,
|
|
1517
1517
|
className: cn(avatarVariants({ size, variant, className })),
|
|
1518
1518
|
...props,
|
|
1519
|
-
children: variant === "gradient" ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "flex h-full w-full items-center justify-center rounded-full bg-background p-
|
|
1519
|
+
children: variant === "gradient" ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "flex h-full w-full items-center justify-center rounded-full bg-background p-px", children }) : children
|
|
1520
1520
|
}
|
|
1521
1521
|
),
|
|
1522
1522
|
status && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: cn(
|
|
@@ -1580,7 +1580,7 @@ var StackAvatar = ({
|
|
|
1580
1580
|
] })
|
|
1581
1581
|
] });
|
|
1582
1582
|
};
|
|
1583
|
-
var DottedAvatar = ({ src, fallback, size, status, className }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Avatar, { size, status, className: cn("border-2 border-dashed border-primary p-
|
|
1583
|
+
var DottedAvatar = ({ src, fallback, size, status, className }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Avatar, { size, status, className: cn("border-2 border-dashed border-primary p-px", className), children: src ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(AvatarImage, { src }) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(AvatarFallback, { children: fallback }) });
|
|
1584
1584
|
var ShadowAvatar = ({ src, fallback, size, status, className }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Avatar, { size, status, className: cn("shadow-2xl shadow-primary/40", className), children: src ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(AvatarImage, { src }) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(AvatarFallback, { children: fallback }) });
|
|
1585
1585
|
var PolymorphAvatar = ({ src, fallback, size, status, className }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Avatar, { size, status, className: cn("rounded-none hover:rounded-[40%] transition-all duration-500", className), children: src ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(AvatarImage, { src, className: "rounded-none hover:rounded-[40%] transition-all duration-500" }) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(AvatarFallback, { children: fallback }) });
|
|
1586
1586
|
var TooltipAvatar = ({ src, fallback, size, status, tooltipText, className }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "relative group/tooltip inline-block", children: [
|
|
@@ -2983,7 +2983,7 @@ function Steps({ items, className }) {
|
|
|
2983
2983
|
}
|
|
2984
2984
|
),
|
|
2985
2985
|
index !== items.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: cn(
|
|
2986
|
-
"h-full w-
|
|
2986
|
+
"h-full w-0.5 min-h-[30px] my-2 transition-colors duration-300",
|
|
2987
2987
|
item.status === "complete" ? "bg-emerald-500" : "bg-border"
|
|
2988
2988
|
) })
|
|
2989
2989
|
] }),
|
|
@@ -3075,9 +3075,9 @@ var BreadcrumbTrail = () => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("nav"
|
|
|
3075
3075
|
] });
|
|
3076
3076
|
var StepIndicator = () => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex items-center w-full max-w-sm", children: [
|
|
3077
3077
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "flex items-center text-primary", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "w-8 h-8 rounded-full border-2 border-primary bg-primary text-primary-foreground flex items-center justify-center font-bold text-sm", children: "1" }) }),
|
|
3078
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "flex-1 h-
|
|
3078
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "flex-1 h-0.5 bg-primary mx-2" }),
|
|
3079
3079
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "flex items-center text-primary", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "w-8 h-8 rounded-full border-2 border-primary bg-background flex items-center justify-center font-bold text-sm", children: "2" }) }),
|
|
3080
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "flex-1 h-
|
|
3080
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "flex-1 h-0.5 bg-muted mx-2" }),
|
|
3081
3081
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "flex items-center text-muted-foreground", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "w-8 h-8 rounded-full border-2 border-muted bg-background flex items-center justify-center font-bold text-sm", children: "3" }) })
|
|
3082
3082
|
] });
|
|
3083
3083
|
var TabMenu = () => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex border-b w-full", children: [
|
|
@@ -3119,8 +3119,8 @@ var ScrollBar = React15.forwardRef(({ className, orientation = "vertical", ...pr
|
|
|
3119
3119
|
orientation,
|
|
3120
3120
|
className: cn(
|
|
3121
3121
|
"flex touch-none select-none transition-colors duration-150 rounded-full",
|
|
3122
|
-
orientation === "vertical" && "h-full w-2 border-l border-l-transparent p-
|
|
3123
|
-
orientation === "horizontal" && "h-2 flex-col border-t border-t-transparent p-
|
|
3122
|
+
orientation === "vertical" && "h-full w-2 border-l border-l-transparent p-px hover:bg-black/5 dark:hover:bg-white/5",
|
|
3123
|
+
orientation === "horizontal" && "h-2 flex-col border-t border-t-transparent p-px hover:bg-black/5 dark:hover:bg-white/5",
|
|
3124
3124
|
className
|
|
3125
3125
|
),
|
|
3126
3126
|
...props,
|
|
@@ -3273,7 +3273,7 @@ function TypingAnimation({
|
|
|
3273
3273
|
{
|
|
3274
3274
|
animate: { opacity: [1, 0, 1] },
|
|
3275
3275
|
transition: { duration: 0.8, repeat: Infinity, ease: "linear" },
|
|
3276
|
-
className: "ml-0.5 inline-block w-
|
|
3276
|
+
className: "ml-0.5 inline-block w-0.5 h-[1.1em] bg-current font-normal align-middle",
|
|
3277
3277
|
children: "|"
|
|
3278
3278
|
}
|
|
3279
3279
|
)
|
|
@@ -4392,7 +4392,7 @@ var Stepper = React23.forwardRef(
|
|
|
4392
4392
|
]
|
|
4393
4393
|
}
|
|
4394
4394
|
),
|
|
4395
|
-
!isLast && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "w-
|
|
4395
|
+
!isLast && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "w-0.5 min-h-[36px] bg-muted/40 my-1 rounded-full relative overflow-hidden flex-1", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
4396
4396
|
import_framer_motion17.motion.div,
|
|
4397
4397
|
{
|
|
4398
4398
|
className: "absolute top-0 left-0 right-0 bg-primary",
|
|
@@ -4495,7 +4495,7 @@ var Stepper = React23.forwardRef(
|
|
|
4495
4495
|
]
|
|
4496
4496
|
}
|
|
4497
4497
|
),
|
|
4498
|
-
!isLast && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "flex-1 mx-2 sm:mx-3 flex items-center min-w-[14px]", children: variant === "arrows" ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "flex items-center justify-center w-full text-muted-foreground/40", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react11.ChevronRight, { className: cn("h-4 w-4 shrink-0 transition-colors", isCompleted && "text-primary") }) }) : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "h-
|
|
4498
|
+
!isLast && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "flex-1 mx-2 sm:mx-3 flex items-center min-w-[14px]", children: variant === "arrows" ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "flex items-center justify-center w-full text-muted-foreground/40", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react11.ChevronRight, { className: cn("h-4 w-4 shrink-0 transition-colors", isCompleted && "text-primary") }) }) : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "h-0.5 w-full bg-muted/50 rounded-full overflow-hidden relative", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
4499
4499
|
import_framer_motion17.motion.div,
|
|
4500
4500
|
{
|
|
4501
4501
|
className: "absolute inset-y-0 left-0 bg-primary",
|
|
@@ -4713,7 +4713,7 @@ function StatCard({ title, value, description, icon: Icon2, trend, className, ..
|
|
|
4713
4713
|
}
|
|
4714
4714
|
function Timeline({ items, className }) {
|
|
4715
4715
|
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: cn("space-y-8", className), children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "relative flex gap-6 pb-8 last:pb-0", children: [
|
|
4716
|
-
index !== items.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "absolute left-[11px] top-4 h-full w-
|
|
4716
|
+
index !== items.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "absolute left-[11px] top-4 h-full w-0.5 bg-border" }),
|
|
4717
4717
|
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
|
|
4718
4718
|
"div",
|
|
4719
4719
|
{
|
|
@@ -4788,7 +4788,7 @@ function Divider({ orientation = "horizontal", className, ...props }) {
|
|
|
4788
4788
|
{
|
|
4789
4789
|
className: cn(
|
|
4790
4790
|
"bg-border shrink-0",
|
|
4791
|
-
orientation === "horizontal" ? "h-
|
|
4791
|
+
orientation === "horizontal" ? "h-px w-full" : "w-px h-full",
|
|
4792
4792
|
className
|
|
4793
4793
|
),
|
|
4794
4794
|
...props
|
|
@@ -7034,7 +7034,7 @@ function TextButton({ children, className, ...props }) {
|
|
|
7034
7034
|
...props,
|
|
7035
7035
|
children: [
|
|
7036
7036
|
children,
|
|
7037
|
-
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "absolute bottom-0 left-0 h-
|
|
7037
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "absolute bottom-0 left-0 h-0.5 w-0 bg-primary transition-all duration-300 group-hover:w-full" })
|
|
7038
7038
|
]
|
|
7039
7039
|
}
|
|
7040
7040
|
);
|
|
@@ -7308,7 +7308,7 @@ function AnimatedGradientBorder({
|
|
|
7308
7308
|
gradientClassName,
|
|
7309
7309
|
duration = 3
|
|
7310
7310
|
}) {
|
|
7311
|
-
return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: cn("relative rounded-xl p-
|
|
7311
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: cn("relative rounded-xl p-px", containerClassName), children: [
|
|
7312
7312
|
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
7313
7313
|
import_framer_motion27.motion.div,
|
|
7314
7314
|
{
|
|
@@ -7412,7 +7412,7 @@ function Meteors({ number = 20, className }) {
|
|
|
7412
7412
|
animationDelay: meteor.animationDelay,
|
|
7413
7413
|
animationDuration: meteor.animationDuration
|
|
7414
7414
|
},
|
|
7415
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "absolute top-1/2 -translate-y-1/2 w-
|
|
7415
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "absolute top-1/2 -translate-y-1/2 w-px h-full bg-linear-to-b from-foreground/30 to-transparent" })
|
|
7416
7416
|
},
|
|
7417
7417
|
meteor.id
|
|
7418
7418
|
)) });
|
|
@@ -10171,8 +10171,8 @@ function CreditCardVisual({
|
|
|
10171
10171
|
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex items-center justify-between z-10", children: [
|
|
10172
10172
|
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex items-center gap-3", children: [
|
|
10173
10173
|
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "w-10 h-7 rounded-md bg-linear-to-br from-amber-300 via-amber-400 to-amber-600 border border-amber-200/50 shadow-xs relative overflow-hidden", children: [
|
|
10174
|
-
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "absolute inset-x-0 top-1/2 -translate-y-1/2 h-
|
|
10175
|
-
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "absolute inset-y-0 left-1/2 -translate-x-1/2 w-
|
|
10174
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "absolute inset-x-0 top-1/2 -translate-y-1/2 h-px bg-amber-900/30" }),
|
|
10175
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "absolute inset-y-0 left-1/2 -translate-x-1/2 w-px bg-amber-900/30" })
|
|
10176
10176
|
] }),
|
|
10177
10177
|
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("svg", { className: "w-5 h-5 text-white/70 rotate-90", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8.111 16.404a5.5 5.5 0 017.778 0M12 20h.01m-7.08-7.071c3.904-3.905 10.236-3.905 14.141 0M1.393 9.393c5.857-5.857 15.355-5.857 21.213 0" }) })
|
|
10178
10178
|
] }),
|
|
@@ -11397,7 +11397,7 @@ var AuroraSearchPill = React45.forwardRef(
|
|
|
11397
11397
|
sizeStyle.height,
|
|
11398
11398
|
active ? cn(sizeStyle.paddingSearch, sizeStyle.minWidthSearch) : sizeStyle.paddingDots,
|
|
11399
11399
|
bodyThemeClass,
|
|
11400
|
-
"transition-all duration-500 ease-
|
|
11400
|
+
"transition-all duration-500 ease-out"
|
|
11401
11401
|
),
|
|
11402
11402
|
children: [
|
|
11403
11403
|
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
@@ -11406,7 +11406,7 @@ var AuroraSearchPill = React45.forwardRef(
|
|
|
11406
11406
|
className: cn(
|
|
11407
11407
|
"flex items-center",
|
|
11408
11408
|
sizeStyle.dotGap,
|
|
11409
|
-
"transition-all duration-400 ease-
|
|
11409
|
+
"transition-all duration-400 ease-out",
|
|
11410
11410
|
active ? "opacity-0 scale-50 -translate-y-2 pointer-events-none absolute" : "opacity-100 scale-100 translate-y-0"
|
|
11411
11411
|
),
|
|
11412
11412
|
children: [0, 1, 2].map((idx) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
@@ -11427,7 +11427,7 @@ var AuroraSearchPill = React45.forwardRef(
|
|
|
11427
11427
|
{
|
|
11428
11428
|
className: cn(
|
|
11429
11429
|
"flex items-center gap-2.5 whitespace-nowrap",
|
|
11430
|
-
"transition-all duration-400 ease-
|
|
11430
|
+
"transition-all duration-400 ease-out",
|
|
11431
11431
|
active ? "opacity-100 scale-100 translate-y-0" : "opacity-0 scale-90 translate-y-2 pointer-events-none absolute"
|
|
11432
11432
|
),
|
|
11433
11433
|
children: [
|