@beyondcorp/beyond-ui 1.1.45 → 1.1.49

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.
@@ -1,6 +1,6 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { useState, useMemo } from 'react';
3
- import { PageLayout, PageHeader, PageLayoutContent, PageFooter } from '../PageLayout/PageLayout.js';
3
+ import { PageLayout, PageHeader, PageLayoutContent } from '../PageLayout/PageLayout.js';
4
4
  import '../Button/Button.js';
5
5
  import '../Card/Card.js';
6
6
  import '../Badge/Badge.js';
@@ -46,14 +46,14 @@ const AllProductsView = ({ products, onProductClick, onAddToCart, onWishlist, on
46
46
  products.forEach((p) => p.colors?.forEach((c) => colorSet.add(c)));
47
47
  return Array.from(colorSet);
48
48
  }, [products]);
49
- return (jsxs(PageLayout, { variant: "centered", maxWidth: "xl", className: cn(className), children: [jsx(PageHeader, { children: jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: jsxs("div", { className: "flex items-center justify-between h-16", children: [jsx("span", { className: "font-bold text-xl", children: "Marketplace" }), jsxs("div", { className: "flex items-center space-x-4", children: [enableSearch && (jsx(Input, { placeholder: "Search products...", value: search, onChange: (e) => setSearch(e.target.value), className: "w-64" })), enableFilter && (jsx(Select, { value: filter, onChange: e => setFilter(e.target.value), options: [
50
- { value: 'all', label: 'All Colors' },
51
- ...allColors.map((c) => ({ value: c, label: c })),
52
- ], className: "w-32" })), enableSort && (jsx(Select, { value: sort, onChange: e => setSort(e.target.value), options: [
53
- { value: 'featured', label: 'Featured' },
54
- { value: 'price-asc', label: 'Price: Low to High' },
55
- { value: 'price-desc', label: 'Price: High to Low' },
56
- ], className: "w-40" }))] })] }) }) }), jsx(PageLayoutContent, { layout: "centered", spacing: "lg", children: jsx("div", { className: cn('grid gap-8', isMobile ? 'grid-cols-1' : 'grid-cols-2 md:grid-cols-3 lg:grid-cols-4'), children: filteredProducts.length === 0 ? (jsx("div", { className: "col-span-full text-center text-gray-500 py-12", children: "No products found." })) : (filteredProducts.map((product) => (jsx(ProductCard, { product: product, onClick: () => onProductClick && onProductClick(product.id), onAddToCart: () => onAddToCart && onAddToCart(product.id), onWishlist: () => onWishlist && onWishlist(product.id), onShare: () => onShare && onShare(product.id) }, product.id)))) }) }), jsx(PageFooter, { variant: "simple", children: jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center", children: jsx("p", { className: "text-gray-600", children: "\u00A9 2024 Marketplace. All rights reserved." }) }) })] }));
49
+ return (jsxs(PageLayout, { variant: "centered", maxWidth: "xl", className: cn(className), children: [jsx(PageHeader, { children: jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: jsx("div", { className: "flex items-center justify-between h-16", children: jsxs("div", { className: "flex items-center space-x-4", children: [enableSearch && (jsx(Input, { placeholder: "Search products...", value: search, onChange: (e) => setSearch(e.target.value), className: "w-64" })), enableFilter && (jsx(Select, { value: filter, onChange: e => setFilter(e.target.value), options: [
50
+ { value: 'all', label: 'All Colors' },
51
+ ...allColors.map((c) => ({ value: c, label: c })),
52
+ ], className: "w-32" })), enableSort && (jsx(Select, { value: sort, onChange: e => setSort(e.target.value), options: [
53
+ { value: 'featured', label: 'Featured' },
54
+ { value: 'price-asc', label: 'Price: Low to High' },
55
+ { value: 'price-desc', label: 'Price: High to Low' },
56
+ ], className: "w-40" }))] }) }) }) }), jsx(PageLayoutContent, { layout: "centered", spacing: "lg", children: jsx("div", { className: cn('grid gap-8', isMobile ? 'grid-cols-1' : 'grid-cols-2 md:grid-cols-3 lg:grid-cols-4'), children: filteredProducts.length === 0 ? (jsx("div", { className: "col-span-full text-center text-gray-500 py-12", children: "No products found." })) : (filteredProducts.map((product) => (jsx(ProductCard, { product: product, onClick: () => onProductClick && onProductClick(product.id), onAddToCart: () => onAddToCart && onAddToCart(product.id), onWishlist: () => onWishlist && onWishlist(product.id), onShare: () => onShare && onShare(product.id) }, product.id)))) }) })] }));
57
57
  };
58
58
 
59
59
  export { AllProductsView };
@@ -1 +1 @@
1
- {"version":3,"file":"AllProductsView.js","sources":["../../../src/components/AllProductsView/AllProductsView.tsx"],"sourcesContent":["import React, { useState, useMemo } from 'react';\r\nimport { PageLayout, PageHeader, PageLayoutContent, PageFooter } from '../PageLayout';\r\nimport { Input } from '../Input';\r\nimport { Select } from '../Select';\r\nimport { useDebounce } from '../../hooks/useDebounce';\r\nimport { useBreakpoint } from '../../hooks/useBreakpoint';\r\nimport { cn } from '../../utils/cn';\r\nimport { ProductData } from '../SingleProductView/SingleProductView';\r\nimport { ProductCard } from './ProductCard';\r\n\r\nexport interface AllProductsViewProps {\r\n products: ProductData[];\r\n onProductClick?: (productId: string) => void;\r\n onAddToCart?: (productId: string) => void;\r\n onWishlist?: (productId: string) => void;\r\n onShare?: (productId: string) => void;\r\n enableSearch?: boolean;\r\n enableFilter?: boolean;\r\n enableSort?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport const AllProductsView: React.FC<AllProductsViewProps> = ({\r\n products,\r\n onProductClick,\r\n onAddToCart,\r\n onWishlist,\r\n onShare,\r\n enableSearch = true,\r\n enableFilter = true,\r\n enableSort = true,\r\n className,\r\n}) => {\r\n const [search, setSearch] = useState('');\r\n const debouncedSearch = useDebounce(search, 300);\r\n const [sort, setSort] = useState('featured');\r\n const [filter, setFilter] = useState('all');\r\n const { currentBreakpoint, isBelow } = useBreakpoint();\r\n const isMobile = isBelow('md');\r\n\r\n // Filter and sort products\r\n const filteredProducts = useMemo(() => {\r\n let result = products;\r\n if (debouncedSearch) {\r\n result = result.filter((p) =>\r\n p.name.toLowerCase().includes(debouncedSearch.toLowerCase())\r\n );\r\n }\r\n if (filter !== 'all') {\r\n result = result.filter((p) =>\r\n p.colors?.includes(filter)\r\n );\r\n }\r\n if (sort === 'price-asc') {\r\n result = [...result].sort((a, b) => a.price - b.price);\r\n } else if (sort === 'price-desc') {\r\n result = [...result].sort((a, b) => b.price - a.price);\r\n }\r\n // Default: featured (no sort)\r\n return result;\r\n }, [products, debouncedSearch, filter, sort]);\r\n\r\n // Collect all colors for filter options\r\n const allColors = useMemo(() => {\r\n const colorSet = new Set<string>();\r\n products.forEach((p) => p.colors?.forEach((c) => colorSet.add(c)));\r\n return Array.from(colorSet);\r\n }, [products]);\r\n\r\n return (\r\n <PageLayout variant=\"centered\" maxWidth=\"xl\" className={cn(className)}>\r\n <PageHeader>\r\n <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8\">\r\n <div className=\"flex items-center justify-between h-16\">\r\n <span className=\"font-bold text-xl\">Marketplace</span>\r\n <div className=\"flex items-center space-x-4\">\r\n {enableSearch && (\r\n <Input\r\n placeholder=\"Search products...\"\r\n value={search}\r\n onChange={(e) => setSearch(e.target.value)}\r\n className=\"w-64\"\r\n />\r\n )}\r\n {enableFilter && (\r\n <Select\r\n value={filter}\r\n onChange={e => setFilter(e.target.value)}\r\n options={[\r\n { value: 'all', label: 'All Colors' },\r\n ...allColors.map((c) => ({ value: c, label: c })),\r\n ]}\r\n className=\"w-32\"\r\n />\r\n )}\r\n {enableSort && (\r\n <Select\r\n value={sort}\r\n onChange={e => setSort(e.target.value)}\r\n options={[\r\n { value: 'featured', label: 'Featured' },\r\n { value: 'price-asc', label: 'Price: Low to High' },\r\n { value: 'price-desc', label: 'Price: High to Low' },\r\n ]}\r\n className=\"w-40\"\r\n />\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n </PageHeader>\r\n\r\n <PageLayoutContent layout=\"centered\" spacing=\"lg\">\r\n <div\r\n className={cn(\r\n 'grid gap-8',\r\n isMobile ? 'grid-cols-1' : 'grid-cols-2 md:grid-cols-3 lg:grid-cols-4'\r\n )}\r\n >\r\n {filteredProducts.length === 0 ? (\r\n <div className=\"col-span-full text-center text-gray-500 py-12\">\r\n No products found.\r\n </div>\r\n ) : (\r\n filteredProducts.map((product) => (\r\n <ProductCard\r\n key={product.id}\r\n product={product}\r\n onClick={() => onProductClick && onProductClick(product.id)}\r\n onAddToCart={() => onAddToCart && onAddToCart(product.id)}\r\n onWishlist={() => onWishlist && onWishlist(product.id)}\r\n onShare={() => onShare && onShare(product.id)}\r\n />\r\n ))\r\n )}\r\n </div>\r\n </PageLayoutContent>\r\n\r\n <PageFooter variant=\"simple\">\r\n <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center\">\r\n <p className=\"text-gray-600\">&copy; 2024 Marketplace. All rights reserved.</p>\r\n </div>\r\n </PageFooter>\r\n </PageLayout>\r\n );\r\n};"],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"AllProductsView.js","sources":["../../../src/components/AllProductsView/AllProductsView.tsx"],"sourcesContent":["import React, { useState, useMemo } from 'react';\r\nimport { PageLayout, PageHeader, PageLayoutContent } from '../PageLayout';\r\nimport { Input } from '../Input';\r\nimport { Select } from '../Select';\r\nimport { useDebounce } from '../../hooks/useDebounce';\r\nimport { useBreakpoint } from '../../hooks/useBreakpoint';\r\nimport { cn } from '../../utils/cn';\r\nimport { ProductData } from '../SingleProductView/SingleProductView';\r\nimport { ProductCard } from './ProductCard';\r\n\r\nexport interface AllProductsViewProps {\r\n products: ProductData[];\r\n onProductClick?: (productId: string) => void;\r\n onAddToCart?: (productId: string) => void;\r\n onWishlist?: (productId: string) => void;\r\n onShare?: (productId: string) => void;\r\n enableSearch?: boolean;\r\n enableFilter?: boolean;\r\n enableSort?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport const AllProductsView: React.FC<AllProductsViewProps> = ({\r\n products,\r\n onProductClick,\r\n onAddToCart,\r\n onWishlist,\r\n onShare,\r\n enableSearch = true,\r\n enableFilter = true,\r\n enableSort = true,\r\n className,\r\n}) => {\r\n const [search, setSearch] = useState('');\r\n const debouncedSearch = useDebounce(search, 300);\r\n const [sort, setSort] = useState('featured');\r\n const [filter, setFilter] = useState('all');\r\n const { currentBreakpoint, isBelow } = useBreakpoint();\r\n const isMobile = isBelow('md');\r\n\r\n // Filter and sort products\r\n const filteredProducts = useMemo(() => {\r\n let result = products;\r\n if (debouncedSearch) {\r\n result = result.filter((p) =>\r\n p.name.toLowerCase().includes(debouncedSearch.toLowerCase())\r\n );\r\n }\r\n if (filter !== 'all') {\r\n result = result.filter((p) =>\r\n p.colors?.includes(filter)\r\n );\r\n }\r\n if (sort === 'price-asc') {\r\n result = [...result].sort((a, b) => a.price - b.price);\r\n } else if (sort === 'price-desc') {\r\n result = [...result].sort((a, b) => b.price - a.price);\r\n }\r\n // Default: featured (no sort)\r\n return result;\r\n }, [products, debouncedSearch, filter, sort]);\r\n\r\n // Collect all colors for filter options\r\n const allColors = useMemo(() => {\r\n const colorSet = new Set<string>();\r\n products.forEach((p) => p.colors?.forEach((c) => colorSet.add(c)));\r\n return Array.from(colorSet);\r\n }, [products]);\r\n\r\n return (\r\n <PageLayout variant=\"centered\" maxWidth=\"xl\" className={cn(className)}>\r\n <PageHeader>\r\n <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8\">\r\n <div className=\"flex items-center justify-between h-16\">\r\n {/* <span className=\"font-bold text-xl\">Marketplace</span> */}\r\n <div className=\"flex items-center space-x-4\">\r\n {enableSearch && (\r\n <Input\r\n placeholder=\"Search products...\"\r\n value={search}\r\n onChange={(e) => setSearch(e.target.value)}\r\n className=\"w-64\"\r\n />\r\n )}\r\n {enableFilter && (\r\n <Select\r\n value={filter}\r\n onChange={e => setFilter(e.target.value)}\r\n options={[\r\n { value: 'all', label: 'All Colors' },\r\n ...allColors.map((c) => ({ value: c, label: c })),\r\n ]}\r\n className=\"w-32\"\r\n />\r\n )}\r\n {enableSort && (\r\n <Select\r\n value={sort}\r\n onChange={e => setSort(e.target.value)}\r\n options={[\r\n { value: 'featured', label: 'Featured' },\r\n { value: 'price-asc', label: 'Price: Low to High' },\r\n { value: 'price-desc', label: 'Price: High to Low' },\r\n ]}\r\n className=\"w-40\"\r\n />\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n </PageHeader>\r\n\r\n <PageLayoutContent layout=\"centered\" spacing=\"lg\">\r\n <div\r\n className={cn(\r\n 'grid gap-8',\r\n isMobile ? 'grid-cols-1' : 'grid-cols-2 md:grid-cols-3 lg:grid-cols-4'\r\n )}\r\n >\r\n {filteredProducts.length === 0 ? (\r\n <div className=\"col-span-full text-center text-gray-500 py-12\">\r\n No products found.\r\n </div>\r\n ) : (\r\n filteredProducts.map((product) => (\r\n <ProductCard\r\n key={product.id}\r\n product={product}\r\n onClick={() => onProductClick && onProductClick(product.id)}\r\n onAddToCart={() => onAddToCart && onAddToCart(product.id)}\r\n onWishlist={() => onWishlist && onWishlist(product.id)}\r\n onShare={() => onShare && onShare(product.id)}\r\n />\r\n ))\r\n )}\r\n </div>\r\n </PageLayoutContent>\r\n </PageLayout>\r\n );\r\n};"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { PageLayout, PageHeader, PageLayoutContent, PageSidebar, PageFooter } from '../PageLayout/PageLayout.js';
2
+ import { PageLayout, PageHeader, PageLayoutContent, PageSidebar } from '../PageLayout/PageLayout.js';
3
3
  import '../Button/Button.js';
4
4
  import '../Card/Card.js';
5
5
  import '../Badge/Badge.js';
@@ -19,7 +19,7 @@ const MarketplaceLayout = ({ products, cartItems, cartOpen, onCartOpenChange, on
19
19
  // Main: AllProductsView (product grid/list)
20
20
  // Checkout: CheckoutSidebar (cart/checkout)
21
21
  // Footer: default
22
- return (jsxs(PageLayout, { variant: "centered", maxWidth: "xl", className: cn(className), children: [jsx(PageHeader, { children: jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 flex items-center h-16", children: jsx("span", { className: "font-bold text-xl", children: "Marketplace" }) }) }), jsxs(PageLayoutContent, { layout: "sidebar", spacing: "lg", children: [jsx(PageSidebar, { position: "left", width: "md", children: jsx(CommerceSidebar, { products: products, onProductClick: onProductClick, onAddToCart: onAddToCart }) }), jsx("main", { className: "flex-1", children: children ? (children) : (jsx(AllProductsView, { products: products, onProductClick: onProductClick, onAddToCart: onAddToCart })) }), jsx(PageSidebar, { position: "right", width: "md", children: jsx(CheckoutSidebar, { cartItems: cartItems, open: typeof cartOpen === 'boolean' ? cartOpen : true, onOpenChange: onCartOpenChange || (() => { }), onRemoveItem: onRemoveFromCart, onProceedToCheckout: onProceedToCheckout }) })] }), jsx(PageFooter, { variant: "simple", children: jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center", children: jsx("p", { className: "text-gray-600", children: "\u00A9 2024 Marketplace. All rights reserved." }) }) })] }));
22
+ return (jsxs(PageLayout, { variant: "centered", maxWidth: "xl", className: cn(className), children: [jsx(PageHeader, { children: jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 flex items-center h-16", children: jsx("span", { className: "font-bold text-xl", children: "Marketplace" }) }) }), jsxs(PageLayoutContent, { layout: "sidebar", spacing: "lg", children: [jsx(PageSidebar, { position: "left", width: "md", children: jsx(CommerceSidebar, { products: products, onProductClick: onProductClick, onAddToCart: onAddToCart }) }), jsx("main", { className: "flex-1", children: children ? (children) : (jsx(AllProductsView, { products: products, onProductClick: onProductClick, onAddToCart: onAddToCart })) }), jsx(PageSidebar, { position: "right", width: "md", children: jsx(CheckoutSidebar, { cartItems: cartItems, open: typeof cartOpen === 'boolean' ? cartOpen : true, onOpenChange: onCartOpenChange || (() => { }), onRemoveItem: onRemoveFromCart, onProceedToCheckout: onProceedToCheckout }) })] })] }));
23
23
  };
24
24
 
25
25
  export { MarketplaceLayout };
@@ -1 +1 @@
1
- {"version":3,"file":"MarketplaceLayout.js","sources":["../../../src/components/MarketplaceLayout/MarketplaceLayout.tsx"],"sourcesContent":["import React from 'react';\r\nimport {\r\n PageLayout,\r\n PageHeader,\r\n PageLayoutContent,\r\n PageSidebar,\r\n PageFooter,\r\n} from '../PageLayout';\r\nimport { CommerceSidebar } from '../CommerceSidebar/CommerceSidebar';\r\nimport { AllProductsView } from '../AllProductsView/AllProductsView';\r\nimport { CheckoutSidebar } from '../Checkout/CheckoutSidebar';\r\nimport type { CartItem } from '../Checkout/types';\r\nimport type { ProductData } from '../SingleProductView/SingleProductView';\r\nimport { cn } from '../../utils/cn';\r\n\r\nexport interface MarketplaceLayoutProps {\r\n products: ProductData[];\r\n cartItems: CartItem[];\r\n cartOpen?: boolean;\r\n onCartOpenChange?: (open: boolean) => void;\r\n onProductClick?: (id: string) => void;\r\n onAddToCart?: (id: string) => void;\r\n onRemoveFromCart?: (id: string) => void;\r\n onProceedToCheckout?: () => void;\r\n children?: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport const MarketplaceLayout: React.FC<MarketplaceLayoutProps> = ({\r\n products,\r\n cartItems,\r\n cartOpen,\r\n onCartOpenChange,\r\n onProductClick,\r\n onAddToCart,\r\n onRemoveFromCart,\r\n onProceedToCheckout,\r\n children,\r\n className,\r\n}) => {\r\n // Sidebar: CommerceSidebar (product list)\r\n // Main: AllProductsView (product grid/list)\r\n // Checkout: CheckoutSidebar (cart/checkout)\r\n // Footer: default\r\n\r\n return (\r\n <PageLayout variant=\"centered\" maxWidth=\"xl\" className={cn(className)}>\r\n <PageHeader>\r\n <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 flex items-center h-16\">\r\n <span className=\"font-bold text-xl\">Marketplace</span>\r\n </div>\r\n </PageHeader>\r\n <PageLayoutContent layout=\"sidebar\" spacing=\"lg\">\r\n <PageSidebar position=\"left\" width=\"md\">\r\n <CommerceSidebar\r\n products={products}\r\n onProductClick={onProductClick}\r\n onAddToCart={onAddToCart}\r\n />\r\n </PageSidebar>\r\n <main className=\"flex-1\">\r\n {children ? (\r\n children\r\n ) : (\r\n <AllProductsView\r\n products={products}\r\n onProductClick={onProductClick}\r\n onAddToCart={onAddToCart}\r\n />\r\n )}\r\n </main>\r\n <PageSidebar position=\"right\" width=\"md\">\r\n <CheckoutSidebar\r\n cartItems={cartItems}\r\n open={typeof cartOpen === 'boolean' ? cartOpen : true}\r\n onOpenChange={onCartOpenChange || (() => {})}\r\n onRemoveItem={onRemoveFromCart}\r\n onProceedToCheckout={onProceedToCheckout}\r\n />\r\n </PageSidebar>\r\n </PageLayoutContent>\r\n <PageFooter variant=\"simple\">\r\n <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center\">\r\n <p className=\"text-gray-600\">&copy; 2024 Marketplace. All rights reserved.</p>\r\n </div>\r\n </PageFooter>\r\n </PageLayout>\r\n );\r\n};"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;;;;;;;;;AA4BO,MAAM,iBAAiB,GAAqC,CAAC,EAClE,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,QAAQ,EACR,SAAS,GACV,KAAI;;;;;AAMH,IAAA,QACEA,IAAA,CAAC,UAAU,IAAC,OAAO,EAAC,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,aACnEC,GAAA,CAAC,UAAU,cACTA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,+DAA+D,EAAA,QAAA,EAC5EA,cAAM,SAAS,EAAC,mBAAmB,EAAA,QAAA,EAAA,aAAA,EAAA,CAAmB,EAAA,CAClD,GACK,EACbD,IAAA,CAAC,iBAAiB,EAAA,EAAC,MAAM,EAAC,SAAS,EAAC,OAAO,EAAC,IAAI,EAAA,QAAA,EAAA,CAC9CC,GAAA,CAAC,WAAW,EAAA,EAAC,QAAQ,EAAC,MAAM,EAAC,KAAK,EAAC,IAAI,YACrCA,GAAA,CAAC,eAAe,IACd,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,WAAW,GACxB,EAAA,CACU,EACdA,cAAM,SAAS,EAAC,QAAQ,EAAA,QAAA,EACrB,QAAQ,IACP,QAAQ,KAERA,GAAA,CAAC,eAAe,EAAA,EACd,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,WAAW,EAAA,CACxB,CACH,GACI,EACPA,GAAA,CAAC,WAAW,EAAA,EAAC,QAAQ,EAAC,OAAO,EAAC,KAAK,EAAC,IAAI,YACtCA,GAAA,CAAC,eAAe,IACd,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,OAAO,QAAQ,KAAK,SAAS,GAAG,QAAQ,GAAG,IAAI,EACrD,YAAY,EAAE,gBAAgB,KAAK,MAAK,EAAE,CAAC,CAAC,EAC5C,YAAY,EAAE,gBAAgB,EAC9B,mBAAmB,EAAE,mBAAmB,GACxC,EAAA,CACU,CAAA,EAAA,CACI,EACpBA,GAAA,CAAC,UAAU,IAAC,OAAO,EAAC,QAAQ,EAAA,QAAA,EAC1BA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,oDAAoD,YACjEA,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,eAAe,EAAA,QAAA,EAAA,+CAAA,EAAA,CAAkD,GAC1E,EAAA,CACK,CAAA,EAAA,CACF;AAEjB;;;;"}
1
+ {"version":3,"file":"MarketplaceLayout.js","sources":["../../../src/components/MarketplaceLayout/MarketplaceLayout.tsx"],"sourcesContent":["import React from 'react';\r\nimport {\r\n PageLayout,\r\n PageHeader,\r\n PageLayoutContent,\r\n PageSidebar,\r\n} from '../PageLayout';\r\nimport { CommerceSidebar } from '../CommerceSidebar/CommerceSidebar';\r\nimport { AllProductsView } from '../AllProductsView/AllProductsView';\r\nimport { CheckoutSidebar } from '../Checkout/CheckoutSidebar';\r\nimport type { CartItem } from '../Checkout/types';\r\nimport type { ProductData } from '../SingleProductView/SingleProductView';\r\nimport { cn } from '../../utils/cn';\r\n\r\nexport interface MarketplaceLayoutProps {\r\n products: ProductData[];\r\n cartItems: CartItem[];\r\n cartOpen?: boolean;\r\n onCartOpenChange?: (open: boolean) => void;\r\n onProductClick?: (id: string) => void;\r\n onAddToCart?: (id: string) => void;\r\n onRemoveFromCart?: (id: string) => void;\r\n onProceedToCheckout?: () => void;\r\n children?: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport const MarketplaceLayout: React.FC<MarketplaceLayoutProps> = ({\r\n products,\r\n cartItems,\r\n cartOpen,\r\n onCartOpenChange,\r\n onProductClick,\r\n onAddToCart,\r\n onRemoveFromCart,\r\n onProceedToCheckout,\r\n children,\r\n className,\r\n}) => {\r\n // Sidebar: CommerceSidebar (product list)\r\n // Main: AllProductsView (product grid/list)\r\n // Checkout: CheckoutSidebar (cart/checkout)\r\n // Footer: default\r\n\r\n return (\r\n <PageLayout variant=\"centered\" maxWidth=\"xl\" className={cn(className)}>\r\n <PageHeader>\r\n <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 flex items-center h-16\">\r\n <span className=\"font-bold text-xl\">Marketplace</span>\r\n </div>\r\n </PageHeader>\r\n <PageLayoutContent layout=\"sidebar\" spacing=\"lg\">\r\n <PageSidebar position=\"left\" width=\"md\">\r\n <CommerceSidebar\r\n products={products}\r\n onProductClick={onProductClick}\r\n onAddToCart={onAddToCart}\r\n />\r\n </PageSidebar>\r\n <main className=\"flex-1\">\r\n {children ? (\r\n children\r\n ) : (\r\n <AllProductsView\r\n products={products}\r\n onProductClick={onProductClick}\r\n onAddToCart={onAddToCart}\r\n />\r\n )}\r\n </main>\r\n <PageSidebar position=\"right\" width=\"md\">\r\n <CheckoutSidebar\r\n cartItems={cartItems}\r\n open={typeof cartOpen === 'boolean' ? cartOpen : true}\r\n onOpenChange={onCartOpenChange || (() => {})}\r\n onRemoveItem={onRemoveFromCart}\r\n onProceedToCheckout={onProceedToCheckout}\r\n />\r\n </PageSidebar>\r\n </PageLayoutContent>\r\n </PageLayout>\r\n );\r\n};"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;;;;;;;;;AA2BO,MAAM,iBAAiB,GAAqC,CAAC,EAClE,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,QAAQ,EACR,SAAS,GACV,KAAI;;;;;AAMH,IAAA,QACEA,IAAA,CAAC,UAAU,EAAA,EAAC,OAAO,EAAC,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,CACnEC,GAAA,CAAC,UAAU,cACTA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,+DAA+D,YAC5EA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,mBAAmB,4BAAmB,EAAA,CAClD,EAAA,CACK,EACbD,IAAA,CAAC,iBAAiB,IAAC,MAAM,EAAC,SAAS,EAAC,OAAO,EAAC,IAAI,EAAA,QAAA,EAAA,CAC9CC,GAAA,CAAC,WAAW,EAAA,EAAC,QAAQ,EAAC,MAAM,EAAC,KAAK,EAAC,IAAI,EAAA,QAAA,EACrCA,GAAA,CAAC,eAAe,EAAA,EACd,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,WAAW,EAAA,CACxB,EAAA,CACU,EACdA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,QAAQ,EAAA,QAAA,EACrB,QAAQ,IACP,QAAQ,KAERA,GAAA,CAAC,eAAe,EAAA,EACd,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,WAAW,EAAA,CACxB,CACH,EAAA,CACI,EACPA,GAAA,CAAC,WAAW,IAAC,QAAQ,EAAC,OAAO,EAAC,KAAK,EAAC,IAAI,YACtCA,GAAA,CAAC,eAAe,IACd,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,OAAO,QAAQ,KAAK,SAAS,GAAG,QAAQ,GAAG,IAAI,EACrD,YAAY,EAAE,gBAAgB,KAAK,MAAK,EAAE,CAAC,CAAC,EAC5C,YAAY,EAAE,gBAAgB,EAC9B,mBAAmB,EAAE,mBAAmB,EAAA,CACxC,GACU,CAAA,EAAA,CACI,CAAA,EAAA,CACT;AAEjB;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { useState } from 'react';
3
- import { PageLayout, PageHeader, PageLayoutContent, PageFooter } from '../PageLayout/PageLayout.js';
3
+ import { PageLayout, PageHeader, PageLayoutContent } from '../PageLayout/PageLayout.js';
4
4
  import { Button } from '../Button/Button.js';
5
5
  import { Card } from '../Card/Card.js';
6
6
  import { Badge } from '../Badge/Badge.js';
@@ -27,7 +27,7 @@ const SingleProductView = ({ product, onAddToCart, onWishlist, onShare, showRevi
27
27
  return (jsxs(Tabs, { value: tabValue, onValueChange: setTabValue, children: [jsxs(TabsList, { children: [jsx(TabsTrigger, { value: "details", children: "Details" }), showReviews && jsx(TabsTrigger, { value: "reviews", children: "Reviews" })] }), jsx(TabsContent, { value: "details", children: jsxs("div", { children: [jsx("h4", { className: "font-semibold text-gray-900 mb-2", children: "Product Details" }), jsx("p", { className: "text-gray-600", children: product.description })] }) }), showReviews && (jsx(TabsContent, { value: "reviews", children: jsxs("div", { children: [jsx("h4", { className: "font-semibold text-gray-900 mb-4", children: "Customer Reviews" }), product.reviews && product.reviews.length > 0 ? (jsx("div", { className: "space-y-6", children: product.reviews.map((review, idx) => (jsxs(Card, { className: "p-4", children: [jsxs("div", { className: "flex items-center space-x-3 mb-2", children: [jsx(Avatar, { size: "sm", children: review.avatar ? (jsx(AvatarImage, { src: review.avatar })) : (jsx(AvatarFallback, { children: review.user[0] })) }), jsx("span", { className: "font-medium text-gray-900", children: review.user }), jsx("span", { className: "text-xs text-gray-500", children: review.date })] }), jsx("div", { className: "flex items-center mb-2", children: [1, 2, 3, 4, 5].map((star) => (jsx(Star, { className: cn('h-4 w-4', review.rating >= star
28
28
  ? 'text-yellow-400 fill-current'
29
29
  : 'text-gray-300') }, star))) }), jsx("p", { className: "text-gray-700", children: review.comment })] }, idx))) })) : (jsx("p", { className: "text-gray-500", children: "No reviews yet." }))] }) }))] }));
30
- })() })] }), jsx(PageFooter, { variant: "simple", children: jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center", children: jsx("p", { className: "text-gray-600", children: "\u00A9 2024 Store. All rights reserved." }) }) })] }));
30
+ })() })] })] }));
31
31
  };
