@beyondcorp/beyond-ui 1.2.26 → 1.2.30

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.
Files changed (40) hide show
  1. package/dist/components/AllProductsView/AllProductsView.d.ts +0 -11
  2. package/dist/components/AllProductsView/AllProductsView.js +2 -9
  3. package/dist/components/AllProductsView/AllProductsView.js.map +1 -1
  4. package/dist/components/AllProductsView/ProductCard.js +4 -2
  5. package/dist/components/AllProductsView/ProductCard.js.map +1 -1
  6. package/dist/components/Card/Card.js +1 -1
  7. package/dist/components/Card/Card.js.map +1 -1
  8. package/dist/components/DashboardGrid/DashboardGrid.d.ts +3 -22
  9. package/dist/components/DashboardGrid/DashboardGrid.js +10 -48
  10. package/dist/components/DashboardGrid/DashboardGrid.js.map +1 -1
  11. package/dist/components/Marketplace/AllProductsView.d.ts +8 -0
  12. package/dist/components/Marketplace/AllProductsView.js +185 -0
  13. package/dist/components/Marketplace/AllProductsView.js.map +1 -0
  14. package/dist/components/Marketplace/CheckoutCompact.d.ts +10 -0
  15. package/dist/components/Marketplace/CheckoutCompact.js +66 -0
  16. package/dist/components/Marketplace/CheckoutCompact.js.map +1 -0
  17. package/dist/components/Marketplace/CheckoutComponent.d.ts +8 -0
  18. package/dist/components/Marketplace/CheckoutComponent.js +123 -0
  19. package/dist/components/Marketplace/CheckoutComponent.js.map +1 -0
  20. package/dist/components/Marketplace/MarketplaceComponent.d.ts +8 -0
  21. package/dist/components/Marketplace/MarketplaceComponent.js +108 -0
  22. package/dist/components/Marketplace/MarketplaceComponent.js.map +1 -0
  23. package/dist/components/Marketplace/MarketplaceSidebar.d.ts +12 -0
  24. package/dist/components/Marketplace/MarketplaceSidebar.js +167 -0
  25. package/dist/components/Marketplace/MarketplaceSidebar.js.map +1 -0
  26. package/dist/components/Marketplace/SingleProductView.d.ts +9 -0
  27. package/dist/components/Marketplace/SingleProductView.js +52 -0
  28. package/dist/components/Marketplace/SingleProductView.js.map +1 -0
  29. package/dist/components/Marketplace/data/sampleData.d.ts +3 -0
  30. package/dist/components/Marketplace/data/sampleData.js +153 -0
  31. package/dist/components/Marketplace/data/sampleData.js.map +1 -0
  32. package/dist/components/Marketplace/index.d.ts +7 -0
  33. package/dist/components/Marketplace/types.d.ts +82 -0
  34. package/dist/components/MarketplaceLayout/MarketplaceLayout.d.ts +0 -10
  35. package/dist/components/MarketplaceLayout/MarketplaceLayout.js +3 -3
  36. package/dist/components/MarketplaceLayout/MarketplaceLayout.js.map +1 -1
  37. package/dist/index.d.ts +1 -3
  38. package/dist/index.js +6 -5
  39. package/dist/styles.css +1 -1
  40. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SingleProductView.js","sources":["../../../src/components/Marketplace/SingleProductView.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { \n Star, \n Heart, \n Share2, \n ShoppingCart, \n Zap, \n Shield, \n Truck, \n RotateCcw,\n ChevronLeft,\n ChevronRight,\n Plus,\n Minus,\n Check,\n ThumbsUp\n} from 'lucide-react';\nimport { Button } from '../Button';\nimport { Card, CardHeader, CardTitle, CardContent } from '../Card';\nimport { Badge } from '../Badge';\nimport { Avatar, AvatarImage, AvatarFallback } from '../Avatar';\nimport { Input } from '../Input';\nimport { Tabs, TabsList, TabsTrigger, TabsContent } from '../Tabs';\nimport { showToast } from '../Toast';\nimport type { Product, Review } from './types';\nimport { sampleProducts, sampleReviews } from './data/sampleData';\n\ninterface SingleProductViewProps {\n productId?: string;\n onAddToCart?: (product: Product, quantity: number) => void;\n onBuyNow?: (product: Product, quantity: number) => void;\n}\n\nexport const SingleProductView: React.FC<SingleProductViewProps> = ({\n productId = '1',\n onAddToCart,\n onBuyNow,\n}) => {\n const [selectedImageIndex, setSelectedImageIndex] = useState(0);\n const [quantity, setQuantity] = useState(1);\n const [isWishlisted, setIsWishlisted] = useState(false);\n const [selectedTab, setSelectedTab] = useState('description');\n\n // Get product data (in real app, this would come from API)\n const product = sampleProducts.find(p => p.id === productId) || sampleProducts[0];\n const reviews = sampleReviews;\n const relatedProducts = sampleProducts.slice(1, 5);\n\n const handleAddToCart = () => {\n onAddToCart?.(product, quantity);\n showToast.success(`Added ${quantity} item(s) to cart!`);\n };\n\n const handleBuyNow = () => {\n onBuyNow?.(product, quantity);\n showToast.info('Redirecting to checkout...');\n };\n\n const handleShare = () => {\n navigator.clipboard.writeText(window.location.href);\n showToast.success('Product link copied to clipboard!');\n };\n\n const nextImage = () => {\n setSelectedImageIndex((prev) => \n prev === product.images.length - 1 ? 0 : prev + 1\n );\n };\n\n const prevImage = () => {\n setSelectedImageIndex((prev) => \n prev === 0 ? product.images.length - 1 : prev - 1\n );\n };\n\n return (\n <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8\">\n {/* Breadcrumb */}\n <nav className=\"flex items-center space-x-2 text-sm text-gray-600 mb-8\">\n <a href=\"/\" className=\"hover:text-primary-600\">Home</a>\n <span>/</span>\n <a href=\"/products\" className=\"hover:text-primary-600\">Products</a>\n <span>/</span>\n <a href={`/category/${product.category.toLowerCase()}`} className=\"hover:text-primary-600\">\n {product.category}\n </a>\n <span>/</span>\n <span className=\"text-gray-900\">{product.name}</span>\n </nav>\n\n <div className=\"grid grid-cols-1 lg:grid-cols-2 gap-12\">\n {/* Product Images */}\n <div>\n {/* Main Image */}\n <div className=\"relative aspect-square bg-gray-100 rounded-lg overflow-hidden mb-4\">\n <img\n src={product.images[selectedImageIndex]}\n alt={product.name}\n className=\"w-full h-full object-cover\"\n />\n {product.images.length > 1 && (\n <>\n <button\n onClick={prevImage}\n className=\"absolute left-4 top-1/2 transform -translate-y-1/2 bg-white/80 hover:bg-white rounded-full p-2 shadow-lg transition-colors\"\n >\n <ChevronLeft className=\"h-5 w-5\" />\n </button>\n <button\n onClick={nextImage}\n className=\"absolute right-4 top-1/2 transform -translate-y-1/2 bg-white/80 hover:bg-white rounded-full p-2 shadow-lg transition-colors\"\n >\n <ChevronRight className=\"h-5 w-5\" />\n </button>\n </>\n )}\n {product.discount && (\n <Badge variant=\"danger\" className=\"absolute top-4 left-4\">\n -{product.discount}%\n </Badge>\n )}\n </div>\n\n {/* Thumbnail Images */}\n {product.images.length > 1 && (\n <div className=\"flex space-x-2 overflow-x-auto\">\n {product.images.map((image, index) => (\n <button\n key={index}\n onClick={() => setSelectedImageIndex(index)}\n className={`flex-shrink-0 w-20 h-20 rounded-lg overflow-hidden border-2 transition-colors ${\n selectedImageIndex === index\n ? 'border-primary-500'\n : 'border-gray-200 hover:border-gray-300'\n }`}\n >\n <img\n src={image}\n alt={`${product.name} ${index + 1}`}\n className=\"w-full h-full object-cover\"\n />\n </button>\n ))}\n </div>\n )}\n </div>\n\n {/* Product Details */}\n <div>\n {/* Vendor */}\n <div className=\"flex items-center space-x-2 mb-4\">\n <span className=\"text-sm text-gray-600\">Sold by</span>\n <div className=\"flex items-center space-x-2\">\n {product.vendor.logo && (\n <Avatar size=\"sm\">\n <AvatarImage src={product.vendor.logo} />\n <AvatarFallback>{product.vendor.name[0]}</AvatarFallback>\n </Avatar>\n )}\n <span className=\"font-medium text-primary-600\">{product.vendor.name}</span>\n <div className=\"flex items-center space-x-1\">\n <Star className=\"h-4 w-4 text-yellow-400 fill-current\" />\n <span className=\"text-sm text-gray-600\">{product.vendor.rating}</span>\n </div>\n </div>\n </div>\n\n {/* Product Title */}\n <h1 className=\"text-3xl font-bold text-gray-900 mb-4\">{product.name}</h1>\n\n {/* Rating and Reviews */}\n <div className=\"flex items-center space-x-4 mb-6\">\n <div className=\"flex items-center space-x-1\">\n {[1, 2, 3, 4, 5].map((star) => (\n <Star\n key={star}\n className={`h-5 w-5 ${\n star <= Math.floor(product.rating)\n ? 'text-yellow-400 fill-current'\n : 'text-gray-300'\n }`}\n />\n ))}\n <span className=\"text-lg font-medium text-gray-900 ml-2\">\n {product.rating}\n </span>\n </div>\n <span className=\"text-gray-600\">({product.reviewCount} reviews)</span>\n <Badge variant={product.inStock ? 'success' : 'danger'}>\n {product.inStock ? 'In Stock' : 'Out of Stock'}\n </Badge>\n </div>\n\n {/* Price */}\n <div className=\"mb-6\">\n <div className=\"flex items-center space-x-3\">\n <span className=\"text-3xl font-bold text-gray-900\">\n ${product.price.toFixed(2)}\n </span>\n {product.originalPrice && (\n <span className=\"text-xl text-gray-500 line-through\">\n ${product.originalPrice.toFixed(2)}\n </span>\n )}\n {product.discount && (\n <Badge variant=\"danger\">Save {product.discount}%</Badge>\n )}\n </div>\n </div>\n\n {/* Description */}\n <p className=\"text-gray-600 mb-6 leading-relaxed\">{product.description}</p>\n\n {/* Quantity and Actions */}\n <div className=\"space-y-4 mb-8\">\n <div className=\"flex items-center space-x-4\">\n <span className=\"font-medium text-gray-900\">Quantity:</span>\n <div className=\"flex items-center border border-gray-300 rounded-lg\">\n <button\n onClick={() => setQuantity(Math.max(1, quantity - 1))}\n className=\"p-2 hover:bg-gray-50 transition-colors\"\n disabled={quantity <= 1}\n >\n <Minus className=\"h-4 w-4\" />\n </button>\n <Input\n type=\"number\"\n value={quantity}\n onChange={(e) => setQuantity(Math.max(1, parseInt(e.target.value) || 1))}\n className=\"w-16 text-center border-0 focus:ring-0\"\n min=\"1\"\n />\n <button\n onClick={() => setQuantity(quantity + 1)}\n className=\"p-2 hover:bg-gray-50 transition-colors\"\n >\n <Plus className=\"h-4 w-4\" />\n </button>\n </div>\n </div>\n\n <div className=\"flex space-x-4\">\n <Button\n variant=\"primary\"\n size=\"lg\"\n onClick={handleAddToCart}\n disabled={!product.inStock}\n className=\"flex-1\"\n >\n <ShoppingCart className=\"mr-2 h-5 w-5\" />\n Add to Cart\n </Button>\n <Button\n variant=\"secondary\"\n size=\"lg\"\n onClick={handleBuyNow}\n disabled={!product.inStock}\n className=\"flex-1\"\n >\n <Zap className=\"mr-2 h-5 w-5\" />\n Buy Now\n </Button>\n </div>\n\n <div className=\"flex space-x-2\">\n <Button\n variant=\"outline\"\n onClick={() => setIsWishlisted(!isWishlisted)}\n className=\"flex-1\"\n >\n <Heart className={`mr-2 h-5 w-5 ${isWishlisted ? 'fill-current text-red-500' : ''}`} />\n {isWishlisted ? 'Wishlisted' : 'Add to Wishlist'}\n </Button>\n <Button variant=\"outline\" onClick={handleShare}>\n <Share2 className=\"h-5 w-5\" />\n </Button>\n </div>\n </div>\n\n {/* Features */}\n <div className=\"grid grid-cols-2 gap-4 mb-8\">\n <div className=\"flex items-center space-x-2 text-sm text-gray-600\">\n <Truck className=\"h-4 w-4 text-green-600\" />\n <span>Free shipping</span>\n </div>\n <div className=\"flex items-center space-x-2 text-sm text-gray-600\">\n <RotateCcw className=\"h-4 w-4 text-blue-600\" />\n <span>30-day returns</span>\n </div>\n <div className=\"flex items-center space-x-2 text-sm text-gray-600\">\n <Shield className=\"h-4 w-4 text-purple-600\" />\n <span>2-year warranty</span>\n </div>\n <div className=\"flex items-center space-x-2 text-sm text-gray-600\">\n <Check className=\"h-4 w-4 text-green-600\" />\n <span>Authentic product</span>\n </div>\n </div>\n </div>\n </div>\n\n {/* Product Details Tabs */}\n <div className=\"mt-16\">\n <Tabs value={selectedTab} onValueChange={setSelectedTab}>\n <TabsList>\n <TabsTrigger value=\"description\">Description</TabsTrigger>\n <TabsTrigger value=\"specifications\">Specifications</TabsTrigger>\n <TabsTrigger value=\"reviews\">Reviews ({reviews.length})</TabsTrigger>\n </TabsList>\n\n <TabsContent value=\"description\" className=\"mt-8\">\n <Card>\n <CardContent className=\"p-8\">\n <h3 className=\"text-xl font-semibold mb-4\">Product Description</h3>\n <div className=\"prose max-w-none\">\n <p className=\"text-gray-600 leading-relaxed mb-4\">\n {product.description}\n </p>\n <p className=\"text-gray-600 leading-relaxed\">\n This premium product offers exceptional quality and performance, \n designed to meet the highest standards. With advanced features and \n reliable construction, it's perfect for both professional and personal use.\n </p>\n </div>\n </CardContent>\n </Card>\n </TabsContent>\n\n <TabsContent value=\"specifications\" className=\"mt-8\">\n <Card>\n <CardContent className=\"p-8\">\n <h3 className=\"text-xl font-semibold mb-4\">Technical Specifications</h3>\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n {Object.entries(product.specifications).map(([key, value]) => (\n <div key={key} className=\"flex justify-between py-2 border-b border-gray-100\">\n <span className=\"font-medium text-gray-900\">{key}:</span>\n <span className=\"text-gray-600\">{value}</span>\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n </TabsContent>\n\n <TabsContent value=\"reviews\" className=\"mt-8\">\n <div className=\"space-y-6\">\n {/* Reviews Summary */}\n <Card>\n <CardContent className=\"p-8\">\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-8\">\n <div>\n <h3 className=\"text-xl font-semibold mb-4\">Customer Reviews</h3>\n <div className=\"flex items-center space-x-4 mb-4\">\n <span className=\"text-4xl font-bold text-gray-900\">\n {product.rating}\n </span>\n <div>\n <div className=\"flex items-center space-x-1 mb-1\">\n {[1, 2, 3, 4, 5].map((star) => (\n <Star\n key={star}\n className={`h-5 w-5 ${\n star <= Math.floor(product.rating)\n ? 'text-yellow-400 fill-current'\n : 'text-gray-300'\n }`}\n />\n ))}\n </div>\n <span className=\"text-gray-600\">\n Based on {product.reviewCount} reviews\n </span>\n </div>\n </div>\n </div>\n <div>\n <Button variant=\"primary\" className=\"w-full\">\n Write a Review\n </Button>\n </div>\n </div>\n </CardContent>\n </Card>\n\n {/* Individual Reviews */}\n {reviews.map((review) => (\n <Card key={review.id}>\n <CardContent className=\"p-6\">\n <div className=\"flex items-start space-x-4\">\n <Avatar>\n <AvatarImage src={review.userAvatar} />\n <AvatarFallback>{review.userName[0]}</AvatarFallback>\n </Avatar>\n <div className=\"flex-1\">\n <div className=\"flex items-center space-x-2 mb-2\">\n <span className=\"font-medium text-gray-900\">{review.userName}</span>\n {review.verified && (\n <Badge variant=\"success\" className=\"text-xs\">\n Verified Purchase\n </Badge>\n )}\n </div>\n <div className=\"flex items-center space-x-2 mb-2\">\n <div className=\"flex items-center space-x-1\">\n {[1, 2, 3, 4, 5].map((star) => (\n <Star\n key={star}\n className={`h-4 w-4 ${\n star <= review.rating\n ? 'text-yellow-400 fill-current'\n : 'text-gray-300'\n }`}\n />\n ))}\n </div>\n <span className=\"text-sm text-gray-600\">{review.date}</span>\n </div>\n <h4 className=\"font-medium text-gray-900 mb-2\">{review.title}</h4>\n <p className=\"text-gray-600 mb-4\">{review.comment}</p>\n <div className=\"flex items-center space-x-4\">\n <button className=\"flex items-center space-x-1 text-sm text-gray-600 hover:text-gray-900\">\n <ThumbsUp className=\"h-4 w-4\" />\n <span>Helpful ({review.helpful})</span>\n </button>\n </div>\n </div>\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n </TabsContent>\n </Tabs>\n </div>\n\n {/* Related Products */}\n <div className=\"mt-16\">\n <h2 className=\"text-2xl font-bold text-gray-900 mb-8\">Related Products</h2>\n <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6\">\n {relatedProducts.map((relatedProduct) => (\n <Card key={relatedProduct.id} className=\"hover:shadow-lg transition-shadow\">\n <div className=\"aspect-square bg-gray-100 rounded-t-lg overflow-hidden\">\n <img\n src={relatedProduct.images[0]}\n alt={relatedProduct.name}\n className=\"w-full h-full object-cover\"\n />\n </div>\n <CardContent className=\"p-4\">\n <h3 className=\"font-medium text-gray-900 mb-2 line-clamp-2\">\n {relatedProduct.name}\n </h3>\n <div className=\"flex items-center space-x-1 mb-2\">\n <Star className=\"h-4 w-4 text-yellow-400 fill-current\" />\n <span className=\"text-sm text-gray-600\">\n {relatedProduct.rating} ({relatedProduct.reviewCount})\n </span>\n </div>\n <div className=\"flex items-center justify-between\">\n <span className=\"text-lg font-bold text-gray-900\">\n ${relatedProduct.price.toFixed(2)}\n </span>\n <Button size=\"sm\" variant=\"outline\">\n View\n </Button>\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n </div>\n </div>\n );\n};"],"names":["_jsxs","_jsx","_Fragment"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Product, Review } from '../types';
2
+ export declare const sampleProducts: Product[];
3
+ export declare const sampleReviews: Review[];
@@ -0,0 +1,153 @@
1
+ // Sample product data for demonstration
2
+ const sampleProducts = [
3
+ {
4
+ id: '1',
5
+ name: 'Premium Wireless Headphones',
6
+ description: 'High-quality wireless headphones with active noise cancellation and 30-hour battery life.',
7
+ price: 299.99,
8
+ originalPrice: 399.99,
9
+ discount: 25,
10
+ images: [
11
+ 'https://images.pexels.com/photos/3394650/pexels-photo-3394650.jpeg?auto=compress&cs=tinysrgb&w=800',
12
+ 'https://images.pexels.com/photos/1649771/pexels-photo-1649771.jpeg?auto=compress&cs=tinysrgb&w=800',
13
+ 'https://images.pexels.com/photos/1649772/pexels-photo-1649772.jpeg?auto=compress&cs=tinysrgb&w=800',
14
+ ],
15
+ category: 'Electronics',
16
+ brand: 'AudioTech',
17
+ rating: 4.5,
18
+ reviewCount: 128,
19
+ inStock: true,
20
+ specifications: {
21
+ 'Battery Life': '30 hours',
22
+ 'Connectivity': 'Bluetooth 5.0',
23
+ 'Weight': '250g',
24
+ 'Noise Cancellation': 'Active',
25
+ 'Warranty': '2 years',
26
+ },
27
+ tags: ['wireless', 'noise-cancelling', 'premium'],
28
+ vendor: {
29
+ id: 'v1',
30
+ name: 'AudioTech Store',
31
+ rating: 4.8,
32
+ logo: 'https://images.pexels.com/photos/1649771/pexels-photo-1649771.jpeg?auto=compress&cs=tinysrgb&w=64',
33
+ },
34
+ },
35
+ {
36
+ id: '2',
37
+ name: 'Smart Fitness Watch',
38
+ description: 'Advanced fitness tracking with heart rate monitoring, GPS, and 7-day battery life.',
39
+ price: 199.99,
40
+ images: [
41
+ 'https://images.pexels.com/photos/437037/pexels-photo-437037.jpeg?auto=compress&cs=tinysrgb&w=800',
42
+ 'https://images.pexels.com/photos/437038/pexels-photo-437038.jpeg?auto=compress&cs=tinysrgb&w=800',
43
+ ],
44
+ category: 'Wearables',
45
+ brand: 'FitTech',
46
+ rating: 4.3,
47
+ reviewCount: 89,
48
+ inStock: true,
49
+ specifications: {
50
+ 'Battery Life': '7 days',
51
+ 'Display': '1.4" AMOLED',
52
+ 'Water Resistance': '5ATM',
53
+ 'GPS': 'Built-in',
54
+ 'Sensors': 'Heart Rate, SpO2, Accelerometer',
55
+ },
56
+ tags: ['fitness', 'smartwatch', 'gps'],
57
+ vendor: {
58
+ id: 'v2',
59
+ name: 'FitTech Official',
60
+ rating: 4.6,
61
+ },
62
+ },
63
+ {
64
+ id: '3',
65
+ name: 'Professional Camera Lens',
66
+ description: '85mm f/1.4 portrait lens with exceptional image quality and beautiful bokeh.',
67
+ price: 899.99,
68
+ images: [
69
+ 'https://images.pexels.com/photos/90946/pexels-photo-90946.jpeg?auto=compress&cs=tinysrgb&w=800',
70
+ ],
71
+ category: 'Photography',
72
+ brand: 'LensMaster',
73
+ rating: 4.8,
74
+ reviewCount: 45,
75
+ inStock: false,
76
+ specifications: {
77
+ 'Focal Length': '85mm',
78
+ 'Aperture': 'f/1.4',
79
+ 'Mount': 'Canon EF',
80
+ 'Weight': '950g',
81
+ 'Filter Size': '77mm',
82
+ },
83
+ tags: ['portrait', 'professional', 'bokeh'],
84
+ vendor: {
85
+ id: 'v3',
86
+ name: 'Camera World',
87
+ rating: 4.9,
88
+ },
89
+ },
90
+ // Add more sample products...
91
+ ...Array.from({ length: 20 }, (_, i) => ({
92
+ id: `${i + 4}`,
93
+ name: `Product ${i + 4}`,
94
+ description: `Description for product ${i + 4}`,
95
+ price: Math.floor(Math.random() * 500) + 50,
96
+ images: [`https://images.pexels.com/photos/${1000000 + i}/pexels-photo-${1000000 + i}.jpeg?auto=compress&cs=tinysrgb&w=800`],
97
+ category: ['Electronics', 'Clothing', 'Home', 'Sports'][Math.floor(Math.random() * 4)],
98
+ brand: ['Brand A', 'Brand B', 'Brand C'][Math.floor(Math.random() * 3)],
99
+ rating: Math.round((Math.random() * 2 + 3) * 10) / 10,
100
+ reviewCount: Math.floor(Math.random() * 200) + 10,
101
+ inStock: Math.random() > 0.2,
102
+ specifications: {
103
+ 'Feature 1': 'Value 1',
104
+ 'Feature 2': 'Value 2',
105
+ },
106
+ tags: ['tag1', 'tag2'],
107
+ vendor: {
108
+ id: `v${i + 4}`,
109
+ name: `Vendor ${i + 4}`,
110
+ rating: Math.round((Math.random() * 1 + 4) * 10) / 10,
111
+ },
112
+ })),
113
+ ];
114
+ const sampleReviews = [
115
+ {
116
+ id: '1',
117
+ userId: 'u1',
118
+ userName: 'John Smith',
119
+ userAvatar: 'https://images.pexels.com/photos/774909/pexels-photo-774909.jpeg?auto=compress&cs=tinysrgb&w=64',
120
+ rating: 5,
121
+ title: 'Excellent quality!',
122
+ comment: 'These headphones exceeded my expectations. The sound quality is amazing and the noise cancellation works perfectly.',
123
+ date: '2024-01-15',
124
+ helpful: 12,
125
+ verified: true,
126
+ },
127
+ {
128
+ id: '2',
129
+ userId: 'u2',
130
+ userName: 'Sarah Johnson',
131
+ userAvatar: 'https://images.pexels.com/photos/415829/pexels-photo-415829.jpeg?auto=compress&cs=tinysrgb&w=64',
132
+ rating: 4,
133
+ title: 'Great value for money',
134
+ comment: 'Good headphones for the price. Battery life is as advertised and they are comfortable to wear.',
135
+ date: '2024-01-10',
136
+ helpful: 8,
137
+ verified: true,
138
+ },
139
+ {
140
+ id: '3',
141
+ userId: 'u3',
142
+ userName: 'Mike Wilson',
143
+ rating: 5,
144
+ title: 'Perfect for work',
145
+ comment: 'Use these daily for work calls and music. The noise cancellation is a game changer in the office.',
146
+ date: '2024-01-05',
147
+ helpful: 15,
148
+ verified: false,
149
+ },
150
+ ];
151
+
152
+ export { sampleProducts, sampleReviews };
153
+ //# sourceMappingURL=sampleData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sampleData.js","sources":["../../../../src/components/Marketplace/data/sampleData.ts"],"sourcesContent":["import { Product, Review } from '../types';\n\n// Sample product data for demonstration\nexport const sampleProducts: Product[] = [\n {\n id: '1',\n name: 'Premium Wireless Headphones',\n description: 'High-quality wireless headphones with active noise cancellation and 30-hour battery life.',\n price: 299.99,\n originalPrice: 399.99,\n discount: 25,\n images: [\n 'https://images.pexels.com/photos/3394650/pexels-photo-3394650.jpeg?auto=compress&cs=tinysrgb&w=800',\n 'https://images.pexels.com/photos/1649771/pexels-photo-1649771.jpeg?auto=compress&cs=tinysrgb&w=800',\n 'https://images.pexels.com/photos/1649772/pexels-photo-1649772.jpeg?auto=compress&cs=tinysrgb&w=800',\n ],\n category: 'Electronics',\n brand: 'AudioTech',\n rating: 4.5,\n reviewCount: 128,\n inStock: true,\n specifications: {\n 'Battery Life': '30 hours',\n 'Connectivity': 'Bluetooth 5.0',\n 'Weight': '250g',\n 'Noise Cancellation': 'Active',\n 'Warranty': '2 years',\n },\n tags: ['wireless', 'noise-cancelling', 'premium'],\n vendor: {\n id: 'v1',\n name: 'AudioTech Store',\n rating: 4.8,\n logo: 'https://images.pexels.com/photos/1649771/pexels-photo-1649771.jpeg?auto=compress&cs=tinysrgb&w=64',\n },\n },\n {\n id: '2',\n name: 'Smart Fitness Watch',\n description: 'Advanced fitness tracking with heart rate monitoring, GPS, and 7-day battery life.',\n price: 199.99,\n images: [\n 'https://images.pexels.com/photos/437037/pexels-photo-437037.jpeg?auto=compress&cs=tinysrgb&w=800',\n 'https://images.pexels.com/photos/437038/pexels-photo-437038.jpeg?auto=compress&cs=tinysrgb&w=800',\n ],\n category: 'Wearables',\n brand: 'FitTech',\n rating: 4.3,\n reviewCount: 89,\n inStock: true,\n specifications: {\n 'Battery Life': '7 days',\n 'Display': '1.4\" AMOLED',\n 'Water Resistance': '5ATM',\n 'GPS': 'Built-in',\n 'Sensors': 'Heart Rate, SpO2, Accelerometer',\n },\n tags: ['fitness', 'smartwatch', 'gps'],\n vendor: {\n id: 'v2',\n name: 'FitTech Official',\n rating: 4.6,\n },\n },\n {\n id: '3',\n name: 'Professional Camera Lens',\n description: '85mm f/1.4 portrait lens with exceptional image quality and beautiful bokeh.',\n price: 899.99,\n images: [\n 'https://images.pexels.com/photos/90946/pexels-photo-90946.jpeg?auto=compress&cs=tinysrgb&w=800',\n ],\n category: 'Photography',\n brand: 'LensMaster',\n rating: 4.8,\n reviewCount: 45,\n inStock: false,\n specifications: {\n 'Focal Length': '85mm',\n 'Aperture': 'f/1.4',\n 'Mount': 'Canon EF',\n 'Weight': '950g',\n 'Filter Size': '77mm',\n },\n tags: ['portrait', 'professional', 'bokeh'],\n vendor: {\n id: 'v3',\n name: 'Camera World',\n rating: 4.9,\n },\n },\n // Add more sample products...\n ...Array.from({ length: 20 }, (_, i) => ({\n id: `${i + 4}`,\n name: `Product ${i + 4}`,\n description: `Description for product ${i + 4}`,\n price: Math.floor(Math.random() * 500) + 50,\n images: [`https://images.pexels.com/photos/${1000000 + i}/pexels-photo-${1000000 + i}.jpeg?auto=compress&cs=tinysrgb&w=800`],\n category: ['Electronics', 'Clothing', 'Home', 'Sports'][Math.floor(Math.random() * 4)],\n brand: ['Brand A', 'Brand B', 'Brand C'][Math.floor(Math.random() * 3)],\n rating: Math.round((Math.random() * 2 + 3) * 10) / 10,\n reviewCount: Math.floor(Math.random() * 200) + 10,\n inStock: Math.random() > 0.2,\n specifications: {\n 'Feature 1': 'Value 1',\n 'Feature 2': 'Value 2',\n },\n tags: ['tag1', 'tag2'],\n vendor: {\n id: `v${i + 4}`,\n name: `Vendor ${i + 4}`,\n rating: Math.round((Math.random() * 1 + 4) * 10) / 10,\n },\n })),\n];\n\nexport const sampleReviews: Review[] = [\n {\n id: '1',\n userId: 'u1',\n userName: 'John Smith',\n userAvatar: 'https://images.pexels.com/photos/774909/pexels-photo-774909.jpeg?auto=compress&cs=tinysrgb&w=64',\n rating: 5,\n title: 'Excellent quality!',\n comment: 'These headphones exceeded my expectations. The sound quality is amazing and the noise cancellation works perfectly.',\n date: '2024-01-15',\n helpful: 12,\n verified: true,\n },\n {\n id: '2',\n userId: 'u2',\n userName: 'Sarah Johnson',\n userAvatar: 'https://images.pexels.com/photos/415829/pexels-photo-415829.jpeg?auto=compress&cs=tinysrgb&w=64',\n rating: 4,\n title: 'Great value for money',\n comment: 'Good headphones for the price. Battery life is as advertised and they are comfortable to wear.',\n date: '2024-01-10',\n helpful: 8,\n verified: true,\n },\n {\n id: '3',\n userId: 'u3',\n userName: 'Mike Wilson',\n rating: 5,\n title: 'Perfect for work',\n comment: 'Use these daily for work calls and music. The noise cancellation is a game changer in the office.',\n date: '2024-01-05',\n helpful: 15,\n verified: false,\n },\n];"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export * from './types';
2
+ export * from './SingleProductView';
3
+ export * from './AllProductsView';
4
+ export * from './CheckoutComponent';
5
+ export * from './CheckoutCompact';
6
+ export * from './MarketplaceSidebar';
7
+ export * from './MarketplaceComponent';
@@ -0,0 +1,82 @@
1
+ export interface Product {
2
+ id: string;
3
+ name: string;
4
+ description: string;
5
+ price: number;
6
+ originalPrice?: number;
7
+ discount?: number;
8
+ images: string[];
9
+ category: string;
10
+ brand: string;
11
+ rating: number;
12
+ reviewCount: number;
13
+ inStock: boolean;
14
+ specifications: Record<string, string>;
15
+ tags: string[];
16
+ vendor: {
17
+ id: string;
18
+ name: string;
19
+ rating: number;
20
+ logo?: string;
21
+ };
22
+ }
23
+ export interface CartItem {
24
+ product: Product;
25
+ quantity: number;
26
+ selectedVariant?: string;
27
+ }
28
+ export interface ShippingAddress {
29
+ firstName: string;
30
+ lastName: string;
31
+ email: string;
32
+ phone: string;
33
+ address: string;
34
+ city: string;
35
+ state: string;
36
+ zipCode: string;
37
+ country: string;
38
+ }
39
+ export interface PaymentMethod {
40
+ id: string;
41
+ type: 'card' | 'paypal' | 'apple_pay' | 'google_pay';
42
+ name: string;
43
+ last4?: string;
44
+ expiryDate?: string;
45
+ }
46
+ export interface Order {
47
+ id: string;
48
+ items: CartItem[];
49
+ shippingAddress: ShippingAddress;
50
+ paymentMethod: PaymentMethod;
51
+ subtotal: number;
52
+ shipping: number;
53
+ tax: number;
54
+ discount: number;
55
+ total: number;
56
+ status: 'pending' | 'processing' | 'shipped' | 'delivered';
57
+ createdAt: string;
58
+ }
59
+ export interface FilterOptions {
60
+ categories: string[];
61
+ brands: string[];
62
+ priceRange: [number, number];
63
+ rating: number;
64
+ inStock: boolean;
65
+ vendors: string[];
66
+ }
67
+ export interface SortOption {
68
+ value: string;
69
+ label: string;
70
+ }
71
+ export interface Review {
72
+ id: string;
73
+ userId: string;
74
+ userName: string;
75
+ userAvatar?: string;
76
+ rating: number;
77
+ title: string;
78
+ comment: string;
79
+ date: string;
80
+ helpful: number;
81
+ verified: boolean;
82
+ }
@@ -1,13 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { CartItem } from '../Checkout/types';
3
3
  import type { ProductData } from '../SingleProductView/SingleProductView';
4
- /**
5
- * MarketplaceLayout
6
- * - Provides a full marketplace page layout with header, sidebar, product grid, and checkout sidebar.
7
- * - Accepts a `columns` prop, which is passed to AllProductsView to control the number of product grid columns.
8
- * - By default, AllProductsView uses responsive logic (1/2/4 columns), but consumers can override for their use case.
9
- * - All layout and sizing logic is theme-agnostic and leverages reusable components.
10
- */
11
4
  export interface MarketplaceLayoutProps {
12
5
  products: ProductData[];
13
6
  cartItems: CartItem[];
@@ -20,8 +13,5 @@ export interface MarketplaceLayoutProps {
20
13
  selectedProduct?: ProductData | null;
21
14
  children?: React.ReactNode;
22
15
  className?: string;
23
- columns?: number;
24
- itemMinWidth?: string;
25
- itemMaxWidth?: string;
26
16
  }
27
17
  export declare const MarketplaceLayout: React.FC<MarketplaceLayoutProps>;
@@ -1,5 +1,5 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { PageLayout, PageHeader, PageLayoutContent } 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';
@@ -14,8 +14,8 @@ import { AllProductsView } from '../AllProductsView/AllProductsView.js';
14
14
  import { CheckoutSidebar } from '../Checkout/CheckoutSidebar.js';
15
15
  import { cn } from '../../utils/cn.js';
16
16
 
17
- const MarketplaceLayout = ({ products, cartItems, cartOpen, onCartOpenChange, onProductClick, onAddToCart, onRemoveFromCart, onProceedToCheckout, selectedProduct, children, className, columns, itemMinWidth, itemMaxWidth, }) => {
18
- 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: "centered", spacing: "lg", children: [!selectedProduct && (jsx("div", { className: "w-full mb-4", children: jsx(CommerceSidebar, { products: products, onProductClick: onProductClick, onAddToCart: onAddToCart }) })), jsxs("div", { className: "flex flex-col lg:flex-row gap-8", children: [jsx("main", { className: "flex-1", children: children ? (children) : (jsx(AllProductsView, { products: products, onProductClick: onProductClick, onAddToCart: onAddToCart, columns: columns, itemMinWidth: typeof itemMinWidth === "string" ? itemMinWidth : "220px", itemMaxWidth: typeof itemMaxWidth === "string" ? itemMaxWidth : "320px" })) }), jsx("div", { className: "w-full lg:w-[340px] xl:w-[400px] shrink-0", children: jsx(CheckoutSidebar, { cartItems: cartItems, open: typeof cartOpen === 'boolean' ? cartOpen : true, onOpenChange: onCartOpenChange || (() => { }), onRemoveItem: onRemoveFromCart, onProceedToCheckout: onProceedToCheckout }) })] })] })] }));
17
+ const MarketplaceLayout = ({ products, cartItems, cartOpen, onCartOpenChange, onProductClick, onAddToCart, onRemoveFromCart, onProceedToCheckout, selectedProduct, children, className, }) => {
18
+ 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: [!selectedProduct && (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 }) })] })] }));
19
19
  };
