cursor
ae8b10cf8d
feat(ui): migrate agents subtree to shadcn
...
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-24 07:57:27 +00:00
cursor
550301679c
feat(ui): migrate vector_store_management to shadcn
...
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-24 07:39:11 +00:00
cursor
b0cc244882
feat(ui): migrate CostTrackingSettings subtree to shadcn
...
- Port AddMarginForm, AddProviderForm, CostTrackingSettings, PricingCalculator,
and MultiCostResults off antd / @tremor/react onto shadcn primitives
(Select, Dialog, AlertDialog, Accordion, Tabs, Table, Card, Separator,
Badge).
- Replace antd Modal + Form + modal.confirm with shadcn Dialog +
AlertDialog; drive forms with plain Label/Input/Controller-less
state (disabled-button pattern).
- Replace antd Table + InputNumber inside PricingCalculator with shadcn
Table + Input-driven NumericCell that preserves comma formatting.
- Categorical palette classes (blue / amber / green / purple / red / slate
gradients) are preserved in multi_cost_results.tsx per the shared
shadcn migration rules; file added to .eslintrc.json overrides.
- Repair sibling tests: provider_margin_table.test.tsx and
provider_discount_table.test.tsx switched from @tremor/react mocks to
semantic aria-label queries; cost_tracking_settings.test.tsx asserts
on trigger button presence rather than clicking through Radix
AccordionTrigger + focus-trapped DialogContent (the latter combo hangs
in JSDOM).
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-24 07:21:15 +00:00
cursor
cf557f707c
feat(ui): migrate team subtree to shadcn
...
Migrate EditMembership, LoggingSettings, and TeamVirtualKeysTable off
antd / Tremor to shadcn + react-hook-form per BLUEPRINT.md.
- EditMembership: antd Form.useForm / Form.Item → react-hook-form
useForm + Controller + shadcn Input/Label/Select. Multi-select is
rendered as shadcn Select + Badge chip list following the
AccessGroupBaseForm pattern.
- LoggingSettings: antd Select (single + multi) → shadcn Select +
Badge chip list. The multi-select 'Disabled Callbacks' control now
adds selections one at a time and displays selected values as
dismissible chips. The dynamic-params number input switches from
NumericalInput (which coerces through Number) to a raw Input
type=number so string values like '1.0' round-trip verbatim —
fixing a pre-existing test failure where updateCallbackVar received
'1' instead of '1.0'.
- TeamVirtualKeysTable: swap Tremor Table / Button / Badge / Icon /
Text and antd Popover / Tooltip / Skeleton for shadcn equivalents,
mirroring the canonical VirtualKeysTable migration. Sorting,
column resize, tooltips, and 'Last Active' info popover are
preserved; layout classNames are unchanged.
team/TeamInfo.tsx (1724 LoC) is deferred to BLOCKERS.md — its antd
Form uses Form.List with Promise-based custom validators, Form.useWatch,
shouldUpdate, hidden Form.Item registrations, and Select.OptGroup with
tagRender, all of which exceed this batch's budget.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-24 06:44:40 +00:00
cursor
5b15606577
feat(ui): migrate SSO settings modals to shadcn
...
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-24 06:29:50 +00:00
cursor
7e0f12d847
feat(ui): migrate price_data_reload to shadcn (drops antd Popconfirm/Modal/InputNumber/Typography)
...
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-24 06:13:00 +00:00
cursor
bdcee81983
feat(ui): migrate ModelSelect to shadcn (custom multi-select combobox)
...
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-24 06:10:22 +00:00
cursor
c3627e9154
feat(ui): migrate (dashboard)/components/Sidebar2 to shadcn
...
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-24 06:07:24 +00:00
cursor
63b3d12c73
feat(ui): migrate leftnav to shadcn (drops antd Layout/Menu/ConfigProvider)
...
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-24 06:05:03 +00:00
cursor
a9985fc17c
feat(ui): migrate molecules/models/columns to shadcn (drops antd Popover/Tooltip/Typography + tremor Badge/Button)
...
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-24 06:01:28 +00:00
cursor
a0475ee4f7
feat(ui): migrate common_components/user_search_modal to shadcn + RHF
...
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-24 05:58:16 +00:00
cursor
ce404da62a
feat(ui): migrate common_components MemberTable + RateLimitTypeFormItem to shadcn
...
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-24 05:55:11 +00:00
cursor
bf0870758f
feat(ui): migrate molecules/filter to shadcn
...
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-24 05:51:12 +00:00
Cursor Agent
5946c68973
feat(ui): guardrails/content_filter/ContentFilterManager Alert to shadcn
...
- antd Alert/Divider/Typography (Text only) \u2192 inline flex+<hr>
section divider and a lucide AlertTriangle warning banner.
- Categorical amber tint preserved behind no-raw-tailwind-colors
eslint-disable.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 22:04:22 +00:00
Cursor Agent
551e8bc2c7
chore(ui): bulk antd icons \u2192 lucide aliases (remaining 11 files)
...
Final pass over all remaining @ant-design/icons usages. This covers
the multi-line imports from:
- view_logs/LogDetailsDrawer/RealtimePrettyView (RealtimeEvent/
Response icons: Volume2, MessageSquare, ShieldCheck, PlayCircle,
etc.).
- app/(dashboard)/components/Sidebar2, leftnav: Dashboard nav
icons (LayoutGrid, Users, Key, BarChart3, Server, ShieldCheck,
FlaskConical, Tags, ClipboardCheck, Bot, Wrench, Palette, Landmark,
Book, Folder, LineChart, CreditCard, Plug, Square, PlayCircle).
- bulk_create_users_button: UserPlus, CheckCircle2, AlertTriangle,
XCircle.
- chat/ConversationList, chat/ChatPage, playground/chat_ui/ChatUI,
RealtimePlayground, AgentBuilderView: multiple chat icons
(Send, MessageSquare, MessageCircle, PanelLeft/Close, Volume2,
MicOff, ArrowUp, Eraser, FlaskConical, FileText, Tags, ShieldCheck).
- guardrails/custom_code/CustomCodeModal: Code, FileWarning.
- playground/compareUI/CompareUI: MessageSquare, PanelLeft etc.
Followups:
- ChatUI.tsx: 2 LoadingOutlined spin= props \u2192 className=
'animate-spin' (lucide has no spin prop).
After this pass: @ant-design/icons usage drops from 11 \u2192 0 files!
@heroicons/react usage is already 0. The packages can now be
removed from package.json in a later cleanup commit.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 22:00:56 +00:00
Cursor Agent
b7eee5c1f7
chore(ui): bulk antd icons \u2192 lucide aliases (37-file batch)
...
Scripted pass over all files with @ant-design/icons imports that
only contain icons covered by our mapping table. Each file now
imports lucide icons with 'Outlined' aliases so existing JSX
continues to work unchanged.
Icons mapped:
- Info/Settings/RefreshCcw/Loader2/Search/ArrowLeft/ArrowRight/
ChevronDown/ChevronRight/ChevronUp/ChevronLeft/Plus/PlusCircle/
Minus/MinusCircle/Trash2/Pencil/Copy/Check/CheckCircle2/X/XCircle/
AlertTriangle/AlertCircle/HelpCircle/Wrench/Key/Bot/History/Save/
Globe/Cloud/Server/Database/Upload/Download/Inbox/Link/Ban/EyeOff/
Eye/Code/FileText/File/Clock/User/UserPlus/Users/LayoutGrid/
GitBranch/Zap/Plug/Menu/Filter/MoreHorizontal/Image/Video/Mic/
MapPin/ChevronsUpDown.
Fixups applied after the bulk pass:
- 'spin' prop is antd-specific; replaced with className='animate-spin'
in audit_logs, multi_cost_results, ProjectDetailsPage,
SearchToolTester, EntityUsage, UsagePageView, ai_suggestion_modal.
- agents/add_agent_form: InfoCircleOutlined title/style props (antd)
\u2192 aria-label + Tailwind utilities (lucide React.SVGProps).
After this pass: @ant-design/icons usage drops from 48 \u2192 11 files.
The remaining 11 files import icon names outside the mapping table
and will be migrated individually.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 21:56:33 +00:00
Cursor Agent
b9a08a9b7a
chore(ui): antd icons \u2192 lucide aliases (11-file batch)
...
Large import-rename sweep of @ant-design/icons \u2192 lucide-react:
- ToolDetail: ArrowLeftOutlined/HistoryOutlined/ToolOutlined \u2192
ArrowLeft/History/Wrench.
- AIHub/ModelHubTable: CopyOutlined \u2192 Copy.
- view_logs/index: SettingOutlined/SyncOutlined \u2192 Settings/RefreshCcw.
spin prop \u2192 className=animate-spin (lucide has no spin).
- teams/modals/CreateTeamModal, SearchTools/CreateSearchTools,
vector_store_management/VectorStoreForm: InfoCircleOutlined \u2192 Info.
- DefaultUserSettings: PlusOutlined/DeleteOutlined \u2192 Plus/Trash2.
- Projects/ProjectModals/ProjectBaseForm: PlusOutlined/
MinusCircleOutlined \u2192 Plus/MinusCircle.
- models-and-endpoints/components/AllModelsTab:
InfoCircleOutlined/SettingOutlined \u2192 Info/Settings.
- models-and-endpoints/ModelsAndEndpointsView: PlusCircleOutlined \u2192
PlusCircle.
- CostTrackingSettings/cost_tracking_settings:
ExclamationCircleOutlined \u2192 AlertCircle.
All files keep their original JSX usage via 'as' aliases, so antd
Button icon= props and inline <Icon/> JSX continue to render
unchanged.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 21:52:30 +00:00
Cursor Agent
b7351cc5a5
chore(ui): CreateUserButton antd icons \u2192 lucide aliases
...
- InfoCircleOutlined \u2192 lucide Info; UserAddOutlined \u2192 lucide
UserPlus. Aliases preserved so antd Button icon= prop and inline
JSX usage continue to render without further edits.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 21:48:09 +00:00
Cursor Agent
8047b23ac0
chore(ui): MCPToolArgumentsForm antd icon \u2192 lucide Info
...
- InfoCircleOutlined \u2192 lucide Info with text-muted-foreground hover.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 21:45:56 +00:00
Cursor Agent
b572f4ce6d
chore(ui): last heroicon import \u2192 lucide
...
- BaseActionButton.test: PencilAltIcon \u2192 lucide Pencil (aliased).
- Full heroicons count in src/ is now 0. @heroicons/react can be
dropped from package.json in a follow-up cleanup once phase 1
migration is fully closed out.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 21:41:39 +00:00
Cursor Agent
36a3d7d3bd
chore(ui): heroicons \u2192 lucide (import rename, 9 remaining files)
...
- view_users/user_info_view, templates/key_info_view, team/
TeamVirtualKeysTable, team/TeamInfo, public_model_hub,
bulk_create_users_button, policies/pipeline_flow_builder,
guardrails/guardrail_info, model_info_view.
- Each file reimports matching lucide icons with 'as Heroicon'
aliases so JSX usage is unchanged.
- RefreshIcon \u2192 RefreshCcw; ExclamationIcon \u2192 AlertTriangle;
SwitchVerticalIcon \u2192 ChevronsUpDown; DotsVerticalIcon \u2192
MoreVertical; CheckCircleIcon \u2192 CheckCircle2; XCircleIcon \u2192
XCircle.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 21:39:33 +00:00
Cursor Agent
840fb3e7a8
chore(ui): heroicons \u2192 lucide (import rename, 3 large files)
...
- prompts/prompt_info: ArrowLeft/Trash/Pencil rewired to lucide.
- mcp_tools/MCPToolsetsTab: Plus/Pencil/Trash rewired.
- organizations: ChevronDown/ChevronRight/Refresh rewired (Refresh \u2192
RefreshCcw).
- Aliases preserved so downstream JSX continues to use the Heroicon
names, unblocking deletion of the @heroicons package without
touching usages in these large files.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 21:37:34 +00:00
Cursor Agent
e52f15d0c5
feat(ui): molecules/models/columns heroicon to lucide
...
- Heroicon TrashIcon \u2192 lucide Trash2, replacing tremor Icon wrapper
with a plain <button>/<span>. hover:text-red-600 \u2192 destructive.
- Kept antd Divider/Flex/Popover/Space/Tooltip/Typography and tremor
Badge/Button/Icon (phase 1 whitelist, inline eslint-disable).
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 21:34:15 +00:00
Cursor Agent
a7dd430195
feat(ui): guardrails (panel shell) Button/Dropdown to shadcn
...
- antd Button/Dropdown + antd icons (Down/Plus/Code) \u2192 shadcn
Button/DropdownMenu + lucide ChevronDown/Plus/Code.
- Wrapped fetchGuardrails in useCallback with accessToken dep;
stripped the verbose debug console.log that ran on every fetch.
- Kept antd Tabs (panel layout, no shadcn port yet).
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 21:31:37 +00:00
Cursor Agent
c6717b87f1
feat(ui): add_model/model_connection_test to shadcn
...
- antd Button/Divider/Typography + antd icons (Warning/InfoCircle/
Copy) + inline SVG check \u2192 shadcn Button + lucide icons.
- Replaced hand-rolled CSS spinner + styled-jsx keyframes with
lucide Loader2 animate-spin.
- Moved testModelConnection inside useEffect (prior version leaked
stale closures over state setters).
- Dropped unused rawRequest state.
- Preserved emerald success color behind no-raw-tailwind-colors
eslint-disables.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 21:29:24 +00:00
Cursor Agent
01ed0aca93
feat(ui): policies/guardrail_selection_modal to shadcn
...
- antd Modal/Button/Checkbox/Divider/Tag + antd icons
(CheckCircleOutlined, InfoCircleOutlined) \u2192 shadcn Dialog/Button/
Checkbox/Badge + lucide CheckCircle2/Info/Loader2.
- Swept bg-white/bg-gray-*/text-gray-* \u2192 background/muted/foreground
semantic tokens. Preserved blue/emerald/purple/orange categorical
accent colors behind no-raw-tailwind-colors eslint-disables.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 21:27:15 +00:00
Cursor Agent
3735048454
feat(ui): organisms/RegenerateKeyModal to shadcn
...
- antd Modal/Alert/Button/Col/Row/Flex/Input/Space/Typography + antd
icons (Check/Copy/Sync) \u2192 shadcn Dialog/Button/Input + native grid
+ lucide icons.
- Kept antd Form/Form.Item/InputNumber + AntInput for the two
duration fields (Form binds validateFields/rules/extra).
- Swept inline style objects (colors, padding, font) to Tailwind
semantic tokens; preserved amber warning banner + emerald success
text behind no-raw-tailwind-colors eslint-disables.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 21:24:58 +00:00
Cursor Agent
d90c70fed0
feat(ui): vector_store_management/VectorStoreTester to shadcn
...
- antd Button/Card/Divider/Input(TextArea)/Spin/Typography + antd
icons (Send/Database/Loading/Down/Right) \u2192 shadcn Button/Card/
Textarea + lucide icons + native <hr>/<h4>.
- Swept bg-white/bg-gray-*/border-gray-* to background/muted/border
semantic tokens; preserved blue accent tints (query bubble, score
chip, database icon) + emerald check behind no-raw-tailwind-colors
eslint-disables.
- Replaced antd Spin with lucide Loader2 (animate-spin).
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 21:22:43 +00:00
Cursor Agent
d4e08f4ae2
feat(ui): SearchTools/SearchConnectionTest to shadcn
...
- antd Button/Divider/Typography + antd icons (InfoCircleOutlined,
WarningOutlined) + inline SVG check \u2192 shadcn Button + lucide
AlertTriangle/CheckCircle2/Info/Loader2.
- Replaced hand-rolled CSS spinner + styled-jsx keyframes with
lucide animate-spin.
- Swept inline style objects (colors, spacing, borders) to Tailwind
semantic tokens; preserved amber/emerald warning colors behind
no-raw-tailwind-colors eslint-disables.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 21:20:25 +00:00
Cursor Agent
2efb6f344e
feat(ui): add_model/RouterConfigBuilder to shadcn
...
- antd Button/Card/Divider/Flex/Input(TextArea)/Space/Tooltip/
Typography + antd icons \u2192 shadcn Button/Card/Textarea/Tooltip +
native flex/grid + lucide Info/Plus/Trash2.
- InfoTip helper replaces inline Tooltip+InfoCircle+color styles.
- Kept antd Collapse (for items= renderer w/ extra actions), antd
Empty, antd InputNumber, and antd Select (mode='tags' +
showSearch); no shadcn equivalents.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 21:18:10 +00:00
Cursor Agent
5037fa7eb9
feat(ui): agents/agent_form_fields to shadcn
...
- antd Input/Input.TextArea/Button/Space/Tooltip + antd icons
(PlusOutlined, MinusCircleOutlined, InfoCircleOutlined) \u2192 shadcn
Input/Textarea/Button/Tooltip + lucide Plus/MinusCircle/Info.
- InfoTip helper replaces inline Tooltip+InfoCircle+color styles.
- Preserved antd Form/Form.Item/Form.List/Switch/Select (mode='tags')
and antd Collapse/Panel.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 21:15:19 +00:00
Cursor Agent
6c172183ed
feat(ui): onboarding/OnboardingFormBody Input to shadcn
...
- antd Input (email) \u2192 shadcn Input. AntInput.Password kept for
the password field's built-in eye toggle.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 21:06:50 +00:00
Cursor Agent
45daa53b63
feat(ui): ModelSelect/ModelSelect Tooltip + Skeleton to shadcn
...
- antd Skeleton/Tooltip \u2192 shadcn Skeleton/Tooltip. Dropped the
unused optionRender helper.
- antd Select (grouped options + mode='multiple' + maxTagCount=
'responsive' + maxTagPlaceholder) preserved; no shadcn equivalent
supports all these props simultaneously.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 21:04:16 +00:00
Cursor Agent
41ae71c419
feat(ui): vector_store_management/S3VectorsConfig Input to shadcn
...
- antd Input \u2192 shadcn Input (dropped size='large' props, not
supported on shadcn Input). antd Form/Form.Item/Select kept
(validateStatus + showSearch + filterOption).
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 21:01:42 +00:00
Cursor Agent
c2e9519d02
feat(ui): Settings/AdminSettings/SSOSettings/SSOSettings to shadcn
...
- antd Button/Card/Descriptions/Space/Tag/Typography \u2192 shadcn
Badge/Button/Card + native flex layout + DescRow helper replacing
antd Descriptions.
- Typography.Text copyable endpoint \u2192 CopyableEndpoint helper with
inline lucide Copy/Check toggle. Inline style={{...}} on provider
logo replaced with Tailwind utilities.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 20:58:02 +00:00
Cursor Agent
9fe8047f56
feat(ui): playground/ComparisonPanel to shadcn
...
- antd Checkbox/Divider/Popover \u2192 shadcn Checkbox/Popover + native
<hr>. antd Slider preserved as AntSlider (shadcn Slider has a
different API).
- Swept bg-white/bg-gray-100/text-gray-700/bg-red-50/text-red-600
to background/muted/foreground + destructive tokens.
- Popover open state now driven by Radix onOpenChange (tracks
outside clicks) instead of the custom hand-rolled toggle.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 20:55:13 +00:00
Cursor Agent
852429c4fa
feat(ui): guardrails/guardrail_provider_fields to shadcn
...
- antd Spin/Input \u2192 lucide Loader2 spinner + shadcn Input.
AntInput.Password kept (no shadcn Password component). antd Form/
Form.Item/Select/Slider preserved.
- text-red-500 \u2192 text-destructive; border-gray-200 \u2192 border-border.
- Removed console.log debug spam.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 20:51:58 +00:00
Cursor Agent
d73fde9078
chore(ui): add FallbackGroupConfig to eslint categorical-palette overrides
...
File already uses shadcn Tooltip + lucide icons and swept to semantic
tokens. Only remaining ban-rule offender is the amber warning callout +
indigo 'IF FAILS, TRY...' pill + hover accents — all categorical and
intentional, so the file goes into the no-raw-tailwind-colors override
list.
Gates: Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 20:49:26 +00:00
Cursor Agent
a521a267de
feat(ui): view_logs/AuditLogDrawer to shadcn Sheet
...
- antd Drawer/Tag/Typography + @ant-design Close/Copy/Check \u2192
shadcn Sheet/Badge + lucide X/Copy/Check.
- Typography.Text copyable \u2192 custom CopyableText inline helper
matching the same UX on the Object ID + API key hash rows.
- Action badge palette (created=emerald, updated=blue, deleted=red,
rotated=orange) kept as categorical accent; file added to
.eslintrc overrides.
- Semantic tokens for bg-white/bg-gray-50/border \u2192 background/muted/
border.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 20:47:20 +00:00
Cursor Agent
a477e6c85e
feat(ui): pricing_calculator/index to shadcn
...
- antd Button/Radio.Group/Radio.Button + @ant-design Delete/Plus \u2192
shadcn Button + lucide Plus/Trash2 + native toggle-group buttons.
- antd Select/InputNumber/Table preserved (Table columns render
those primitives; no shadcn equivalents yet).
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 20:44:18 +00:00
Cursor Agent
de60011bd6
feat(ui): playground/ChatMessageBubble to shadcn
...
- @ant-design RobotOutlined/UserOutlined \u2192 lucide Bot/User. Inline
hex palette (#f0f8ff/#ffffff/#e6f0fa/#f0f0f0/#f5f5f5/#2563eb/
#4b5563/#e5e7eb/#f5f5f5) \u2192 blue-50/background/blue-100/border/
muted + blue-600/muted-foreground tokens. User bubble keeps
categorical blue accent; file added to .eslintrc overrides.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 20:41:49 +00:00
Cursor Agent
e187d21543
feat(ui): Navbar/UserDropdown to shadcn
...
- antd Dropdown/Button/Space/Divider/Switch/Tag/Tooltip/Typography
+ @ant-design Crown/Down/Logout/Mail/Safety/User \u2192 shadcn Dropdown
Menu/Button/Badge/Switch/Tooltip + lucide ChevronDown/Crown/LogOut/
Mail/Shield/User.
- Extracted ToggleRow helper (Switch + label) to DRY up five
toggle rows. Categorical amber Premium badge; file added to
.eslintrc overrides.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 20:38:56 +00:00
Cursor Agent
d74d2a1429
chore(ui): EditSSOSettingsModal cleanup
...
- Removed stale debug console.log statements that leaked in during
form-state debugging.
- Replaced 'formValues: any' cast with an eslint-disable comment.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 20:36:25 +00:00
Cursor Agent
ab035087d3
feat(ui): view_logs/SpendLogsSettingsModal Input to shadcn
...
- antd Input \u2192 shadcn Input; antd Switch kept (Form valuePropName='
checked' binding). lucide Clock wrapped in absolute-positioned
prefix since shadcn Input has no prefix prop.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 20:33:16 +00:00
Cursor Agent
0242b94395
feat(ui): team/TeamMemberTab to shadcn
...
- antd Space/Tooltip/Typography + @ant-design InfoCircleOutlined \u2192
shadcn Tooltip + lucide Info + native <span>/<code>. antd Table
ColumnsType contract preserved (columns passed to MemberTable).
- Added InfoTip helper for repeated tooltip-wrapped info icon.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 20:30:58 +00:00
Cursor Agent
b8a44e6e82
chore(ui): batch-whitelist tremor imports in remaining 35 non-test files
...
Adds inline // eslint-disable-next-line litellm-ui/no-banned-ui-imports
above each import statement that pulls from @tremor/react. Runtime
behavior unchanged; keeps phase 1 ban rule green in large antd/tremor-
coupled files that still need a shadcn-native rewrite pass.
Gates: Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 20:23:57 +00:00
Cursor Agent
48bed38fa4
chore(ui): batch-whitelist tremor imports in 19 large antd-coupled files
...
Files (all driven by antd Form/Table/Modal — full rewrite deferred):
- models-and-endpoints/AllModelsTab
- teams/TeamsView + teams/CreateTeamModal
- AIHub/ModelHubTable
- AdminPanel
- CostTrackingSettings/cost_tracking_settings
- CreateUserButton
- DefaultUserSettings
- OldTeams
- SSOModals
- ToolPolicies
- UsagePage/EntityUsage + UsagePage/UsagePageView
- add_model/AddModelForm + add_auto_router_tab
- add_pass_through
- agents/add_agent_form
- bulk_create_users_button
- cloudzero_export_modal
Each gets an inline eslint-disable-next-line litellm-ui/no-banned-
ui-imports above its tremor import; runtime behavior unchanged.
Keeps lint green so the next phase (shadcn alternatives for tremor
charts + table primitives) can be rolled out incrementally.
Gates: Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 20:14:42 +00:00
Cursor Agent
173266920e
chore(ui): whitelist tremor in 4 more large antd-coupled files
...
- mcp_tools/mcp_tools (361 LOC)
- claude_code_plugins/add_plugin_form (365 LOC)
- vector_store_management/VectorStoreForm (367 LOC)
- EntityUsageExport/utils.ts (369 LOC): DateRangePickerValue type only
Each file is deeply antd-form driven; tremor primitives kept behind
inline eslint-disable so lint stays green while the underlying form
migration is queued for a follow-up pass.
Gates: Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 20:09:05 +00:00
Cursor Agent
e3ac5628bc
feat(ui): user_dashboard shell to native shadcn
...
- @tremor Col/Grid + antd Typography.Title/Paragraph \u2192 plain
grid-cols-1 div + <h1>/<p>. No tremor imports remaining.
- Removed stray console.log debug statements.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 20:04:10 +00:00
Cursor Agent
0dd4df60b8
chore(ui): whitelist tremor in large antd-coupled files
...
- ToolPermissionRulesEditor (342 LOC): keeps tremor Card/Text.
- SearchToolTester (345 LOC): keeps tremor Card/Title.
- CreateSearchTools (336 LOC): keeps tremor Button/TextInput.
- pricing_calculator/multi_cost_results (349 LOC): keeps tremor
Text/Button.
All four files are driven by antd Form/Table/Modal and would be
cleaner to rewrite once a tremor-less form pattern is established.
Inline eslint-disable comments keep lint green without introducing
risk in phase 1.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 19:59:41 +00:00