diff --git a/api/admin_ui/src/components/PluginMarketplace.tsx b/api/admin_ui/src/components/PluginMarketplace.tsx new file mode 100644 index 00000000..76e2f7e6 --- /dev/null +++ b/api/admin_ui/src/components/PluginMarketplace.tsx @@ -0,0 +1,50 @@ +import React, { useState } from 'react'; +import { Box, Typography, TextField, InputAdornment, Grid, Card, CardContent } from '@mui/material'; +import SearchIcon from '@mui/icons-material/Search'; + +/** + * Minimal placeholder for the Admin Console Plugin Marketplace. + * - Strict TypeScript compliant (no unused vars) + * - Not wired into the App shell yet; safe to compile + * - No provider name checks; trait‑gated wiring will come in later PRs + */ +export default function PluginMarketplace(): JSX.Element { + const [query, setQuery] = useState(''); + + return ( + + + Plugin Marketplace + + + setQuery(e.target.value)} + InputProps={{ + startAdornment: ( + + + + ), + }} + sx={{ mb: 3 }} + /> + + + {/* Empty state placeholder; results will be populated in later PRs */} + + + + + Marketplace results will appear here. Use traits to gate provider‑specific UI. + + + + + + + ); +} +