@beyondcorp/beyond-ui 1.2.87 → 1.2.89
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/components/Alert/Alert.js +5 -5
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/Avatar/Avatar.js +1 -1
- package/dist/components/Avatar/Avatar.js.map +1 -1
- package/dist/components/Badge/Badge.js +6 -6
- package/dist/components/Badge/Badge.js.map +1 -1
- package/dist/components/Button/Button.js +9 -9
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/Card/Card.js +5 -5
- package/dist/components/Card/Card.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.js +1 -1
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/DataTable/DataTable.js +6 -6
- package/dist/components/DataTable/DataTable.js.map +1 -1
- package/dist/components/Input/Input.js +4 -4
- package/dist/components/Input/Input.js.map +1 -1
- package/dist/components/Navbar/Navbar.js +5 -5
- package/dist/components/Navbar/Navbar.js.map +1 -1
- package/dist/components/PageLayout/PageLayout.js +8 -8
- package/dist/components/PageLayout/PageLayout.js.map +1 -1
- package/dist/components/Radio/Radio.js +2 -2
- package/dist/components/Radio/Radio.js.map +1 -1
- package/dist/components/Select/Select.js +4 -4
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/Skeleton/Skeleton.js +3 -3
- package/dist/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/components/Spinner/Spinner.js +2 -2
- package/dist/components/Spinner/Spinner.js.map +1 -1
- package/dist/components/StatsCard/StatsCard.js +4 -4
- package/dist/components/StatsCard/StatsCard.js.map +1 -1
- package/dist/components/Switch/Switch.js +2 -2
- package/dist/components/Switch/Switch.js.map +1 -1
- package/dist/components/Tabs/Tabs.js +6 -6
- package/dist/components/Tabs/Tabs.js.map +1 -1
- package/dist/components/Textarea/Textarea.js +4 -4
- package/dist/components/Textarea/Textarea.js.map +1 -1
- package/dist/components/Toast/Toast.js +6 -6
- package/dist/components/Toast/Toast.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Navbar.js","sources":["../../../src/components/Navbar/Navbar.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Menu, X } from \"lucide-react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst navbarVariants = cva(\n \"flex items-center justify-between w-full px-4 py-3 bg-white border-b border-gray-200\",\n {\n variants: {\n variant: {\n default: \"bg-white border-gray-200\",\n dark: \"bg-gray-900 border-gray-700 text-white\",\n transparent: \"bg-transparent border-transparent\",\n },\n size: {\n sm: \"px-4 py-2\",\n md: \"px-6 py-3\",\n lg: \"px-8 py-4\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n);\n\nexport interface NavbarProps\n extends React.HTMLAttributes<HTMLElement>,\n VariantProps<typeof navbarVariants> {\n logo?: React.ReactNode;\n children?: React.ReactNode;\n}\n\nconst Navbar = React.forwardRef<HTMLElement, NavbarProps>(\n ({ className, variant, size, logo, children, ...props }, ref) => {\n const [isOpen, setIsOpen] = React.useState(false);\n\n return (\n <nav\n ref={ref}\n className={cn(navbarVariants({ variant, size }), className)}\n {...props}\n >\n <div className=\"flex items-center justify-between w-full\">\n {/* Logo */}\n {logo && <div className=\"flex-shrink-0\">{logo}</div>}\n\n {/* Desktop Navigation */}\n <div className=\"hidden md:flex items-center space-x-4 ml-auto\">\n {children}\n </div>\n\n {/* Mobile Menu Button */}\n <button\n className=\"md:hidden p-2 rounded-md hover:bg-gray-100\"\n onClick={() => setIsOpen(!isOpen)}\n >\n {isOpen ? <X className=\"h-6 w-6\" /> : <Menu className=\"h-6 w-6\" />}\n </button>\n </div>\n\n {/* Mobile Navigation */}\n {isOpen && (\n <div className=\"md:hidden absolute top-full left-0 right-0 bg-white border-b border-gray-200 shadow-lg z-50\">\n <div className=\"px-4 py-2 space-y-2\">\n {children}\n </div>\n </div>\n )}\n </nav>\n );\n }\n);\nNavbar.displayName = \"Navbar\";\n\nconst NavItem = React.forwardRef<\n HTMLAnchorElement,\n React.AnchorHTMLAttributes<HTMLAnchorElement>\n>(({ className, ...props }, ref) => (\n <a\n ref={ref}\n className={cn(\n \"text-gray-700 hover:text-primary-600 px-3 py-2 rounded-md text-sm font-medium transition-colors\",\n className\n )}\n {...props}\n />\n));\nNavItem.displayName = \"NavItem\";\n\nexport { Navbar, NavItem, navbarVariants };"],"names":["_jsxs","_jsx"],"mappings":";;;;;;AAKA,MAAM,cAAc,GAAG,GAAG,CACxB,
|
|
1
|
+
{"version":3,"file":"Navbar.js","sources":["../../../src/components/Navbar/Navbar.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Menu, X } from \"lucide-react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst navbarVariants = cva(\n \"flex items-center justify-between w-full px-4 py-3 bg-white dark:bg-gray-950 border-b border-gray-200 dark:border-gray-800\",\n {\n variants: {\n variant: {\n default: \"bg-white dark:bg-gray-950 border-gray-200 dark:border-gray-800\",\n dark: \"bg-gray-900 dark:bg-gray-950 border-gray-700 dark:border-gray-800 text-white\",\n transparent: \"bg-transparent border-transparent\",\n },\n size: {\n sm: \"px-4 py-2\",\n md: \"px-6 py-3\",\n lg: \"px-8 py-4\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n);\n\nexport interface NavbarProps\n extends React.HTMLAttributes<HTMLElement>,\n VariantProps<typeof navbarVariants> {\n logo?: React.ReactNode;\n children?: React.ReactNode;\n}\n\nconst Navbar = React.forwardRef<HTMLElement, NavbarProps>(\n ({ className, variant, size, logo, children, ...props }, ref) => {\n const [isOpen, setIsOpen] = React.useState(false);\n\n return (\n <nav\n ref={ref}\n className={cn(navbarVariants({ variant, size }), className)}\n {...props}\n >\n <div className=\"flex items-center justify-between w-full\">\n {/* Logo */}\n {logo && <div className=\"flex-shrink-0\">{logo}</div>}\n\n {/* Desktop Navigation */}\n <div className=\"hidden md:flex items-center space-x-4 ml-auto\">\n {children}\n </div>\n\n {/* Mobile Menu Button */}\n <button\n className=\"md:hidden p-2 rounded-md hover:bg-gray-100 dark:hover:bg-gray-800 dark:text-gray-300\"\n onClick={() => setIsOpen(!isOpen)}\n >\n {isOpen ? <X className=\"h-6 w-6\" /> : <Menu className=\"h-6 w-6\" />}\n </button>\n </div>\n\n {/* Mobile Navigation */}\n {isOpen && (\n <div className=\"md:hidden absolute top-full left-0 right-0 bg-white dark:bg-gray-950 border-b border-gray-200 dark:border-gray-800 shadow-lg z-50\">\n <div className=\"px-4 py-2 space-y-2\">\n {children}\n </div>\n </div>\n )}\n </nav>\n );\n }\n);\nNavbar.displayName = \"Navbar\";\n\nconst NavItem = React.forwardRef<\n HTMLAnchorElement,\n React.AnchorHTMLAttributes<HTMLAnchorElement>\n>(({ className, ...props }, ref) => (\n <a\n ref={ref}\n className={cn(\n \"text-gray-700 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400 px-3 py-2 rounded-md text-sm font-medium transition-colors\",\n className\n )}\n {...props}\n />\n));\nNavItem.displayName = \"NavItem\";\n\nexport { Navbar, NavItem, navbarVariants };"],"names":["_jsxs","_jsx"],"mappings":";;;;;;AAKA,MAAM,cAAc,GAAG,GAAG,CACxB,4HAA4H,EAC5H;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,gEAAgE;AACzE,YAAA,IAAI,EAAE,8EAA8E;AACpF,YAAA,WAAW,EAAE,mCAAmC;AACjD,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,EAAE,EAAE,WAAW;AAChB,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,IAAI,EAAE,IAAI;AACX,KAAA;AACF,CAAA;AAUH,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAC7B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AAC9D,IAAA,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;IAEjD,QACEA,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,EAAA,GACvD,KAAK,EAAA,QAAA,EAAA,CAETA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,0CAA0C,EAAA,QAAA,EAAA,CAEtD,IAAI,IAAIC,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,eAAe,EAAA,QAAA,EAAE,IAAI,EAAA,CAAO,EAGpDA,aAAK,SAAS,EAAC,+CAA+C,EAAA,QAAA,EAC3D,QAAQ,EAAA,CACL,EAGNA,GAAA,CAAA,QAAA,EAAA,EACE,SAAS,EAAC,sFAAsF,EAChG,OAAO,EAAE,MAAM,SAAS,CAAC,CAAC,MAAM,CAAC,EAAA,QAAA,EAEhC,MAAM,GAAGA,GAAA,CAAC,CAAC,EAAA,EAAC,SAAS,EAAC,SAAS,GAAG,GAAGA,GAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EAAA,CAC3D,CAAA,EAAA,CACL,EAGL,MAAM,KACLA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,mIAAmI,YAChJA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,qBAAqB,EAAA,QAAA,EACjC,QAAQ,GACL,EAAA,CACF,CACP,CAAA,EAAA,CACG;AAEV,CAAC;AAEH,MAAM,CAAC,WAAW,GAAG,QAAQ;AAE7B,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAG9B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC7BA,GAAA,CAAA,GAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,gJAAgJ,EAChJ,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT,CACH;AACD,OAAO,CAAC,WAAW,GAAG,SAAS;;;;"}
|
|
@@ -6,12 +6,12 @@ import { cn } from '../../utils/cn.js';
|
|
|
6
6
|
const pageLayoutVariants = cva("min-h-screen flex flex-col", {
|
|
7
7
|
variants: {
|
|
8
8
|
variant: {
|
|
9
|
-
default: "bg-white",
|
|
10
|
-
centered: "bg-white",
|
|
11
|
-
sidebar: "bg-gray-50",
|
|
12
|
-
landing: "bg-gradient-to-br from-gray-50 to-white",
|
|
13
|
-
product: "bg-white",
|
|
14
|
-
blog: "bg-gray-50",
|
|
9
|
+
default: "bg-white dark:bg-gray-950",
|
|
10
|
+
centered: "bg-white dark:bg-gray-950",
|
|
11
|
+
sidebar: "bg-gray-50 dark:bg-gray-900",
|
|
12
|
+
landing: "bg-gradient-to-br from-gray-50 to-white dark:from-gray-900 dark:to-gray-950",
|
|
13
|
+
product: "bg-white dark:bg-gray-950",
|
|
14
|
+
blog: "bg-gray-50 dark:bg-gray-900",
|
|
15
15
|
},
|
|
16
16
|
maxWidth: {
|
|
17
17
|
none: "",
|
|
@@ -50,11 +50,11 @@ const contentVariants = cva("flex-1", {
|
|
|
50
50
|
},
|
|
51
51
|
});
|
|
52
52
|
// Individual section components
|
|
53
|
-
const PageHeader = ({ children, className, sticky = false, transparent = false, id, ...props }) => (jsx("header", { id: id, className: cn("w-full z-50 transition-all duration-300", sticky && "sticky top-0", transparent ? "bg-transparent" : "bg-white border-b border-gray-200", className), role: "banner", ...props, children: children }));
|
|
53
|
+
const PageHeader = ({ children, className, sticky = false, transparent = false, id, ...props }) => (jsx("header", { id: id, className: cn("w-full z-50 transition-all duration-300", sticky && "sticky top-0", transparent ? "bg-transparent" : "bg-white dark:bg-gray-950 border-b border-gray-200 dark:border-gray-800", className), role: "banner", ...props, children: children }));
|
|
54
54
|
const PageHero = ({ children, className, fullHeight = false, backgroundImage, overlay = false, id, ...props }) => (jsxs("section", { id: id, className: cn("relative w-full flex items-center justify-center", fullHeight ? "min-h-screen" : "min-h-[60vh]", backgroundImage && "bg-cover bg-center bg-no-repeat", className), style: backgroundImage ? { backgroundImage: `url(${backgroundImage})` } : undefined, role: "banner", ...props, children: [overlay && backgroundImage && (jsx("div", { className: "absolute inset-0 bg-black bg-opacity-40" })), jsx("div", { className: "relative z-10 w-full", children: children })] }));
|
|
55
55
|
const PageContent = ({ children, className, maxWidth = "xl", id, ...props }) => (jsx("main", { id: id, className: cn("flex-1 w-full", maxWidth === "sm" && "max-w-2xl mx-auto px-4", maxWidth === "md" && "max-w-4xl mx-auto px-4", maxWidth === "lg" && "max-w-6xl mx-auto px-4", maxWidth === "xl" && "max-w-7xl mx-auto px-4", maxWidth === "2xl" && "max-w-screen-2xl mx-auto px-4", maxWidth === "full" && "max-w-full px-4", className), role: "main", ...props, children: children }));
|
|
56
56
|
const PageSidebar = ({ children, className, position = "right", width = "md", id, ...props }) => (jsx("aside", { id: id, className: cn("flex-shrink-0", width === "sm" && "w-full lg:w-64", width === "md" && "w-full lg:w-80", width === "lg" && "w-full lg:w-96", position === "left" && "lg:order-first", className), role: "complementary", ...props, children: children }));
|
|
57
|
-
const PageFooter = ({ children, className, variant = "simple", id, ...props }) => (jsx("footer", { id: id, className: cn("w-full mt-auto", variant === "simple" && "bg-gray-50 border-t border-gray-200 py-8", variant === "detailed" && "bg-gray-900 text-white py-12", variant === "minimal" && "bg-white border-t border-gray-100 py-6", className), role: "contentinfo", ...props, children: children }));
|
|
57
|
+
const PageFooter = ({ children, className, variant = "simple", id, ...props }) => (jsx("footer", { id: id, className: cn("w-full mt-auto", variant === "simple" && "bg-gray-50 border-t border-gray-200 py-8", variant === "simple" && "bg-gray-50 dark:bg-gray-900 border-t border-gray-200 dark:border-gray-800 py-8", variant === "detailed" && "bg-gray-900 dark:bg-gray-950 text-white py-12", variant === "minimal" && "bg-white dark:bg-gray-950 border-t border-gray-100 dark:border-gray-800 py-6", className), role: "contentinfo", ...props, children: children }));
|
|
58
58
|
const PageLayout = React.forwardRef(({ className, variant, maxWidth, contentLayout = "default", contentSpacing = "md", children, ...props }, ref) => {
|
|
59
59
|
return (jsx("div", { ref: ref, className: cn(pageLayoutVariants({ variant, maxWidth }), className), ...props, children: children }));
|
|
60
60
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageLayout.js","sources":["../../../src/components/PageLayout/PageLayout.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst pageLayoutVariants = cva(\n \"min-h-screen flex flex-col\",\n {\n variants: {\n variant: {\n default: \"bg-white\",\n centered: \"bg-white\",\n sidebar: \"bg-gray-50\",\n landing: \"bg-gradient-to-br from-gray-50 to-white\",\n product: \"bg-white\",\n blog: \"bg-gray-50\",\n },\n maxWidth: {\n none: \"\",\n sm: \"max-w-screen-sm mx-auto\",\n md: \"max-w-screen-md mx-auto\",\n lg: \"max-w-screen-lg mx-auto\",\n xl: \"max-w-screen-xl mx-auto\",\n \"2xl\": \"max-w-screen-2xl mx-auto\",\n full: \"max-w-full\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n maxWidth: \"xl\",\n },\n }\n);\n\nconst contentVariants = cva(\n \"flex-1\",\n {\n variants: {\n layout: {\n default: \"w-full\",\n centered: \"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8\",\n sidebar: \"flex flex-col lg:flex-row gap-8 px-4 sm:px-6 lg:px-8\",\n fullWidth: \"w-full\",\n },\n spacing: {\n none: \"py-0\",\n sm: \"py-4\",\n md: \"py-8\",\n lg: \"py-12\",\n xl: \"py-16\",\n },\n },\n defaultVariants: {\n layout: \"default\",\n spacing: \"md\",\n },\n }\n);\n\n// Layout section interfaces\ninterface PageSection {\n id?: string;\n className?: string;\n children: React.ReactNode;\n}\n\ninterface HeaderProps extends PageSection {\n sticky?: boolean;\n transparent?: boolean;\n}\n\ninterface HeroProps extends PageSection {\n fullHeight?: boolean;\n backgroundImage?: string;\n overlay?: boolean;\n}\n\ninterface ContentProps extends PageSection {\n maxWidth?: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"full\";\n}\n\ninterface SidebarProps extends PageSection {\n position?: \"left\" | \"right\";\n width?: \"sm\" | \"md\" | \"lg\";\n}\n\ninterface FooterProps extends PageSection {\n variant?: \"simple\" | \"detailed\" | \"minimal\";\n}\n\n// Individual section components\nconst PageHeader: React.FC<HeaderProps> = ({ \n children, \n className, \n sticky = false, \n transparent = false,\n id,\n ...props \n}) => (\n <header\n id={id}\n className={cn(\n \"w-full z-50 transition-all duration-300\",\n sticky && \"sticky top-0\",\n transparent ? \"bg-transparent\" : \"bg-white border-b border-gray-200\",\n className\n )}\n role=\"banner\"\n {...props}\n >\n {children}\n </header>\n);\n\nconst PageHero: React.FC<HeroProps> = ({ \n children, \n className, \n fullHeight = false,\n backgroundImage,\n overlay = false,\n id,\n ...props \n}) => (\n <section\n id={id}\n className={cn(\n \"relative w-full flex items-center justify-center\",\n fullHeight ? \"min-h-screen\" : \"min-h-[60vh]\",\n backgroundImage && \"bg-cover bg-center bg-no-repeat\",\n className\n )}\n style={backgroundImage ? { backgroundImage: `url(${backgroundImage})` } : undefined}\n role=\"banner\"\n {...props}\n >\n {overlay && backgroundImage && (\n <div className=\"absolute inset-0 bg-black bg-opacity-40\" />\n )}\n <div className=\"relative z-10 w-full\">\n {children}\n </div>\n </section>\n);\n\nconst PageContent: React.FC<ContentProps> = ({ \n children, \n className, \n maxWidth = \"xl\",\n id,\n ...props \n}) => (\n <main\n id={id}\n className={cn(\n \"flex-1 w-full\",\n maxWidth === \"sm\" && \"max-w-2xl mx-auto px-4\",\n maxWidth === \"md\" && \"max-w-4xl mx-auto px-4\",\n maxWidth === \"lg\" && \"max-w-6xl mx-auto px-4\",\n maxWidth === \"xl\" && \"max-w-7xl mx-auto px-4\",\n maxWidth === \"2xl\" && \"max-w-screen-2xl mx-auto px-4\",\n maxWidth === \"full\" && \"max-w-full px-4\",\n className\n )}\n role=\"main\"\n {...props}\n >\n {children}\n </main>\n);\n\nconst PageSidebar: React.FC<SidebarProps> = ({ \n children, \n className, \n position = \"right\",\n width = \"md\",\n id,\n ...props \n}) => (\n <aside\n id={id}\n className={cn(\n \"flex-shrink-0\",\n width === \"sm\" && \"w-full lg:w-64\",\n width === \"md\" && \"w-full lg:w-80\",\n width === \"lg\" && \"w-full lg:w-96\",\n position === \"left\" && \"lg:order-first\",\n className\n )}\n role=\"complementary\"\n {...props}\n >\n {children}\n </aside>\n);\n\nconst PageFooter: React.FC<FooterProps> = ({ \n children, \n className, \n variant = \"simple\",\n id,\n ...props \n}) => (\n <footer\n id={id}\n className={cn(\n \"w-full mt-auto\",\n variant === \"simple\" && \"bg-gray-50 border-t border-gray-200 py-8\",\n variant === \"detailed\" && \"bg-gray-900 text-white py-12\",\n variant === \"minimal\" && \"bg-white border-t border-gray-100 py-6\",\n className\n )}\n role=\"contentinfo\"\n {...props}\n >\n {children}\n </footer>\n);\n\n// Main PageLayout component\nexport interface PageLayoutProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof pageLayoutVariants> {\n children: React.ReactNode;\n contentLayout?: VariantProps<typeof contentVariants>[\"layout\"];\n contentSpacing?: VariantProps<typeof contentVariants>[\"spacing\"];\n}\n\nconst PageLayout = React.forwardRef<HTMLDivElement, PageLayoutProps>(\n ({ \n className, \n variant, \n maxWidth, \n contentLayout = \"default\",\n contentSpacing = \"md\",\n children, \n ...props \n }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(pageLayoutVariants({ variant, maxWidth }), className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\nPageLayout.displayName = \"PageLayout\";\n\n// Layout wrapper for content sections\nconst PageLayoutContent: React.FC<{\n children: React.ReactNode;\n layout?: VariantProps<typeof contentVariants>[\"layout\"];\n spacing?: VariantProps<typeof contentVariants>[\"spacing\"];\n className?: string;\n}> = ({ children, layout = \"default\", spacing = \"md\", className }) => (\n <div className={cn(contentVariants({ layout, spacing }), className)}>\n {children}\n </div>\n);\n\n// Export all components\nexport {\n PageLayout,\n PageLayoutContent,\n PageHeader,\n PageHero,\n PageContent,\n PageSidebar,\n PageFooter,\n pageLayoutVariants,\n contentVariants,\n type HeaderProps,\n type HeroProps,\n type ContentProps,\n type SidebarProps,\n type FooterProps,\n};\n\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PageLayout.js","sources":["../../../src/components/PageLayout/PageLayout.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst pageLayoutVariants = cva(\n \"min-h-screen flex flex-col\",\n {\n variants: {\n variant: {\n default: \"bg-white dark:bg-gray-950\",\n centered: \"bg-white dark:bg-gray-950\",\n sidebar: \"bg-gray-50 dark:bg-gray-900\",\n landing: \"bg-gradient-to-br from-gray-50 to-white dark:from-gray-900 dark:to-gray-950\",\n product: \"bg-white dark:bg-gray-950\",\n blog: \"bg-gray-50 dark:bg-gray-900\",\n },\n maxWidth: {\n none: \"\",\n sm: \"max-w-screen-sm mx-auto\",\n md: \"max-w-screen-md mx-auto\",\n lg: \"max-w-screen-lg mx-auto\",\n xl: \"max-w-screen-xl mx-auto\",\n \"2xl\": \"max-w-screen-2xl mx-auto\",\n full: \"max-w-full\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n maxWidth: \"xl\",\n },\n }\n);\n\nconst contentVariants = cva(\n \"flex-1\",\n {\n variants: {\n layout: {\n default: \"w-full\",\n centered: \"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8\",\n sidebar: \"flex flex-col lg:flex-row gap-8 px-4 sm:px-6 lg:px-8\",\n fullWidth: \"w-full\",\n },\n spacing: {\n none: \"py-0\",\n sm: \"py-4\",\n md: \"py-8\",\n lg: \"py-12\",\n xl: \"py-16\",\n },\n },\n defaultVariants: {\n layout: \"default\",\n spacing: \"md\",\n },\n }\n);\n\n// Layout section interfaces\ninterface PageSection {\n id?: string;\n className?: string;\n children: React.ReactNode;\n}\n\ninterface HeaderProps extends PageSection {\n sticky?: boolean;\n transparent?: boolean;\n}\n\ninterface HeroProps extends PageSection {\n fullHeight?: boolean;\n backgroundImage?: string;\n overlay?: boolean;\n}\n\ninterface ContentProps extends PageSection {\n maxWidth?: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"full\";\n}\n\ninterface SidebarProps extends PageSection {\n position?: \"left\" | \"right\";\n width?: \"sm\" | \"md\" | \"lg\";\n}\n\ninterface FooterProps extends PageSection {\n variant?: \"simple\" | \"detailed\" | \"minimal\";\n}\n\n// Individual section components\nconst PageHeader: React.FC<HeaderProps> = ({ \n children, \n className, \n sticky = false, \n transparent = false,\n id,\n ...props \n}) => (\n <header\n id={id}\n className={cn(\n \"w-full z-50 transition-all duration-300\",\n sticky && \"sticky top-0\",\n transparent ? \"bg-transparent\" : \"bg-white dark:bg-gray-950 border-b border-gray-200 dark:border-gray-800\",\n className\n )}\n role=\"banner\"\n {...props}\n >\n {children}\n </header>\n);\n\nconst PageHero: React.FC<HeroProps> = ({ \n children, \n className, \n fullHeight = false,\n backgroundImage,\n overlay = false,\n id,\n ...props \n}) => (\n <section\n id={id}\n className={cn(\n \"relative w-full flex items-center justify-center\",\n fullHeight ? \"min-h-screen\" : \"min-h-[60vh]\",\n backgroundImage && \"bg-cover bg-center bg-no-repeat\",\n className\n )}\n style={backgroundImage ? { backgroundImage: `url(${backgroundImage})` } : undefined}\n role=\"banner\"\n {...props}\n >\n {overlay && backgroundImage && (\n <div className=\"absolute inset-0 bg-black bg-opacity-40\" />\n )}\n <div className=\"relative z-10 w-full\">\n {children}\n </div>\n </section>\n);\n\nconst PageContent: React.FC<ContentProps> = ({ \n children, \n className, \n maxWidth = \"xl\",\n id,\n ...props \n}) => (\n <main\n id={id}\n className={cn(\n \"flex-1 w-full\",\n maxWidth === \"sm\" && \"max-w-2xl mx-auto px-4\",\n maxWidth === \"md\" && \"max-w-4xl mx-auto px-4\",\n maxWidth === \"lg\" && \"max-w-6xl mx-auto px-4\",\n maxWidth === \"xl\" && \"max-w-7xl mx-auto px-4\",\n maxWidth === \"2xl\" && \"max-w-screen-2xl mx-auto px-4\",\n maxWidth === \"full\" && \"max-w-full px-4\",\n className\n )}\n role=\"main\"\n {...props}\n >\n {children}\n </main>\n);\n\nconst PageSidebar: React.FC<SidebarProps> = ({ \n children, \n className, \n position = \"right\",\n width = \"md\",\n id,\n ...props \n}) => (\n <aside\n id={id}\n className={cn(\n \"flex-shrink-0\",\n width === \"sm\" && \"w-full lg:w-64\",\n width === \"md\" && \"w-full lg:w-80\",\n width === \"lg\" && \"w-full lg:w-96\",\n position === \"left\" && \"lg:order-first\",\n className\n )}\n role=\"complementary\"\n {...props}\n >\n {children}\n </aside>\n);\n\nconst PageFooter: React.FC<FooterProps> = ({ \n children, \n className, \n variant = \"simple\",\n id,\n ...props \n}) => (\n <footer\n id={id}\n className={cn(\n \"w-full mt-auto\",\n variant === \"simple\" && \"bg-gray-50 border-t border-gray-200 py-8\",\n variant === \"simple\" && \"bg-gray-50 dark:bg-gray-900 border-t border-gray-200 dark:border-gray-800 py-8\",\n variant === \"detailed\" && \"bg-gray-900 dark:bg-gray-950 text-white py-12\",\n variant === \"minimal\" && \"bg-white dark:bg-gray-950 border-t border-gray-100 dark:border-gray-800 py-6\",\n className\n )}\n role=\"contentinfo\"\n {...props}\n >\n {children}\n </footer>\n);\n\n// Main PageLayout component\nexport interface PageLayoutProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof pageLayoutVariants> {\n children: React.ReactNode;\n contentLayout?: VariantProps<typeof contentVariants>[\"layout\"];\n contentSpacing?: VariantProps<typeof contentVariants>[\"spacing\"];\n}\n\nconst PageLayout = React.forwardRef<HTMLDivElement, PageLayoutProps>(\n ({ \n className, \n variant, \n maxWidth, \n contentLayout = \"default\",\n contentSpacing = \"md\",\n children, \n ...props \n }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(pageLayoutVariants({ variant, maxWidth }), className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\nPageLayout.displayName = \"PageLayout\";\n\n// Layout wrapper for content sections\nconst PageLayoutContent: React.FC<{\n children: React.ReactNode;\n layout?: VariantProps<typeof contentVariants>[\"layout\"];\n spacing?: VariantProps<typeof contentVariants>[\"spacing\"];\n className?: string;\n}> = ({ children, layout = \"default\", spacing = \"md\", className }) => (\n <div className={cn(contentVariants({ layout, spacing }), className)}>\n {children}\n </div>\n);\n\n// Export all components\nexport {\n PageLayout,\n PageLayoutContent,\n PageHeader,\n PageHero,\n PageContent,\n PageSidebar,\n PageFooter,\n pageLayoutVariants,\n contentVariants,\n type HeaderProps,\n type HeroProps,\n type ContentProps,\n type SidebarProps,\n type FooterProps,\n};\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { jsx, jsxs } from 'react/jsx-runtime';
|
|
|
2
2
|
import { cva } from 'class-variance-authority';
|
|
3
3
|
import { cn } from '../../utils/cn.js';
|
|
4
4
|
|
|
5
|
-
const radioVariants = cva("peer h-4 w-4 shrink-0 rounded-full border border-gray-300 ring-offset-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary-600 data-[state=checked]:border-primary-600", {
|
|
5
|
+
const radioVariants = cva("peer h-4 w-4 shrink-0 rounded-full border border-gray-300 dark:border-gray-700 ring-offset-white dark:ring-offset-gray-900 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary-600 dark:data-[state=checked]:bg-primary-500 data-[state=checked]:border-primary-600 dark:data-[state=checked]:border-primary-500", {
|
|
6
6
|
variants: {
|
|
7
7
|
size: {
|
|
8
8
|
sm: "h-3 w-3",
|
|
@@ -14,7 +14,7 @@ const radioVariants = cva("peer h-4 w-4 shrink-0 rounded-full border border-gray
|
|
|
14
14
|
size: "md",
|
|
15
15
|
},
|
|
16
16
|
});
|
|
17
|
-
const RadioGroup = ({ name, value, options, onChange, size = "md", disabled, className, ...props }) => (jsx("div", { className: cn("flex flex-col gap-2", className), ...props, children: options.map(opt => (jsxs("label", { className: "inline-flex items-center gap-2 cursor-pointer", children: [jsx("input", { type: "radio", name: name, value: opt.value, checked: value === opt.value, onChange: onChange, disabled: disabled, className: cn(radioVariants({ size }), "appearance-none"), "data-state": value === opt.value ? "checked" : "unchecked" }), jsx("span", { className: "text-sm", children: opt.label })] }, opt.value))) }));
|
|
17
|
+
const RadioGroup = ({ name, value, options, onChange, size = "md", disabled, className, ...props }) => (jsx("div", { className: cn("flex flex-col gap-2", className), ...props, children: options.map(opt => (jsxs("label", { className: "inline-flex items-center gap-2 cursor-pointer", children: [jsx("input", { type: "radio", name: name, value: opt.value, checked: value === opt.value, onChange: onChange, disabled: disabled, className: cn(radioVariants({ size }), "appearance-none"), "data-state": value === opt.value ? "checked" : "unchecked" }), jsx("span", { className: "text-sm dark:text-gray-300", children: opt.label })] }, opt.value))) }));
|
|
18
18
|
RadioGroup.displayName = "RadioGroup";
|
|
19
19
|
|
|
20
20
|
export { RadioGroup };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Radio.js","sources":["../../../src/components/Radio/Radio.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst radioVariants = cva(\n \"peer h-4 w-4 shrink-0 rounded-full border border-gray-300 ring-offset-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary-600 data-[state=checked]:border-primary-600\",\n {\n variants: {\n size: {\n sm: \"h-3 w-3\",\n md: \"h-4 w-4\",\n lg: \"h-5 w-5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n);\n\nexport interface RadioOption {\n label: string;\n value: string;\n}\n\nexport interface RadioGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n name: string;\n value?: string;\n options: RadioOption[];\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n size?: \"sm\" | \"md\" | \"lg\";\n disabled?: boolean;\n}\n\nexport const RadioGroup: React.FC<RadioGroupProps> = ({\n name,\n value,\n options,\n onChange,\n size = \"md\",\n disabled,\n className,\n ...props\n}) => (\n <div className={cn(\"flex flex-col gap-2\", className)} {...props}>\n {options.map(opt => (\n <label key={opt.value} className=\"inline-flex items-center gap-2 cursor-pointer\">\n <input\n type=\"radio\"\n name={name}\n value={opt.value}\n checked={value === opt.value}\n onChange={onChange}\n disabled={disabled}\n className={cn(radioVariants({ size }), \"appearance-none\")}\n data-state={value === opt.value ? \"checked\" : \"unchecked\"}\n />\n
|
|
1
|
+
{"version":3,"file":"Radio.js","sources":["../../../src/components/Radio/Radio.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst radioVariants = cva(\n \"peer h-4 w-4 shrink-0 rounded-full border border-gray-300 dark:border-gray-700 ring-offset-white dark:ring-offset-gray-900 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary-600 dark:data-[state=checked]:bg-primary-500 data-[state=checked]:border-primary-600 dark:data-[state=checked]:border-primary-500\",\n {\n variants: {\n size: {\n sm: \"h-3 w-3\",\n md: \"h-4 w-4\",\n lg: \"h-5 w-5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n);\n\nexport interface RadioOption {\n label: string;\n value: string;\n}\n\nexport interface RadioGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n name: string;\n value?: string;\n options: RadioOption[];\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n size?: \"sm\" | \"md\" | \"lg\";\n disabled?: boolean;\n}\n\nexport const RadioGroup: React.FC<RadioGroupProps> = ({\n name,\n value,\n options,\n onChange,\n size = \"md\",\n disabled,\n className,\n ...props\n}) => (\n <div className={cn(\"flex flex-col gap-2\", className)} {...props}>\n {options.map(opt => (\n <label key={opt.value} className=\"inline-flex items-center gap-2 cursor-pointer\">\n <input\n type=\"radio\"\n name={name}\n value={opt.value}\n checked={value === opt.value}\n onChange={onChange}\n disabled={disabled}\n className={cn(radioVariants({ size }), \"appearance-none\")}\n data-state={value === opt.value ? \"checked\" : \"unchecked\"}\n />\n <span className=\"text-sm dark:text-gray-300\">{opt.label}</span>\n </label>\n ))}\n </div>\n);\n\nRadioGroup.displayName = \"RadioGroup\";"],"names":["_jsx","_jsxs"],"mappings":";;;;AAIA,MAAM,aAAa,GAAG,GAAG,CACvB,6dAA6d,EAC7d;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,SAAS;AACd,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,IAAI;AACX,KAAA;AACF,CAAA,CACF;AAgBM,MAAM,UAAU,GAA8B,CAAC,EACpD,IAAI,EACJ,KAAK,EACL,OAAO,EACP,QAAQ,EACR,IAAI,GAAG,IAAI,EACX,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,MACCA,aAAK,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,QAAA,EAC5D,OAAO,CAAC,GAAG,CAAC,GAAG,KACdC,IAAA,CAAA,OAAA,EAAA,EAAuB,SAAS,EAAC,+CAA+C,EAAA,QAAA,EAAA,CAC9ED,GAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,GAAG,CAAC,KAAK,EAChB,OAAO,EAAE,KAAK,KAAK,GAAG,CAAC,KAAK,EAC5B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,iBAAiB,CAAC,EAAA,YAAA,EAC7C,KAAK,KAAK,GAAG,CAAC,KAAK,GAAG,SAAS,GAAG,WAAW,EAAA,CACzD,EACJA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,4BAA4B,EAAA,QAAA,EAAE,GAAG,CAAC,KAAK,GAAQ,CAAA,EAAA,EAXnD,GAAG,CAAC,KAAK,CAYb,CACT,CAAC,EAAA,CACE;AAGR,UAAU,CAAC,WAAW,GAAG,YAAY;;;;"}
|
|
@@ -3,12 +3,12 @@ import * as React from 'react';
|
|
|
3
3
|
import { cva } from 'class-variance-authority';
|
|
4
4
|
import { cn } from '../../utils/cn.js';
|
|
5
5
|
|
|
6
|
-
const selectVariants = cva("block w-full rounded-md border bg-white px-3 py-2 text-sm ring-offset-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50", {
|
|
6
|
+
const selectVariants = cva("block w-full rounded-md border bg-white dark:bg-gray-900 dark:text-white px-3 py-2 text-sm ring-offset-white dark:ring-offset-gray-900 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50", {
|
|
7
7
|
variants: {
|
|
8
8
|
variant: {
|
|
9
|
-
default: "border-gray-300",
|
|
10
|
-
error: "border-danger-500 focus-visible:ring-danger-500",
|
|
11
|
-
success: "border-success-500 focus-visible:ring-success-500",
|
|
9
|
+
default: "border-gray-300 dark:border-gray-700",
|
|
10
|
+
error: "border-danger-500 dark:border-danger-500 focus-visible:ring-danger-500",
|
|
11
|
+
success: "border-success-500 dark:border-success-500 focus-visible:ring-success-500",
|
|
12
12
|
},
|
|
13
13
|
selectSize: {
|
|
14
14
|
sm: "h-8 px-2 text-xs",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst selectVariants = cva(\n \"block w-full rounded-md border bg-white px-3 py-2 text-sm ring-offset-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"border-gray-300\",\n error: \"border-danger-500 focus-visible:ring-danger-500\",\n success: \"border-success-500 focus-visible:ring-success-500\",\n },\n selectSize: {\n sm: \"h-8 px-2 text-xs\",\n md: \"h-10 px-3\",\n lg: \"h-12 px-4 text-base\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n selectSize: \"md\",\n },\n }\n);\n\nexport interface SelectOption {\n label: string;\n value: string;\n}\n\nexport interface SelectProps\n extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, \"size\">,\n VariantProps<typeof selectVariants> {\n options: SelectOption[];\n placeholder?: string;\n}\n\nexport const Select = React.forwardRef<HTMLSelectElement, SelectProps>(\n ({ className, variant, selectSize, options, placeholder, ...props }, ref) => (\n <select\n className={cn(selectVariants({ variant, selectSize, className }))}\n ref={ref}\n {...props}\n >\n {placeholder && (\n <option value=\"\" disabled hidden>\n {placeholder}\n </option>\n )}\n {options.map(opt => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n )\n);\n\nSelect.displayName = \"Select\";"],"names":["_jsxs","_jsx"],"mappings":";;;;;AAIA,MAAM,cAAc,GAAG,GAAG,CACxB,
|
|
1
|
+
{"version":3,"file":"Select.js","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst selectVariants = cva(\n \"block w-full rounded-md border bg-white dark:bg-gray-900 dark:text-white px-3 py-2 text-sm ring-offset-white dark:ring-offset-gray-900 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"border-gray-300 dark:border-gray-700\",\n error: \"border-danger-500 dark:border-danger-500 focus-visible:ring-danger-500\",\n success: \"border-success-500 dark:border-success-500 focus-visible:ring-success-500\",\n },\n selectSize: {\n sm: \"h-8 px-2 text-xs\",\n md: \"h-10 px-3\",\n lg: \"h-12 px-4 text-base\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n selectSize: \"md\",\n },\n }\n);\n\nexport interface SelectOption {\n label: string;\n value: string;\n}\n\nexport interface SelectProps\n extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, \"size\">,\n VariantProps<typeof selectVariants> {\n options: SelectOption[];\n placeholder?: string;\n}\n\nexport const Select = React.forwardRef<HTMLSelectElement, SelectProps>(\n ({ className, variant, selectSize, options, placeholder, ...props }, ref) => (\n <select\n className={cn(selectVariants({ variant, selectSize, className }))}\n ref={ref}\n {...props}\n >\n {placeholder && (\n <option value=\"\" disabled hidden>\n {placeholder}\n </option>\n )}\n {options.map(opt => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n )\n);\n\nSelect.displayName = \"Select\";"],"names":["_jsxs","_jsx"],"mappings":";;;;;AAIA,MAAM,cAAc,GAAG,GAAG,CACxB,uUAAuU,EACvU;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,sCAAsC;AAC/C,YAAA,KAAK,EAAE,wEAAwE;AAC/E,YAAA,OAAO,EAAE,2EAA2E;AACrF,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,EAAE,EAAE,kBAAkB;AACtB,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,EAAE,EAAE,qBAAqB;AAC1B,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,UAAU,EAAE,IAAI;AACjB,KAAA;AACF,CAAA,CACF;MAcY,MAAM,GAAG,KAAK,CAAC,UAAU,CACpC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACtEA,iBACE,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,EACjE,GAAG,EAAE,GAAG,EAAA,GACJ,KAAK,aAER,WAAW,KACVC,GAAA,CAAA,QAAA,EAAA,EAAQ,KAAK,EAAC,EAAE,EAAC,QAAQ,EAAA,IAAA,EAAC,MAAM,kBAC7B,WAAW,EAAA,CACL,CACV,EACA,OAAO,CAAC,GAAG,CAAC,GAAG,KACdA,GAAA,CAAA,QAAA,EAAA,EAAwB,KAAK,EAAE,GAAG,CAAC,KAAK,EAAA,QAAA,EACrC,GAAG,CAAC,KAAK,EAAA,EADC,GAAG,CAAC,KAAK,CAEb,CACV,CAAC,CAAA,EAAA,CACK,CACV;AAGH,MAAM,CAAC,WAAW,GAAG,QAAQ;;;;"}
|
|
@@ -3,11 +3,11 @@ import * as React from 'react';
|
|
|
3
3
|
import { cva } from 'class-variance-authority';
|
|
4
4
|
import { cn } from '../../utils/cn.js';
|
|
5
5
|
|
|
6
|
-
const skeletonVariants = cva("animate-pulse rounded-md bg-gray-200", {
|
|
6
|
+
const skeletonVariants = cva("animate-pulse rounded-md bg-gray-200 dark:bg-gray-800", {
|
|
7
7
|
variants: {
|
|
8
8
|
variant: {
|
|
9
|
-
default: "bg-gray-200",
|
|
10
|
-
darker: "bg-gray-300",
|
|
9
|
+
default: "bg-gray-200 dark:bg-gray-800",
|
|
10
|
+
darker: "bg-gray-300 dark:bg-gray-700",
|
|
11
11
|
},
|
|
12
12
|
},
|
|
13
13
|
defaultVariants: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Skeleton.js","sources":["../../../src/components/Skeleton/Skeleton.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst skeletonVariants = cva(\n \"animate-pulse rounded-md bg-gray-200\",\n {\n variants: {\n variant: {\n default: \"bg-gray-200\",\n darker: \"bg-gray-300\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport interface SkeletonProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof skeletonVariants> {}\n\nconst Skeleton = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, variant, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(skeletonVariants({ variant }), className)}\n {...props}\n />\n );\n }\n);\nSkeleton.displayName = \"Skeleton\";\n\nexport { Skeleton, skeletonVariants };"],"names":["_jsx"],"mappings":";;;;;AAIA,MAAM,gBAAgB,GAAG,GAAG,CAC1B,
|
|
1
|
+
{"version":3,"file":"Skeleton.js","sources":["../../../src/components/Skeleton/Skeleton.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst skeletonVariants = cva(\n \"animate-pulse rounded-md bg-gray-200 dark:bg-gray-800\",\n {\n variants: {\n variant: {\n default: \"bg-gray-200 dark:bg-gray-800\",\n darker: \"bg-gray-300 dark:bg-gray-700\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport interface SkeletonProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof skeletonVariants> {}\n\nconst Skeleton = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, variant, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(skeletonVariants({ variant }), className)}\n {...props}\n />\n );\n }\n);\nSkeleton.displayName = \"Skeleton\";\n\nexport { Skeleton, skeletonVariants };"],"names":["_jsx"],"mappings":";;;;;AAIA,MAAM,gBAAgB,GAAG,GAAG,CAC1B,uDAAuD,EACvD;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,8BAA8B;AACvC,YAAA,MAAM,EAAE,8BAA8B;AACvC,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,SAAS;AACnB,KAAA;AACF,CAAA;AAOH,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAC/B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IACxC,QACEA,aACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,EAAA,GACnD,KAAK,EAAA,CACT;AAEN,CAAC;AAEH,QAAQ,CAAC,WAAW,GAAG,UAAU;;;;"}
|
|
@@ -12,8 +12,8 @@ const spinnerVariants = cva("animate-spin rounded-full border-2 border-current b
|
|
|
12
12
|
xl: "h-12 w-12",
|
|
13
13
|
},
|
|
14
14
|
variant: {
|
|
15
|
-
primary: "text-primary-600",
|
|
16
|
-
secondary: "text-secondary-600",
|
|
15
|
+
primary: "text-primary-600 dark:text-primary-400",
|
|
16
|
+
secondary: "text-secondary-600 dark:text-secondary-400",
|
|
17
17
|
white: "text-white",
|
|
18
18
|
current: "text-current",
|
|
19
19
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Spinner.js","sources":["../../../src/components/Spinner/Spinner.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst spinnerVariants = cva(\n \"animate-spin rounded-full border-2 border-current border-t-transparent\",\n {\n variants: {\n size: {\n sm: \"h-4 w-4\",\n md: \"h-6 w-6\",\n lg: \"h-8 w-8\",\n xl: \"h-12 w-12\",\n },\n variant: {\n primary: \"text-primary-600\",\n secondary: \"text-secondary-600\",\n white: \"text-white\",\n current: \"text-current\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"primary\",\n },\n }\n);\n\nexport interface SpinnerProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof spinnerVariants> {}\n\nconst Spinner = React.forwardRef<HTMLDivElement, SpinnerProps>(\n ({ className, size, variant, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(spinnerVariants({ size, variant }), className)}\n {...props}\n />\n );\n }\n);\nSpinner.displayName = \"Spinner\";\n\nexport { Spinner, spinnerVariants };"],"names":["_jsx"],"mappings":";;;;;AAIA,MAAM,eAAe,GAAG,GAAG,CACzB,wEAAwE,EACxE;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,WAAW;AAChB,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Spinner.js","sources":["../../../src/components/Spinner/Spinner.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst spinnerVariants = cva(\n \"animate-spin rounded-full border-2 border-current border-t-transparent\",\n {\n variants: {\n size: {\n sm: \"h-4 w-4\",\n md: \"h-6 w-6\",\n lg: \"h-8 w-8\",\n xl: \"h-12 w-12\",\n },\n variant: {\n primary: \"text-primary-600 dark:text-primary-400\",\n secondary: \"text-secondary-600 dark:text-secondary-400\",\n white: \"text-white\",\n current: \"text-current\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"primary\",\n },\n }\n);\n\nexport interface SpinnerProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof spinnerVariants> {}\n\nconst Spinner = React.forwardRef<HTMLDivElement, SpinnerProps>(\n ({ className, size, variant, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(spinnerVariants({ size, variant }), className)}\n {...props}\n />\n );\n }\n);\nSpinner.displayName = \"Spinner\";\n\nexport { Spinner, spinnerVariants };"],"names":["_jsx"],"mappings":";;;;;AAIA,MAAM,eAAe,GAAG,GAAG,CACzB,wEAAwE,EACxE;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,WAAW;AAChB,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,wCAAwC;AACjD,YAAA,SAAS,EAAE,4CAA4C;AACvD,YAAA,KAAK,EAAE,YAAY;AACnB,YAAA,OAAO,EAAE,cAAc;AACxB,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,OAAO,EAAE,SAAS;AACnB,KAAA;AACF,CAAA;AAOH,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAC9B,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IAC9C,QACEA,GAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,EAAA,GACxD,KAAK,EAAA,CACT;AAEN,CAAC;AAEH,OAAO,CAAC,WAAW,GAAG,SAAS;;;;"}
|
|
@@ -39,14 +39,14 @@ const StatsCard = React.forwardRef(({ className, variant, color, title, value, t
|
|
|
39
39
|
return "text-white/80";
|
|
40
40
|
switch (direction) {
|
|
41
41
|
case "up":
|
|
42
|
-
return "text-success-600";
|
|
42
|
+
return "text-success-600 dark:text-success-400";
|
|
43
43
|
case "down":
|
|
44
|
-
return "text-danger-600";
|
|
44
|
+
return "text-danger-600 dark:text-danger-400";
|
|
45
45
|
default:
|
|
46
|
-
return "text-gray-600";
|
|
46
|
+
return "text-gray-600 dark:text-gray-400";
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
|
-
return (jsx(Card, { ref: ref, className: cn(statsCardVariants({ variant, color }), className), padding: "none", ...props, children: jsx(CardContent, { className: "p-6", children: jsxs("div", { className: "flex items-center justify-between", children: [jsxs("div", { className: "flex-1", children: [jsx("p", { className: cn("text-sm font-medium", variant === "gradient" ? "text-white/80" : "text-gray-600"), children: title }), jsxs("div", { className: "mt-2", children: [jsx("p", { className: cn("text-3xl font-bold", variant === "gradient" ? "text-white" : "text-gray-900"), children: value }), trend && (jsxs("div", { className: cn("flex items-center gap-1 mt-1 text-sm", getTrendColor(trend.direction)), children: [getTrendIcon(trend.direction), jsx("span", { children: trend.value }), trend.label && (jsx("span", { className: cn(variant === "gradient" ? "text-white/60" : "text-gray-500"), children: trend.label }))] }))] })] }), icon && (jsx("div", { className: cn("p-3 rounded-full", variant === "gradient" ? "bg-white/20" : "bg-gray-100"), children: icon }))] }) }) }));
|
|
49
|
+
return (jsx(Card, { ref: ref, className: cn(statsCardVariants({ variant, color }), className), padding: "none", ...props, children: jsx(CardContent, { className: "p-6", children: jsxs("div", { className: "flex items-center justify-between", children: [jsxs("div", { className: "flex-1", children: [jsx("p", { className: cn("text-sm font-medium", variant === "gradient" ? "text-white/80" : "text-gray-600 dark:text-gray-400"), children: title }), jsxs("div", { className: "mt-2", children: [jsx("p", { className: cn("text-3xl font-bold", variant === "gradient" ? "text-white" : "text-gray-900 dark:text-white"), children: value }), trend && (jsxs("div", { className: cn("flex items-center gap-1 mt-1 text-sm", getTrendColor(trend.direction)), children: [getTrendIcon(trend.direction), jsx("span", { children: trend.value }), trend.label && (jsx("span", { className: cn(variant === "gradient" ? "text-white/60" : "text-gray-500 dark:text-gray-400"), children: trend.label }))] }))] })] }), icon && (jsx("div", { className: cn("p-3 rounded-full", variant === "gradient" ? "bg-white/20" : "bg-gray-100 dark:bg-gray-800"), children: icon }))] }) }) }));
|
|
50
50
|
});
|
|
51
51
|
StatsCard.displayName = "StatsCard";
|
|
52
52
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatsCard.js","sources":["../../../src/components/StatsCard/StatsCard.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { TrendingUp, TrendingDown, Minus } from \"lucide-react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\nimport { Card, CardContent } from \"../Card\";\n\nconst statsCardVariants = cva(\n \"relative overflow-hidden\",\n {\n variants: {\n variant: {\n default: \"\",\n gradient: \"bg-gradient-to-br\",\n },\n color: {\n primary: \"from-primary-500 to-primary-600 text-white\",\n secondary: \"from-secondary-500 to-secondary-600 text-white\",\n success: \"from-success-500 to-success-600 text-white\",\n warning: \"from-warning-500 to-warning-600 text-white\",\n danger: \"from-danger-500 to-danger-600 text-white\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\ntype TrendDirection = \"up\" | \"down\" | \"neutral\";\n\nexport interface StatsCardProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"color\">,\n VariantProps<typeof statsCardVariants> {\n title: string;\n value: string | number;\n trend?: {\n direction: TrendDirection;\n value: string | number;\n label?: string;\n };\n icon?: React.ReactNode;\n}\n\nconst StatsCard = React.forwardRef<HTMLDivElement, StatsCardProps>(\n ({ className, variant, color, title, value, trend, icon, ...props }, ref) => {\n const getTrendIcon = (direction: TrendDirection) => {\n switch (direction) {\n case \"up\":\n return <TrendingUp className=\"h-4 w-4\" />;\n case \"down\":\n return <TrendingDown className=\"h-4 w-4\" />;\n default:\n return <Minus className=\"h-4 w-4\" />;\n }\n };\n\n const getTrendColor = (direction: TrendDirection) => {\n if (variant === \"gradient\") return \"text-white/80\";\n \n switch (direction) {\n case \"up\":\n return \"text-success-600\";\n case \"down\":\n return \"text-danger-600\";\n default:\n return \"text-gray-600\";\n }\n };\n\n return (\n <Card\n ref={ref}\n className={cn(statsCardVariants({ variant, color }), className)}\n padding=\"none\"\n {...props}\n >\n <CardContent className=\"p-6\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex-1\">\n <p className={cn(\n \"text-sm font-medium\",\n variant === \"gradient\" ? \"text-white/80\" : \"text-gray-600\"\n )}>\n {title}\n </p>\n <div className=\"mt-2\">\n <p className={cn(\n \"text-3xl font-bold\",\n variant === \"gradient\" ? \"text-white\" : \"text-gray-900\"\n )}>\n {value}\n </p>\n {trend && (\n <div className={cn(\n \"flex items-center gap-1 mt-1 text-sm\",\n getTrendColor(trend.direction)\n )}>\n {getTrendIcon(trend.direction)}\n <span>{trend.value}</span>\n {trend.label && (\n <span className={cn(\n variant === \"gradient\" ? \"text-white/60\" : \"text-gray-500\"\n )}>\n {trend.label}\n </span>\n )}\n </div>\n )}\n </div>\n </div>\n {icon && (\n <div className={cn(\n \"p-3 rounded-full\",\n variant === \"gradient\" ? \"bg-white/20\" : \"bg-gray-100\"\n )}>\n {icon}\n </div>\n )}\n </div>\n </CardContent>\n </Card>\n );\n }\n);\nStatsCard.displayName = \"StatsCard\";\n\nexport { StatsCard, statsCardVariants };"],"names":["_jsx","_jsxs"],"mappings":";;;;;;;AAMA,MAAM,iBAAiB,GAAG,GAAG,CAC3B,0BAA0B,EAC1B;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,QAAQ,EAAE,mBAAmB;AAC9B,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EAAE,4CAA4C;AACrD,YAAA,SAAS,EAAE,gDAAgD;AAC3D,YAAA,OAAO,EAAE,4CAA4C;AACrD,YAAA,OAAO,EAAE,4CAA4C;AACrD,YAAA,MAAM,EAAE,0CAA0C;AACnD,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,SAAS;AACnB,KAAA;AACF,CAAA;AAkBH,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAChC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AAC1E,IAAA,MAAM,YAAY,GAAG,CAAC,SAAyB,KAAI;QACjD,QAAQ,SAAS;AACf,YAAA,KAAK,IAAI;AACP,gBAAA,OAAOA,IAAC,UAAU,EAAA,EAAC,SAAS,EAAC,SAAS,GAAG;AAC3C,YAAA,KAAK,MAAM;AACT,gBAAA,OAAOA,IAAC,YAAY,EAAA,EAAC,SAAS,EAAC,SAAS,GAAG;AAC7C,YAAA;AACE,gBAAA,OAAOA,IAAC,KAAK,EAAA,EAAC,SAAS,EAAC,SAAS,GAAG;;AAE1C,IAAA,CAAC;AAED,IAAA,MAAM,aAAa,GAAG,CAAC,SAAyB,KAAI;QAClD,IAAI,OAAO,KAAK,UAAU;AAAE,YAAA,OAAO,eAAe;QAElD,QAAQ,SAAS;AACf,YAAA,KAAK,IAAI;AACP,gBAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"StatsCard.js","sources":["../../../src/components/StatsCard/StatsCard.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { TrendingUp, TrendingDown, Minus } from \"lucide-react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\nimport { Card, CardContent } from \"../Card\";\n\nconst statsCardVariants = cva(\n \"relative overflow-hidden\",\n {\n variants: {\n variant: {\n default: \"\",\n gradient: \"bg-gradient-to-br\",\n },\n color: {\n primary: \"from-primary-500 to-primary-600 text-white\",\n secondary: \"from-secondary-500 to-secondary-600 text-white\",\n success: \"from-success-500 to-success-600 text-white\",\n warning: \"from-warning-500 to-warning-600 text-white\",\n danger: \"from-danger-500 to-danger-600 text-white\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\ntype TrendDirection = \"up\" | \"down\" | \"neutral\";\n\nexport interface StatsCardProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"color\">,\n VariantProps<typeof statsCardVariants> {\n title: string;\n value: string | number;\n trend?: {\n direction: TrendDirection;\n value: string | number;\n label?: string;\n };\n icon?: React.ReactNode;\n}\n\nconst StatsCard = React.forwardRef<HTMLDivElement, StatsCardProps>(\n ({ className, variant, color, title, value, trend, icon, ...props }, ref) => {\n const getTrendIcon = (direction: TrendDirection) => {\n switch (direction) {\n case \"up\":\n return <TrendingUp className=\"h-4 w-4\" />;\n case \"down\":\n return <TrendingDown className=\"h-4 w-4\" />;\n default:\n return <Minus className=\"h-4 w-4\" />;\n }\n };\n\n const getTrendColor = (direction: TrendDirection) => {\n if (variant === \"gradient\") return \"text-white/80\";\n \n switch (direction) {\n case \"up\":\n return \"text-success-600 dark:text-success-400\";\n case \"down\":\n return \"text-danger-600 dark:text-danger-400\";\n default:\n return \"text-gray-600 dark:text-gray-400\";\n }\n };\n\n return (\n <Card\n ref={ref}\n className={cn(statsCardVariants({ variant, color }), className)}\n padding=\"none\"\n {...props}\n >\n <CardContent className=\"p-6\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex-1\">\n <p className={cn(\n \"text-sm font-medium\",\n variant === \"gradient\" ? \"text-white/80\" : \"text-gray-600 dark:text-gray-400\"\n )}>\n {title}\n </p>\n <div className=\"mt-2\">\n <p className={cn(\n \"text-3xl font-bold\",\n variant === \"gradient\" ? \"text-white\" : \"text-gray-900 dark:text-white\"\n )}>\n {value}\n </p>\n {trend && (\n <div className={cn(\n \"flex items-center gap-1 mt-1 text-sm\",\n getTrendColor(trend.direction)\n )}>\n {getTrendIcon(trend.direction)}\n <span>{trend.value}</span>\n {trend.label && (\n <span className={cn(\n variant === \"gradient\" ? \"text-white/60\" : \"text-gray-500 dark:text-gray-400\"\n )}>\n {trend.label}\n </span>\n )}\n </div>\n )}\n </div>\n </div>\n {icon && (\n <div className={cn(\n \"p-3 rounded-full\",\n variant === \"gradient\" ? \"bg-white/20\" : \"bg-gray-100 dark:bg-gray-800\"\n )}>\n {icon}\n </div>\n )}\n </div>\n </CardContent>\n </Card>\n );\n }\n);\nStatsCard.displayName = \"StatsCard\";\n\nexport { StatsCard, statsCardVariants };"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import * as React from 'react';
|
|
|
3
3
|
import { cva } from 'class-variance-authority';
|
|
4
4
|
import { cn } from '../../utils/cn.js';
|
|
5
5
|
|
|
6
|
-
const switchVariants = cva("peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 focus-visible:ring-offset-white disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary-600 data-[state=unchecked]:bg-gray-200", {
|
|
6
|
+
const switchVariants = cva("peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-gray-900 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary-600 dark:data-[state=checked]:bg-primary-500 data-[state=unchecked]:bg-gray-200 dark:data-[state=unchecked]:bg-gray-700", {
|
|
7
7
|
variants: {
|
|
8
8
|
size: {
|
|
9
9
|
sm: "h-5 w-9",
|
|
@@ -15,7 +15,7 @@ const switchVariants = cva("peer inline-flex h-6 w-11 shrink-0 cursor-pointer it
|
|
|
15
15
|
size: "md",
|
|
16
16
|
},
|
|
17
17
|
});
|
|
18
|
-
const switchThumbVariants = cva("pointer-events-none block rounded-full bg-white shadow-lg ring-0 transition-transform", {
|
|
18
|
+
const switchThumbVariants = cva("pointer-events-none block rounded-full bg-white dark:bg-gray-100 shadow-lg ring-0 transition-transform", {
|
|
19
19
|
variants: {
|
|
20
20
|
size: {
|
|
21
21
|
sm: "h-4 w-4 data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Switch.js","sources":["../../../src/components/Switch/Switch.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst switchVariants = cva(\n \"peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 focus-visible:ring-offset-white disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary-600 data-[state=unchecked]:bg-gray-200\",\n {\n variants: {\n size: {\n sm: \"h-5 w-9\",\n md: \"h-6 w-11\",\n lg: \"h-7 w-13\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n);\n\nconst switchThumbVariants = cva(\n \"pointer-events-none block rounded-full bg-white shadow-lg ring-0 transition-transform\",\n {\n variants: {\n size: {\n sm: \"h-4 w-4 data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0\",\n md: \"h-5 w-5 data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0\",\n lg: \"h-6 w-6 data-[state=checked]:translate-x-6 data-[state=unchecked]:translate-x-0\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n);\n\nexport interface SwitchProps\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'onChange'>,\n VariantProps<typeof switchVariants> {\n checked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n}\n\nconst Switch = React.forwardRef<HTMLButtonElement, SwitchProps>(\n ({ className, size, checked = false, onCheckedChange, ...props }, ref) => {\n const handleClick = () => {\n onCheckedChange?.(!checked);\n };\n\n return (\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={checked}\n data-state={checked ? \"checked\" : \"unchecked\"}\n className={cn(switchVariants({ size }), className)}\n onClick={handleClick}\n ref={ref}\n {...props}\n >\n <span\n data-state={checked ? \"checked\" : \"unchecked\"}\n className={cn(switchThumbVariants({ size }))}\n />\n </button>\n );\n }\n);\nSwitch.displayName = \"Switch\";\n\nexport { Switch, switchVariants };"],"names":["_jsx"],"mappings":";;;;;AAIA,MAAM,cAAc,GAAG,GAAG,CACxB,
|
|
1
|
+
{"version":3,"file":"Switch.js","sources":["../../../src/components/Switch/Switch.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst switchVariants = cva(\n \"peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-gray-900 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary-600 dark:data-[state=checked]:bg-primary-500 data-[state=unchecked]:bg-gray-200 dark:data-[state=unchecked]:bg-gray-700\",\n {\n variants: {\n size: {\n sm: \"h-5 w-9\",\n md: \"h-6 w-11\",\n lg: \"h-7 w-13\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n);\n\nconst switchThumbVariants = cva(\n \"pointer-events-none block rounded-full bg-white dark:bg-gray-100 shadow-lg ring-0 transition-transform\",\n {\n variants: {\n size: {\n sm: \"h-4 w-4 data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0\",\n md: \"h-5 w-5 data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0\",\n lg: \"h-6 w-6 data-[state=checked]:translate-x-6 data-[state=unchecked]:translate-x-0\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n);\n\nexport interface SwitchProps\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'onChange'>,\n VariantProps<typeof switchVariants> {\n checked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n}\n\nconst Switch = React.forwardRef<HTMLButtonElement, SwitchProps>(\n ({ className, size, checked = false, onCheckedChange, ...props }, ref) => {\n const handleClick = () => {\n onCheckedChange?.(!checked);\n };\n\n return (\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={checked}\n data-state={checked ? \"checked\" : \"unchecked\"}\n className={cn(switchVariants({ size }), className)}\n onClick={handleClick}\n ref={ref}\n {...props}\n >\n <span\n data-state={checked ? \"checked\" : \"unchecked\"}\n className={cn(switchThumbVariants({ size }))}\n />\n </button>\n );\n }\n);\nSwitch.displayName = \"Switch\";\n\nexport { Switch, switchVariants };"],"names":["_jsx"],"mappings":";;;;;AAIA,MAAM,cAAc,GAAG,GAAG,CACxB,0hBAA0hB,EAC1hB;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,EAAE,EAAE,UAAU;AACf,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,IAAI;AACX,KAAA;AACF,CAAA;AAGH,MAAM,mBAAmB,GAAG,GAAG,CAC7B,wGAAwG,EACxG;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,iFAAiF;AACrF,YAAA,EAAE,EAAE,iFAAiF;AACrF,YAAA,EAAE,EAAE,iFAAiF;AACtF,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,IAAI;AACX,KAAA;AACF,CAAA,CACF;AASD,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAC7B,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK,EAAE,eAAe,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IACvE,MAAM,WAAW,GAAG,MAAK;AACvB,QAAA,eAAe,GAAG,CAAC,OAAO,CAAC;AAC7B,IAAA,CAAC;AAED,IAAA,QACEA,GAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,QAAQ,EAAA,cAAA,EACC,OAAO,EAAA,YAAA,EACT,OAAO,GAAG,SAAS,GAAG,WAAW,EAC7C,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,EAClD,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,GAAG,EAAA,GACJ,KAAK,EAAA,QAAA,EAETA,4BACc,OAAO,GAAG,SAAS,GAAG,WAAW,EAC7C,SAAS,EAAE,EAAE,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAA,CAC5C,EAAA,CACK;AAEb,CAAC;AAEH,MAAM,CAAC,WAAW,GAAG,QAAQ;;;;"}
|
|
@@ -3,12 +3,12 @@ import * as React from 'react';
|
|
|
3
3
|
import { cva } from 'class-variance-authority';
|
|
4
4
|
import { cn } from '../../utils/cn.js';
|
|
5
5
|
|
|
6
|
-
const tabsListVariants = cva("inline-flex h-10 items-center justify-center rounded-md bg-gray-100 p-1 text-gray-500", {
|
|
6
|
+
const tabsListVariants = cva("inline-flex h-10 items-center justify-center rounded-md bg-gray-100 dark:bg-gray-800 p-1 text-gray-500 dark:text-gray-400", {
|
|
7
7
|
variants: {
|
|
8
8
|
variant: {
|
|
9
|
-
default: "bg-gray-100",
|
|
9
|
+
default: "bg-gray-100 dark:bg-gray-800",
|
|
10
10
|
pills: "bg-transparent gap-2",
|
|
11
|
-
underline: "bg-transparent border-b border-gray-200",
|
|
11
|
+
underline: "bg-transparent border-b border-gray-200 dark:border-gray-800",
|
|
12
12
|
},
|
|
13
13
|
},
|
|
14
14
|
defaultVariants: {
|
|
@@ -18,9 +18,9 @@ const tabsListVariants = cva("inline-flex h-10 items-center justify-center round
|
|
|
18
18
|
const tabsTriggerVariants = cva("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-white transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", {
|
|
19
19
|
variants: {
|
|
20
20
|
variant: {
|
|
21
|
-
default: "data-[state=active]:bg-white data-[state=active]:text-gray-950 data-[state=active]:shadow-sm",
|
|
22
|
-
pills: "data-[state=active]:bg-primary-100 data-[state=active]:text-primary-700 hover:bg-gray-100",
|
|
23
|
-
underline: "data-[state=active]:border-b-2 data-[state=active]:border-primary-600 data-[state=active]:text-primary-600 hover:text-gray-900 rounded-none border-b-2 border-transparent",
|
|
21
|
+
default: "data-[state=active]:bg-white dark:data-[state=active]:bg-gray-700 data-[state=active]:text-gray-950 dark:data-[state=active]:text-white data-[state=active]:shadow-sm",
|
|
22
|
+
pills: "data-[state=active]:bg-primary-100 dark:data-[state=active]:bg-primary-900/30 data-[state=active]:text-primary-700 dark:data-[state=active]:text-primary-400 hover:bg-gray-100 dark:hover:bg-gray-800",
|
|
23
|
+
underline: "data-[state=active]:border-b-2 data-[state=active]:border-primary-600 dark:data-[state=active]:border-primary-500 data-[state=active]:text-primary-600 dark:data-[state=active]:text-primary-400 hover:text-gray-900 dark:hover:text-gray-100 rounded-none border-b-2 border-transparent",
|
|
24
24
|
},
|
|
25
25
|
},
|
|
26
26
|
defaultVariants: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.js","sources":["../../../src/components/Tabs/Tabs.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst tabsListVariants = cva(\n \"inline-flex h-10 items-center justify-center rounded-md bg-gray-100 p-1 text-gray-500\",\n {\n variants: {\n variant: {\n default: \"bg-gray-100\",\n pills: \"bg-transparent gap-2\",\n underline: \"bg-transparent border-b border-gray-200\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nconst tabsTriggerVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-white transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"data-[state=active]:bg-white data-[state=active]:text-gray-950 data-[state=active]:shadow-sm\",\n pills: \"data-[state=active]:bg-primary-100 data-[state=active]:text-primary-700 hover:bg-gray-100\",\n underline: \"data-[state=active]:border-b-2 data-[state=active]:border-primary-600 data-[state=active]:text-primary-600 hover:text-gray-900 rounded-none border-b-2 border-transparent\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\ninterface TabsContextValue {\n value: string;\n onValueChange: (value: string) => void;\n variant?: VariantProps<typeof tabsListVariants>[\"variant\"];\n}\n\nconst TabsContext = React.createContext<TabsContextValue | undefined>(undefined);\n\ninterface TabsProps extends VariantProps<typeof tabsListVariants> {\n value: string;\n onValueChange: (value: string) => void;\n children: React.ReactNode;\n className?: string;\n}\n\nconst Tabs: React.FC<TabsProps> = ({ value, onValueChange, variant, children, className }) => {\n return (\n <TabsContext.Provider value={{ value, onValueChange, variant }}>\n <div className={cn(\"w-full\", className)}>{children}</div>\n </TabsContext.Provider>\n );\n};\n\nconst TabsList = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const context = React.useContext(TabsContext);\n if (!context) throw new Error(\"TabsList must be used within Tabs\");\n\n return (\n <div\n ref={ref}\n className={cn(tabsListVariants({ variant: context.variant }), className)}\n {...props}\n />\n );\n});\nTabsList.displayName = \"TabsList\";\n\ninterface TabsTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n value: string;\n}\n\nconst TabsTrigger = React.forwardRef<HTMLButtonElement, TabsTriggerProps>(\n ({ className, value, ...props }, ref) => {\n const context = React.useContext(TabsContext);\n if (!context) throw new Error(\"TabsTrigger must be used within Tabs\");\n\n const isActive = context.value === value;\n\n return (\n <button\n ref={ref}\n className={cn(\n tabsTriggerVariants({ variant: context.variant }),\n className\n )}\n data-state={isActive ? \"active\" : \"inactive\"}\n onClick={() => context.onValueChange(value)}\n {...props}\n />\n );\n }\n);\nTabsTrigger.displayName = \"TabsTrigger\";\n\ninterface TabsContentProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string;\n}\n\nconst TabsContent = React.forwardRef<HTMLDivElement, TabsContentProps>(\n ({ className, value, ...props }, ref) => {\n const context = React.useContext(TabsContext);\n if (!context) throw new Error(\"TabsContent must be used within Tabs\");\n\n if (context.value !== value) return null;\n\n return (\n <div\n ref={ref}\n className={cn(\n \"mt-2 ring-offset-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n );\n }\n);\nTabsContent.displayName = \"TabsContent\";\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants, tabsTriggerVariants };"],"names":["_jsx"],"mappings":";;;;;AAIA,MAAM,gBAAgB,GAAG,GAAG,CAC1B,
|
|
1
|
+
{"version":3,"file":"Tabs.js","sources":["../../../src/components/Tabs/Tabs.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst tabsListVariants = cva(\n \"inline-flex h-10 items-center justify-center rounded-md bg-gray-100 dark:bg-gray-800 p-1 text-gray-500 dark:text-gray-400\",\n {\n variants: {\n variant: {\n default: \"bg-gray-100 dark:bg-gray-800\",\n pills: \"bg-transparent gap-2\",\n underline: \"bg-transparent border-b border-gray-200 dark:border-gray-800\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nconst tabsTriggerVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-white transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"data-[state=active]:bg-white dark:data-[state=active]:bg-gray-700 data-[state=active]:text-gray-950 dark:data-[state=active]:text-white data-[state=active]:shadow-sm\",\n pills: \"data-[state=active]:bg-primary-100 dark:data-[state=active]:bg-primary-900/30 data-[state=active]:text-primary-700 dark:data-[state=active]:text-primary-400 hover:bg-gray-100 dark:hover:bg-gray-800\",\n underline: \"data-[state=active]:border-b-2 data-[state=active]:border-primary-600 dark:data-[state=active]:border-primary-500 data-[state=active]:text-primary-600 dark:data-[state=active]:text-primary-400 hover:text-gray-900 dark:hover:text-gray-100 rounded-none border-b-2 border-transparent\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\ninterface TabsContextValue {\n value: string;\n onValueChange: (value: string) => void;\n variant?: VariantProps<typeof tabsListVariants>[\"variant\"];\n}\n\nconst TabsContext = React.createContext<TabsContextValue | undefined>(undefined);\n\ninterface TabsProps extends VariantProps<typeof tabsListVariants> {\n value: string;\n onValueChange: (value: string) => void;\n children: React.ReactNode;\n className?: string;\n}\n\nconst Tabs: React.FC<TabsProps> = ({ value, onValueChange, variant, children, className }) => {\n return (\n <TabsContext.Provider value={{ value, onValueChange, variant }}>\n <div className={cn(\"w-full\", className)}>{children}</div>\n </TabsContext.Provider>\n );\n};\n\nconst TabsList = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const context = React.useContext(TabsContext);\n if (!context) throw new Error(\"TabsList must be used within Tabs\");\n\n return (\n <div\n ref={ref}\n className={cn(tabsListVariants({ variant: context.variant }), className)}\n {...props}\n />\n );\n});\nTabsList.displayName = \"TabsList\";\n\ninterface TabsTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n value: string;\n}\n\nconst TabsTrigger = React.forwardRef<HTMLButtonElement, TabsTriggerProps>(\n ({ className, value, ...props }, ref) => {\n const context = React.useContext(TabsContext);\n if (!context) throw new Error(\"TabsTrigger must be used within Tabs\");\n\n const isActive = context.value === value;\n\n return (\n <button\n ref={ref}\n className={cn(\n tabsTriggerVariants({ variant: context.variant }),\n className\n )}\n data-state={isActive ? \"active\" : \"inactive\"}\n onClick={() => context.onValueChange(value)}\n {...props}\n />\n );\n }\n);\nTabsTrigger.displayName = \"TabsTrigger\";\n\ninterface TabsContentProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string;\n}\n\nconst TabsContent = React.forwardRef<HTMLDivElement, TabsContentProps>(\n ({ className, value, ...props }, ref) => {\n const context = React.useContext(TabsContext);\n if (!context) throw new Error(\"TabsContent must be used within Tabs\");\n\n if (context.value !== value) return null;\n\n return (\n <div\n ref={ref}\n className={cn(\n \"mt-2 ring-offset-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n );\n }\n);\nTabsContent.displayName = \"TabsContent\";\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants, tabsTriggerVariants };"],"names":["_jsx"],"mappings":"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"}
|
|
@@ -3,12 +3,12 @@ import * as React from 'react';
|
|
|
3
3
|
import { cva } from 'class-variance-authority';
|
|
4
4
|
import { cn } from '../../utils/cn.js';
|
|
5
5
|
|
|
6
|
-
const textareaVariants = cva("flex min-h-[80px] w-full rounded-md border bg-white px-3 py-2 text-sm ring-offset-white placeholder:text-gray-500 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50", {
|
|
6
|
+
const textareaVariants = cva("flex min-h-[80px] w-full rounded-md border bg-white dark:bg-gray-900 dark:text-white px-3 py-2 text-sm ring-offset-white dark:ring-offset-gray-900 placeholder:text-gray-500 dark:placeholder:text-gray-400 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50", {
|
|
7
7
|
variants: {
|
|
8
8
|
variant: {
|
|
9
|
-
default: "border-gray-300",
|
|
10
|
-
error: "border-danger-500 focus-visible:ring-danger-500",
|
|
11
|
-
success: "border-success-500 focus-visible:ring-success-500",
|
|
9
|
+
default: "border-gray-300 dark:border-gray-700",
|
|
10
|
+
error: "border-danger-500 dark:border-danger-500 focus-visible:ring-danger-500",
|
|
11
|
+
success: "border-success-500 dark:border-success-500 focus-visible:ring-success-500",
|
|
12
12
|
},
|
|
13
13
|
},
|
|
14
14
|
defaultVariants: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Textarea.js","sources":["../../../src/components/Textarea/Textarea.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst textareaVariants = cva(\n \"flex min-h-[80px] w-full rounded-md border bg-white px-3 py-2 text-sm ring-offset-white placeholder:text-gray-500 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"border-gray-300\",\n error: \"border-danger-500 focus-visible:ring-danger-500\",\n success: \"border-success-500 focus-visible:ring-success-500\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n VariantProps<typeof textareaVariants> {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, variant, ...props }, ref) => {\n return (\n <textarea\n className={cn(textareaVariants({ variant, className }))}\n ref={ref}\n {...props}\n />\n );\n }\n);\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea, textareaVariants };"],"names":["_jsx"],"mappings":";;;;;AAIA,MAAM,gBAAgB,GAAG,GAAG,CAC1B,
|
|
1
|
+
{"version":3,"file":"Textarea.js","sources":["../../../src/components/Textarea/Textarea.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst textareaVariants = cva(\n \"flex min-h-[80px] w-full rounded-md border bg-white dark:bg-gray-900 dark:text-white px-3 py-2 text-sm ring-offset-white dark:ring-offset-gray-900 placeholder:text-gray-500 dark:placeholder:text-gray-400 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"border-gray-300 dark:border-gray-700\",\n error: \"border-danger-500 dark:border-danger-500 focus-visible:ring-danger-500\",\n success: \"border-success-500 dark:border-success-500 focus-visible:ring-success-500\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n VariantProps<typeof textareaVariants> {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, variant, ...props }, ref) => {\n return (\n <textarea\n className={cn(textareaVariants({ variant, className }))}\n ref={ref}\n {...props}\n />\n );\n }\n);\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea, textareaVariants };"],"names":["_jsx"],"mappings":";;;;;AAIA,MAAM,gBAAgB,GAAG,GAAG,CAC1B,4YAA4Y,EAC5Y;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,sCAAsC;AAC/C,YAAA,KAAK,EAAE,wEAAwE;AAC/E,YAAA,OAAO,EAAE,2EAA2E;AACrF,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,SAAS;AACnB,KAAA;AACF,CAAA;AAOH,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAC/B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IACxC,QACEA,kBACE,SAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,EACvD,GAAG,EAAE,GAAG,EAAA,GACJ,KAAK,EAAA,CACT;AAEN,CAAC;AAEH,QAAQ,CAAC,WAAW,GAAG,UAAU;;;;"}
|
|
@@ -7,11 +7,11 @@ import { cn } from '../../utils/cn.js';
|
|
|
7
7
|
const toastVariants = cva("flex items-center gap-2 p-4 rounded-lg shadow-lg border max-w-md", {
|
|
8
8
|
variants: {
|
|
9
9
|
variant: {
|
|
10
|
-
default: "bg-white border-gray-200 text-gray-900",
|
|
11
|
-
success: "bg-success-50 border-success-200 text-success-800",
|
|
12
|
-
error: "bg-danger-50 border-danger-200 text-danger-800",
|
|
13
|
-
warning: "bg-warning-50 border-warning-200 text-warning-800",
|
|
14
|
-
info: "bg-primary-50 border-primary-200 text-primary-800",
|
|
10
|
+
default: "bg-white dark:bg-gray-900 border-gray-200 dark:border-gray-800 text-gray-900 dark:text-white",
|
|
11
|
+
success: "bg-success-50 dark:bg-success-900/30 border-success-200 dark:border-success-800 text-success-800 dark:text-success-400",
|
|
12
|
+
error: "bg-danger-50 dark:bg-danger-900/30 border-danger-200 dark:border-danger-800 text-danger-800 dark:text-danger-400",
|
|
13
|
+
warning: "bg-warning-50 dark:bg-warning-900/30 border-warning-200 dark:border-warning-800 text-warning-800 dark:text-warning-400",
|
|
14
|
+
info: "bg-primary-50 dark:bg-primary-900/30 border-primary-200 dark:border-primary-800 text-primary-800 dark:text-primary-400",
|
|
15
15
|
},
|
|
16
16
|
},
|
|
17
17
|
defaultVariants: {
|
|
@@ -64,7 +64,7 @@ const Toast = () => {
|
|
|
64
64
|
variant: t.type === "success" ? "success" :
|
|
65
65
|
t.type === "error" ? "error" : "default"
|
|
66
66
|
})), children: [getIcon(t.type === "success" ? "success" :
|
|
67
|
-
t.type === "error" ? "error" : "default") || icon, jsx("div", { className: "flex-1 text-sm font-medium", children: message }), jsx("button", { onClick: () => toast.dismiss(t.id), className: "inline-flex h-5 w-5 items-center justify-center rounded-full hover:bg-black/10", children: jsx(X, { className: "h-3 w-3" }) })] })) })) }));
|
|
67
|
+
t.type === "error" ? "error" : "default") || icon, jsx("div", { className: "flex-1 text-sm font-medium", children: message }), jsx("button", { onClick: () => toast.dismiss(t.id), className: "inline-flex h-5 w-5 items-center justify-center rounded-full hover:bg-black/10 dark:hover:bg-white/10 transition-colors", children: jsx(X, { className: "h-3 w-3" }) })] })) })) }));
|
|
68
68
|
};
|
|
69
69
|
|
|
70
70
|
export { Toast, showToast, toastVariants };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.js","sources":["../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import * as React from \"react\";\nimport toast, { Toaster, ToastBar } from \"react-hot-toast\";\nimport { X, CheckCircle, AlertCircle, Info, AlertTriangle } from \"lucide-react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst toastVariants = cva(\n \"flex items-center gap-2 p-4 rounded-lg shadow-lg border max-w-md\",\n {\n variants: {\n variant: {\n default: \"bg-white border-gray-200 text-gray-900\",\n success: \"bg-success-50 border-success-200 text-success-800\",\n error: \"bg-danger-50 border-danger-200 text-danger-800\",\n warning: \"bg-warning-50 border-warning-200 text-warning-800\",\n info: \"bg-primary-50 border-primary-200 text-primary-800\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\ninterface ToastOptions {\n variant?: VariantProps<typeof toastVariants>[\"variant\"];\n duration?: number;\n}\n\nconst getIcon = (variant: string) => {\n switch (variant) {\n case \"success\":\n return <CheckCircle className=\"h-5 w-5 text-success-600\" />;\n case \"error\":\n return <AlertCircle className=\"h-5 w-5 text-danger-600\" />;\n case \"warning\":\n return <AlertTriangle className=\"h-5 w-5 text-warning-600\" />;\n case \"info\":\n return <Info className=\"h-5 w-5 text-primary-600\" />;\n default:\n return null;\n }\n};\n\nconst showToast = {\n success: (message: string, options?: ToastOptions) =>\n toast.success(message, {\n duration: options?.duration || 4000,\n }),\n error: (message: string, options?: ToastOptions) =>\n toast.error(message, {\n duration: options?.duration || 5000,\n }),\n warning: (message: string, options?: ToastOptions) =>\n toast(message, {\n icon: \"⚠️\",\n duration: options?.duration || 4000,\n }),\n info: (message: string, options?: ToastOptions) =>\n toast(message, {\n icon: \"ℹ️\",\n duration: options?.duration || 4000,\n }),\n default: (message: string, options?: ToastOptions) =>\n toast(message, {\n duration: options?.duration || 4000,\n }),\n};\n\nconst Toast: React.FC = () => {\n return (\n <Toaster\n position=\"top-right\"\n toastOptions={{\n duration: 4000,\n className: \"\",\n style: {\n background: \"transparent\",\n boxShadow: \"none\",\n padding: 0,\n },\n }}\n >\n {(t) => (\n <ToastBar toast={t}>\n {({ icon, message }) => (\n <div\n className={cn(\n toastVariants({\n variant: t.type === \"success\" ? \"success\" : \n t.type === \"error\" ? \"error\" : \"default\"\n })\n )}\n >\n {getIcon(t.type === \"success\" ? \"success\" : \n t.type === \"error\" ? \"error\" : \"default\") || icon}\n <div className=\"flex-1 text-sm font-medium\">{message}</div>\n <button\n onClick={() => toast.dismiss(t.id)}\n className=\"inline-flex h-5 w-5 items-center justify-center rounded-full hover:bg-black/10\"\n >\n <X className=\"h-3 w-3\" />\n </button>\n </div>\n )}\n </ToastBar>\n )}\n </Toaster>\n );\n};\n\nexport { Toast, showToast, toastVariants };"],"names":["_jsx","_jsxs"],"mappings":";;;;;;AAMA,MAAM,aAAa,GAAG,GAAG,CACvB,kEAAkE,EAClE;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Toast.js","sources":["../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import * as React from \"react\";\nimport toast, { Toaster, ToastBar } from \"react-hot-toast\";\nimport { X, CheckCircle, AlertCircle, Info, AlertTriangle } from \"lucide-react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst toastVariants = cva(\n \"flex items-center gap-2 p-4 rounded-lg shadow-lg border max-w-md\",\n {\n variants: {\n variant: {\n default: \"bg-white dark:bg-gray-900 border-gray-200 dark:border-gray-800 text-gray-900 dark:text-white\",\n success: \"bg-success-50 dark:bg-success-900/30 border-success-200 dark:border-success-800 text-success-800 dark:text-success-400\",\n error: \"bg-danger-50 dark:bg-danger-900/30 border-danger-200 dark:border-danger-800 text-danger-800 dark:text-danger-400\",\n warning: \"bg-warning-50 dark:bg-warning-900/30 border-warning-200 dark:border-warning-800 text-warning-800 dark:text-warning-400\",\n info: \"bg-primary-50 dark:bg-primary-900/30 border-primary-200 dark:border-primary-800 text-primary-800 dark:text-primary-400\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\ninterface ToastOptions {\n variant?: VariantProps<typeof toastVariants>[\"variant\"];\n duration?: number;\n}\n\nconst getIcon = (variant: string) => {\n switch (variant) {\n case \"success\":\n return <CheckCircle className=\"h-5 w-5 text-success-600\" />;\n case \"error\":\n return <AlertCircle className=\"h-5 w-5 text-danger-600\" />;\n case \"warning\":\n return <AlertTriangle className=\"h-5 w-5 text-warning-600\" />;\n case \"info\":\n return <Info className=\"h-5 w-5 text-primary-600\" />;\n default:\n return null;\n }\n};\n\nconst showToast = {\n success: (message: string, options?: ToastOptions) =>\n toast.success(message, {\n duration: options?.duration || 4000,\n }),\n error: (message: string, options?: ToastOptions) =>\n toast.error(message, {\n duration: options?.duration || 5000,\n }),\n warning: (message: string, options?: ToastOptions) =>\n toast(message, {\n icon: \"⚠️\",\n duration: options?.duration || 4000,\n }),\n info: (message: string, options?: ToastOptions) =>\n toast(message, {\n icon: \"ℹ️\",\n duration: options?.duration || 4000,\n }),\n default: (message: string, options?: ToastOptions) =>\n toast(message, {\n duration: options?.duration || 4000,\n }),\n};\n\nconst Toast: React.FC = () => {\n return (\n <Toaster\n position=\"top-right\"\n toastOptions={{\n duration: 4000,\n className: \"\",\n style: {\n background: \"transparent\",\n boxShadow: \"none\",\n padding: 0,\n },\n }}\n >\n {(t) => (\n <ToastBar toast={t}>\n {({ icon, message }) => (\n <div\n className={cn(\n toastVariants({\n variant: t.type === \"success\" ? \"success\" : \n t.type === \"error\" ? \"error\" : \"default\"\n })\n )}\n >\n {getIcon(t.type === \"success\" ? \"success\" : \n t.type === \"error\" ? \"error\" : \"default\") || icon}\n <div className=\"flex-1 text-sm font-medium\">{message}</div>\n <button\n onClick={() => toast.dismiss(t.id)}\n className=\"inline-flex h-5 w-5 items-center justify-center rounded-full hover:bg-black/10 dark:hover:bg-white/10 transition-colors\"\n >\n <X className=\"h-3 w-3\" />\n </button>\n </div>\n )}\n </ToastBar>\n )}\n </Toaster>\n );\n};\n\nexport { Toast, showToast, toastVariants };"],"names":["_jsx","_jsxs"],"mappings":"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"}
|