@acarmisc/backstage-plugin-litellm 0.45.0 → 0.47.0
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/components/TeamUsage.d.ts +6 -3
- package/dist/index.cjs.js +105 -43
- package/dist/index.cjs.js.map +3 -3
- package/dist/index.esm.js +105 -43
- package/dist/index.esm.js.map +3 -3
- package/package.json +1 -1
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { FC } from 'react';
|
|
2
2
|
import { McpServerInfo, TeamInfo, TeamKeyUsage, TeamMemberUsage, UsageMetrics, VectorStoreInfo } from '../types';
|
|
3
3
|
/**
|
|
4
|
-
* Per-member usage for the period, sorted by spend
|
|
5
|
-
* the share of team spend when the
|
|
4
|
+
* Per-member usage for the period as mini-cards, sorted by spend (the order
|
|
5
|
+
* the backend sends). Dollars are replaced by the share of team spend when the
|
|
6
|
+
* backend hides them.
|
|
6
7
|
*/
|
|
7
|
-
export declare const
|
|
8
|
+
export declare const MemberUsageCards: FC<{
|
|
8
9
|
usage: TeamMemberUsage;
|
|
10
|
+
filterText?: string;
|
|
9
11
|
}>;
|
|
10
12
|
/**
|
|
11
13
|
* A team's keys with the period's usage, for team leads. The backend never
|
|
@@ -13,6 +15,7 @@ export declare const MemberUsageTable: FC<{
|
|
|
13
15
|
*/
|
|
14
16
|
export declare const TeamKeyUsageTable: FC<{
|
|
15
17
|
usage: TeamKeyUsage;
|
|
18
|
+
filterText?: string;
|
|
16
19
|
}>;
|
|
17
20
|
interface TeamUsageProps {
|
|
18
21
|
teams: TeamInfo[];
|
package/dist/index.cjs.js
CHANGED
|
@@ -5060,7 +5060,7 @@ function budgetStatValue(hidden, budget) {
|
|
|
5060
5060
|
if (budget > 0) return fmtUsd2(budget);
|
|
5061
5061
|
return "Unlimited";
|
|
5062
5062
|
}
|
|
5063
|
-
var import_react10, import_Paper8, import_Box14, import_Typography12, import_Skeleton5, import_Divider3, import_Table4, import_TableBody4, import_TableCell4, import_TableHead4, import_TableRow4, import_TableContainer4, import_Collapse2, import_IconButton6, import_Button6, import_CircularProgress4, import_styles10, import_Tooltip5, import_icons_material7, import_recharts2, import_jsx_runtime15, fmtUsd2, monoSx,
|
|
5063
|
+
var import_react10, import_Paper8, import_Box14, import_Typography12, import_Skeleton5, import_Divider3, import_Table4, import_TableBody4, import_TableCell4, import_TableHead4, import_TableRow4, import_TableContainer4, import_Collapse2, import_IconButton6, import_Button6, import_TextField5, import_InputAdornment3, import_CircularProgress4, import_styles10, import_Tooltip5, import_icons_material7, import_recharts2, import_jsx_runtime15, fmtUsd2, monoSx, fmtShare, MemberUsageCards, TeamKeyUsageTable, TeamCard, TeamUsage;
|
|
5064
5064
|
var init_TeamUsage = __esm({
|
|
5065
5065
|
"src/components/TeamUsage.tsx"() {
|
|
5066
5066
|
"use strict";
|
|
@@ -5079,6 +5079,8 @@ var init_TeamUsage = __esm({
|
|
|
5079
5079
|
import_Collapse2 = __toESM(require("@mui/material/Collapse"));
|
|
5080
5080
|
import_IconButton6 = __toESM(require("@mui/material/IconButton"));
|
|
5081
5081
|
import_Button6 = __toESM(require("@mui/material/Button"));
|
|
5082
|
+
import_TextField5 = __toESM(require("@mui/material/TextField"));
|
|
5083
|
+
import_InputAdornment3 = __toESM(require("@mui/material/InputAdornment"));
|
|
5082
5084
|
import_CircularProgress4 = __toESM(require("@mui/material/CircularProgress"));
|
|
5083
5085
|
import_styles10 = require("@mui/material/styles");
|
|
5084
5086
|
import_Tooltip5 = __toESM(require("@mui/material/Tooltip"));
|
|
@@ -5088,46 +5090,85 @@ var init_TeamUsage = __esm({
|
|
|
5088
5090
|
import_jsx_runtime15 = require("react/jsx-runtime");
|
|
5089
5091
|
fmtUsd2 = (n) => `$${(n ?? 0).toFixed(2)}`;
|
|
5090
5092
|
monoSx = { fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fontSize: 11 };
|
|
5091
|
-
|
|
5093
|
+
fmtShare = (pct) => `${pct.toFixed(pct > 0 && pct < 1 ? 1 : 0)}%`;
|
|
5094
|
+
MemberUsageCards = ({ usage, filterText }) => {
|
|
5092
5095
|
const hidden = usage.budget_hidden === true;
|
|
5093
5096
|
if (!usage.members.length) {
|
|
5094
5097
|
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_Typography12.default, { variant: "body2", color: "text.secondary", children: "No members or activity in this period." });
|
|
5095
5098
|
}
|
|
5096
|
-
|
|
5097
|
-
|
|
5098
|
-
|
|
5099
|
-
|
|
5100
|
-
|
|
5101
|
-
|
|
5102
|
-
|
|
5103
|
-
|
|
5104
|
-
|
|
5105
|
-
|
|
5106
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
5107
|
-
|
|
5108
|
-
|
|
5109
|
-
|
|
5110
|
-
|
|
5111
|
-
|
|
5112
|
-
|
|
5113
|
-
|
|
5114
|
-
sub
|
|
5115
|
-
|
|
5116
|
-
|
|
5117
|
-
|
|
5118
|
-
|
|
5119
|
-
|
|
5120
|
-
|
|
5121
|
-
|
|
5122
|
-
|
|
5123
|
-
|
|
5124
|
-
|
|
5099
|
+
const query = (filterText ?? "").trim().toLowerCase();
|
|
5100
|
+
const matches = (m) => {
|
|
5101
|
+
if (!query) return true;
|
|
5102
|
+
const haystacks = m.user_id === null ? ["Unattributed"] : [m.display_name, m.user_email, m.user_id];
|
|
5103
|
+
return haystacks.some((h) => h && h.toLowerCase().includes(query));
|
|
5104
|
+
};
|
|
5105
|
+
const visible = usage.members.filter(matches);
|
|
5106
|
+
const people = usage.members.filter((m) => m.user_id !== null).length;
|
|
5107
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_Box14.default, { children: [
|
|
5108
|
+
!hidden && people > 0 && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_Typography12.default, { variant: "caption", color: "text.secondary", sx: { display: "block", mb: 1 }, children: `Team spend ${fmtUsd2(usage.total_spend)} \xB7 avg ${fmtUsd2(usage.total_spend / people)} per member` }),
|
|
5109
|
+
visible.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_Typography12.default, { variant: "body2", color: "text.secondary", sx: { display: "block", py: 1 }, children: "No members match that filter." }) : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
5110
|
+
import_Box14.default,
|
|
5111
|
+
{
|
|
5112
|
+
role: "list",
|
|
5113
|
+
"aria-label": "Usage by member",
|
|
5114
|
+
sx: { display: "grid", gap: 1.5, gridTemplateColumns: "repeat(auto-fill, minmax(230px, 1fr))" },
|
|
5115
|
+
children: visible.map((m) => {
|
|
5116
|
+
const name = m.display_name ?? m.user_email ?? m.user_id;
|
|
5117
|
+
let sub = null;
|
|
5118
|
+
if (m.display_name) sub = m.user_email ?? m.user_id;
|
|
5119
|
+
else if (m.user_email && m.user_id !== m.user_email) sub = m.user_id;
|
|
5120
|
+
const stats = [
|
|
5121
|
+
["Tokens", fmtCompact(m.total_tokens)],
|
|
5122
|
+
["Requests", m.api_requests.toLocaleString()],
|
|
5123
|
+
["Success", m.success_rate === null ? "\u2014" : `${m.success_rate.toFixed(0)}%`],
|
|
5124
|
+
["Keys", m.user_id === null ? "\u2014" : String(m.key_count)]
|
|
5125
|
+
];
|
|
5126
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
5127
|
+
import_Paper8.default,
|
|
5128
|
+
{
|
|
5129
|
+
role: "listitem",
|
|
5130
|
+
variant: "outlined",
|
|
5131
|
+
sx: { borderRadius: 1.5, p: 1.5, minWidth: 0 },
|
|
5132
|
+
children: [
|
|
5133
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_Box14.default, { display: "flex", justifyContent: "space-between", alignItems: "flex-start", gap: 1, children: [
|
|
5134
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_Box14.default, { minWidth: 0, children: m.user_id === null ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_Tooltip5.default, { title: "Activity of keys that were deleted or have no owner", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_Typography12.default, { variant: "body2", color: "text.secondary", sx: { fontStyle: "italic" }, children: "Unattributed" }) }) : /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
|
|
5135
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_Typography12.default, { variant: "body2", fontWeight: 600, noWrap: true, children: name }),
|
|
5136
|
+
sub && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_Typography12.default, { variant: "caption", color: "text.secondary", noWrap: true, sx: { ...monoSx, display: "block" }, children: sub })
|
|
5137
|
+
] }) }),
|
|
5138
|
+
m.role && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(StatusPill, { label: m.role, tone: m.role === "admin" ? "accent" : "neutral", dot: false })
|
|
5139
|
+
] }),
|
|
5140
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_Box14.default, { mt: 1.5, display: "flex", alignItems: "baseline", justifyContent: "space-between", children: [
|
|
5141
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_Typography12.default, { variant: "h6", component: "span", sx: { lineHeight: 1.2 }, children: hidden ? fmtShare(m.spend_share_pct) : fmtUsd2(m.spend) }),
|
|
5142
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_Typography12.default, { variant: "caption", color: "text.secondary", children: hidden ? "of team usage" : `${fmtShare(m.spend_share_pct)} of team` })
|
|
5143
|
+
] }),
|
|
5144
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_Box14.default, { mt: 0.75, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Meter, { value: m.spend_share_pct, ariaLabel: `${name ?? "Unattributed"} share of team spend` }) }),
|
|
5145
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_Box14.default, { mt: 1.5, display: "grid", gridTemplateColumns: "repeat(4, 1fr)", gap: 0.5, children: stats.map(([label, value]) => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_Box14.default, { children: [
|
|
5146
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_Typography12.default, { variant: "caption", color: "text.secondary", display: "block", children: label }),
|
|
5147
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_Typography12.default, { variant: "body2", children: value })
|
|
5148
|
+
] }, label)) })
|
|
5149
|
+
]
|
|
5150
|
+
},
|
|
5151
|
+
m.user_id ?? "__unattributed"
|
|
5152
|
+
);
|
|
5153
|
+
})
|
|
5154
|
+
}
|
|
5155
|
+
)
|
|
5156
|
+
] });
|
|
5125
5157
|
};
|
|
5126
|
-
TeamKeyUsageTable = ({ usage }) => {
|
|
5158
|
+
TeamKeyUsageTable = ({ usage, filterText }) => {
|
|
5127
5159
|
const hidden = usage.budget_hidden === true;
|
|
5128
5160
|
if (!usage.keys.length) {
|
|
5129
5161
|
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_Typography12.default, { variant: "body2", color: "text.secondary", children: "This team has no keys." });
|
|
5130
5162
|
}
|
|
5163
|
+
const query = (filterText ?? "").trim().toLowerCase();
|
|
5164
|
+
const visible = usage.keys.filter((k) => {
|
|
5165
|
+
if (!query) return true;
|
|
5166
|
+
const haystacks = [k.key_alias, k.key, k.user_email, k.user_id, k.display_name];
|
|
5167
|
+
return haystacks.some((h) => h && h.toLowerCase().includes(query));
|
|
5168
|
+
});
|
|
5169
|
+
if (visible.length === 0) {
|
|
5170
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_Typography12.default, { variant: "body2", color: "text.secondary", sx: { display: "block", py: 1 }, children: "No keys match that filter." });
|
|
5171
|
+
}
|
|
5131
5172
|
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_TableContainer4.default, { component: import_Paper8.default, variant: "outlined", sx: { borderRadius: 1.5 }, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_Table4.default, { size: "small", sx: dataTableSx, "aria-label": "Keys by member", children: [
|
|
5132
5173
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_TableHead4.default, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_TableRow4.default, { children: [
|
|
5133
5174
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_TableCell4.default, { children: "Key" }),
|
|
@@ -5139,7 +5180,7 @@ var init_TeamUsage = __esm({
|
|
|
5139
5180
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_TableCell4.default, { align: "right", children: "Tokens" }),
|
|
5140
5181
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_TableCell4.default, { align: "right", children: "Requests" })
|
|
5141
5182
|
] }) }),
|
|
5142
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_TableBody4.default, { children:
|
|
5183
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_TableBody4.default, { children: visible.map((k) => {
|
|
5143
5184
|
const owner = k.display_name ?? k.user_email ?? k.user_id;
|
|
5144
5185
|
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_TableRow4.default, { children: [
|
|
5145
5186
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_TableCell4.default, { children: [
|
|
@@ -5165,7 +5206,9 @@ var init_TeamUsage = __esm({
|
|
|
5165
5206
|
};
|
|
5166
5207
|
TeamCard = ({ team, usage, usageLoading, memberUsage, memberUsageLoading, memberUsageFailed, keyUsage, keyUsageLoading, keyUsageFailed, canManage, onEditTeam, canManageMembers, onManageMembers, onExpand, vectorStores, mcpServers }) => {
|
|
5167
5208
|
const [expanded, setExpanded] = (0, import_react10.useState)(false);
|
|
5209
|
+
const [teamSearch, setTeamSearch] = (0, import_react10.useState)("");
|
|
5168
5210
|
const chart = useChartTheme();
|
|
5211
|
+
const searchValue = teamSearch.trim() ? teamSearch : "";
|
|
5169
5212
|
const handleExpandChange = (newExpanded) => {
|
|
5170
5213
|
setExpanded(newExpanded);
|
|
5171
5214
|
if (newExpanded && onExpand) {
|
|
@@ -5363,18 +5406,37 @@ var init_TeamUsage = __esm({
|
|
|
5363
5406
|
renderNamedTags("MCP servers", team.object_permission?.mcp_servers, mcpServers),
|
|
5364
5407
|
renderDailySpendSection(),
|
|
5365
5408
|
(memberUsageLoading || memberUsage || memberUsageFailed) && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_Box14.default, { mb: 2.5, children: [
|
|
5366
|
-
|
|
5367
|
-
|
|
5409
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_Box14.default, { display: "flex", alignItems: "center", justifyContent: "space-between", gap: 1, mb: 1, children: [
|
|
5410
|
+
sectionLabel("Usage by member"),
|
|
5411
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
5412
|
+
import_TextField5.default,
|
|
5413
|
+
{
|
|
5414
|
+
size: "small",
|
|
5415
|
+
placeholder: "Filter members by name or email\u2026",
|
|
5416
|
+
value: teamSearch,
|
|
5417
|
+
onChange: (e) => setTeamSearch(e.target.value),
|
|
5418
|
+
sx: { width: { xs: "100%", sm: 260 } },
|
|
5419
|
+
InputProps: {
|
|
5420
|
+
startAdornment: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_InputAdornment3.default, { position: "start", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_icons_material7.Search, { fontSize: "small", color: "disabled" }) }),
|
|
5421
|
+
endAdornment: searchValue ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_InputAdornment3.default, { position: "end", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_IconButton6.default, { size: "small", onClick: () => setTeamSearch(""), "aria-label": "Clear member filter", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_icons_material7.Close, { fontSize: "small" }) }) }) : void 0
|
|
5422
|
+
}
|
|
5423
|
+
}
|
|
5424
|
+
)
|
|
5425
|
+
] }),
|
|
5426
|
+
memberUsage && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(MemberUsageCards, { usage: memberUsage, filterText: searchValue }),
|
|
5368
5427
|
!memberUsage && memberUsageFailed && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_Typography12.default, { variant: "caption", color: "text.secondary", children: "Could not load per-member usage" }),
|
|
5369
5428
|
!memberUsage && !memberUsageFailed && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_Box14.default, { display: "flex", justifyContent: "center", py: 2, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_CircularProgress4.default, { size: 22 }) })
|
|
5370
5429
|
] }),
|
|
5371
5430
|
(keyUsageLoading || keyUsage || keyUsageFailed) && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_Box14.default, { mb: 2.5, children: [
|
|
5372
|
-
|
|
5373
|
-
|
|
5431
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_Box14.default, { display: "flex", alignItems: "center", justifyContent: "space-between", gap: 1, mb: 1, children: [
|
|
5432
|
+
sectionLabel("Keys by member"),
|
|
5433
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_Typography12.default, { variant: "caption", color: "text.secondary", noWrap: true, children: "Filter member keys, owner or alias" })
|
|
5434
|
+
] }),
|
|
5435
|
+
keyUsage && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(TeamKeyUsageTable, { usage: keyUsage, filterText: searchValue }),
|
|
5374
5436
|
!keyUsage && keyUsageFailed && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_Typography12.default, { variant: "caption", color: "text.secondary", children: "Could not load per-key usage" }),
|
|
5375
5437
|
!keyUsage && !keyUsageFailed && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_Box14.default, { display: "flex", justifyContent: "center", py: 2, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_CircularProgress4.default, { size: 22 }) })
|
|
5376
5438
|
] }),
|
|
5377
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_Box14.default, { children: [
|
|
5439
|
+
!memberUsage && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_Box14.default, { children: [
|
|
5378
5440
|
sectionLabel("Members"),
|
|
5379
5441
|
team.members_with_roles?.length ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
5380
5442
|
import_TableContainer4.default,
|
|
@@ -5535,7 +5597,7 @@ function fmtTokens(n) {
|
|
|
5535
5597
|
if (n >= 1e3) return `${(n / 1e3).toFixed(0)}K`;
|
|
5536
5598
|
return String(n);
|
|
5537
5599
|
}
|
|
5538
|
-
var import_react11, import_Box15, import_Table5, import_TableBody5, import_TableCell5, import_TableContainer5, import_TableHead5, import_TableRow5, import_TableSortLabel2, import_Typography13, import_MenuItem5, import_Select, import_FormControl, import_InputLabel,
|
|
5600
|
+
var import_react11, import_Box15, import_Table5, import_TableBody5, import_TableCell5, import_TableContainer5, import_TableHead5, import_TableRow5, import_TableSortLabel2, import_Typography13, import_MenuItem5, import_Select, import_FormControl, import_InputLabel, import_TextField6, import_InputAdornment4, import_icons_material8, import_ContentCopy, import_Tooltip6, import_Snackbar, import_Alert4, import_styles11, import_jsx_runtime16, ALL_PROXY_MODELS, ModelsTable;
|
|
5539
5601
|
var init_ModelsTable = __esm({
|
|
5540
5602
|
"src/components/ModelsTable.tsx"() {
|
|
5541
5603
|
"use strict";
|
|
@@ -5553,8 +5615,8 @@ var init_ModelsTable = __esm({
|
|
|
5553
5615
|
import_Select = __toESM(require("@mui/material/Select"));
|
|
5554
5616
|
import_FormControl = __toESM(require("@mui/material/FormControl"));
|
|
5555
5617
|
import_InputLabel = __toESM(require("@mui/material/InputLabel"));
|
|
5556
|
-
|
|
5557
|
-
|
|
5618
|
+
import_TextField6 = __toESM(require("@mui/material/TextField"));
|
|
5619
|
+
import_InputAdornment4 = __toESM(require("@mui/material/InputAdornment"));
|
|
5558
5620
|
import_icons_material8 = require("@mui/icons-material");
|
|
5559
5621
|
import_ContentCopy = __toESM(require("@mui/icons-material/ContentCopy"));
|
|
5560
5622
|
import_Tooltip6 = __toESM(require("@mui/material/Tooltip"));
|
|
@@ -5672,7 +5734,7 @@ var init_ModelsTable = __esm({
|
|
|
5672
5734
|
)
|
|
5673
5735
|
] }),
|
|
5674
5736
|
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
5675
|
-
|
|
5737
|
+
import_TextField6.default,
|
|
5676
5738
|
{
|
|
5677
5739
|
label: "Filter Models",
|
|
5678
5740
|
size: "small",
|
|
@@ -5681,7 +5743,7 @@ var init_ModelsTable = __esm({
|
|
|
5681
5743
|
disabled: !selectedTeamId,
|
|
5682
5744
|
sx: { minWidth: 240, mb: 2 },
|
|
5683
5745
|
InputProps: {
|
|
5684
|
-
startAdornment: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
5746
|
+
startAdornment: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_InputAdornment4.default, { position: "start", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_icons_material8.Search, { fontSize: "small" }) })
|
|
5685
5747
|
}
|
|
5686
5748
|
}
|
|
5687
5749
|
)
|