20
20
 
21
21
  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} 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\n/**\r\n * MarketplaceLayout\r\n * - Provides a full marketplace page layout with header, sidebar, product grid, and checkout sidebar.\r\n * - Accepts a `columns` prop, which is passed to AllProductsView to control the number of product grid columns.\r\n * - By default, AllProductsView uses responsive logic (1/2/4 columns), but consumers can override for their use case.\r\n * - All layout and sizing logic is theme-agnostic and leverages reusable components.\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 selectedProduct?: ProductData | null;\r\n children?: React.ReactNode;\r\n className?: string;\r\n columns?: number; // Passes grid columns to AllProductsView\r\n itemMinWidth?: string; // Passes min width for grid items\r\n itemMaxWidth?: string; // Passes max width for grid items\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 selectedProduct,\r\n children,\r\n className,\r\n columns,\r\n itemMinWidth,\r\n itemMaxWidth,\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=\"centered\" spacing=\"lg\">\r\n {/* Always render CommerceSidebar as a top section */}\r\n {!selectedProduct && (\r\n <div className=\"w-full mb-4\">\r\n <CommerceSidebar\r\n products={products}\r\n onProductClick={onProductClick}\r\n onAddToCart={onAddToCart}\r\n />\r\n </div>\r\n )}\r\n <div className=\"flex flex-col lg:flex-row gap-8\">\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 columns={columns}\r\n itemMinWidth={typeof itemMinWidth === \"string\" ? itemMinWidth : \"220px\"}\r\n itemMaxWidth={typeof itemMaxWidth === \"string\" ? itemMaxWidth : \"320px\"}\r\n />\r\n )}\r\n </main>\r\n <div className=\"w-full lg:w-[340px] xl:w-[400px] shrink-0\">\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 </div>\r\n </div>\r\n </PageLayoutContent>\r\n </PageLayout>\r\n );\r\n};"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;;;;;;;;;AAsCO,MAAM,iBAAiB,GAAqC,CAAC,EAClE,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,QAAQ,EACR,SAAS,EACT,OAAO,EACP,YAAY,EACZ,YAAY,GACb,KAAI;IACH,QACEA,KAAC,UAAU,EAAA,EAAC,OAAO,EAAC,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,CACnEC,GAAA,CAAC,UAAU,EAAA,EAAA,QAAA,EACTA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,+DAA+D,YAC5EA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,mBAAmB,EAAA,QAAA,EAAA,aAAA,EAAA,CAAmB,GAClD,EAAA,CACK,EACbD,KAAC,iBAAiB,EAAA,EAAC,MAAM,EAAC,UAAU,EAAC,OAAO,EAAC,IAAI,EAAA,QAAA,EAAA,CAE9C,CAAC,eAAe,KACfC,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,aAAa,YAC1BA,GAAA,CAAC,eAAe,IACd,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,WAAW,EAAA,CACxB,EAAA,CACE,CACP,EACDD,cAAK,SAAS,EAAC,iCAAiC,EAAA,QAAA,EAAA,CAC9CC,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,QAAQ,YACrB,QAAQ,IACP,QAAQ,KAERA,GAAA,CAAC,eAAe,EAAA,EACd,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,OAAO,YAAY,KAAK,QAAQ,GAAG,YAAY,GAAG,OAAO,EACvE,YAAY,EAAE,OAAO,YAAY,KAAK,QAAQ,GAAG,YAAY,GAAG,OAAO,EAAA,CACvE,CACH,EAAA,CACI,EACPA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,2CAA2C,EAAA,QAAA,EACxDA,IAAC,eAAe,EAAA,EACd,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,GACE,CAAA,EAAA,CACF,CAAA,EAAA,CACY,CAAA,EAAA,CACT;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 selectedProduct?: ProductData | null;\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 selectedProduct,\r\n children,\r\n className,\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 {!selectedProduct && (\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 )}\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":";;;;;;;;;;;;;;;;AA4BO,MAAM,iBAAiB,GAAqC,CAAC,EAClE,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,QAAQ,EACR,SAAS,GACV,KAAI;AACH,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,EAAA,QAAA,EAC5EA,cAAM,SAAS,EAAC,mBAAmB,EAAA,QAAA,EAAA,aAAA,EAAA,CAAmB,GAClD,EAAA,CACK,EACbD,KAAC,iBAAiB,EAAA,EAAC,MAAM,EAAC,SAAS,EAAC,OAAO,EAAC,IAAI,EAAA,QAAA,EAAA,CAC7C,CAAC,eAAe,KACfC,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,GACxB,EAAA,CACU,CACf,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,IAAC,WAAW,EAAA,EAAC,QAAQ,EAAC,OAAO,EAAC,KAAK,EAAC,IAAI,EAAA,QAAA,EACtCA,IAAC,eAAe,EAAA,EACd,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;;;;"}
package/dist/index.d.ts CHANGED
@@ -33,9 +33,7 @@ export * from './components/BlogFeedView';
33
33
  export * from './components/MarketplaceLayout';
34
34
  export * from './components/SingleBlogView';
35
35
  export * from './components/CommerceSidebar';
36
- export * from './components/Checkout';
37
- export * from './components/AllProductsView';
38
- export * from './components/SingleProductView';
36
+ export * from './components/Marketplace';
39
37
  export * from './hooks/useDarkMode';
40
38
  export * from './hooks/useDebounce';
41
39
  export * from './hooks/useLocalStorage';
package/dist/index.js CHANGED
@@ -39,11 +39,12 @@ export { BlogFeedView } from './components/BlogFeedView/BlogFeedView.js';
39
39
  export { MarketplaceLayout } from './components/MarketplaceLayout/MarketplaceLayout.js';
40
40
  export { SingleBlogView } from './components/SingleBlogView/SingleBlogView.js';
41
41
  export { CommerceSidebar } from './components/CommerceSidebar/CommerceSidebar.js';
42
- export { CheckoutSidebar } from './components/Checkout/CheckoutSidebar.js';
43
- export { CheckoutPage } from './components/Checkout/CheckoutPage.js';
44
- export { AllProductsView } from './components/AllProductsView/AllProductsView.js';
45
- export { ProductCard } from './components/AllProductsView/ProductCard.js';
46
- export { SingleProductView } from './components/SingleProductView/SingleProductView.js';
42
+ export { SingleProductView } from './components/Marketplace/SingleProductView.js';
43
+ export { AllProductsView } from './components/Marketplace/AllProductsView.js';
44
+ export { CheckoutComponent } from './components/Marketplace/CheckoutComponent.js';
45
+ export { CheckoutCompact } from './components/Marketplace/CheckoutCompact.js';
46
+ export { MarketplaceSidebar } from './components/Marketplace/MarketplaceSidebar.js';
47
+ export { MarketplaceComponent } from './components/Marketplace/MarketplaceComponent.js';
47
48
  export { useDarkMode } from './hooks/useDarkMode.js';
48
49
  export { useDebounce } from './hooks/useDebounce.js';
49
50
  export { useLocalStorage } from './hooks/useLocalStorage.js';