32
32
 
33
33
  export { SingleProductView };
@@ -1 +1 @@
1
- {"version":3,"file":"SingleProductView.js","sources":["../../../src/components/SingleProductView/SingleProductView.tsx"],"sourcesContent":["import React, { useState } from 'react';\r\nimport {\r\n PageLayout,\r\n PageHeader,\r\n PageLayoutContent,\r\n PageFooter,\r\n} from '../PageLayout';\r\nimport { Badge } from '../Badge';\r\nimport { Button } from '../Button';\r\nimport { Card } from '../Card';\r\nimport { Input } from '../Input';\r\nimport { Avatar, AvatarImage, AvatarFallback } from '../Avatar';\r\nimport { Modal } from '../Modal';\r\nimport { Tabs, TabsList, TabsTrigger, TabsContent } from '../Tabs';\r\nimport { Star, ShoppingCart, Heart, Share2, CheckCircle } from 'lucide-react';\r\nimport { useBreakpoint } from '../../hooks/useBreakpoint';\r\nimport { useToggle } from '../../hooks/useToggle';\r\nimport { cn } from '../../utils/cn';\r\n\r\nexport interface ProductReview {\r\n user: string;\r\n avatar?: string;\r\n rating: number;\r\n comment: string;\r\n date: string;\r\n}\r\n\r\nexport interface ProductData {\r\n id: string;\r\n name: string;\r\n description: string;\r\n images: string[];\r\n price: number;\r\n oldPrice?: number;\r\n discount?: string;\r\n inStock: boolean;\r\n features: string[];\r\n colors?: string[];\r\n reviews?: ProductReview[];\r\n}\r\n\r\nexport interface SingleProductViewProps {\r\n product: ProductData;\r\n onAddToCart?: (productId: string) => void;\r\n onWishlist?: (productId: string) => void;\r\n onShare?: (productId: string) => void;\r\n showReviews?: boolean;\r\n showColorOptions?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport const SingleProductView: React.FC<SingleProductViewProps> = ({\r\n product,\r\n onAddToCart,\r\n onWishlist,\r\n onShare,\r\n showReviews = true,\r\n showColorOptions = true,\r\n className,\r\n}) => {\r\n const [selectedImage, setSelectedImage] = useState(product.images[0]);\r\n const [imageModalOpen, toggleImageModal] = useToggle(false);\r\n const [selectedColor, setSelectedColor] = useState(\r\n product.colors ? product.colors[0] : undefined\r\n );\r\n const { currentBreakpoint, isBelow } = useBreakpoint();\r\n const isMobile = isBelow('md');\r\n\r\n return (\r\n <PageLayout variant=\"product\" maxWidth=\"xl\" className={cn(className)}>\r\n {/* Header */}\r\n <PageHeader>\r\n <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8\">\r\n <div className=\"flex items-center justify-between h-16\">\r\n <div className=\"flex items-center space-x-2\">\r\n <ShoppingCart className=\"h-6 w-6 text-primary-600\" />\r\n <span className=\"font-bold text-xl\">Store</span>\r\n </div>\r\n <div className=\"flex items-center space-x-4\">\r\n <Input placeholder=\"Search products...\" className=\"w-64\" />\r\n <Button variant=\"outline\">Cart</Button>\r\n </div>\r\n </div>\r\n </div>\r\n </PageHeader>\r\n\r\n {/* Product Content */}\r\n <PageLayoutContent layout=\"centered\" spacing=\"lg\">\r\n <div className=\"grid grid-cols-1 lg:grid-cols-2 gap-12\">\r\n {/* Product Images */}\r\n <div>\r\n <div\r\n className=\"aspect-square bg-gray-100 rounded-lg mb-4 flex items-center justify-center cursor-pointer\"\r\n onClick={toggleImageModal}\r\n >\r\n {selectedImage ? (\r\n <img\r\n src={selectedImage}\r\n alt={product.name}\r\n className=\"object-contain h-64 w-64 mx-auto\"\r\n />\r\n ) : (\r\n <div className=\"text-center text-gray-500\">\r\n <ShoppingCart className=\"h-16 w-16 mx-auto mb-2\" />\r\n <p>Product Image</p>\r\n </div>\r\n )}\r\n </div>\r\n <div className=\"grid grid-cols-4 gap-2\">\r\n {product.images.map((img, i) => (\r\n <div\r\n key={img}\r\n className={cn(\r\n 'aspect-square bg-gray-100 rounded border-2 border-transparent hover:border-primary-500 cursor-pointer',\r\n selectedImage === img && 'border-primary-500'\r\n )}\r\n onClick={() => setSelectedImage(img)}\r\n >\r\n <img\r\n src={img}\r\n alt={`Thumbnail ${i + 1}`}\r\n className=\"object-cover h-full w-full rounded\"\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n <Modal open={imageModalOpen} onOpenChange={toggleImageModal}>\r\n <div className=\"flex items-center justify-center p-4\">\r\n <img\r\n src={selectedImage}\r\n alt={product.name}\r\n className=\"object-contain h-96 w-96\"\r\n />\r\n </div>\r\n </Modal>\r\n </div>\r\n\r\n {/* Product Details */}\r\n <div>\r\n <div className=\"flex items-center space-x-2 mb-2\">\r\n <Badge variant={product.inStock ? 'success' : 'danger'}>\r\n {product.inStock ? 'In Stock' : 'Out of Stock'}\r\n </Badge>\r\n <Badge variant=\"outline\">Free Shipping</Badge>\r\n </div>\r\n\r\n <h1 className=\"text-3xl font-bold text-gray-900 mb-4\">\r\n {product.name}\r\n </h1>\r\n\r\n <div className=\"flex items-center space-x-2 mb-4\">\r\n <div className=\"flex items-center\">\r\n {[1, 2, 3, 4, 5].map((star) => (\r\n <Star\r\n key={star}\r\n className={cn(\r\n 'h-5 w-5',\r\n product.reviews && product.reviews.length > 0\r\n ? 'text-yellow-400 fill-current'\r\n : 'text-gray-300'\r\n )}\r\n />\r\n ))}\r\n </div>\r\n <span className=\"text-gray-600\">\r\n ({product.reviews ? product.reviews.length : 0} reviews)\r\n </span>\r\n </div>\r\n\r\n <div className=\"mb-6\">\r\n <span className=\"text-3xl font-bold text-gray-900\">\r\n ${product.price.toFixed(2)}\r\n </span>\r\n {product.oldPrice && (\r\n <span className=\"text-lg text-gray-500 line-through ml-2\">\r\n ${product.oldPrice.toFixed(2)}\r\n </span>\r\n )}\r\n {product.discount && (\r\n <Badge variant=\"danger\" className=\"ml-2\">\r\n {product.discount}\r\n </Badge>\r\n )}\r\n </div>\r\n\r\n <p className=\"text-gray-600 mb-6 leading-relaxed\">\r\n {product.description}\r\n </p>\r\n\r\n {showColorOptions && product.colors && product.colors.length > 0 && (\r\n <div className=\"space-y-4 mb-8\">\r\n <div>\r\n <label className=\"block text-sm font-medium text-gray-700 mb-2\">\r\n Color\r\n </label>\r\n <div className=\"flex space-x-2\">\r\n {product.colors.map((color) => (\r\n <button\r\n key={color}\r\n className={cn(\r\n 'px-4 py-2 border border-gray-300 rounded-lg hover:border-primary-500 focus:border-primary-500',\r\n selectedColor === color && 'border-primary-500'\r\n )}\r\n onClick={() => setSelectedColor(color)}\r\n type=\"button\"\r\n >\r\n {color}\r\n </button>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n\r\n <div className=\"flex space-x-4 mb-6\">\r\n <Button\r\n variant=\"primary\"\r\n size=\"lg\"\r\n className=\"flex-1\"\r\n onClick={() => onAddToCart && onAddToCart(product.id)}\r\n disabled={!product.inStock}\r\n >\r\n <ShoppingCart className=\"mr-2 h-5 w-5\" />\r\n Add to Cart\r\n </Button>\r\n <Button\r\n variant=\"outline\"\r\n size=\"lg\"\r\n onClick={() => onWishlist && onWishlist(product.id)}\r\n >\r\n <Heart className=\"h-5 w-5\" />\r\n </Button>\r\n <Button\r\n variant=\"outline\"\r\n size=\"lg\"\r\n onClick={() => onShare && onShare(product.id)}\r\n >\r\n <Share2 className=\"h-5 w-5\" />\r\n </Button>\r\n </div>\r\n\r\n <div className=\"border-t pt-6\">\r\n <h3 className=\"font-semibold text-gray-900 mb-3\">Key Features</h3>\r\n <ul className=\"space-y-2 text-gray-600\">\r\n {product.features.map((feature, idx) => (\r\n <li key={idx} className=\"flex items-center\">\r\n <CheckCircle className=\"h-4 w-4 text-green-500 mr-2\" />\r\n {feature}\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {/* Tabs for Details/Reviews */}\r\n <div className=\"mt-12\">\r\n {(() => {\r\n const [tabValue, setTabValue] = useState('details');\r\n return (\r\n <Tabs value={tabValue} onValueChange={setTabValue}>\r\n <TabsList>\r\n <TabsTrigger value=\"details\">Details</TabsTrigger>\r\n {showReviews && <TabsTrigger value=\"reviews\">Reviews</TabsTrigger>}\r\n </TabsList>\r\n <TabsContent value=\"details\">\r\n <div>\r\n <h4 className=\"font-semibold text-gray-900 mb-2\">\r\n Product Details\r\n </h4>\r\n <p className=\"text-gray-600\">{product.description}</p>\r\n </div>\r\n </TabsContent>\r\n {showReviews && (\r\n <TabsContent value=\"reviews\">\r\n <div>\r\n <h4 className=\"font-semibold text-gray-900 mb-4\">\r\n Customer Reviews\r\n </h4>\r\n {product.reviews && product.reviews.length > 0 ? (\r\n <div className=\"space-y-6\">\r\n {product.reviews.map((review, idx) => (\r\n <Card key={idx} className=\"p-4\">\r\n <div className=\"flex items-center space-x-3 mb-2\">\r\n <Avatar size=\"sm\">\r\n {review.avatar ? (\r\n <AvatarImage src={review.avatar} />\r\n ) : (\r\n <AvatarFallback>\r\n {review.user[0]}\r\n </AvatarFallback>\r\n )}\r\n </Avatar>\r\n <span className=\"font-medium text-gray-900\">\r\n {review.user}\r\n </span>\r\n <span className=\"text-xs text-gray-500\">\r\n {review.date}\r\n </span>\r\n </div>\r\n <div className=\"flex items-center mb-2\">\r\n {[1, 2, 3, 4, 5].map((star) => (\r\n <Star\r\n key={star}\r\n className={cn(\r\n 'h-4 w-4',\r\n review.rating >= star\r\n ? 'text-yellow-400 fill-current'\r\n : 'text-gray-300'\r\n )}\r\n />\r\n ))}\r\n </div>\r\n <p className=\"text-gray-700\">{review.comment}</p>\r\n </Card>\r\n ))}\r\n </div>\r\n ) : (\r\n <p className=\"text-gray-500\">No reviews yet.</p>\r\n )}\r\n </div>\r\n </TabsContent>\r\n )}\r\n </Tabs>\r\n );\r\n })()}\r\n </div>\r\n </PageLayoutContent>\r\n\r\n {/* Footer */}\r\n <PageFooter variant=\"simple\">\r\n <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center\">\r\n <p className=\"text-gray-600\">&copy; 2024 Store. All rights reserved.</p>\r\n </div>\r\n </PageFooter>\r\n </PageLayout>\r\n );\r\n};"],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"SingleProductView.js","sources":["../../../src/components/SingleProductView/SingleProductView.tsx"],"sourcesContent":["import React, { useState } from 'react';\r\nimport {\r\n PageLayout,\r\n PageHeader,\r\n PageLayoutContent,\r\n} from '../PageLayout';\r\nimport { Badge } from '../Badge';\r\nimport { Button } from '../Button';\r\nimport { Card } from '../Card';\r\nimport { Input } from '../Input';\r\nimport { Avatar, AvatarImage, AvatarFallback } from '../Avatar';\r\nimport { Modal } from '../Modal';\r\nimport { Tabs, TabsList, TabsTrigger, TabsContent } from '../Tabs';\r\nimport { Star, ShoppingCart, Heart, Share2, CheckCircle } from 'lucide-react';\r\nimport { useBreakpoint } from '../../hooks/useBreakpoint';\r\nimport { useToggle } from '../../hooks/useToggle';\r\nimport { cn } from '../../utils/cn';\r\n\r\nexport interface ProductReview {\r\n user: string;\r\n avatar?: string;\r\n rating: number;\r\n comment: string;\r\n date: string;\r\n}\r\n\r\nexport interface ProductData {\r\n id: string;\r\n name: string;\r\n description: string;\r\n images: string[];\r\n price: number;\r\n oldPrice?: number;\r\n discount?: string;\r\n inStock: boolean;\r\n features: string[];\r\n colors?: string[];\r\n reviews?: ProductReview[];\r\n}\r\n\r\nexport interface SingleProductViewProps {\r\n product: ProductData;\r\n onAddToCart?: (productId: string) => void;\r\n onWishlist?: (productId: string) => void;\r\n onShare?: (productId: string) => void;\r\n showReviews?: boolean;\r\n showColorOptions?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport const SingleProductView: React.FC<SingleProductViewProps> = ({\r\n product,\r\n onAddToCart,\r\n onWishlist,\r\n onShare,\r\n showReviews = true,\r\n showColorOptions = true,\r\n className,\r\n}) => {\r\n const [selectedImage, setSelectedImage] = useState(product.images[0]);\r\n const [imageModalOpen, toggleImageModal] = useToggle(false);\r\n const [selectedColor, setSelectedColor] = useState(\r\n product.colors ? product.colors[0] : undefined\r\n );\r\n const { currentBreakpoint, isBelow } = useBreakpoint();\r\n const isMobile = isBelow('md');\r\n\r\n return (\r\n <PageLayout variant=\"product\" maxWidth=\"xl\" className={cn(className)}>\r\n {/* Header */}\r\n <PageHeader>\r\n <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8\">\r\n <div className=\"flex items-center justify-between h-16\">\r\n <div className=\"flex items-center space-x-2\">\r\n <ShoppingCart className=\"h-6 w-6 text-primary-600\" />\r\n <span className=\"font-bold text-xl\">Store</span>\r\n </div>\r\n <div className=\"flex items-center space-x-4\">\r\n <Input placeholder=\"Search products...\" className=\"w-64\" />\r\n <Button variant=\"outline\">Cart</Button>\r\n </div>\r\n </div>\r\n </div>\r\n </PageHeader>\r\n\r\n {/* Product Content */}\r\n <PageLayoutContent layout=\"centered\" spacing=\"lg\">\r\n <div className=\"grid grid-cols-1 lg:grid-cols-2 gap-12\">\r\n {/* Product Images */}\r\n <div>\r\n <div\r\n className=\"aspect-square bg-gray-100 rounded-lg mb-4 flex items-center justify-center cursor-pointer\"\r\n onClick={toggleImageModal}\r\n >\r\n {selectedImage ? (\r\n <img\r\n src={selectedImage}\r\n alt={product.name}\r\n className=\"object-contain h-64 w-64 mx-auto\"\r\n />\r\n ) : (\r\n <div className=\"text-center text-gray-500\">\r\n <ShoppingCart className=\"h-16 w-16 mx-auto mb-2\" />\r\n <p>Product Image</p>\r\n </div>\r\n )}\r\n </div>\r\n <div className=\"grid grid-cols-4 gap-2\">\r\n {product.images.map((img, i) => (\r\n <div\r\n key={img}\r\n className={cn(\r\n 'aspect-square bg-gray-100 rounded border-2 border-transparent hover:border-primary-500 cursor-pointer',\r\n selectedImage === img && 'border-primary-500'\r\n )}\r\n onClick={() => setSelectedImage(img)}\r\n >\r\n <img\r\n src={img}\r\n alt={`Thumbnail ${i + 1}`}\r\n className=\"object-cover h-full w-full rounded\"\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n <Modal open={imageModalOpen} onOpenChange={toggleImageModal}>\r\n <div className=\"flex items-center justify-center p-4\">\r\n <img\r\n src={selectedImage}\r\n alt={product.name}\r\n className=\"object-contain h-96 w-96\"\r\n />\r\n </div>\r\n </Modal>\r\n </div>\r\n\r\n {/* Product Details */}\r\n <div>\r\n <div className=\"flex items-center space-x-2 mb-2\">\r\n <Badge variant={product.inStock ? 'success' : 'danger'}>\r\n {product.inStock ? 'In Stock' : 'Out of Stock'}\r\n </Badge>\r\n <Badge variant=\"outline\">Free Shipping</Badge>\r\n </div>\r\n\r\n <h1 className=\"text-3xl font-bold text-gray-900 mb-4\">\r\n {product.name}\r\n </h1>\r\n\r\n <div className=\"flex items-center space-x-2 mb-4\">\r\n <div className=\"flex items-center\">\r\n {[1, 2, 3, 4, 5].map((star) => (\r\n <Star\r\n key={star}\r\n className={cn(\r\n 'h-5 w-5',\r\n product.reviews && product.reviews.length > 0\r\n ? 'text-yellow-400 fill-current'\r\n : 'text-gray-300'\r\n )}\r\n />\r\n ))}\r\n </div>\r\n <span className=\"text-gray-600\">\r\n ({product.reviews ? product.reviews.length : 0} reviews)\r\n </span>\r\n </div>\r\n\r\n <div className=\"mb-6\">\r\n <span className=\"text-3xl font-bold text-gray-900\">\r\n ${product.price.toFixed(2)}\r\n </span>\r\n {product.oldPrice && (\r\n <span className=\"text-lg text-gray-500 line-through ml-2\">\r\n ${product.oldPrice.toFixed(2)}\r\n </span>\r\n )}\r\n {product.discount && (\r\n <Badge variant=\"danger\" className=\"ml-2\">\r\n {product.discount}\r\n </Badge>\r\n )}\r\n </div>\r\n\r\n <p className=\"text-gray-600 mb-6 leading-relaxed\">\r\n {product.description}\r\n </p>\r\n\r\n {showColorOptions && product.colors && product.colors.length > 0 && (\r\n <div className=\"space-y-4 mb-8\">\r\n <div>\r\n <label className=\"block text-sm font-medium text-gray-700 mb-2\">\r\n Color\r\n </label>\r\n <div className=\"flex space-x-2\">\r\n {product.colors.map((color) => (\r\n <button\r\n key={color}\r\n className={cn(\r\n 'px-4 py-2 border border-gray-300 rounded-lg hover:border-primary-500 focus:border-primary-500',\r\n selectedColor === color && 'border-primary-500'\r\n )}\r\n onClick={() => setSelectedColor(color)}\r\n type=\"button\"\r\n >\r\n {color}\r\n </button>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n\r\n <div className=\"flex space-x-4 mb-6\">\r\n <Button\r\n variant=\"primary\"\r\n size=\"lg\"\r\n className=\"flex-1\"\r\n onClick={() => onAddToCart && onAddToCart(product.id)}\r\n disabled={!product.inStock}\r\n >\r\n <ShoppingCart className=\"mr-2 h-5 w-5\" />\r\n Add to Cart\r\n </Button>\r\n <Button\r\n variant=\"outline\"\r\n size=\"lg\"\r\n onClick={() => onWishlist && onWishlist(product.id)}\r\n >\r\n <Heart className=\"h-5 w-5\" />\r\n </Button>\r\n <Button\r\n variant=\"outline\"\r\n size=\"lg\"\r\n onClick={() => onShare && onShare(product.id)}\r\n >\r\n <Share2 className=\"h-5 w-5\" />\r\n </Button>\r\n </div>\r\n\r\n <div className=\"border-t pt-6\">\r\n <h3 className=\"font-semibold text-gray-900 mb-3\">Key Features</h3>\r\n <ul className=\"space-y-2 text-gray-600\">\r\n {product.features.map((feature, idx) => (\r\n <li key={idx} className=\"flex items-center\">\r\n <CheckCircle className=\"h-4 w-4 text-green-500 mr-2\" />\r\n {feature}\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {/* Tabs for Details/Reviews */}\r\n <div className=\"mt-12\">\r\n {(() => {\r\n const [tabValue, setTabValue] = useState('details');\r\n return (\r\n <Tabs value={tabValue} onValueChange={setTabValue}>\r\n <TabsList>\r\n <TabsTrigger value=\"details\">Details</TabsTrigger>\r\n {showReviews && <TabsTrigger value=\"reviews\">Reviews</TabsTrigger>}\r\n </TabsList>\r\n <TabsContent value=\"details\">\r\n <div>\r\n <h4 className=\"font-semibold text-gray-900 mb-2\">\r\n Product Details\r\n </h4>\r\n <p className=\"text-gray-600\">{product.description}</p>\r\n </div>\r\n </TabsContent>\r\n {showReviews && (\r\n <TabsContent value=\"reviews\">\r\n <div>\r\n <h4 className=\"font-semibold text-gray-900 mb-4\">\r\n Customer Reviews\r\n </h4>\r\n {product.reviews && product.reviews.length > 0 ? (\r\n <div className=\"space-y-6\">\r\n {product.reviews.map((review, idx) => (\r\n <Card key={idx} className=\"p-4\">\r\n <div className=\"flex items-center space-x-3 mb-2\">\r\n <Avatar size=\"sm\">\r\n {review.avatar ? (\r\n <AvatarImage src={review.avatar} />\r\n ) : (\r\n <AvatarFallback>\r\n {review.user[0]}\r\n </AvatarFallback>\r\n )}\r\n </Avatar>\r\n <span className=\"font-medium text-gray-900\">\r\n {review.user}\r\n </span>\r\n <span className=\"text-xs text-gray-500\">\r\n {review.date}\r\n </span>\r\n </div>\r\n <div className=\"flex items-center mb-2\">\r\n {[1, 2, 3, 4, 5].map((star) => (\r\n <Star\r\n key={star}\r\n className={cn(\r\n 'h-4 w-4',\r\n review.rating >= star\r\n ? 'text-yellow-400 fill-current'\r\n : 'text-gray-300'\r\n )}\r\n />\r\n ))}\r\n </div>\r\n <p className=\"text-gray-700\">{review.comment}</p>\r\n </Card>\r\n ))}\r\n </div>\r\n ) : (\r\n <p className=\"text-gray-500\">No reviews yet.</p>\r\n )}\r\n </div>\r\n </TabsContent>\r\n )}\r\n </Tabs>\r\n );\r\n })()}\r\n </div>\r\n </PageLayoutContent>\r\n </PageLayout>\r\n );\r\n};"],"names":["_jsxs","_jsx"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beyondcorp/beyond-ui",
3
- "version": "1.1.45",
3
+ "version": "1.1.49",
4
4
  "description": "A comprehensive React UI component library built with TypeScript, TailwindCSS, and CVA",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",