@rovela-ai/sdk 0.1.29 → 0.1.31
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/admin/components/AdminGuard.d.ts.map +1 -1
- package/dist/admin/components/AdminGuard.js +2 -1
- package/dist/admin/components/AdminGuard.js.map +1 -1
- package/dist/admin/components/AdminHeader.d.ts.map +1 -1
- package/dist/admin/components/AdminHeader.js +16 -1
- package/dist/admin/components/AdminHeader.js.map +1 -1
- package/dist/admin/components/AdminLayout.d.ts +2 -0
- package/dist/admin/components/AdminLayout.d.ts.map +1 -1
- package/dist/admin/components/AdminLayout.js +4 -1
- package/dist/admin/components/AdminLayout.js.map +1 -1
- package/dist/admin/components/AdminLoginForm.d.ts.map +1 -1
- package/dist/admin/components/AdminLoginForm.js +23 -1
- package/dist/admin/components/AdminLoginForm.js.map +1 -1
- package/dist/admin/components/AdminNav.d.ts.map +1 -1
- package/dist/admin/components/AdminNav.js +32 -47
- package/dist/admin/components/AdminNav.js.map +1 -1
- package/dist/admin/components/AdminSetupForm.d.ts.map +1 -1
- package/dist/admin/components/AdminSetupForm.js +31 -1
- package/dist/admin/components/AdminSetupForm.js.map +1 -1
- package/dist/admin/components/CategoryForm.d.ts.map +1 -1
- package/dist/admin/components/CategoryForm.js +45 -3
- package/dist/admin/components/CategoryForm.js.map +1 -1
- package/dist/admin/components/CategorySelect.d.ts.map +1 -1
- package/dist/admin/components/CategorySelect.js +21 -14
- package/dist/admin/components/CategorySelect.js.map +1 -1
- package/dist/admin/components/CustomerTable.d.ts.map +1 -1
- package/dist/admin/components/CustomerTable.js +46 -7
- package/dist/admin/components/CustomerTable.js.map +1 -1
- package/dist/admin/components/DeleteConfirmDialog.d.ts +0 -6
- package/dist/admin/components/DeleteConfirmDialog.d.ts.map +1 -1
- package/dist/admin/components/DeleteConfirmDialog.js +32 -1
- package/dist/admin/components/DeleteConfirmDialog.js.map +1 -1
- package/dist/admin/components/InventoryEditor.d.ts.map +1 -1
- package/dist/admin/components/InventoryEditor.js +42 -8
- package/dist/admin/components/InventoryEditor.js.map +1 -1
- package/dist/admin/components/LowStockAlert.d.ts +1 -1
- package/dist/admin/components/LowStockAlert.d.ts.map +1 -1
- package/dist/admin/components/LowStockAlert.js +25 -15
- package/dist/admin/components/LowStockAlert.js.map +1 -1
- package/dist/admin/components/OrderDetails.d.ts.map +1 -1
- package/dist/admin/components/OrderDetails.js +2 -1
- package/dist/admin/components/OrderDetails.js.map +1 -1
- package/dist/admin/components/OrderStatusChart.d.ts +1 -1
- package/dist/admin/components/OrderStatusChart.d.ts.map +1 -1
- package/dist/admin/components/OrderStatusChart.js +24 -14
- package/dist/admin/components/OrderStatusChart.js.map +1 -1
- package/dist/admin/components/OrderTable.d.ts.map +1 -1
- package/dist/admin/components/OrderTable.js +53 -9
- package/dist/admin/components/OrderTable.js.map +1 -1
- package/dist/admin/components/ProductForm.d.ts.map +1 -1
- package/dist/admin/components/ProductForm.js +97 -5
- package/dist/admin/components/ProductForm.js.map +1 -1
- package/dist/admin/components/ProductTable.d.ts.map +1 -1
- package/dist/admin/components/ProductTable.js +59 -13
- package/dist/admin/components/ProductTable.js.map +1 -1
- package/dist/admin/components/RecentOrders.d.ts +1 -1
- package/dist/admin/components/RecentOrders.d.ts.map +1 -1
- package/dist/admin/components/RecentOrders.js +24 -12
- package/dist/admin/components/RecentOrders.js.map +1 -1
- package/dist/admin/components/RefundDialog.d.ts.map +1 -1
- package/dist/admin/components/RefundDialog.js +29 -1
- package/dist/admin/components/RefundDialog.js.map +1 -1
- package/dist/admin/components/RevenueChart.d.ts +1 -1
- package/dist/admin/components/RevenueChart.d.ts.map +1 -1
- package/dist/admin/components/RevenueChart.js +15 -5
- package/dist/admin/components/RevenueChart.js.map +1 -1
- package/dist/admin/components/SEOPreview.d.ts +1 -0
- package/dist/admin/components/SEOPreview.d.ts.map +1 -1
- package/dist/admin/components/SEOPreview.js +4 -1
- package/dist/admin/components/SEOPreview.js.map +1 -1
- package/dist/admin/components/StatsCards.d.ts +1 -6
- package/dist/admin/components/StatsCards.d.ts.map +1 -1
- package/dist/admin/components/StatsCards.js +28 -20
- package/dist/admin/components/StatsCards.js.map +1 -1
- package/dist/admin/components/TagInput.d.ts.map +1 -1
- package/dist/admin/components/TagInput.js +10 -7
- package/dist/admin/components/TagInput.js.map +1 -1
- package/dist/admin/components/VariantManager.d.ts.map +1 -1
- package/dist/admin/components/VariantManager.js +56 -4
- package/dist/admin/components/VariantManager.js.map +1 -1
- package/dist/admin/styles/admin-theme.css +1308 -0
- package/dist/auth/components/ForgotPasswordForm.d.ts.map +1 -1
- package/dist/auth/components/ForgotPasswordForm.js +2 -1
- package/dist/auth/components/ForgotPasswordForm.js.map +1 -1
- package/dist/auth/components/ResetPasswordForm.d.ts.map +1 -1
- package/dist/auth/components/ResetPasswordForm.js +3 -2
- package/dist/auth/components/ResetPasswordForm.js.map +1 -1
- package/dist/auth/components/SignUpForm.d.ts.map +1 -1
- package/dist/auth/components/SignUpForm.js +2 -1
- package/dist/auth/components/SignUpForm.js.map +1 -1
- package/dist/auth/components/UserMenu.d.ts.map +1 -1
- package/dist/auth/components/UserMenu.js +3 -2
- package/dist/auth/components/UserMenu.js.map +1 -1
- package/dist/auth/components/VerifyEmailNotice.d.ts.map +1 -1
- package/dist/auth/components/VerifyEmailNotice.js +2 -1
- package/dist/auth/components/VerifyEmailNotice.js.map +1 -1
- package/dist/cart/components/AddToCartButton.d.ts.map +1 -1
- package/dist/cart/components/AddToCartButton.js +3 -2
- package/dist/cart/components/AddToCartButton.js.map +1 -1
- package/dist/cart/components/CartDrawer.d.ts.map +1 -1
- package/dist/cart/components/CartDrawer.js +2 -1
- package/dist/cart/components/CartDrawer.js.map +1 -1
- package/dist/cart/components/CartIcon.d.ts.map +1 -1
- package/dist/cart/components/CartIcon.js +2 -1
- package/dist/cart/components/CartIcon.js.map +1 -1
- package/dist/cart/components/CartItem.d.ts.map +1 -1
- package/dist/cart/components/CartItem.js +2 -1
- package/dist/cart/components/CartItem.js.map +1 -1
- package/dist/cart/components/QuantitySelector.d.ts.map +1 -1
- package/dist/cart/components/QuantitySelector.js +2 -1
- package/dist/cart/components/QuantitySelector.js.map +1 -1
- package/dist/checkout/components/CheckoutButton.d.ts.map +1 -1
- package/dist/checkout/components/CheckoutButton.js +2 -7
- package/dist/checkout/components/CheckoutButton.js.map +1 -1
- package/dist/checkout/components/CheckoutSuccess.d.ts.map +1 -1
- package/dist/checkout/components/CheckoutSuccess.js +2 -13
- package/dist/checkout/components/CheckoutSuccess.js.map +1 -1
- package/dist/media/components/DropZone.d.ts.map +1 -1
- package/dist/media/components/DropZone.js +2 -7
- package/dist/media/components/DropZone.js.map +1 -1
- package/dist/media/components/ImageGalleryUpload.d.ts.map +1 -1
- package/dist/media/components/ImageGalleryUpload.js +2 -22
- package/dist/media/components/ImageGalleryUpload.js.map +1 -1
- package/dist/media/components/ImageUpload.d.ts.map +1 -1
- package/dist/media/components/ImageUpload.js +2 -16
- package/dist/media/components/ImageUpload.js.map +1 -1
- package/dist/products/components/CategoryNav.d.ts.map +1 -1
- package/dist/products/components/CategoryNav.js +3 -2
- package/dist/products/components/CategoryNav.js.map +1 -1
- package/dist/products/components/ProductBreadcrumb.d.ts.map +1 -1
- package/dist/products/components/ProductBreadcrumb.js +2 -1
- package/dist/products/components/ProductBreadcrumb.js.map +1 -1
- package/dist/products/components/ProductCard.d.ts.map +1 -1
- package/dist/products/components/ProductCard.js +2 -1
- package/dist/products/components/ProductCard.js.map +1 -1
- package/dist/products/components/ProductDetails.d.ts.map +1 -1
- package/dist/products/components/ProductDetails.js +3 -2
- package/dist/products/components/ProductDetails.js.map +1 -1
- package/dist/products/components/ProductFilters.d.ts.map +1 -1
- package/dist/products/components/ProductFilters.js +2 -1
- package/dist/products/components/ProductFilters.js.map +1 -1
- package/dist/products/components/ProductGallery.d.ts.map +1 -1
- package/dist/products/components/ProductGallery.js +4 -3
- package/dist/products/components/ProductGallery.js.map +1 -1
- package/dist/products/components/ProductGrid.d.ts.map +1 -1
- package/dist/products/components/ProductGrid.js +2 -1
- package/dist/products/components/ProductGrid.js.map +1 -1
- package/dist/products/components/ProductSearch.d.ts.map +1 -1
- package/dist/products/components/ProductSearch.js +2 -1
- package/dist/products/components/ProductSearch.js.map +1 -1
- package/dist/products/components/ProductSort.d.ts.map +1 -1
- package/dist/products/components/ProductSort.js +2 -1
- package/dist/products/components/ProductSort.js.map +1 -1
- package/package.json +6 -2
|
@@ -3,30 +3,35 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
/**
|
|
4
4
|
* @rovela/sdk/admin/components/RecentOrders
|
|
5
5
|
*
|
|
6
|
-
* Recent orders table for dashboard with theme
|
|
6
|
+
* Recent orders table for dashboard with Rovela admin theme styling.
|
|
7
7
|
*/
|
|
8
|
+
import { useState } from 'react';
|
|
9
|
+
import { ChevronRight, ShoppingBag } from 'lucide-react';
|
|
8
10
|
import { useAdminStats } from '../hooks/useAdminStats';
|
|
9
11
|
import { useStoreSettingsOptional } from '../../core/StoreSettingsProvider';
|
|
10
12
|
// =============================================================================
|
|
11
|
-
// Status Badge
|
|
13
|
+
// Status Badge - Rovela Admin Theme
|
|
12
14
|
// =============================================================================
|
|
13
15
|
function StatusBadge({ status }) {
|
|
14
|
-
// Theme-aware status styles using CSS variables
|
|
15
16
|
const statusStyles = {
|
|
16
|
-
pending: '
|
|
17
|
-
paid: '
|
|
18
|
-
shipped: '
|
|
19
|
-
delivered: '
|
|
20
|
-
cancelled: '
|
|
21
|
-
refunded: '
|
|
17
|
+
pending: { bg: 'hsl(var(--admin-warning) / 0.1)', color: 'hsl(var(--admin-warning))' },
|
|
18
|
+
paid: { bg: 'hsl(var(--admin-success) / 0.1)', color: 'hsl(var(--admin-success))' },
|
|
19
|
+
shipped: { bg: 'hsl(var(--admin-info) / 0.1)', color: 'hsl(var(--admin-info))' },
|
|
20
|
+
delivered: { bg: 'hsl(var(--admin-primary) / 0.1)', color: 'hsl(var(--admin-primary))' },
|
|
21
|
+
cancelled: { bg: 'hsl(var(--admin-destructive) / 0.1)', color: 'hsl(var(--admin-destructive))' },
|
|
22
|
+
refunded: { bg: 'hsl(var(--admin-background-subtle))', color: 'hsl(var(--admin-foreground-muted))' },
|
|
22
23
|
};
|
|
23
|
-
|
|
24
|
+
const style = statusStyles[status] || statusStyles.refunded;
|
|
25
|
+
return (_jsx("span", { className: "admin-badge", style: {
|
|
26
|
+
background: style.bg,
|
|
27
|
+
color: style.color,
|
|
28
|
+
}, children: status.charAt(0).toUpperCase() + status.slice(1) }));
|
|
24
29
|
}
|
|
25
30
|
// =============================================================================
|
|
26
31
|
// Component
|
|
27
32
|
// =============================================================================
|
|
28
33
|
/**
|
|
29
|
-
* Recent orders widget for dashboard with
|
|
34
|
+
* Recent orders widget for dashboard with Rovela admin styling.
|
|
30
35
|
*
|
|
31
36
|
* @example
|
|
32
37
|
* ```tsx
|
|
@@ -37,6 +42,7 @@ export function RecentOrders({ limit = 5, viewAllHref = '/admin/orders', classNa
|
|
|
37
42
|
const { recentOrders, isLoading } = useAdminStats({
|
|
38
43
|
recentOrdersLimit: limit,
|
|
39
44
|
});
|
|
45
|
+
const [hoveredRow, setHoveredRow] = useState(null);
|
|
40
46
|
// Get currency from context
|
|
41
47
|
const storeSettings = useStoreSettingsOptional();
|
|
42
48
|
const resolvedCurrency = storeSettings?.currency ?? 'USD';
|
|
@@ -56,6 +62,12 @@ export function RecentOrders({ limit = 5, viewAllHref = '/admin/orders', classNa
|
|
|
56
62
|
currency: resolvedCurrency,
|
|
57
63
|
}).format(parseFloat(value));
|
|
58
64
|
};
|
|
59
|
-
return (_jsxs("div", { className: `
|
|
65
|
+
return (_jsxs("div", { className: `admin-card ${className}`, style: {
|
|
66
|
+
background: 'hsl(var(--admin-card))',
|
|
67
|
+
borderColor: 'hsl(var(--admin-border))',
|
|
68
|
+
}, children: [_jsxs("div", { className: "flex items-center justify-between px-6 py-4", style: { borderBottom: '1px solid hsl(var(--admin-border))' }, children: [_jsxs("div", { children: [_jsx("h3", { className: "text-lg font-semibold", style: { color: 'hsl(var(--admin-foreground))' }, children: "Recent Orders" }), _jsx("p", { className: "text-sm", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: "Latest customer orders" })] }), _jsxs("a", { href: viewAllHref, className: "inline-flex items-center gap-1 text-sm font-medium transition-colors", style: { color: 'hsl(var(--admin-primary))' }, children: ["View all", _jsx(ChevronRight, { className: "h-4 w-4" })] })] }), _jsx("div", { className: "overflow-x-auto", children: isLoading ? (_jsx("div", { className: "p-6", children: _jsx("div", { className: "space-y-4", children: [...Array(limit)].map((_, i) => (_jsxs("div", { className: "flex items-center gap-4", children: [_jsx("div", { className: "h-4 w-24 animate-pulse rounded", style: { background: 'hsl(var(--admin-background-subtle))' } }), _jsx("div", { className: "h-4 w-32 animate-pulse rounded", style: { background: 'hsl(var(--admin-background-subtle))' } }), _jsx("div", { className: "h-4 w-16 animate-pulse rounded", style: { background: 'hsl(var(--admin-background-subtle))' } }), _jsx("div", { className: "h-4 w-20 animate-pulse rounded", style: { background: 'hsl(var(--admin-background-subtle))' } })] }, i))) }) })) : recentOrders.length === 0 ? (_jsxs("div", { className: "flex flex-col items-center justify-center py-12 text-center", children: [_jsx(ShoppingBag, { className: "h-12 w-12", style: { color: 'hsl(var(--admin-foreground-muted) / 0.3)' }, strokeWidth: 1 }), _jsx("p", { className: "mt-4 text-sm", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: "No orders yet" }), _jsx("p", { className: "text-xs", style: { color: 'hsl(var(--admin-foreground-muted) / 0.7)' }, children: "Orders will appear here as they come in" })] })) : (_jsxs("table", { className: "admin-table w-full", children: [_jsx("thead", { children: _jsxs("tr", { style: { borderBottom: '1px solid hsl(var(--admin-border))' }, children: [_jsx("th", { className: "px-6 py-3 text-left text-xs font-medium uppercase tracking-wider", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: "Order" }), _jsx("th", { className: "px-6 py-3 text-left text-xs font-medium uppercase tracking-wider", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: "Customer" }), _jsx("th", { className: "px-6 py-3 text-left text-xs font-medium uppercase tracking-wider", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: "Status" }), _jsx("th", { className: "px-6 py-3 text-right text-xs font-medium uppercase tracking-wider", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: "Total" }), _jsx("th", { className: "px-6 py-3 text-right text-xs font-medium uppercase tracking-wider", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: "Date" })] }) }), _jsx("tbody", { children: recentOrders.map((order) => (_jsxs("tr", { className: "transition-colors", style: {
|
|
69
|
+
borderBottom: '1px solid hsl(var(--admin-border))',
|
|
70
|
+
background: hoveredRow === order.id ? 'hsl(var(--admin-background-subtle))' : 'transparent',
|
|
71
|
+
}, onMouseEnter: () => setHoveredRow(order.id), onMouseLeave: () => setHoveredRow(null), children: [_jsx("td", { className: "whitespace-nowrap px-6 py-4", children: _jsxs("a", { href: `/admin/orders/${order.id}`, className: "font-medium transition-colors", style: { color: 'hsl(var(--admin-primary))' }, children: ["#", order.id.slice(-8).toUpperCase()] }) }), _jsx("td", { className: "whitespace-nowrap px-6 py-4 text-sm", style: { color: 'hsl(var(--admin-foreground))' }, children: order.email }), _jsx("td", { className: "whitespace-nowrap px-6 py-4", children: _jsx(StatusBadge, { status: order.status }) }), _jsx("td", { className: "whitespace-nowrap px-6 py-4 text-right text-sm font-medium", style: { color: 'hsl(var(--admin-foreground))' }, children: formatCurrency(order.total) }), _jsx("td", { className: "whitespace-nowrap px-6 py-4 text-right text-sm", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: formatDate(order.createdAt) })] }, order.id))) })] })) })] }));
|
|
60
72
|
}
|
|
61
73
|
//# sourceMappingURL=RecentOrders.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecentOrders.js","sourceRoot":"","sources":["../../../src/admin/components/RecentOrders.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAA;AAG3E,gFAAgF;AAChF,
|
|
1
|
+
{"version":3,"file":"RecentOrders.js","sourceRoot":"","sources":["../../../src/admin/components/RecentOrders.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefundDialog.d.ts","sourceRoot":"","sources":["../../../src/admin/components/RefundDialog.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RefundDialog.d.ts","sourceRoot":"","sources":["../../../src/admin/components/RefundDialog.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAMjD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,UAAU,EACV,MAAM,EACN,OAAO,EACP,SAAS,GACV,EAAE,iBAAiB,kDAsOnB"}
|
|
@@ -4,8 +4,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
4
4
|
* @rovela/sdk/admin/components/RefundDialog
|
|
5
5
|
*
|
|
6
6
|
* Refund dialog with reason and confirmation.
|
|
7
|
+
* Styled with Rovela admin theme.
|
|
7
8
|
*/
|
|
8
9
|
import { useState, useCallback, useEffect } from 'react';
|
|
10
|
+
import { AlertTriangle, X } from 'lucide-react';
|
|
9
11
|
import { useAdminOrders } from '../hooks/useAdminOrders';
|
|
10
12
|
import { useStoreSettingsOptional } from '../../core/StoreSettingsProvider';
|
|
11
13
|
// =============================================================================
|
|
@@ -83,6 +85,32 @@ export function RefundDialog({ orderId, orderTotal, isOpen, onClose, onSuccess,
|
|
|
83
85
|
style: 'currency',
|
|
84
86
|
currency: resolvedCurrency,
|
|
85
87
|
}).format(total);
|
|
86
|
-
return (_jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center", children: [_jsx("div", { className: "absolute inset-0
|
|
88
|
+
return (_jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center", children: [_jsx("div", { className: "absolute inset-0", style: { background: 'rgb(0 0 0 / 0.5)', backdropFilter: 'blur(4px)' }, onClick: () => !isProcessing && onClose() }), _jsxs("div", { className: "relative w-full max-w-md mx-4", style: {
|
|
89
|
+
background: 'hsl(var(--admin-card))',
|
|
90
|
+
borderRadius: '1rem',
|
|
91
|
+
boxShadow: '0 25px 50px -12px rgb(0 0 0 / 0.15)',
|
|
92
|
+
}, children: [_jsxs("div", { className: "flex items-start gap-4 p-6", style: { borderBottom: '1px solid hsl(var(--admin-border))' }, children: [_jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-full flex-shrink-0", style: {
|
|
93
|
+
background: 'hsl(var(--admin-warning) / 0.1)',
|
|
94
|
+
color: 'hsl(var(--admin-warning))',
|
|
95
|
+
}, children: _jsx(AlertTriangle, { className: "h-5 w-5" }) }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsx("h2", { className: "text-lg font-semibold", style: { color: 'hsl(var(--admin-foreground))' }, children: "Process Refund" }), _jsxs("p", { className: "text-sm", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: ["Order #", orderId.slice(-8).toUpperCase()] })] }), _jsx("button", { onClick: onClose, disabled: isProcessing, className: "rounded-md p-1.5 transition-colors disabled:opacity-50", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: _jsx(X, { className: "h-5 w-5" }) })] }), _jsxs("form", { onSubmit: handleSubmit, children: [_jsxs("div", { className: "p-6 space-y-6", children: [error && (_jsx("div", { className: "rounded-lg px-4 py-3 text-sm", style: {
|
|
96
|
+
background: 'hsl(var(--admin-error) / 0.1)',
|
|
97
|
+
color: 'hsl(var(--admin-error))',
|
|
98
|
+
}, children: error })), _jsxs("div", { className: "rounded-lg p-4", style: { background: 'hsl(var(--admin-background-subtle))' }, children: [_jsx("p", { className: "text-sm", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: "Refund Amount" }), _jsx("p", { className: "text-2xl font-semibold mt-1", style: { color: 'hsl(var(--admin-foreground))' }, children: formattedTotal }), _jsx("p", { className: "mt-1 text-xs", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: "Full refund will be processed via Stripe" })] }), _jsxs("div", { children: [_jsxs("label", { htmlFor: "reason", className: "mb-2 block text-sm font-medium", style: { color: 'hsl(var(--admin-foreground))' }, children: ["Reason for refund ", _jsx("span", { style: { color: 'hsl(var(--admin-error))' }, children: "*" })] }), _jsx("textarea", { id: "reason", value: reason, onChange: (e) => setReason(e.target.value), placeholder: "Enter the reason for this refund...", rows: 3, required: true, disabled: isProcessing, className: "admin-input admin-textarea w-full resize-none", style: {
|
|
99
|
+
background: 'hsl(var(--admin-card))',
|
|
100
|
+
borderColor: 'hsl(var(--admin-border))',
|
|
101
|
+
color: 'hsl(var(--admin-foreground))',
|
|
102
|
+
minHeight: '5rem',
|
|
103
|
+
padding: '0.75rem',
|
|
104
|
+
} })] })] }), _jsxs("div", { className: "flex items-center gap-3 px-6 py-4", style: {
|
|
105
|
+
borderTop: '1px solid hsl(var(--admin-border))',
|
|
106
|
+
background: 'hsl(var(--admin-background-subtle) / 0.5)',
|
|
107
|
+
}, children: [_jsx("button", { type: "button", onClick: onClose, disabled: isProcessing, className: "admin-btn admin-btn-secondary flex-1 rounded-md px-4 py-2 text-sm font-medium disabled:opacity-50", style: {
|
|
108
|
+
background: 'hsl(var(--admin-card))',
|
|
109
|
+
borderColor: 'hsl(var(--admin-border))',
|
|
110
|
+
color: 'hsl(var(--admin-foreground))',
|
|
111
|
+
}, children: "Cancel" }), _jsx("button", { type: "submit", disabled: isProcessing || !reason.trim(), className: "admin-btn admin-btn-destructive flex-1 rounded-md px-4 py-2 text-sm font-medium disabled:opacity-50", style: {
|
|
112
|
+
background: 'hsl(var(--admin-error))',
|
|
113
|
+
color: 'white',
|
|
114
|
+
}, children: isProcessing ? 'Processing...' : 'Process Refund' })] })] })] })] }));
|
|
87
115
|
}
|
|
88
116
|
//# sourceMappingURL=RefundDialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefundDialog.js","sourceRoot":"","sources":["../../../src/admin/components/RefundDialog.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ
|
|
1
|
+
{"version":3,"file":"RefundDialog.js","sourceRoot":"","sources":["../../../src/admin/components/RefundDialog.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAA;AAG3E,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,OAAO,EACP,UAAU,EACV,MAAM,EACN,OAAO,EACP,SAAS,GACS;IAClB,MAAM,EAAE,aAAa,EAAE,GAAG,cAAc,EAAE,CAAA;IAE1C,4BAA4B;IAC5B,MAAM,aAAa,GAAG,wBAAwB,EAAE,CAAA;IAChD,MAAM,gBAAgB,GAAG,aAAa,EAAE,QAAQ,IAAI,KAAK,CAAA;IACzD,MAAM,cAAc,GAAG,aAAa,EAAE,MAAM,IAAI,OAAO,CAAA;IAEvD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IACxC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IACvD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEvD,uCAAuC;IACvC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,EAAE,CAAC;YACX,SAAS,CAAC,EAAE,CAAC,CAAA;YACb,QAAQ,CAAC,IAAI,CAAC,CAAA;QAChB,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAEZ,oBAAoB;IACpB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,YAAY,GAAG,CAAC,CAAgB,EAAE,EAAE;YACxC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClD,OAAO,EAAE,CAAA;YACX,CAAC;QACH,CAAC,CAAA;QAED,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;QAChD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;IAClE,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAA;IAEnC,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,EAAE,CAAkB,EAAE,EAAE;QAC5D,CAAC,CAAC,cAAc,EAAE,CAAA;QAClB,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEd,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACnB,QAAQ,CAAC,wCAAwC,CAAC,CAAA;YAClD,OAAM;QACR,CAAC;QAED,eAAe,CAAC,IAAI,CAAC,CAAA;QACrB,IAAI,CAAC;YACH,yCAAyC;YACzC,MAAM,KAAK,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;YAClF,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAA;YAE7C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;YACzE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,SAAS,EAAE,EAAE,CAAA;gBACb,OAAO,EAAE,CAAA;YACX,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,6CAA6C,CAAC,CAAA;YACzE,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,eAAe,CAAC,KAAK,CAAC,CAAA;QACxB,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;IAEpE,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAExB,MAAM,KAAK,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;IAClF,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE;QAC3D,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,gBAAgB;KAC3B,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAEhB,OAAO,CACL,eAAK,SAAS,EAAC,qDAAqD,aAElE,cACE,SAAS,EAAC,kBAAkB,EAC5B,KAAK,EAAE,EAAE,UAAU,EAAE,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,EACtE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,YAAY,IAAI,OAAO,EAAE,GACzC,EAGF,eACE,SAAS,EAAC,+BAA+B,EACzC,KAAK,EAAE;oBACL,UAAU,EAAE,wBAAwB;oBACpC,YAAY,EAAE,MAAM;oBACpB,SAAS,EAAE,qCAAqC;iBACjD,aAGD,eACE,SAAS,EAAC,4BAA4B,EACtC,KAAK,EAAE,EAAE,YAAY,EAAE,oCAAoC,EAAE,aAE7D,cACE,SAAS,EAAC,uEAAuE,EACjF,KAAK,EAAE;oCACL,UAAU,EAAE,iCAAiC;oCAC7C,KAAK,EAAE,2BAA2B;iCACnC,YAED,KAAC,aAAa,IAAC,SAAS,EAAC,SAAS,GAAG,GACjC,EACN,eAAK,SAAS,EAAC,gBAAgB,aAC7B,aACE,SAAS,EAAC,uBAAuB,EACjC,KAAK,EAAE,EAAE,KAAK,EAAE,8BAA8B,EAAE,+BAG7C,EACL,aACE,SAAS,EAAC,SAAS,EACnB,KAAK,EAAE,EAAE,KAAK,EAAE,oCAAoC,EAAE,wBAE9C,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,IACrC,IACA,EAEN,iBACE,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAC,wDAAwD,EAClE,KAAK,EAAE,EAAE,KAAK,EAAE,oCAAoC,EAAE,YAEtD,KAAC,CAAC,IAAC,SAAS,EAAC,SAAS,GAAG,GAClB,IACL,EAGN,gBAAM,QAAQ,EAAE,YAAY,aAC1B,eAAK,SAAS,EAAC,eAAe,aAC3B,KAAK,IAAI,CACR,cACE,SAAS,EAAC,8BAA8B,EACxC,KAAK,EAAE;4CACL,UAAU,EAAE,+BAA+B;4CAC3C,KAAK,EAAE,yBAAyB;yCACjC,YAEA,KAAK,GACF,CACP,EAGD,eACE,SAAS,EAAC,gBAAgB,EAC1B,KAAK,EAAE,EAAE,UAAU,EAAE,qCAAqC,EAAE,aAE5D,YACE,SAAS,EAAC,SAAS,EACnB,KAAK,EAAE,EAAE,KAAK,EAAE,oCAAoC,EAAE,8BAGpD,EACJ,YACE,SAAS,EAAC,6BAA6B,EACvC,KAAK,EAAE,EAAE,KAAK,EAAE,8BAA8B,EAAE,YAE/C,cAAc,GACb,EACJ,YACE,SAAS,EAAC,cAAc,EACxB,KAAK,EAAE,EAAE,KAAK,EAAE,oCAAoC,EAAE,yDAGpD,IACA,EAGN,0BACE,iBACE,OAAO,EAAC,QAAQ,EAChB,SAAS,EAAC,gCAAgC,EAC1C,KAAK,EAAE,EAAE,KAAK,EAAE,8BAA8B,EAAE,mCAE9B,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,kBAAU,IACvE,EACR,mBACE,EAAE,EAAC,QAAQ,EACX,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC1C,WAAW,EAAC,qCAAqC,EACjD,IAAI,EAAE,CAAC,EACP,QAAQ,QACR,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAC,+CAA+C,EACzD,KAAK,EAAE;oDACL,UAAU,EAAE,wBAAwB;oDACpC,WAAW,EAAE,0BAA0B;oDACvC,KAAK,EAAE,8BAA8B;oDACrC,SAAS,EAAE,MAAM;oDACjB,OAAO,EAAE,SAAS;iDACnB,GACD,IACE,IACF,EAGN,eACE,SAAS,EAAC,mCAAmC,EAC7C,KAAK,EAAE;oCACL,SAAS,EAAE,oCAAoC;oCAC/C,UAAU,EAAE,2CAA2C;iCACxD,aAED,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAC,mGAAmG,EAC7G,KAAK,EAAE;4CACL,UAAU,EAAE,wBAAwB;4CACpC,WAAW,EAAE,0BAA0B;4CACvC,KAAK,EAAE,8BAA8B;yCACtC,uBAGM,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EACxC,SAAS,EAAC,qGAAqG,EAC/G,KAAK,EAAE;4CACL,UAAU,EAAE,yBAAyB;4CACrC,KAAK,EAAE,OAAO;yCACf,YAEA,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,GAC3C,IACL,IACD,IACH,IACF,CACP,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RevenueChart.d.ts","sourceRoot":"","sources":["../../../src/admin/components/RevenueChart.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RevenueChart.d.ts","sourceRoot":"","sources":["../../../src/admin/components/RevenueChart.tsx"],"names":[],"mappings":"AAuBA,MAAM,WAAW,iBAAiB;IAChC,0BAA0B;IAC1B,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACzC,oBAAoB;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AA0DD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,SAAiB,EACjB,QAAgB,EAChB,SAAc,GACf,EAAE,iBAAiB,2CAyInB"}
|
|
@@ -3,8 +3,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
/**
|
|
4
4
|
* @rovela/sdk/admin/components/RevenueChart
|
|
5
5
|
*
|
|
6
|
-
* 30-day revenue line chart for dashboard.
|
|
6
|
+
* 30-day revenue line chart for dashboard with Rovela admin theme.
|
|
7
7
|
*/
|
|
8
|
+
import { BarChart3 } from 'lucide-react';
|
|
8
9
|
import { Area, AreaChart, CartesianGrid, ResponsiveContainer, Tooltip, XAxis, YAxis, } from 'recharts';
|
|
9
10
|
function CustomTooltip({ active, payload, label, currency }) {
|
|
10
11
|
if (!active || !payload || !payload.length)
|
|
@@ -24,13 +25,19 @@ function CustomTooltip({ active, payload, label, currency }) {
|
|
|
24
25
|
day: 'numeric',
|
|
25
26
|
});
|
|
26
27
|
};
|
|
27
|
-
return (_jsxs("div", { className: "rounded-lg
|
|
28
|
+
return (_jsxs("div", { className: "rounded-lg px-3 py-2", style: {
|
|
29
|
+
background: 'hsl(var(--admin-card))',
|
|
30
|
+
borderColor: 'hsl(var(--admin-border))',
|
|
31
|
+
borderWidth: '1px',
|
|
32
|
+
borderStyle: 'solid',
|
|
33
|
+
boxShadow: 'var(--admin-shadow-lg)',
|
|
34
|
+
}, children: [_jsx("p", { className: "text-xs", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: label ? formatDate(label) : '' }), _jsx("p", { className: "text-sm font-semibold", style: { color: 'hsl(var(--admin-foreground))' }, children: formatCurrency(payload[0].value) })] }));
|
|
28
35
|
}
|
|
29
36
|
// =============================================================================
|
|
30
37
|
// Component
|
|
31
38
|
// =============================================================================
|
|
32
39
|
/**
|
|
33
|
-
* Revenue chart showing last 30 days of revenue data.
|
|
40
|
+
* Revenue chart showing last 30 days of revenue data with Rovela admin styling.
|
|
34
41
|
*
|
|
35
42
|
* @example
|
|
36
43
|
* ```tsx
|
|
@@ -60,11 +67,14 @@ export function RevenueChart({ data, isLoading = false, currency = 'USD', classN
|
|
|
60
67
|
}
|
|
61
68
|
return '';
|
|
62
69
|
};
|
|
63
|
-
return (_jsxs("div", { className: `
|
|
70
|
+
return (_jsxs("div", { className: `admin-card ${className}`, style: {
|
|
71
|
+
background: 'hsl(var(--admin-card))',
|
|
72
|
+
borderColor: 'hsl(var(--admin-border))',
|
|
73
|
+
}, children: [_jsxs("div", { className: "flex items-center justify-between px-6 py-4", style: { borderBottom: '1px solid hsl(var(--admin-border))' }, children: [_jsxs("div", { children: [_jsx("h3", { className: "text-lg font-semibold", style: { color: 'hsl(var(--admin-foreground))' }, children: "Revenue" }), _jsx("p", { className: "text-sm", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: "Last 30 days" })] }), !isLoading && (_jsxs("div", { className: "text-right", children: [_jsx("p", { className: "text-2xl font-bold", style: { color: 'hsl(var(--admin-foreground))' }, children: new Intl.NumberFormat('en-US', {
|
|
64
74
|
style: 'currency',
|
|
65
75
|
currency,
|
|
66
76
|
minimumFractionDigits: 0,
|
|
67
77
|
maximumFractionDigits: 0,
|
|
68
|
-
}).format(totalRevenue) }), _jsx("p", { className: "text-xs
|
|
78
|
+
}).format(totalRevenue) }), _jsx("p", { className: "text-xs", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: "Total" })] }))] }), _jsx("div", { className: "p-6", children: isLoading ? (_jsx("div", { className: "flex h-64 items-center justify-center", children: _jsx("div", { className: "h-8 w-8 animate-spin rounded-full border-2 border-t-transparent", style: { borderColor: 'hsl(var(--admin-primary))', borderTopColor: 'transparent' } }) })) : data.length === 0 ? (_jsxs("div", { className: "flex h-64 flex-col items-center justify-center text-center", children: [_jsx(BarChart3, { className: "h-12 w-12", style: { color: 'hsl(var(--admin-foreground-muted) / 0.3)' }, strokeWidth: 1 }), _jsx("p", { className: "mt-4 text-sm", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: "No revenue data yet" }), _jsx("p", { className: "text-xs", style: { color: 'hsl(var(--admin-foreground-muted) / 0.7)' }, children: "Revenue will appear here after your first sale" })] })) : (_jsx(ResponsiveContainer, { width: "100%", height: 256, children: _jsxs(AreaChart, { data: data, margin: { top: 10, right: 10, left: 0, bottom: 0 }, children: [_jsx("defs", { children: _jsxs("linearGradient", { id: "revenueGradient", x1: "0", y1: "0", x2: "0", y2: "1", children: [_jsx("stop", { offset: "0%", stopColor: "hsl(var(--admin-primary))", stopOpacity: 0.3 }), _jsx("stop", { offset: "100%", stopColor: "hsl(var(--admin-primary))", stopOpacity: 0 })] }) }), _jsx(CartesianGrid, { strokeDasharray: "3 3", vertical: false, stroke: "hsl(var(--admin-border))" }), _jsx(XAxis, { dataKey: "date", tickFormatter: tickFormatter, axisLine: false, tickLine: false, tick: { fill: 'hsl(var(--admin-foreground-muted))', fontSize: 12 }, dy: 10 }), _jsx(YAxis, { tickFormatter: formatCurrency, axisLine: false, tickLine: false, tick: { fill: 'hsl(var(--admin-foreground-muted))', fontSize: 12 }, width: 60 }), _jsx(Tooltip, { content: _jsx(CustomTooltip, { currency: currency }) }), _jsx(Area, { type: "monotone", dataKey: "revenue", stroke: "hsl(var(--admin-primary))", strokeWidth: 2, fill: "url(#revenueGradient)" })] }) })) })] }));
|
|
69
79
|
}
|
|
70
80
|
//# sourceMappingURL=RevenueChart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RevenueChart.js","sourceRoot":"","sources":["../../../src/admin/components/RevenueChart.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;GAIG;AAEH,OAAO,EACL,IAAI,EACJ,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,OAAO,EACP,KAAK,EACL,KAAK,GACN,MAAM,UAAU,CAAA;AA4BjB,SAAS,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAgB;IACvE,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAEvD,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,EAAE;QACvC,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;YACpC,KAAK,EAAE,UAAU;YACjB,QAAQ;YACR,qBAAqB,EAAE,CAAC;YACxB,qBAAqB,EAAE,CAAC;SACzB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAClB,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;YACtC,KAAK,EAAE,OAAO;YACd,GAAG,EAAE,SAAS;SACf,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,OAAO,CACL,
|
|
1
|
+
{"version":3,"file":"RevenueChart.js","sourceRoot":"","sources":["../../../src/admin/components/RevenueChart.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SEOPreview.d.ts","sourceRoot":"","sources":["../../../src/admin/components/SEOPreview.tsx"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"SEOPreview.d.ts","sourceRoot":"","sources":["../../../src/admin/components/SEOPreview.tsx"],"names":[],"mappings":"AAEA;;;;;GAKG;AAMH,MAAM,WAAW,eAAe;IAC9B,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,2BAA2B;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,WAAW,EACX,IAAI,EACJ,OAA0C,EAC1C,SAAc,GACf,EAAE,eAAe,2CAyFjB"}
|
|
@@ -25,6 +25,9 @@ export function SEOPreview({ title, description, slug, baseUrl = 'https://yourst
|
|
|
25
25
|
: description;
|
|
26
26
|
// Build URL
|
|
27
27
|
const displayUrl = `${baseUrl}/${slug || 'product-name'}`;
|
|
28
|
-
return (_jsxs("div", { className: `rounded-lg
|
|
28
|
+
return (_jsxs("div", { className: `rounded-lg p-4 ${className}`, style: {
|
|
29
|
+
background: 'hsl(var(--admin-card))',
|
|
30
|
+
border: '1px solid hsl(var(--admin-border))',
|
|
31
|
+
}, children: [_jsx("p", { className: "mb-3 text-xs font-medium uppercase tracking-wider", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: "Search Engine Preview" }), _jsxs("div", { className: "space-y-1", children: [_jsxs("div", { className: "flex items-center gap-2 text-sm", children: [_jsx("div", { className: "flex h-6 w-6 items-center justify-center rounded-full", style: { background: 'hsl(var(--admin-background-subtle))' }, children: _jsx("span", { className: "text-xs font-medium", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: "S" }) }), _jsxs("div", { className: "flex flex-col", children: [_jsx("span", { className: "text-xs", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: "Your Store" }), _jsx("span", { className: "text-xs truncate max-w-[300px]", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: displayUrl })] })] }), _jsx("h3", { className: "text-lg font-normal hover:underline cursor-pointer leading-snug", style: { color: '#1a0dab' }, children: displayTitle || 'Product Title' }), _jsx("p", { className: "text-sm leading-relaxed", style: { color: '#545454' }, children: displayDescription || 'Add a meta description to help search engines understand what this product is about and to entice users to click.' })] }), _jsxs("div", { className: "mt-4 flex gap-6 pt-3", style: { borderTop: '1px solid hsl(var(--admin-border))' }, children: [_jsxs("div", { className: "text-xs", children: [_jsx("span", { style: { color: 'hsl(var(--admin-foreground-muted))' }, children: "Title: " }), _jsxs("span", { style: { color: title.length > 60 ? 'hsl(var(--admin-error))' : 'hsl(var(--admin-foreground))' }, children: [title.length, "/60"] })] }), _jsxs("div", { className: "text-xs", children: [_jsx("span", { style: { color: 'hsl(var(--admin-foreground-muted))' }, children: "Description: " }), _jsxs("span", { style: { color: description.length > 160 ? 'hsl(var(--admin-error))' : 'hsl(var(--admin-foreground))' }, children: [description.length, "/160"] })] })] })] }));
|
|
29
32
|
}
|
|
30
33
|
//# sourceMappingURL=SEOPreview.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SEOPreview.js","sourceRoot":"","sources":["../../../src/admin/components/SEOPreview.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;
|
|
1
|
+
{"version":3,"file":"SEOPreview.js","sourceRoot":"","sources":["../../../src/admin/components/SEOPreview.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AA0BZ,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,UAAU,CAAC,EACzB,KAAK,EACL,WAAW,EACX,IAAI,EACJ,OAAO,GAAG,gCAAgC,EAC1C,SAAS,GAAG,EAAE,GACE;IAChB,4DAA4D;IAC5D,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;IAE3E,qEAAqE;IACrE,MAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM,GAAG,GAAG;QACjD,CAAC,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK;QACnC,CAAC,CAAC,WAAW,CAAA;IAEf,YAAY;IACZ,MAAM,UAAU,GAAG,GAAG,OAAO,IAAI,IAAI,IAAI,cAAc,EAAE,CAAA;IAEzD,OAAO,CACL,eACE,SAAS,EAAE,kBAAkB,SAAS,EAAE,EACxC,KAAK,EAAE;YACL,UAAU,EAAE,wBAAwB;YACpC,MAAM,EAAE,oCAAoC;SAC7C,aAED,YACE,SAAS,EAAC,mDAAmD,EAC7D,KAAK,EAAE,EAAE,KAAK,EAAE,oCAAoC,EAAE,sCAGpD,EAGJ,eAAK,SAAS,EAAC,WAAW,aAExB,eAAK,SAAS,EAAC,iCAAiC,aAC9C,cACE,SAAS,EAAC,uDAAuD,EACjE,KAAK,EAAE,EAAE,UAAU,EAAE,qCAAqC,EAAE,YAE5D,eACE,SAAS,EAAC,qBAAqB,EAC/B,KAAK,EAAE,EAAE,KAAK,EAAE,oCAAoC,EAAE,kBAGjD,GACH,EACN,eAAK,SAAS,EAAC,eAAe,aAC5B,eACE,SAAS,EAAC,SAAS,EACnB,KAAK,EAAE,EAAE,KAAK,EAAE,oCAAoC,EAAE,2BAGjD,EACP,eACE,SAAS,EAAC,gCAAgC,EAC1C,KAAK,EAAE,EAAE,KAAK,EAAE,oCAAoC,EAAE,YAErD,UAAU,GACN,IACH,IACF,EAGN,aAAI,SAAS,EAAC,iEAAiE,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,YACxG,YAAY,IAAI,eAAe,GAC7B,EAGL,YAAG,SAAS,EAAC,yBAAyB,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,YAC/D,kBAAkB,IAAI,mHAAmH,GACxI,IACA,EAGN,eACE,SAAS,EAAC,sBAAsB,EAChC,KAAK,EAAE,EAAE,SAAS,EAAE,oCAAoC,EAAE,aAE1D,eAAK,SAAS,EAAC,SAAS,aACtB,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,oCAAoC,EAAE,wBAAgB,EAC5E,gBAAM,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,8BAA8B,EAAE,aACnG,KAAK,CAAC,MAAM,WACR,IACH,EACN,eAAK,SAAS,EAAC,SAAS,aACtB,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,oCAAoC,EAAE,8BAAsB,EAClF,gBAAM,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,8BAA8B,EAAE,aAC1G,WAAW,CAAC,MAAM,YACd,IACH,IACF,IACF,CACP,CAAA;AACH,CAAC"}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @rovela/sdk/admin/components/StatsCards
|
|
3
|
-
*
|
|
4
|
-
* Dashboard statistics cards with elegant design and theme-aware colors.
|
|
5
|
-
*/
|
|
6
1
|
import type { StatsCardsProps } from '../types';
|
|
7
2
|
/**
|
|
8
|
-
* Dashboard statistics cards showing key metrics with
|
|
3
|
+
* Dashboard statistics cards showing key metrics with Rovela admin styling.
|
|
9
4
|
*
|
|
10
5
|
* @example
|
|
11
6
|
* ```tsx
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatsCards.d.ts","sourceRoot":"","sources":["../../../src/admin/components/StatsCards.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"StatsCards.d.ts","sourceRoot":"","sources":["../../../src/admin/components/StatsCards.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAiG/C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,SAAiB,EACjB,QAAgB,EAChB,SAAc,GACf,EAAE,eAAe,2CAwDjB"}
|
|
@@ -1,25 +1,33 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
3
|
+
/**
|
|
4
|
+
* @rovela/sdk/admin/components/StatsCards
|
|
5
|
+
*
|
|
6
|
+
* Dashboard statistics cards with Rovela admin theme styling.
|
|
7
|
+
*/
|
|
8
|
+
import { useState } from 'react';
|
|
9
|
+
import { DollarSign, ShoppingBag, Users, Package, ChevronRight } from 'lucide-react';
|
|
10
|
+
function StatsCardItem({ label, value, format, icon: Icon, href, isLoading }) {
|
|
11
|
+
const [isHovered, setIsHovered] = useState(false);
|
|
12
|
+
return (_jsxs("a", { href: href, className: "admin-card group relative overflow-hidden p-6", style: {
|
|
13
|
+
background: 'hsl(var(--admin-card))',
|
|
14
|
+
borderColor: isHovered ? 'hsl(var(--admin-primary))' : 'hsl(var(--admin-border))',
|
|
15
|
+
transform: isHovered ? 'translateY(-2px)' : 'translateY(0)',
|
|
16
|
+
boxShadow: isHovered ? 'var(--admin-shadow-lg)' : 'var(--admin-shadow)',
|
|
17
|
+
transition: 'all 0.2s ease',
|
|
18
|
+
}, onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), children: [_jsx("div", { className: "absolute inset-0 opacity-0 transition-opacity duration-200", style: {
|
|
19
|
+
background: 'linear-gradient(to bottom right, hsl(var(--admin-primary) / 0.05), transparent)',
|
|
20
|
+
opacity: isHovered ? 1 : 0,
|
|
21
|
+
} }), _jsxs("div", { className: "relative flex items-start justify-between", children: [_jsxs("div", { className: "space-y-2", children: [_jsx("p", { className: "text-sm font-medium", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: label }), isLoading ? (_jsx("div", { className: "h-9 w-28 animate-pulse rounded-md", style: { background: 'hsl(var(--admin-background-subtle))' } })) : (_jsx("p", { className: "text-3xl font-bold tracking-tight", style: { color: 'hsl(var(--admin-foreground))' }, children: format(value) }))] }), _jsx("div", { className: "rounded-xl p-3 transition-colors", style: {
|
|
22
|
+
background: isHovered ? 'hsl(var(--admin-primary) / 0.15)' : 'hsl(var(--admin-primary) / 0.1)',
|
|
23
|
+
color: 'hsl(var(--admin-primary))',
|
|
24
|
+
}, children: _jsx(Icon, { className: "h-6 w-6" }) })] }), _jsxs("div", { className: "relative mt-4 flex items-center text-xs font-medium transition-colors", style: { color: isHovered ? 'hsl(var(--admin-primary))' : 'hsl(var(--admin-foreground-muted))' }, children: [_jsx("span", { children: "View details" }), _jsx(ChevronRight, { className: "ml-1 h-3 w-3 transition-transform", style: { transform: isHovered ? 'translateX(2px)' : 'translateX(0)' } })] })] }));
|
|
17
25
|
}
|
|
18
26
|
// =============================================================================
|
|
19
27
|
// Component
|
|
20
28
|
// =============================================================================
|
|
21
29
|
/**
|
|
22
|
-
* Dashboard statistics cards showing key metrics with
|
|
30
|
+
* Dashboard statistics cards showing key metrics with Rovela admin styling.
|
|
23
31
|
*
|
|
24
32
|
* @example
|
|
25
33
|
* ```tsx
|
|
@@ -47,31 +55,31 @@ export function StatsCards({ stats, isLoading = false, currency = 'USD', classNa
|
|
|
47
55
|
label: 'Total Revenue',
|
|
48
56
|
value: stats?.revenue ?? 0,
|
|
49
57
|
format: formatCurrency,
|
|
50
|
-
icon:
|
|
58
|
+
icon: DollarSign,
|
|
51
59
|
href: '/admin/orders',
|
|
52
60
|
},
|
|
53
61
|
{
|
|
54
62
|
label: 'Total Orders',
|
|
55
63
|
value: stats?.orders ?? 0,
|
|
56
64
|
format: (v) => v.toLocaleString(),
|
|
57
|
-
icon:
|
|
65
|
+
icon: ShoppingBag,
|
|
58
66
|
href: '/admin/orders',
|
|
59
67
|
},
|
|
60
68
|
{
|
|
61
69
|
label: 'Customers',
|
|
62
70
|
value: stats?.customers ?? 0,
|
|
63
71
|
format: (v) => v.toLocaleString(),
|
|
64
|
-
icon:
|
|
72
|
+
icon: Users,
|
|
65
73
|
href: '/admin/customers',
|
|
66
74
|
},
|
|
67
75
|
{
|
|
68
76
|
label: 'Products',
|
|
69
77
|
value: stats?.products ?? 0,
|
|
70
78
|
format: (v) => v.toLocaleString(),
|
|
71
|
-
icon:
|
|
79
|
+
icon: Package,
|
|
72
80
|
href: '/admin/products',
|
|
73
81
|
},
|
|
74
82
|
];
|
|
75
|
-
return (_jsx("div", { className: `grid gap-4 sm:grid-cols-2 lg:grid-cols-4 ${className}`, children: cards.map((card) => (
|
|
83
|
+
return (_jsx("div", { className: `grid gap-4 sm:grid-cols-2 lg:grid-cols-4 ${className}`, children: cards.map((card) => (_jsx(StatsCardItem, { label: card.label, value: card.value, format: card.format, icon: card.icon, href: card.href, isLoading: isLoading }, card.label))) }));
|
|
76
84
|
}
|
|
77
85
|
//# sourceMappingURL=StatsCards.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatsCards.js","sourceRoot":"","sources":["../../../src/admin/components/StatsCards.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;
|
|
1
|
+
{"version":3,"file":"StatsCards.js","sourceRoot":"","sources":["../../../src/admin/components/StatsCards.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TagInput.d.ts","sourceRoot":"","sources":["../../../src/admin/components/TagInput.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TagInput.d.ts","sourceRoot":"","sources":["../../../src/admin/components/TagInput.tsx"],"names":[],"mappings":"AAgBA,MAAM,WAAW,aAAa;IAC5B,mBAAmB;IACnB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,gCAAgC;IAChC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IAClC,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,QAAQ,EACR,WAAuC,EACvC,OAAY,EACZ,QAAgB,EAChB,SAAc,GACf,EAAE,aAAa,2CA0Gf"}
|
|
@@ -4,6 +4,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
4
4
|
* @rovela/sdk/admin/components/TagInput
|
|
5
5
|
*
|
|
6
6
|
* Tag input component for keywords, tags, etc.
|
|
7
|
+
* Styled with Rovela admin theme.
|
|
7
8
|
*/
|
|
8
9
|
import { useState, useRef, useCallback } from 'react';
|
|
9
10
|
import { X } from 'lucide-react';
|
|
@@ -60,14 +61,16 @@ export function TagInput({ value, onChange, placeholder = 'Add tag and press Ent
|
|
|
60
61
|
const handleContainerClick = useCallback(() => {
|
|
61
62
|
inputRef.current?.focus();
|
|
62
63
|
}, []);
|
|
63
|
-
return (_jsxs("div", { onClick: handleContainerClick, className: `
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
64
|
+
return (_jsxs("div", { onClick: handleContainerClick, className: `admin-input flex flex-wrap items-center gap-1.5 rounded-md px-3 py-2 ${className}`, style: {
|
|
65
|
+
background: disabled ? 'hsl(var(--admin-background-subtle))' : 'hsl(var(--admin-card))',
|
|
66
|
+
borderColor: 'hsl(var(--admin-border))',
|
|
67
|
+
cursor: disabled ? 'not-allowed' : 'text',
|
|
68
|
+
}, children: [value.map((tag) => (_jsxs("span", { className: "inline-flex items-center gap-1 rounded-md px-2 py-0.5 text-sm", style: {
|
|
69
|
+
background: 'hsl(var(--admin-primary) / 0.1)',
|
|
70
|
+
color: 'hsl(var(--admin-primary))',
|
|
71
|
+
}, children: [tag, !disabled && (_jsx("button", { type: "button", onClick: (e) => {
|
|
69
72
|
e.stopPropagation();
|
|
70
73
|
removeTag(tag);
|
|
71
|
-
}, className: "rounded hover:
|
|
74
|
+
}, className: "rounded hover:opacity-70", style: { color: 'hsl(var(--admin-primary))' }, children: _jsx(X, { className: "h-3 w-3" }) }))] }, tag))), !disabled && value.length < maxTags && (_jsx("input", { ref: inputRef, type: "text", value: inputValue, onChange: (e) => setInputValue(e.target.value), onKeyDown: handleKeyDown, onBlur: handleBlur, placeholder: value.length === 0 ? placeholder : '', className: "flex-1 min-w-[120px] border-0 bg-transparent text-sm outline-none", style: { color: 'hsl(var(--admin-foreground))' } })), value.length >= maxTags && (_jsxs("span", { className: "text-xs", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: ["Max ", maxTags, " tags"] }))] }));
|
|
72
75
|
}
|
|
73
76
|
//# sourceMappingURL=TagInput.js.map
|