π
@@ -415,11 +407,7 @@ export default function CardDetailView(props) {
href={`https://www.ebay.com/sch/i.html?_nkw=${encodeURIComponent(card.name + ' ' + card.game)}`}
target="_blank"
rel="noopener noreferrer"
- className="p-6 rounded-xl border transition-all duration-200 hover:shadow-lg hover:scale-105"
- style={{
- backgroundColor: 'var(--bg-secondary)',
- borderColor: 'var(--border)'
- }}
+ className="glass-panel p-6 rounded-xl transition-all duration-200 hover:shadow-lg hover:scale-105"
>
π
diff --git a/components/CardEditorForm.js b/components/CardEditorForm.js
index 50e074a..0e434af 100644
--- a/components/CardEditorForm.js
+++ b/components/CardEditorForm.js
@@ -1,4 +1,4 @@
-/* eslint-disable @next/next/no-img-element -- External card image URLs; next/image migration is out of scope. */
+import { Button } from './ui';
const RARITY_OPTIONS = [
'common', 'uncommon', 'rare', 'mythic', 'legendary',
@@ -23,17 +23,15 @@ export default function CardEditorForm({
Edit Card Details
-
+
{message && (
@@ -48,7 +46,7 @@ export default function CardEditorForm({
{/* Basic Information */}
-
+
Basic Information
@@ -161,7 +159,7 @@ export default function CardEditorForm({
{/* Game Mechanics */}
-
+
Game Mechanics
@@ -274,7 +272,7 @@ export default function CardEditorForm({
{/* Card Text */}
-
+
Card Text
@@ -298,7 +296,7 @@ export default function CardEditorForm({
{/* Images */}
-
+
Card Images
@@ -341,7 +339,7 @@ export default function CardEditorForm({
{/* Pricing */}
-
+
Pricing Information
diff --git a/components/CardEditorPreview.js b/components/CardEditorPreview.js
index 96475db..7c33c20 100644
--- a/components/CardEditorPreview.js
+++ b/components/CardEditorPreview.js
@@ -6,7 +6,7 @@ export default function CardEditorPreview({ formData }) {
Card Preview
-
+
-
+
+
Find Card to Edit
@@ -36,8 +34,8 @@ export default function CardEditorSearchPanel({
{searchLoading && (
)}
@@ -45,19 +43,21 @@ export default function CardEditorSearchPanel({
{searchResults.length > 0 && (
{searchResults.map((searchCard) => (
-
onSelectCard(searchCard)}
- className="p-4 rounded-lg border cursor-pointer transition-all duration-200 hover:shadow-lg hover:scale-105"
+ className="glass-panel p-4 rounded-lg cursor-pointer text-left hover:scale-[1.02] focus:outline-none focus-visible:ring-2"
style={{
- backgroundColor: 'var(--bg-primary)',
- borderColor: 'var(--border)',
+ transition:
+ 'transform var(--motion-duration-default) var(--motion-ease-out), box-shadow var(--motion-duration-default) var(--motion-ease-out)',
+ '--tw-ring-color': 'var(--accent-ember)',
}}
>
{searchCard.image_url ? (
-
+
{searchCard.name}
@@ -86,7 +89,7 @@ export default function CardEditorSearchPanel({
-
+
))}
)}
diff --git a/components/CardEditorView.js b/components/CardEditorView.js
index de3f8a2..469adb5 100644
--- a/components/CardEditorView.js
+++ b/components/CardEditorView.js
@@ -1,6 +1,7 @@
import CardEditorForm from './CardEditorForm';
import CardEditorPreview from './CardEditorPreview';
import CardEditorSearchPanel from './CardEditorSearchPanel';
+import { Button } from './ui';
export default function CardEditorView({
card,
@@ -20,31 +21,26 @@ export default function CardEditorView({
}) {
return (
-
+
Admin Tools
-
-
@@ -86,7 +82,7 @@ export default function CardEditorView({
{showEmptyState && (
-
π
+
π
Search for a Card to Edit
diff --git a/components/CardsPageView.js b/components/CardsPageView.js
index 20d4276..4d8b4c9 100644
--- a/components/CardsPageView.js
+++ b/components/CardsPageView.js
@@ -97,7 +97,7 @@ export default function CardsPageView(props) {
{/* Quick Filters */}
-
+
Quick Filters
diff --git a/components/CollectionsPageView.js b/components/CollectionsPageView.js
index 3ce9fb9..e74c79a 100644
--- a/components/CollectionsPageView.js
+++ b/components/CollectionsPageView.js
@@ -71,7 +71,7 @@ export default function CollectionsPageView(props) {
-
+
{roleInfo.icon} {roleInfo.label} Permissions:
@@ -118,8 +117,7 @@ export default function PermissionIndicator({ userRole, isPublic, showTooltip =
{/* Visibility Tooltip */}
{showDetails && showTooltip && (
{visibilityInfo.icon} {visibilityInfo.label}
diff --git a/components/ScanDisambiguationDialog.js b/components/ScanDisambiguationDialog.js
index 4a499c5..b6d72ac 100644
--- a/components/ScanDisambiguationDialog.js
+++ b/components/ScanDisambiguationDialog.js
@@ -19,8 +19,7 @@ export default function ScanDisambiguationDialog({
) : (
-
π
+
π
)}
{candidate.name}
diff --git a/components/ScannedCardItem.js b/components/ScannedCardItem.js
index c5dd3d2..c70071a 100644
--- a/components/ScannedCardItem.js
+++ b/components/ScannedCardItem.js
@@ -61,8 +61,7 @@ export default function ScannedCardItem({
}}
>
-
+
{card.image_url ? (

) : (
diff --git a/components/ScannerDestinationPicker.js b/components/ScannerDestinationPicker.js
index 0d5ece5..dc234d9 100644
--- a/components/ScannerDestinationPicker.js
+++ b/components/ScannerDestinationPicker.js
@@ -83,8 +83,7 @@ export default function ScannerDestinationPicker({
return (
diff --git a/components/ScannerPageView.js b/components/ScannerPageView.js
index 597fd75..3559730 100644
--- a/components/ScannerPageView.js
+++ b/components/ScannerPageView.js
@@ -55,8 +55,7 @@ export default function ScannerPageView({
)}
@@ -99,8 +98,7 @@ export default function ScannerPageView({
@@ -126,8 +124,7 @@ export default function ScannerPageView({
@@ -196,14 +193,9 @@ export default function ScannerPageView({
{queue.selectedCards.size > 0 && (
{
const router = useRouter();
@@ -128,29 +129,26 @@ const CardImport = () => {
{/* Admin Navigation */}
-
+
Admin Tools
- router.push('/admin/card-editor')}
- className="px-4 py-2 rounded-lg font-medium transition-all duration-200 border"
- style={{
- backgroundColor: 'var(--bg-primary)',
- borderColor: 'var(--border)',
- color: 'var(--text-primary)'
- }}
+ leadingIcon={ποΈ}
>
- ποΈ Card Editor
-
-
+ router.push('/admin/card-import')}
- className="px-4 py-2 rounded-lg font-medium gradient-bg-ember text-white"
+ leadingIcon={π₯}
>
- π₯ Card Import
-
+ Card Import
+
@@ -166,7 +164,7 @@ const CardImport = () => {
{/* Catalog sync */}
-
+
@@ -177,18 +175,16 @@ const CardImport = () => {
Pending scan submissions for those sets are auto-linked to the catalog when a unique match exists.
-
{isSyncing ? 'Syncing catalogβ¦' : 'Run catalog sync'}
-
+
{syncResult && (
@@ -265,7 +261,7 @@ const CardImport = () => {
{/* Import Form */}
-
+
Import Settings
@@ -301,17 +297,16 @@ const CardImport = () => {
-
{isImporting ? 'Importing...' : 'Import Cards'}
-
+
@@ -343,7 +338,7 @@ const CardImport = () => {
{/* Popular Sets */}
-
+
Popular Sets
@@ -402,7 +397,7 @@ const CardImport = () => {
{/* Import Tips */}
-
+
Import Tips
diff --git a/pages/admin/card-submissions.js b/pages/admin/card-submissions.js
index 2d23587..b02d39f 100644
--- a/pages/admin/card-submissions.js
+++ b/pages/admin/card-submissions.js
@@ -83,8 +83,7 @@ function CardSubmissionsAdmin() {
return (
diff --git a/pages/dashboard.js b/pages/dashboard.js
index 6ec1f65..c05274b 100644
--- a/pages/dashboard.js
+++ b/pages/dashboard.js
@@ -118,7 +118,7 @@ export default function Dashboard() {
{/* Stats Cards */}
-
+
-
+
-
+