@rovela-ai/sdk 0.1.31 → 0.1.33
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 +1 -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 +1 -15
- package/dist/admin/components/AdminHeader.js.map +1 -1
- package/dist/admin/components/AdminLayout.js +1 -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 +1 -18
- package/dist/admin/components/AdminLoginForm.js.map +1 -1
- package/dist/admin/components/AdminNav.d.ts +4 -1
- package/dist/admin/components/AdminNav.d.ts.map +1 -1
- package/dist/admin/components/AdminNav.js +15 -28
- 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 +1 -26
- 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 +3 -45
- 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 +4 -20
- package/dist/admin/components/CategorySelect.js.map +1 -1
- package/dist/admin/components/CustomerDetails.d.ts.map +1 -1
- package/dist/admin/components/CustomerDetails.js +16 -15
- package/dist/admin/components/CustomerDetails.js.map +1 -1
- package/dist/admin/components/CustomerTable.d.ts.map +1 -1
- package/dist/admin/components/CustomerTable.js +7 -43
- package/dist/admin/components/CustomerTable.js.map +1 -1
- package/dist/admin/components/DeleteConfirmDialog.d.ts +1 -2
- package/dist/admin/components/DeleteConfirmDialog.d.ts.map +1 -1
- package/dist/admin/components/DeleteConfirmDialog.js +1 -21
- 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 +8 -41
- package/dist/admin/components/InventoryEditor.js.map +1 -1
- package/dist/admin/components/LowStockAlert.d.ts.map +1 -1
- package/dist/admin/components/LowStockAlert.js +5 -21
- 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 +16 -15
- package/dist/admin/components/OrderDetails.js.map +1 -1
- package/dist/admin/components/OrderStatusChart.d.ts.map +1 -1
- package/dist/admin/components/OrderStatusChart.js +3 -12
- 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 +14 -53
- 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 +4 -96
- 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 +13 -53
- package/dist/admin/components/ProductTable.js.map +1 -1
- package/dist/admin/components/RecentOrders.d.ts.map +1 -1
- package/dist/admin/components/RecentOrders.js +13 -23
- 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 +1 -27
- package/dist/admin/components/RefundDialog.js.map +1 -1
- package/dist/admin/components/RevenueChart.d.ts.map +1 -1
- package/dist/admin/components/RevenueChart.js +4 -12
- package/dist/admin/components/RevenueChart.js.map +1 -1
- package/dist/admin/components/SEOPreview.d.ts.map +1 -1
- package/dist/admin/components/SEOPreview.js +1 -4
- package/dist/admin/components/SEOPreview.js.map +1 -1
- package/dist/admin/components/StatsCards.d.ts.map +1 -1
- package/dist/admin/components/StatsCards.js +2 -16
- package/dist/admin/components/StatsCards.js.map +1 -1
- package/dist/admin/components/StoreSettings.d.ts.map +1 -1
- package/dist/admin/components/StoreSettings.js +2 -1
- package/dist/admin/components/StoreSettings.js.map +1 -1
- package/dist/admin/components/TagInput.d.ts.map +1 -1
- package/dist/admin/components/TagInput.js +2 -9
- 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 +3 -54
- package/dist/admin/components/VariantManager.js.map +1 -1
- package/dist/admin/components/index.d.ts +6 -0
- package/dist/admin/components/index.d.ts.map +1 -1
- package/dist/admin/components/index.js.map +1 -1
- package/dist/admin/hooks/useAdminStats.d.ts +1 -10
- package/dist/admin/hooks/useAdminStats.d.ts.map +1 -1
- package/dist/admin/hooks/useAdminStats.js.map +1 -1
- package/dist/admin/index.d.ts +2 -2
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/styles/admin-theme.css +1660 -47
- package/dist/admin/types.d.ts +14 -0
- package/dist/admin/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,kDA4JnB"}
|
|
@@ -85,32 +85,6 @@ export function RefundDialog({ orderId, orderTotal, isOpen, onClose, onSuccess,
|
|
|
85
85
|
style: 'currency',
|
|
86
86
|
currency: resolvedCurrency,
|
|
87
87
|
}).format(total);
|
|
88
|
-
return (_jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center", children: [_jsx("div", { className: "absolute inset-0",
|
|
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' })] })] })] })] }));
|
|
88
|
+
return (_jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center", children: [_jsx("div", { className: "admin-modal-backdrop admin-modal-backdrop-animate absolute inset-0", onClick: () => !isProcessing && onClose() }), _jsxs("div", { className: "admin-modal admin-modal-animate relative w-full max-w-md mx-4", children: [_jsxs("div", { className: "admin-modal-header", children: [_jsx("div", { className: "admin-modal-icon admin-modal-icon-warning", children: _jsx(AlertTriangle, { className: "h-5 w-5" }) }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsx("h2", { className: "admin-modal-title", children: "Process Refund" }), _jsxs("p", { className: "admin-modal-description", children: ["Order #", orderId.slice(-8).toUpperCase()] })] }), _jsx("button", { onClick: onClose, disabled: isProcessing, className: "admin-btn admin-btn-ghost admin-btn-icon admin-btn-sm admin-text-muted", children: _jsx(X, { className: "h-5 w-5" }) })] }), _jsxs("form", { onSubmit: handleSubmit, children: [_jsxs("div", { className: "admin-modal-body space-y-6", children: [error && (_jsx("div", { className: "admin-alert admin-alert-error", children: _jsx("div", { className: "admin-alert-description", children: error }) })), _jsxs("div", { className: "admin-card admin-card-subtle rounded-lg p-4", children: [_jsx("p", { className: "text-sm admin-text-muted", children: "Refund Amount" }), _jsx("p", { className: "admin-heading-2 mt-1", children: formattedTotal }), _jsx("p", { className: "mt-1 text-xs admin-text-muted", children: "Full refund will be processed via Stripe" })] }), _jsxs("div", { className: "admin-form-group", children: [_jsx("label", { htmlFor: "reason", className: "admin-label admin-label-required", children: "Reason for refund" }), _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" })] })] }), _jsxs("div", { className: "admin-modal-footer", children: [_jsx("button", { type: "button", onClick: onClose, disabled: isProcessing, className: "admin-btn admin-btn-secondary flex-1", children: "Cancel" }), _jsx("button", { type: "submit", disabled: isProcessing || !reason.trim(), className: "admin-btn admin-btn-destructive flex-1", children: isProcessing ? 'Processing...' : 'Process Refund' })] })] })] })] }));
|
|
115
89
|
}
|
|
116
90
|
//# sourceMappingURL=RefundDialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefundDialog.js","sourceRoot":"","sources":["../../../src/admin/components/RefundDialog.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"RefundDialog.js","sourceRoot":"","sources":["../../../src/admin/components/RefundDialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -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":"AAwBA,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;AAiDD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,SAAiB,EACjB,QAAgB,EAChB,SAAc,GACf,EAAE,iBAAiB,2CA2GnB"}
|
|
@@ -4,6 +4,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
4
4
|
* @rovela/sdk/admin/components/RevenueChart
|
|
5
5
|
*
|
|
6
6
|
* 30-day revenue line chart for dashboard with Rovela admin theme.
|
|
7
|
+
* Uses pure CSS classes from admin-theme.css.
|
|
7
8
|
*/
|
|
8
9
|
import { BarChart3 } from 'lucide-react';
|
|
9
10
|
import { Area, AreaChart, CartesianGrid, ResponsiveContainer, Tooltip, XAxis, YAxis, } from 'recharts';
|
|
@@ -25,13 +26,7 @@ function CustomTooltip({ active, payload, label, currency }) {
|
|
|
25
26
|
day: 'numeric',
|
|
26
27
|
});
|
|
27
28
|
};
|
|
28
|
-
return (_jsxs("div", { className: "
|
|
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) })] }));
|
|
29
|
+
return (_jsxs("div", { className: "admin-chart-tooltip", children: [_jsx("p", { className: "admin-chart-tooltip-label", children: label ? formatDate(label) : '' }), _jsx("p", { className: "admin-chart-tooltip-value", children: formatCurrency(payload[0].value) })] }));
|
|
35
30
|
}
|
|
36
31
|
// =============================================================================
|
|
37
32
|
// Component
|
|
@@ -67,14 +62,11 @@ export function RevenueChart({ data, isLoading = false, currency = 'USD', classN
|
|
|
67
62
|
}
|
|
68
63
|
return '';
|
|
69
64
|
};
|
|
70
|
-
return (_jsxs("div", { className: `admin-
|
|
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', {
|
|
65
|
+
return (_jsxs("div", { className: `admin-chart ${className}`, children: [_jsxs("div", { className: "admin-chart-header", children: [_jsxs("div", { children: [_jsx("h3", { className: "admin-chart-title", children: "Revenue" }), _jsx("p", { className: "admin-chart-subtitle", children: "Last 30 days" })] }), !isLoading && (_jsxs("div", { className: "text-right", children: [_jsx("p", { className: "admin-chart-value", children: new Intl.NumberFormat('en-US', {
|
|
74
66
|
style: 'currency',
|
|
75
67
|
currency,
|
|
76
68
|
minimumFractionDigits: 0,
|
|
77
69
|
maximumFractionDigits: 0,
|
|
78
|
-
}).format(totalRevenue) }), _jsx("p", { className: "
|
|
70
|
+
}).format(totalRevenue) }), _jsx("p", { className: "admin-chart-value-label", children: "Total" })] }))] }), _jsx("div", { className: "admin-chart-body", children: isLoading ? (_jsx("div", { className: "admin-chart-loading", children: _jsx("div", { className: "admin-chart-spinner" }) })) : data.length === 0 ? (_jsxs("div", { className: "admin-chart-empty", children: [_jsx(BarChart3, { className: "h-12 w-12 admin-chart-empty-icon", strokeWidth: 1 }), _jsx("p", { className: "admin-chart-empty-text", children: "No revenue data yet" }), _jsx("p", { className: "admin-chart-empty-subtext", 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)" })] }) })) })] }));
|
|
79
71
|
}
|
|
80
72
|
//# 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
|
|
1
|
+
{"version":3,"file":"RevenueChart.js","sourceRoot":"","sources":["../../../src/admin/components/RevenueChart.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,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,eAAK,SAAS,EAAC,qBAAqB,aAClC,YAAG,SAAS,EAAC,2BAA2B,YACrC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAC7B,EACJ,YAAG,SAAS,EAAC,2BAA2B,YACrC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAC/B,IACA,CACP,CAAA;AACH,CAAC;AAED,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,IAAI,EACJ,SAAS,GAAG,KAAK,EACjB,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,EAAE,GACI;IAClB,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,EAAE;QACvC,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;YACpC,KAAK,EAAE,UAAU;YACjB,QAAQ;YACR,QAAQ,EAAE,SAAS;YACnB,qBAAqB,EAAE,CAAC;YACxB,qBAAqB,EAAE,CAAC;SACzB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAClB,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,EAAE;QACtC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAA;IAC7E,CAAC,CAAA;IAED,0BAA0B;IAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IAEtE,wDAAwD;IACxD,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,KAAa,EAAE,EAAE;QACrD,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,OAAO,WAAW,CAAC,KAAK,CAAC,CAAA;QAC3B,CAAC;QACD,OAAO,EAAE,CAAA;IACX,CAAC,CAAA;IAED,OAAO,CACL,eAAK,SAAS,EAAE,eAAe,SAAS,EAAE,aAExC,eAAK,SAAS,EAAC,oBAAoB,aACjC,0BACE,aAAI,SAAS,EAAC,mBAAmB,wBAAa,EAC9C,YAAG,SAAS,EAAC,sBAAsB,6BAAiB,IAChD,EACL,CAAC,SAAS,IAAI,CACb,eAAK,SAAS,EAAC,YAAY,aACzB,YAAG,SAAS,EAAC,mBAAmB,YAC7B,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;oCAC9B,KAAK,EAAE,UAAU;oCACjB,QAAQ;oCACR,qBAAqB,EAAE,CAAC;oCACxB,qBAAqB,EAAE,CAAC;iCACzB,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GACrB,EACJ,YAAG,SAAS,EAAC,yBAAyB,sBAAU,IAC5C,CACP,IACG,EAGN,cAAK,SAAS,EAAC,kBAAkB,YAC9B,SAAS,CAAC,CAAC,CAAC,CACX,cAAK,SAAS,EAAC,qBAAqB,YAClC,cAAK,SAAS,EAAC,qBAAqB,GAAG,GACnC,CACP,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACtB,eAAK,SAAS,EAAC,mBAAmB,aAChC,KAAC,SAAS,IAAC,SAAS,EAAC,kCAAkC,EAAC,WAAW,EAAE,CAAC,GAAI,EAC1E,YAAG,SAAS,EAAC,wBAAwB,oCAAwB,EAC7D,YAAG,SAAS,EAAC,2BAA2B,+DAEpC,IACA,CACP,CAAC,CAAC,CAAC,CACF,KAAC,mBAAmB,IAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAE,GAAG,YAC3C,MAAC,SAAS,IAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,aACvE,yBACE,0BAAgB,EAAE,EAAC,iBAAiB,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,aAC9D,eAAM,MAAM,EAAC,IAAI,EAAC,SAAS,EAAC,2BAA2B,EAAC,WAAW,EAAE,GAAG,GAAI,EAC5E,eAAM,MAAM,EAAC,MAAM,EAAC,SAAS,EAAC,2BAA2B,EAAC,WAAW,EAAE,CAAC,GAAI,IAC7D,GACZ,EACP,KAAC,aAAa,IACZ,eAAe,EAAC,KAAK,EACrB,QAAQ,EAAE,KAAK,EACf,MAAM,EAAC,0BAA0B,GACjC,EACF,KAAC,KAAK,IACJ,OAAO,EAAC,MAAM,EACd,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,KAAK,EACf,IAAI,EAAE,EAAE,IAAI,EAAE,oCAAoC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAClE,EAAE,EAAE,EAAE,GACN,EACF,KAAC,KAAK,IACJ,aAAa,EAAE,cAAc,EAC7B,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,KAAK,EACf,IAAI,EAAE,EAAE,IAAI,EAAE,oCAAoC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAClE,KAAK,EAAE,EAAE,GACT,EACF,KAAC,OAAO,IAAC,OAAO,EAAE,KAAC,aAAa,IAAC,QAAQ,EAAE,QAAQ,GAAI,GAAI,EAC3D,KAAC,IAAI,IACH,IAAI,EAAC,UAAU,EACf,OAAO,EAAC,SAAS,EACjB,MAAM,EAAC,2BAA2B,EAClC,WAAW,EAAE,CAAC,EACd,IAAI,EAAC,uBAAuB,GAC5B,IACQ,GACQ,CACvB,GACG,IACF,CACP,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,2CA6DjB"}
|
|
@@ -25,9 +25,6 @@ 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: `
|
|
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"] })] })] })] }));
|
|
28
|
+
return (_jsxs("div", { className: `admin-card ${className}`, children: [_jsx("p", { className: "mb-3 text-xs font-medium uppercase tracking-wider admin-text-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: "admin-seo-preview-favicon admin-avatar-sm", children: _jsx("span", { className: "text-xs font-medium admin-text-muted", children: "S" }) }), _jsxs("div", { className: "flex flex-col", children: [_jsx("span", { className: "text-xs admin-text-muted", children: "Your Store" }), _jsx("span", { className: "admin-seo-preview-url text-xs truncate max-w-[300px]", children: displayUrl })] })] }), _jsx("h3", { className: "admin-seo-preview-title text-lg font-normal hover:underline cursor-pointer leading-snug", children: displayTitle || 'Product Title' }), _jsx("p", { className: "admin-seo-preview-description text-sm leading-relaxed", 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: "admin-summary-divider mt-4 flex gap-6 pt-3", children: [_jsxs("div", { className: "text-xs", children: [_jsx("span", { className: "admin-text-muted", children: "Title: " }), _jsxs("span", { className: title.length > 60 ? 'admin-text-error' : 'admin-text', children: [title.length, "/60"] })] }), _jsxs("div", { className: "text-xs", children: [_jsx("span", { className: "admin-text-muted", children: "Description: " }), _jsxs("span", { className: description.length > 160 ? 'admin-text-error' : 'admin-text', children: [description.length, "/160"] })] })] })] }));
|
|
32
29
|
}
|
|
33
30
|
//# sourceMappingURL=SEOPreview.js.map
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,eAAK,SAAS,EAAE,cAAc,SAAS,EAAE,aACvC,YAAG,SAAS,EAAC,oEAAoE,sCAE7E,EAGJ,eAAK,SAAS,EAAC,WAAW,aAExB,eAAK,SAAS,EAAC,iCAAiC,aAC9C,cAAK,SAAS,EAAC,2CAA2C,YACxD,eAAM,SAAS,EAAC,sCAAsC,kBAAS,GAC3D,EACN,eAAK,SAAS,EAAC,eAAe,aAC5B,eAAM,SAAS,EAAC,0BAA0B,2BAAkB,EAC5D,eAAM,SAAS,EAAC,sDAAsD,YACnE,UAAU,GACN,IACH,IACF,EAGN,aAAI,SAAS,EAAC,yFAAyF,YACpG,YAAY,IAAI,eAAe,GAC7B,EAGL,YAAG,SAAS,EAAC,uDAAuD,YACjE,kBAAkB,IAAI,mHAAmH,GACxI,IACA,EAGN,eAAK,SAAS,EAAC,4CAA4C,aACzD,eAAK,SAAS,EAAC,SAAS,aACtB,eAAM,SAAS,EAAC,kBAAkB,wBAAe,EACjD,gBAAM,SAAS,EAAE,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,YAAY,aACnE,KAAK,CAAC,MAAM,WACR,IACH,EACN,eAAK,SAAS,EAAC,SAAS,aACtB,eAAM,SAAS,EAAC,kBAAkB,8BAAqB,EACvD,gBAAM,SAAS,EAAE,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,YAAY,aAC1E,WAAW,CAAC,MAAM,YACd,IACH,IACF,IACF,CACP,CAAA;AACH,CAAC"}
|
|
@@ -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":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAoD/C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,SAAiB,EACjB,QAAgB,EAChB,SAAc,GACf,EAAE,eAAe,2CAyDjB"}
|
|
@@ -5,23 +5,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
5
5
|
*
|
|
6
6
|
* Dashboard statistics cards with Rovela admin theme styling.
|
|
7
7
|
*/
|
|
8
|
-
import { useState } from 'react';
|
|
9
8
|
import { DollarSign, ShoppingBag, Users, Package, ChevronRight } from 'lucide-react';
|
|
10
9
|
function StatsCardItem({ label, value, format, icon: Icon, href, isLoading }) {
|
|
11
|
-
|
|
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)' } })] })] }));
|
|
10
|
+
return (_jsxs("a", { href: href, className: "admin-stat-card admin-card-interactive group", children: [_jsxs("div", { className: "relative flex items-start justify-between", children: [_jsxs("div", { className: "space-y-2", children: [_jsx("p", { className: "admin-stat-label", children: label }), isLoading ? (_jsx("div", { className: "admin-skeleton h-9 w-28" })) : (_jsx("p", { className: "admin-stat-value", children: format(value) }))] }), _jsx("div", { className: "admin-stat-icon", children: _jsx(Icon, { className: "h-6 w-6" }) })] }), _jsxs("div", { className: "admin-stat-link mt-4", children: [_jsx("span", { children: "View details" }), _jsx(ChevronRight, { className: "ml-1 h-3 w-3 admin-chevron-animate" })] })] }));
|
|
25
11
|
}
|
|
26
12
|
// =============================================================================
|
|
27
13
|
// Component
|
|
@@ -80,6 +66,6 @@ export function StatsCards({ stats, isLoading = false, currency = 'USD', classNa
|
|
|
80
66
|
href: '/admin/products',
|
|
81
67
|
},
|
|
82
68
|
];
|
|
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))) }));
|
|
69
|
+
return (_jsx("div", { className: `grid gap-4 sm:grid-cols-2 lg:grid-cols-4 ${className}`, children: cards.map((card, index) => (_jsx("div", { className: `admin-animate-fade-up admin-stagger-${index + 1}`, children: _jsx(StatsCardItem, { label: card.label, value: card.value, format: card.format, icon: card.icon, href: card.href, isLoading: isLoading }) }, card.label))) }));
|
|
84
70
|
}
|
|
85
71
|
//# sourceMappingURL=StatsCards.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatsCards.js","sourceRoot":"","sources":["../../../src/admin/components/StatsCards.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;GAIG;AAEH,OAAO,EAAE,
|
|
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":"StoreSettings.d.ts","sourceRoot":"","sources":["../../../src/admin/components/StoreSettings.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"StoreSettings.d.ts","sourceRoot":"","sources":["../../../src/admin/components/StoreSettings.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAMlD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,EAC5B,eAAe,EACf,MAAM,EACN,SAAc,GACf,EAAE,kBAAkB,2CAwQpB"}
|
|
@@ -4,6 +4,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
4
4
|
* @rovela/sdk/admin/components/StoreSettings
|
|
5
5
|
*
|
|
6
6
|
* Store settings management component.
|
|
7
|
+
* Styled with Rovela admin theme.
|
|
7
8
|
*/
|
|
8
9
|
import { useState, useCallback } from 'react';
|
|
9
10
|
// =============================================================================
|
|
@@ -86,6 +87,6 @@ export function StoreSettings({ initialSettings, onSave, className = '', }) {
|
|
|
86
87
|
'Asia/Tokyo',
|
|
87
88
|
'Australia/Sydney',
|
|
88
89
|
];
|
|
89
|
-
return (_jsxs("form", { onSubmit: handleSubmit, className: `space-y-6 ${className}`, children: [error && (_jsx("div", { className: "
|
|
90
|
+
return (_jsxs("form", { onSubmit: handleSubmit, className: `space-y-6 ${className}`, children: [error && (_jsx("div", { className: "admin-alert admin-alert-error", children: _jsx("div", { className: "admin-alert-description", children: error }) })), success && (_jsx("div", { className: "admin-alert admin-alert-success", children: _jsx("div", { className: "admin-alert-description", children: "Settings saved successfully!" }) })), _jsxs("div", { className: "admin-card rounded-lg p-6", children: [_jsx("h3", { className: "admin-card-title mb-4", children: "General Settings" }), _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsx("label", { htmlFor: "storeName", className: "admin-label", children: "Store Name" }), _jsx("input", { id: "storeName", name: "storeName", type: "text", value: settings.storeName, onChange: handleChange, className: "admin-input mt-1 w-full" })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "storeEmail", className: "admin-label", children: "Store Email" }), _jsx("input", { id: "storeEmail", name: "storeEmail", type: "email", value: settings.storeEmail, onChange: handleChange, className: "admin-input mt-1 w-full" })] }), _jsxs("div", { className: "grid gap-4 sm:grid-cols-2", children: [_jsxs("div", { children: [_jsx("label", { htmlFor: "storeCurrency", className: "admin-label", children: "Currency" }), _jsx("select", { id: "storeCurrency", name: "storeCurrency", value: settings.storeCurrency, onChange: handleChange, className: "admin-input admin-select mt-1 w-full", children: currencies.map((c) => (_jsxs("option", { value: c.code, children: [c.code, " - ", c.name] }, c.code))) })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "storeTimezone", className: "admin-label", children: "Timezone" }), _jsx("select", { id: "storeTimezone", name: "storeTimezone", value: settings.storeTimezone, onChange: handleChange, className: "admin-input admin-select mt-1 w-full", children: timezones.map((tz) => (_jsx("option", { value: tz, children: tz }, tz))) })] })] })] })] }), _jsxs("div", { className: "admin-card rounded-lg p-6", children: [_jsx("h3", { className: "admin-card-title mb-4", children: "Tax Settings" }), _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { children: [_jsx("p", { className: "admin-text font-medium", children: "Enable Tax" }), _jsx("p", { className: "admin-text-muted text-sm", children: "Charge tax on orders" })] }), _jsx("button", { type: "button", role: "switch", "aria-checked": settings.taxEnabled, onClick: () => setSettings((prev) => ({ ...prev, taxEnabled: !prev.taxEnabled })), className: "admin-toggle-switch", "data-checked": settings.taxEnabled, children: _jsx("span", { className: "admin-toggle-thumb" }) })] }), settings.taxEnabled && (_jsxs("div", { children: [_jsx("label", { htmlFor: "taxRate", className: "admin-label", children: "Default Tax Rate (%)" }), _jsx("input", { id: "taxRate", name: "taxRate", type: "number", step: "0.01", min: "0", max: "100", value: settings.taxRate, onChange: handleChange, className: "admin-input mt-1 w-32" })] }))] })] }), _jsxs("div", { className: "admin-card rounded-lg p-6", children: [_jsx("h3", { className: "admin-card-title mb-4", children: "Shipping Settings" }), _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { children: [_jsx("p", { className: "admin-text font-medium", children: "Enable Shipping" }), _jsx("p", { className: "admin-text-muted text-sm", children: "Charge shipping on orders" })] }), _jsx("button", { type: "button", role: "switch", "aria-checked": settings.shippingEnabled, onClick: () => setSettings((prev) => ({ ...prev, shippingEnabled: !prev.shippingEnabled })), className: "admin-toggle-switch", "data-checked": settings.shippingEnabled, children: _jsx("span", { className: "admin-toggle-thumb" }) })] }), settings.shippingEnabled && (_jsxs("div", { children: [_jsx("label", { htmlFor: "freeShippingThreshold", className: "admin-label", children: "Free Shipping Threshold ($)" }), _jsx("p", { className: "admin-helper-text mb-1", children: "Orders above this amount qualify for free shipping (0 = disabled)" }), _jsx("input", { id: "freeShippingThreshold", name: "freeShippingThreshold", type: "number", step: "0.01", min: "0", value: settings.freeShippingThreshold, onChange: handleChange, className: "admin-input mt-1 w-32" })] }))] })] }), _jsx("div", { className: "flex justify-end", children: _jsx("button", { type: "submit", disabled: isLoading, className: "admin-btn admin-btn-primary disabled:opacity-50", children: isLoading ? 'Saving...' : 'Save Settings' }) })] }));
|
|
90
91
|
}
|
|
91
92
|
//# sourceMappingURL=StoreSettings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreSettings.js","sourceRoot":"","sources":["../../../src/admin/components/StoreSettings.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ
|
|
1
|
+
{"version":3,"file":"StoreSettings.js","sourceRoot":"","sources":["../../../src/admin/components/StoreSettings.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":"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,
|
|
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,2CA4Ff"}
|
|
@@ -61,16 +61,9 @@ export function TagInput({ value, onChange, placeholder = 'Add tag and press Ent
|
|
|
61
61
|
const handleContainerClick = useCallback(() => {
|
|
62
62
|
inputRef.current?.focus();
|
|
63
63
|
}, []);
|
|
64
|
-
return (_jsxs("div", { onClick: handleContainerClick, className: `admin-input
|
|
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) => {
|
|
64
|
+
return (_jsxs("div", { onClick: handleContainerClick, className: `admin-tag-input ${disabled ? 'admin-tag-input-disabled' : ''} ${className}`, children: [value.map((tag) => (_jsxs("span", { className: "admin-tag inline-flex items-center gap-1 rounded-md px-2 py-0.5 text-sm", children: [tag, !disabled && (_jsx("button", { type: "button", onClick: (e) => {
|
|
72
65
|
e.stopPropagation();
|
|
73
66
|
removeTag(tag);
|
|
74
|
-
}, className: "rounded hover:opacity-70",
|
|
67
|
+
}, className: "admin-icon-primary rounded hover:opacity-70", 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: "admin-tag-input-field flex-1 min-w-[120px] border-0 bg-transparent text-sm outline-none" })), value.length >= maxTags && (_jsxs("span", { className: "admin-tag-max text-xs", children: ["Max ", maxTags, " tags"] }))] }));
|
|
75
68
|
}
|
|
76
69
|
//# sourceMappingURL=TagInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TagInput.js","sourceRoot":"","sources":["../../../src/admin/components/TagInput.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACrD,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAA;AAqBhC,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,QAAQ,CAAC,EACvB,KAAK,EACL,QAAQ,EACR,WAAW,GAAG,yBAAyB,EACvC,OAAO,GAAG,EAAE,EACZ,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,EAAE,GACA;IACd,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAChD,MAAM,QAAQ,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAA;IAE/C,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,GAAW,EAAE,EAAE;QACzC,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QAC3C,IACE,UAAU;YACV,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC3B,KAAK,CAAC,MAAM,GAAG,OAAO,EACtB,CAAC;YACD,QAAQ,CAAC,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC,CAAC,CAAA;QAClC,CAAC;QACD,aAAa,CAAC,EAAE,CAAC,CAAA;IACnB,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;IAE9B,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,WAAmB,EAAE,EAAE;QACpD,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC,CAAA;IACtD,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAA;IAErB,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAwC,EAAE,EAAE;QAC7E,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;YACtB,CAAC,CAAC,cAAc,EAAE,CAAA;YAClB,MAAM,CAAC,UAAU,CAAC,CAAA;QACpB,CAAC;aAAM,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpE,iDAAiD;YACjD,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;QACpC,CAAC;aAAM,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YACzB,CAAC,CAAC,cAAc,EAAE,CAAA;YAClB,MAAM,CAAC,UAAU,CAAC,CAAA;QACpB,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;IAE1C,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;YACtB,MAAM,CAAC,UAAU,CAAC,CAAA;QACpB,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAA;IAExB,MAAM,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5C,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,CAAA;IAC3B,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CACL,eACE,OAAO,EAAE,oBAAoB,EAC7B,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"TagInput.js","sourceRoot":"","sources":["../../../src/admin/components/TagInput.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VariantManager.d.ts","sourceRoot":"","sources":["../../../src/admin/components/VariantManager.tsx"],"names":[],"mappings":"AAkBA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,SAAS,EAAE,MAAM,GAAG,EAAE,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,iFAAiF;IACjF,OAAO,EAAE,aAAa,EAAE,CAAA;IACxB,uBAAuB;IACvB,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,mCAAmC;IACnC,eAAe,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,IAAI,CAAA;IACnD,oCAAoC;IACpC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,IAAI,CAAA;IACnD,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAqED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,SAAa,EACb,SAAc,GACf,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"VariantManager.d.ts","sourceRoot":"","sources":["../../../src/admin/components/VariantManager.tsx"],"names":[],"mappings":"AAkBA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,SAAS,EAAE,MAAM,GAAG,EAAE,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,iFAAiF;IACjF,OAAO,EAAE,aAAa,EAAE,CAAA;IACxB,uBAAuB;IACvB,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,mCAAmC;IACnC,eAAe,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,IAAI,CAAA;IACnD,oCAAoC;IACpC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,IAAI,CAAA;IACnD,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAqED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,SAAa,EACb,SAAc,GACf,EAAE,mBAAmB,2CA6ZrB"}
|
|
@@ -193,26 +193,12 @@ export function VariantManager({ options, variants, onOptionsChange, onVariantsC
|
|
|
193
193
|
};
|
|
194
194
|
onVariantsChange(newVariants);
|
|
195
195
|
}, [variants, onVariantsChange]);
|
|
196
|
-
return (_jsxs("div", { className: `space-y-6 ${className}`, children: [_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("h4", { className: "text-sm font-medium",
|
|
197
|
-
background: 'hsl(var(--admin-card) / 0.5)',
|
|
198
|
-
border: '1px solid hsl(var(--admin-border))',
|
|
199
|
-
}, children: [_jsxs("div", { className: "flex items-center justify-between mb-3", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(GripVertical, { className: "h-4 w-4", style: { color: 'hsl(var(--admin-foreground-muted))' } }), _jsx("span", { className: "font-medium text-sm", style: { color: 'hsl(var(--admin-foreground))' }, children: option.name })] }), _jsx("button", { type: "button", onClick: () => handleRemoveOption(optionIndex), className: "rounded p-1 transition-colors", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: _jsx(Trash2, { className: "h-4 w-4" }) })] }), _jsx("div", { className: "flex flex-wrap gap-2 mb-3", children: option.values.map((value, valueIndex) => (_jsxs("span", { className: "inline-flex items-center gap-1 rounded-full px-3 py-1 text-sm", style: {
|
|
200
|
-
background: 'hsl(var(--admin-primary) / 0.1)',
|
|
201
|
-
color: 'hsl(var(--admin-primary))',
|
|
202
|
-
}, children: [value, _jsx("button", { type: "button", onClick: () => handleRemoveValue(optionIndex, valueIndex), className: "rounded-full hover:opacity-70", style: { color: 'hsl(var(--admin-primary))' }, children: _jsx(X, { className: "h-3 w-3" }) })] }, valueIndex))) }), _jsxs("div", { className: "flex gap-2", children: [_jsx("input", { type: "text", value: newValueInputs[optionIndex] || '', onChange: (e) => setNewValueInputs({ ...newValueInputs, [optionIndex]: e.target.value }), onKeyDown: (e) => {
|
|
196
|
+
return (_jsxs("div", { className: `space-y-6 ${className}`, children: [_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("h4", { className: "admin-text text-sm font-medium", children: "Option Types" }), options.length < 3 && (_jsxs("span", { className: "admin-text-muted text-xs", children: ["Add up to ", 3 - options.length, " more option", 3 - options.length !== 1 ? 's' : ''] }))] }), options.map((option, optionIndex) => (_jsxs("div", { className: "admin-option-card rounded-lg p-4", children: [_jsxs("div", { className: "flex items-center justify-between mb-3", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(GripVertical, { className: "h-4 w-4 admin-icon-muted" }), _jsx("span", { className: "admin-text font-medium text-sm", children: option.name })] }), _jsx("button", { type: "button", onClick: () => handleRemoveOption(optionIndex), className: "admin-icon-muted rounded p-1 transition-colors hover:opacity-70", children: _jsx(Trash2, { className: "h-4 w-4" }) })] }), _jsx("div", { className: "flex flex-wrap gap-2 mb-3", children: option.values.map((value, valueIndex) => (_jsxs("span", { className: "admin-value-tag inline-flex items-center gap-1 rounded-full px-3 py-1 text-sm", children: [value, _jsx("button", { type: "button", onClick: () => handleRemoveValue(optionIndex, valueIndex), className: "admin-icon-primary rounded-full hover:opacity-70", children: _jsx(X, { className: "h-3 w-3" }) })] }, valueIndex))) }), _jsxs("div", { className: "flex gap-2", children: [_jsx("input", { type: "text", value: newValueInputs[optionIndex] || '', onChange: (e) => setNewValueInputs({ ...newValueInputs, [optionIndex]: e.target.value }), onKeyDown: (e) => {
|
|
203
197
|
if (e.key === 'Enter') {
|
|
204
198
|
e.preventDefault();
|
|
205
199
|
handleAddValue(optionIndex, newValueInputs[optionIndex] || '');
|
|
206
200
|
}
|
|
207
|
-
}, placeholder: `Add ${option.name.toLowerCase()} value...`, className: "admin-input flex-1 rounded-md px-3 py-1.5 text-sm",
|
|
208
|
-
background: 'hsl(var(--admin-card))',
|
|
209
|
-
borderColor: 'hsl(var(--admin-border))',
|
|
210
|
-
color: 'hsl(var(--admin-foreground))',
|
|
211
|
-
} }), _jsx("button", { type: "button", onClick: () => handleAddValue(optionIndex, newValueInputs[optionIndex] || ''), className: "admin-btn admin-btn-secondary rounded-md px-3 py-1.5 text-sm font-medium", style: {
|
|
212
|
-
background: 'hsl(var(--admin-background-subtle))',
|
|
213
|
-
borderColor: 'hsl(var(--admin-border))',
|
|
214
|
-
color: 'hsl(var(--admin-foreground))',
|
|
215
|
-
}, children: "Add" })] })] }, optionIndex))), options.length < 3 && (_jsxs("div", { className: "flex gap-2", children: [_jsxs("div", { className: "relative flex-1", ref: dropdownRef, children: [_jsxs("div", { className: "relative", children: [_jsx("input", { type: "text", value: newOptionName, onChange: (e) => {
|
|
201
|
+
}, placeholder: `Add ${option.name.toLowerCase()} value...`, className: "admin-input flex-1 rounded-md px-3 py-1.5 text-sm" }), _jsx("button", { type: "button", onClick: () => handleAddValue(optionIndex, newValueInputs[optionIndex] || ''), className: "admin-btn admin-btn-secondary admin-btn-sm", children: "Add" })] })] }, optionIndex))), options.length < 3 && (_jsxs("div", { className: "flex gap-2", children: [_jsxs("div", { className: "relative flex-1", ref: dropdownRef, children: [_jsxs("div", { className: "relative", children: [_jsx("input", { type: "text", value: newOptionName, onChange: (e) => {
|
|
216
202
|
setNewOptionName(e.target.value);
|
|
217
203
|
setShowOptionDropdown(true);
|
|
218
204
|
}, onFocus: () => setShowOptionDropdown(true), onKeyDown: (e) => {
|
|
@@ -223,43 +209,6 @@ export function VariantManager({ options, variants, onOptionsChange, onVariantsC
|
|
|
223
209
|
else if (e.key === 'Escape') {
|
|
224
210
|
setShowOptionDropdown(false);
|
|
225
211
|
}
|
|
226
|
-
}, placeholder: "Option name (e.g., Size, Color)", className: "admin-input w-full rounded-md px-3 py-2 pr-8 text-sm",
|
|
227
|
-
background: 'hsl(var(--admin-card))',
|
|
228
|
-
borderColor: 'hsl(var(--admin-border))',
|
|
229
|
-
color: 'hsl(var(--admin-foreground))',
|
|
230
|
-
} }), _jsx("button", { type: "button", onClick: () => setShowOptionDropdown(!showOptionDropdown), className: "absolute right-2 top-1/2 -translate-y-1/2 transition-colors", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: _jsx(ChevronDown, { className: `h-4 w-4 transition-transform ${showOptionDropdown ? 'rotate-180' : ''}` }) })] }), showOptionDropdown && filteredDropdownOptions.length > 0 && (_jsx("div", { className: "absolute left-0 right-0 top-full z-50 mt-1 rounded-md shadow-lg", style: {
|
|
231
|
-
background: 'hsl(var(--admin-card))',
|
|
232
|
-
border: '1px solid hsl(var(--admin-border))',
|
|
233
|
-
}, children: _jsx("ul", { className: "max-h-48 overflow-auto py-1", children: filteredDropdownOptions.map((type) => (_jsx("li", { children: _jsx("button", { type: "button", onClick: () => handleSelectOption(type), className: "w-full px-3 py-2 text-left text-sm transition-colors", style: { color: 'hsl(var(--admin-foreground))' }, children: type }) }, type))) }) }))] }), _jsxs("button", { type: "button", onClick: handleAddOption, disabled: !newOptionName.trim(), className: "admin-btn admin-btn-primary inline-flex items-center gap-2 rounded-md px-4 py-2 text-sm font-medium disabled:opacity-50", style: {
|
|
234
|
-
background: 'hsl(var(--admin-primary))',
|
|
235
|
-
color: 'white',
|
|
236
|
-
}, children: [_jsx(Plus, { className: "h-4 w-4" }), "Add Option"] })] }))] }), variants.length > 0 && (_jsxs("div", { className: "space-y-3", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("h4", { className: "text-sm font-medium", style: { color: 'hsl(var(--admin-foreground))' }, children: ["Variants (", variants.length, ")"] }), _jsxs("span", { className: "text-xs", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: ["Leave price blank to use base price (", formatPrice(Number(basePrice) || 0, { currency, locale }), ")"] })] }), _jsx("div", { className: "overflow-x-auto rounded-lg", style: { border: '1px solid hsl(var(--admin-border))' }, children: _jsxs("table", { className: "admin-table w-full text-sm", children: [_jsx("thead", { children: _jsxs("tr", { style: {
|
|
237
|
-
background: 'hsl(var(--admin-background-subtle))',
|
|
238
|
-
borderBottom: '1px solid hsl(var(--admin-border))',
|
|
239
|
-
}, children: [_jsx("th", { className: "px-4 py-3 text-left text-xs font-medium uppercase", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: "Variant" }), _jsx("th", { className: "px-4 py-3 text-left text-xs font-medium uppercase", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: "SKU" }), _jsx("th", { className: "px-4 py-3 text-left text-xs font-medium uppercase", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: "Price" }), _jsx("th", { className: "px-4 py-3 text-left text-xs font-medium uppercase", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: "Inventory" }), _jsx("th", { className: "px-4 py-3 text-left text-xs font-medium uppercase", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: "Image URL" })] }) }), _jsx("tbody", { children: variants.map((variant, index) => (_jsxs("tr", { className: "transition-colors", style: {
|
|
240
|
-
borderBottom: index < variants.length - 1 ? '1px solid hsl(var(--admin-border))' : undefined,
|
|
241
|
-
}, children: [_jsx("td", { className: "px-4 py-3 font-medium", style: { color: 'hsl(var(--admin-foreground))' }, children: variant.name || 'Variant' }), _jsx("td", { className: "px-4 py-3", children: _jsx("input", { type: "text", value: variant.sku, onChange: (e) => handleVariantChange(index, 'sku', e.target.value), className: "admin-input w-full max-w-[120px] rounded px-2 py-1 text-sm", style: {
|
|
242
|
-
background: 'hsl(var(--admin-card))',
|
|
243
|
-
borderColor: 'hsl(var(--admin-border))',
|
|
244
|
-
color: 'hsl(var(--admin-foreground))',
|
|
245
|
-
} }) }), _jsx("td", { className: "px-4 py-3", children: _jsxs("div", { className: "flex items-center gap-1", children: [_jsx("span", { style: { color: 'hsl(var(--admin-foreground-muted))' }, children: currencySymbol }), _jsx("input", { type: "number", step: "0.01", min: "0", value: variant.price ?? '', onChange: (e) => handleVariantChange(index, 'price', e.target.value ? parseFloat(e.target.value) : null), placeholder: (Number(basePrice) || 0).toFixed(2), className: "admin-input w-20 rounded px-2 py-1 text-sm", style: {
|
|
246
|
-
background: 'hsl(var(--admin-card))',
|
|
247
|
-
borderColor: 'hsl(var(--admin-border))',
|
|
248
|
-
color: 'hsl(var(--admin-foreground))',
|
|
249
|
-
} })] }) }), _jsx("td", { className: "px-4 py-3", children: _jsx("input", { type: "number", min: "0", value: variant.inventory, onChange: (e) => handleVariantChange(index, 'inventory', e.target.value === '' ? '' : parseInt(e.target.value) || 0), className: "admin-input w-20 rounded px-2 py-1 text-sm", style: {
|
|
250
|
-
background: 'hsl(var(--admin-card))',
|
|
251
|
-
borderColor: 'hsl(var(--admin-border))',
|
|
252
|
-
color: 'hsl(var(--admin-foreground))',
|
|
253
|
-
} }) }), _jsx("td", { className: "px-4 py-3", children: _jsx("input", { type: "url", value: variant.image || '', onChange: (e) => handleVariantChange(index, 'image', e.target.value), placeholder: "https://...", className: "admin-input w-40 rounded px-2 py-1 text-sm", style: {
|
|
254
|
-
background: 'hsl(var(--admin-card))',
|
|
255
|
-
borderColor: 'hsl(var(--admin-border))',
|
|
256
|
-
color: 'hsl(var(--admin-foreground))',
|
|
257
|
-
} }) })] }, index))) })] }) }), variants.some((v) => typeof v.inventory === 'number' && v.inventory <= 5 && v.inventory > 0) && (_jsxs("div", { className: "flex items-center gap-2 rounded-md px-3 py-2 text-sm", style: {
|
|
258
|
-
background: 'hsl(var(--admin-warning) / 0.1)',
|
|
259
|
-
color: 'hsl(var(--admin-warning))',
|
|
260
|
-
}, children: [_jsx(AlertCircle, { className: "h-4 w-4" }), "Some variants have low inventory"] }))] })), options.length === 0 && (_jsx("div", { className: "rounded-lg p-8 text-center", style: { border: '1px dashed hsl(var(--admin-border))' }, children: _jsx("p", { className: "text-sm", style: { color: 'hsl(var(--admin-foreground-muted))' }, children: "Add options like Size or Color to create product variants" }) })), options.length > 0 && options.some((o) => o.values.length === 0) && (_jsxs("div", { className: "flex items-center gap-2 rounded-md px-3 py-2 text-sm", style: {
|
|
261
|
-
background: 'hsl(var(--admin-warning) / 0.1)',
|
|
262
|
-
color: 'hsl(var(--admin-warning))',
|
|
263
|
-
}, children: [_jsx(AlertCircle, { className: "h-4 w-4" }), "Add values to all options to generate variants"] }))] }));
|
|
212
|
+
}, placeholder: "Option name (e.g., Size, Color)", className: "admin-input w-full rounded-md px-3 py-2 pr-8 text-sm" }), _jsx("button", { type: "button", onClick: () => setShowOptionDropdown(!showOptionDropdown), className: "admin-icon-muted absolute right-2 top-1/2 -translate-y-1/2 transition-colors", children: _jsx(ChevronDown, { className: `h-4 w-4 transition-transform ${showOptionDropdown ? 'rotate-180' : ''}` }) })] }), showOptionDropdown && filteredDropdownOptions.length > 0 && (_jsx("div", { className: "admin-select-dropdown absolute left-0 right-0 top-full z-50 mt-1 rounded-md shadow-lg", children: _jsx("ul", { className: "max-h-48 overflow-auto py-1", children: filteredDropdownOptions.map((type) => (_jsx("li", { children: _jsx("button", { type: "button", onClick: () => handleSelectOption(type), className: "admin-select-item w-full px-3 py-2 text-left text-sm transition-colors", children: type }) }, type))) }) }))] }), _jsxs("button", { type: "button", onClick: handleAddOption, disabled: !newOptionName.trim(), className: "admin-btn admin-btn-primary inline-flex items-center gap-2 disabled:opacity-50", children: [_jsx(Plus, { className: "h-4 w-4" }), "Add Option"] })] }))] }), variants.length > 0 && (_jsxs("div", { className: "space-y-3", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("h4", { className: "admin-text text-sm font-medium", children: ["Variants (", variants.length, ")"] }), _jsxs("span", { className: "admin-text-muted text-xs", children: ["Leave price blank to use base price (", formatPrice(Number(basePrice) || 0, { currency, locale }), ")"] })] }), _jsx("div", { className: "admin-table-container overflow-x-auto rounded-lg", children: _jsxs("table", { className: "admin-table w-full text-sm", children: [_jsx("thead", { children: _jsxs("tr", { className: "admin-table-header", children: [_jsx("th", { className: "px-4 py-3 text-left text-xs font-medium uppercase", children: "Variant" }), _jsx("th", { className: "px-4 py-3 text-left text-xs font-medium uppercase", children: "SKU" }), _jsx("th", { className: "px-4 py-3 text-left text-xs font-medium uppercase", children: "Price" }), _jsx("th", { className: "px-4 py-3 text-left text-xs font-medium uppercase", children: "Inventory" }), _jsx("th", { className: "px-4 py-3 text-left text-xs font-medium uppercase", children: "Image URL" })] }) }), _jsx("tbody", { children: variants.map((variant, index) => (_jsxs("tr", { className: `admin-table-row transition-colors ${index < variants.length - 1 ? 'admin-table-row-border' : ''}`, children: [_jsx("td", { className: "admin-text px-4 py-3 font-medium", children: variant.name || 'Variant' }), _jsx("td", { className: "px-4 py-3", children: _jsx("input", { type: "text", value: variant.sku, onChange: (e) => handleVariantChange(index, 'sku', e.target.value), className: "admin-input w-full max-w-[120px] rounded px-2 py-1 text-sm" }) }), _jsx("td", { className: "px-4 py-3", children: _jsxs("div", { className: "flex items-center gap-1", children: [_jsx("span", { className: "admin-text-muted", children: currencySymbol }), _jsx("input", { type: "number", step: "0.01", min: "0", value: variant.price ?? '', onChange: (e) => handleVariantChange(index, 'price', e.target.value ? parseFloat(e.target.value) : null), placeholder: (Number(basePrice) || 0).toFixed(2), className: "admin-input w-20 rounded px-2 py-1 text-sm" })] }) }), _jsx("td", { className: "px-4 py-3", children: _jsx("input", { type: "number", min: "0", value: variant.inventory, onChange: (e) => handleVariantChange(index, 'inventory', e.target.value === '' ? '' : parseInt(e.target.value) || 0), className: "admin-input w-20 rounded px-2 py-1 text-sm" }) }), _jsx("td", { className: "px-4 py-3", children: _jsx("input", { type: "url", value: variant.image || '', onChange: (e) => handleVariantChange(index, 'image', e.target.value), placeholder: "https://...", className: "admin-input w-40 rounded px-2 py-1 text-sm" }) })] }, index))) })] }) }), variants.some((v) => typeof v.inventory === 'number' && v.inventory <= 5 && v.inventory > 0) && (_jsxs("div", { className: "admin-alert admin-alert-warning flex items-center gap-2 rounded-md px-3 py-2 text-sm", children: [_jsx(AlertCircle, { className: "h-4 w-4" }), "Some variants have low inventory"] }))] })), options.length === 0 && (_jsx("div", { className: "admin-empty-state rounded-lg p-8 text-center", children: _jsx("p", { className: "admin-text-muted text-sm", children: "Add options like Size or Color to create product variants" }) })), options.length > 0 && options.some((o) => o.values.length === 0) && (_jsxs("div", { className: "admin-alert admin-alert-warning flex items-center gap-2 rounded-md px-3 py-2 text-sm", children: [_jsx(AlertCircle, { className: "h-4 w-4" }), "Add values to all options to generate variants"] }))] }));
|
|
264
213
|
}
|
|
265
214
|
//# sourceMappingURL=VariantManager.js.map
|