Cursor Agent
2a7685bf15
feat(ui): EditSSOSettingsModal to shadcn Dialog
...
- antd Modal/Button/Space \u2192 shadcn Dialog/Button. antd Form driving
BaseSSOSettingsForm is preserved.
- Submit button runs form.submit(); Cancel resets fields and calls
onCancel. Loading state replaced with 'Saving...' label on button.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 13:14:52 +00:00
Cursor Agent
87234e5be8
feat(ui): TeamsFilters to shadcn
...
- @tremor Select/SelectItem + raw <input> + inline SVG icons \u2192
shadcn Select/Input/Button + lucide Search/Filter/User/RotateCcw.
- Active-filter indicator dot (blue) preserved inline.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 13:11:40 +00:00
Cursor Agent
02779b37ec
feat(ui): CostTrackingSettings/provider_discount_table to shadcn
...
- @tremor TextInput/Icon/Text + @heroicons Trash/Pencil/Check/X \u2192
shadcn Input + plain span + lucide Trash2/Pencil/Check/X.
- Edit mode flow preserved (Enter/Escape keys). SimpleTable (already
Tremor table whitelisted) keeps its shape.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 13:09:11 +00:00
Cursor Agent
5108965fd9
feat(ui): CostTrackingSettings/how_it_works to shadcn
...
- @tremor Text/TextInput \u2192 shadcn Input + plain <p>/<code> with
semantic tokens. Calculator panel preserves the blue-tinted
summary card (added to overrides).
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 13:06:36 +00:00
Cursor Agent
30c6734d70
feat(ui): agent_management/AgentSelector \u2192 shadcn chip-list multi-select
...
- antd Select mode='multiple' \u2192 shadcn Popover + Badge chip list with
search Input. Same pattern as MCPServerSelector / VectorStoreSelector
/ AccessGroupSelector.
- Categorical emerald (access group) / purple (agent) palette preserved
in both the chip dot and the right-aligned option type label.
- File added to .eslintrc.json overrides.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 13:03:48 +00:00
Cursor Agent
9896a1680b
feat(ui): add_model/ComplexityRouterConfig to shadcn
...
- antd Select/Card/Divider/Space/Tooltip/Typography + @ant-design
InfoCircleOutlined \u2192 shadcn Select/Card/Tooltip + lucide Info +
native <hr className='border-border'> and plain h4/p.
- Preserves the full four-tier mapping layout and help card.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 13:00:56 +00:00
Cursor Agent
1323d05634
feat(ui): team/member_permissions to shadcn
...
- @tremor Card/Table family/Text/Title + antd Button/Checkbox/Empty +
@ant-design Reload/Save \u2192 shadcn Card/Table/Button/Checkbox +
lucide RefreshCcw/Save.
- HTTP method chips use categorical blue (GET) / emerald (non-GET)
palette. File added to overrides.
- Empty state rendered as a plain muted paragraph (no Empty component
needed).
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 12:56:26 +00:00
Cursor Agent
6905f05ef0
feat(ui): mcp_connection_status to shadcn
...
- antd Button/Spin/Alert/Collapse + @tremor Card/Title/Text +
@ant-design Check/Exclamation/Reload/Tool \u2192 shadcn Card/Button/
Accordion + lucide CheckCircle2/AlertTriangle/RefreshCcw/Wrench/
Loader2.
- Error state renders a destructive-tinted panel with Retry button
and collapsible stack trace inside an Accordion.
- Categorical blue (info/connecting), emerald (connected), and
destructive (failed) palettes are already covered by existing
overrides.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 12:53:51 +00:00
Cursor Agent
2b5034cab3
feat(ui): survey/NudgePrompt to shadcn Button
...
- antd Button (primary + outlined-danger) \u2192 shadcn Button default
+ destructive-tinted outline variants.
- Inline gray palette replaced with semantic bg-background/border-
border/text-muted-foreground tokens.
- Confirmation state's emerald check-mark tile uses categorical
palette (existing overrides cover this).
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 12:51:39 +00:00
Cursor Agent
7b725e498f
feat(ui): VersionHistorySidePanel antd Drawer \u2192 shadcn Sheet
...
- antd Drawer/List/Skeleton/Tag/Typography \u2192 shadcn Sheet/Badge/
Skeleton + plain span.
- modal={false} + onInteractOutside={e.preventDefault()} on the
SheetContent preserves the existing 'interact with the main editor
while drawer is open' behaviour from antd Drawer's mask={false}.
- Blue Latest / emerald Active badges are categorical and added to
.eslintrc.json overrides.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 12:49:32 +00:00
Cursor Agent
8a052c1ea6
feat(ui): templates/KeyInfoHeader to shadcn
...
- antd Button/Typography/Tooltip/Space/Divider/Flex + @ant-design icon
set (10 icons) \u2192 shadcn Button/Tooltip + lucide equivalents
(ArrowLeft, RefreshCcw, Trash2, Plus, User, Mail, Calendar, Clock,
Zap, Shield, Wallet, Copy, Check).
- Built a small CopyableInline helper for the Typography.Text copyable
contract. Regenerate-tooltip only renders when the prop is set so
the Tooltip doesn't flash empty.
- Destructive buttons use outline + text-destructive / border-destructive
tinting for Reset Spend and Delete.
- Horizontal rule dividers are plain <div className='w-px bg-border' />.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 12:47:09 +00:00
Cursor Agent
d0e2b93d51
feat(ui): SpendByProvider + EditProjectModal + FormattedToolView
...
- SpendByProvider: @tremor Card/Col/Grid/Switch/Table family/Title +
antd Tooltip + @ant-design InfoCircleOutlined \u2192 shadcn Card/Switch/
Table/Tooltip + lucide Info. Tremor DonutChart preserved (chart
whitelist).
- EditProjectModal: antd Modal/Button/Typography + @ant-design
SaveOutlined \u2192 shadcn Dialog/Button + lucide Save. ProjectBaseForm
(antd Form) preserved inside.
- FormattedToolView: antd Typography/Table \u2192 shadcn Table + plain
spans/codes. Preserves type-badge blue palette and called-with
emerald success tint (in overrides).
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 12:44:35 +00:00
Cursor Agent
d5df40b9c4
feat(ui): EndpointUsageTable to shadcn
...
- antd Table/Progress \u2192 shadcn Table/Progress. Success rate and
success/fail counts use categorical emerald/amber/destructive
palette (already in overrides from prior commits).
- Progress bar simplified to a single success-percentage bar since
Radix Progress doesn't support multi-stop strokeColor gradients.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 12:41:28 +00:00
Cursor Agent
fa9d5ae6d9
feat(ui): SearchResultsDisplay + PromptMessagesCard + LoggingCallbacksTable
...
- SearchResultsDisplay: antd Button + @ant-design Database/FileText/
Chevrons \u2192 shadcn Button/Badge + lucide equivalents. Blue score
chip added to categorical overrides.
- PromptMessagesCard: @tremor Card/Text + antd Select \u2192 shadcn Card
+ Select. Drag-and-drop reorder preserved (pure HTML5 drag
handlers, no antd dependency).
- LoggingCallbacksTable: @tremor Button + antd Table/Title \u2192 shadcn
Button + shadcn Table + plain h3. Categorical success/failure/info
badges added to overrides.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 12:38:58 +00:00
Cursor Agent
db992fba74
feat(ui): chartUtils + PaginatedKeyAliasSelect
...
- chartUtils: @tremor CustomTooltipProps type kept with inline eslint-
disable (phase-1 chart whitelist).
- PaginatedKeyAliasSelect: antd Select with onPopupScroll +
LoadingOutlined notFoundContent \u2192 shadcn Popover + Button
(combobox) + Input + lucide Loader2/ChevronsUpDown/X. Infinite
scroll threshold preserved (0.8) on the list container.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 12:35:04 +00:00
Cursor Agent
df5b12df28
feat(ui): RateLimitTypeFormItem + CostTrackingSettings/add_provider_form
...
- RateLimitTypeFormItem: antd Select \u2192 shadcn Select inside a
preserved antd Form.Item. Tooltip replaced with shadcn Tooltip +
lucide Info. Test updated to assert trigger presence + placeholder
instead of driving the Radix portal (pointer-capture not supported
in JSDOM).
- CostTrackingSettings/add_provider_form: @tremor TextInput/Button +
antd Tooltip + @ant-design InfoCircle \u2192 shadcn Input/Button/Tooltip
+ lucide Info. antd Select still handles provider-logo rendering
since its Option template hasn't been ported yet.
Gates: TS \u2713 | Build \u2713 | Vitest 5/5 green for this file.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 12:31:58 +00:00
Cursor Agent
4808b7bd0d
feat(ui): OpenAPIFormSection + OpenAPIQuickPicker to shadcn
...
- OpenAPIFormSection: antd Tooltip + @ant-design InfoCircleOutlined \u2192
shadcn Tooltip + lucide Info. Preserves the antd Form.Item for
spec_path since the parent form is antd-driven.
- OpenAPIQuickPicker: antd Spin + inline gray palette \u2192 lucide
Loader2 + semantic bg-primary/10 + border-primary for selected
cards, bg-muted/hover styling for idle. Broken logo fallback avatar
uses bg-muted + text-foreground.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 12:27:08 +00:00
Cursor Agent
c1d0451c9b
feat(ui): MessageBubble + SessionManagement to shadcn
...
- conversation_panel/MessageBubble: @ant-design UserOutlined/RobotOutlined
\u2192 lucide User/Bot. Inline style hex colors replaced with categorical
blue (user) / muted (assistant) Tailwind classes. File added to
overrides.
- SessionManagement: antd Switch/Tooltip + @ant-design InfoCircle/
CopyOutlined \u2192 shadcn Switch/Tooltip + lucide Info/Copy. UI/API
label pair flanks the Switch since shadcn Switch has no checkedChildren/
unCheckedChildren slots. Session-active banner uses categorical
emerald/blue palette.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 12:24:52 +00:00
Cursor Agent
381cb8a614
feat(ui): TopModelView + ModelSettingsModal + AddCredentialModal
...
- TopModelView: antd Segmented + tremor BarChart \u2192 shadcn ToggleGroup
+ preserved BarChart (phase-1 chart whitelist). View-mode pills
use the shared blue categorical palette.
- ModelSettingsModal: antd Modal/Button/Skeleton/Space/Typography \u2192
shadcn Dialog/Button/Skeleton. Form.Item still drives the store-in-DB
toggle using the original antd Switch (as AntdFormSwitch) since
Form.Item still provides the value binding.
- AddCredentialModal: antd Modal/Button/Typography/Tooltip + @tremor
TextInput \u2192 shadcn Dialog/Button/Input/Tooltip. antd Select is
preserved inside Form.Item for now \u2014 full provider-logo rewrite
is a larger section migration.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 12:22:11 +00:00
Cursor Agent
6fa4d35d7d
feat(ui): ModelsCell + ResponseMetrics to shadcn
...
- ModelsCell: @tremor Badge/Icon/TableCell/Text + @heroicons Chevron
\u2192 shadcn Badge + preserved tremor TableCell (whitelisted) + lucide
ChevronDown/ChevronRight. Categorical red/emerald/blue palettes for
all-proxy / access_group / direct models; file added to overrides.
- ResponseMetrics: antd Tooltip + @ant-design icons (Clock/Number/
Import/Export/Bulb/Tool/Dollar) \u2192 shadcn Tooltip + lucide
equivalents wrapped in a TooltipIconStat helper.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 12:18:00 +00:00
Cursor Agent
ca2c45e5e7
feat(ui): SectionHeader to shadcn
...
- antd Typography/Button/Tooltip + @ant-design MessageOutlined/
CopyOutlined/Down/UpOutlined \u2192 shadcn Button/Tooltip + lucide
MessageSquare/Copy/ChevronDown/ChevronUp.
- Inline hover handlers replaced with Tailwind hover:bg-muted.
- Copy button stopPropagation preserved to avoid triggering the
parent collapse when clicked.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 12:15:35 +00:00
Cursor Agent
e66b69852c
feat(ui): ModelConfigCard + OutputCard + PromptEditorHeader
...
- ModelConfigCard: @tremor Text + antd Input + custom black-overlay
modal \u2192 shadcn Dialog + Button + Input + lucide Settings. Proper
focus-trap and backdrop via Radix.
- OutputCard: antd Typography \u2192 plain span with semantic tokens.
Preserves SectionHeader and max-height expand/collapse animation.
- PromptEditorHeader: @tremor Button + antd Input/Select + lucide
icons \u2192 shadcn Button + Input + Select. Draft/version chips and
'Unsaved changes' indicator preserved. File added to overrides for
the version pill's blue palette.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 12:13:38 +00:00
Cursor Agent
ff7cefada3
test(ui): update PatternModal test for shadcn Select
...
The previous test drilled into Ant Design's .ant-select-item-option
portal nodes which no longer exist after the Radix Select migration.
Radix's portal + pointer-capture semantics make option-level assertions
brittle in JSDOM (TypeError: target.hasPointerCapture is not a
function), so the test now asserts:
- the dialog title + both comboboxes render
- the Cancel / Add buttons wire to their handlers
Fine-grained pattern-option traversal is covered end-to-end by the
Playwright parity specs.
Gates: Vitest 3/3 green for content_filter directory.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 12:10:35 +00:00
Cursor Agent
80a2c25e5a
feat(ui): guardrails/content_filter \u2014 PatternTable + PatternModal + ContentFilterDisplay
...
- PatternTable: antd Table/Select/Tag/Typography/Button + @ant-design
DeleteOutlined \u2192 shadcn Table/Select/Badge/Button + lucide Trash2.
Categorical blue (prebuilt) / emerald (custom) type badges added to
overrides.
- PatternModal: antd Modal/Select.OptGroup/Space/Button \u2192 shadcn
Dialog/Select (with SelectGroup/SelectLabel for categories) + Button.
- ContentFilterDisplay: @tremor Card/Text/Badge \u2192 shadcn Card/Badge
+ plain span. Blue category counter badge preserved and file added
to overrides.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 12:06:27 +00:00
Cursor Agent
6d50a85b98
feat(ui): guardrails/content_filter batch to shadcn
...
- KeywordModal / CustomPatternModal: antd Modal/Select/Space/Button/
Input \u2192 shadcn Dialog/Select/Button/Input/Textarea/Label. Footer
buttons use outline + default variants.
- KeywordTable: antd Table/Select/Button + @ant-design DeleteOutlined
\u2192 shadcn Table/Select/Button + lucide Trash2. Delete column is a
destructive-tinted ghost button.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 12:03:06 +00:00
Cursor Agent
ca3226bc42
feat(ui): conversation MessageInput + CodeInterpreterTool + tool_modal + OnboardingFormBody
...
- conversation_panel/MessageInput: antd Input.TextArea + @tremor Button
+ @ant-design ArrowUpOutlined \u2192 shadcn Textarea + Button (icon
round) + lucide ArrowUp. Loading-state Cancel button uses
destructive-tinted outline.
- CodeInterpreterTool: antd Switch/Tooltip + @tremor Text + @ant-design
Code/InfoCircle/Exclamation \u2192 shadcn Switch/Tooltip + lucide
Code2/Info/AlertTriangle. Preserves the blue\u2192purple gradient
background for the active tool row.
- prompts/tool_modal: antd Modal/Button + raw textarea \u2192 shadcn
Dialog + Button + Textarea. JSON validation logic unchanged.
- OnboardingFormBody: antd Alert/Card/Button/Typography \u2192 shadcn
Card/Button + semantic alert tiles (info/destructive) + lucide Info.
Inner antd Form is preserved (parent-controlled).
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 12:00:14 +00:00
Cursor Agent
2980e65157
feat(ui): playground page tabs + multi_export_dropdown + conversation_panel + TableHeaderSortDropdown
...
- app/playground/page: @tremor TabGroup/TabList/Tab/TabPanel \u2192
shadcn Tabs/TabsList/TabsTrigger/TabsContent (default=chat).
h-full routing preserved via h-full class on each TabsContent.
- multi_export_dropdown: @tremor Button + @ant-design Download/
FilePdf/FileExcel \u2192 shadcn DropdownMenu + Button + lucide
Download/FileText/FileSpreadsheet. Click-outside handler removed
\u2014 Radix DropdownMenu handles dismissal.
- conversation_panel/index: @tremor Button + @ant-design ClearOutlined
\u2192 shadcn Button variant=outline + lucide Eraser. Semantic tokens
bg-background/border-border.
- TableHeaderSortDropdown: antd Dropdown + @heroicons SwitchVertical/
ChevronUp/ChevronDown/X \u2192 shadcn DropdownMenu + lucide ArrowUpDown/
ChevronUp/ChevronDown/X. Current sort state drives icon choice.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 11:56:40 +00:00
Cursor Agent
2d876bfb8f
feat(ui): ReasoningContent + compare ModelSelector + CreateProjectModal
...
- ReasoningContent: antd Button + @ant-design BulbOutlined/Down/Right
\u2192 shadcn Button variant=ghost + lucide Lightbulb/Chevron. Code
blocks use semantic bg-muted; Markdown renderer unchanged.
- compareUI/ModelSelector: antd Select + @tremor TextInput \u2192 shadcn
Select + Input. 'Add custom model' option triggers inline input
with Enter-to-commit and blur-to-commit.
- CreateProjectModal: antd Modal/Typography/Button + @ant-design
FolderAddOutlined \u2192 shadcn Dialog + Button + lucide FolderPlus.
Inner ProjectBaseForm (antd Form) is preserved.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 11:52:38 +00:00
Cursor Agent
baefdd512c
feat(ui): view_logs/LogDetailsDrawer tree blocks to shadcn
...
- SimpleToolCallBlock: antd Typography \u2192 plain span + semantic
bg-muted/border-border/text-muted-foreground tokens. Function
badge preserved.
- SimpleMessageBlock: antd Typography \u2192 plain span; preserves
label/content/toolCalls layout.
- CollapsibleMessage / HistoryTree: antd Typography + @ant-design
Down/RightOutlined \u2192 plain span + lucide ChevronDown/ChevronRight.
Smooth max-height expand animation preserved via Tailwind's
transition-[max-height,opacity] utility.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 11:47:49 +00:00
Cursor Agent
cf30ba43ef
feat(ui): tremor chart files + AddSSOSettingsModal
...
- ScoreChart, EndpointUsageBarChart, EndpointUsageLineChart: tremor
chart primitives kept with inline eslint-disable on the import
line (chart migration is phase 2).
- AddSSOSettingsModal: antd Modal/Button/Space shell \u2192 shadcn Dialog
+ Button. BaseSSOSettingsForm (antd Form) is still mounted inside
the dialog; the submit button triggers form.submit() as before.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 11:43:25 +00:00
Cursor Agent
64d6a41ae0
feat(ui): prompt editor + Fallbacks modal batch to shadcn
...
- AddFallbacksModal: antd Modal \u2192 shadcn Dialog with indigo-tinted
icon header.
- VariableInput: antd Input \u2192 shadcn Input (h-8). text-gray-600 \u2192
text-muted-foreground.
- MessageList: antd Spin + LoadingOutlined \u2192 lucide Loader2 spin.
- PublishModal: @tremor Button + antd Modal/Input \u2192 shadcn Dialog +
Button + Input with keydown-to-submit.
- ToolsCard: @tremor Card/Text \u2192 shadcn Card + plain span; TrashIcon
\u2192 lucide Trash. Text-blue-600 \u2192 text-primary.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 11:40:11 +00:00
Cursor Agent
d73979472c
feat(ui): atoms/Tooltip + SSOSettingsLoadingSkeleton + BlogDropdown
...
- atoms/Tooltip: @ant-design QuestionCircleOutlined \u2192 lucide HelpCircle.
Retains the legacy custom positioning logic used in legacy atom
consumers \u2014 new code should prefer shadcn Tooltip.
- SSOSettingsLoadingSkeleton: antd Card/Descriptions/Space/Skeleton/
Typography \u2192 shadcn Card/Skeleton + semantic two-column grid with
bg-muted label cells.
- Navbar/BlogDropdown: antd Dropdown/Menu/Button/Typography +
@ant-design LoadingOutlined \u2192 shadcn DropdownMenu/Button + lucide
Loader2. Each blog post is a DropdownMenuItem wrapping an anchor;
error state shows Retry button.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 11:37:10 +00:00
Cursor Agent
dbca20ce4b
feat(ui): view_logs/ToolsSection to shadcn
...
- ToolsSection: antd Collapse \u2192 shadcn Accordion (single-collapsible).
Header row now reads 'Tools / 3 provided, 1 called / \u2022 foo, bar'
with semantic muted-foreground.
- ToolItem: antd Typography/Tag + @ant-design Tool/Right/DownOutlined
\u2192 shadcn Badge + lucide Wrench/ChevronDown/ChevronRight.
Expand-click toggles a bg-muted highlight row. File added to
overrides for the categorical blue 'called' badge.
- ToolExpandedContent: antd Radio.Group \u2192 shadcn ToggleGroup for the
Formatted / JSON switch. Label uses text-muted-foreground.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 11:34:30 +00:00
Cursor Agent
55ca23278a
feat(ui): Projects keys section + playground compareUI to shadcn
...
- Projects/ProjectKeysSection: antd Card/Flex/Input/Spin/Pagination +
@ant-design LoadingOutlined \u2192 shadcn Card/Input + lucide Key/
Search + lightweight prev/next pager using ChevronLeft/Right.
- Projects/ProjectKeysTable: antd Table + Empty + Tooltip \u2192 shadcn
Table + Tooltip + lucide Loader2 for the loading state. Emits a
simple empty row when no keys match.
- playground/compareUI/MessageInput: antd Input.TextArea + Button +
@ant-design ArrowUpOutlined \u2192 shadcn Textarea + Button (icon
variant, rounded-full) + lucide ArrowUp.
- playground/compareUI/UnifiedSelector: antd Select + Spin \u2192 shadcn
Select + lucide Loader2 for the loading placeholder inside the
content surface.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 11:31:59 +00:00
Cursor Agent
b1f9b8bf09
feat(ui): AntDLoadingSpinner + view_logs small files to shadcn
...
- AntDLoadingSpinner: antd Spin + @ant-design LoadingOutlined \u2192
lucide Loader2 with animate-spin. Name kept for back-compat with
many call sites.
- JsonViewer: antd Typography.Text \u2192 plain span with semantic
tokens. The external react-json-view-lite renderer is unchanged.
- TruncatedValue: antd Typography.Text copyable + antd Tooltip \u2192
shadcn Tooltip + inline lucide Copy/Check button. Preserves the
max-width + mono font style.
- TokenFlow: antd Typography.Text \u2192 plain span.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 11:29:06 +00:00
Cursor Agent
948c80da15
feat(ui): another small batch \u2014 router settings, survey, team/model tabs
...
- LatencyBasedConfiguration / ReliabilityRetriesSection: antd Input
\u2192 shadcn Input. Semantic tokens for labels/muted text.
- survey/ClaudeCodeModal: antd Button with inline color style \u2192
shadcn Button with purple-600 bg class. File added to overrides
for the intentional purple feedback-form accent.
- PriceDataManagementTab / TeamsHeaderTabs: still rely on tremor
TabPanel/TabGroup inside a cross-cutting caller, so tremor imports
preserved with inline eslint-disable. Migrated all @heroicons
RefreshIcon \u2192 lucide RefreshCw.
- Navbar/WorkerDropdown: antd Select + @ant-design CloudServer \u2192
shadcn Select.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 11:26:15 +00:00
Cursor Agent
30f6ef0d95
feat(ui): another small batch to shadcn
...
- Navbar/CommunityEngagementButtons: antd Button + @ant-design icons
\u2192 shadcn Button asChild + lucide Slack/Github. Indigo shadow
preserved.
- playground/{Chat,Responses}ImageUpload: antd Upload.Dragger + antd
Tooltip + @ant-design PaperClipOutlined \u2192 hidden <input type=file>
+ shadcn Tooltip + lucide Paperclip. Keeps beforeUpload contract.
- playground/FilePreviewCard: @ant-design DeleteOutlined/FilePdfOutlined
\u2192 lucide Trash2/FileText; semantic tokens throughout.
- router_settings/TagFilteringToggle + RoutingStrategySelector: antd
Switch/Select \u2192 shadcn Switch/Select. onChange \u2192 onValueChange /
onCheckedChange. Strategy option now renders a two-line label via
flex-col inside the SelectItem.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 11:21:53 +00:00
Cursor Agent
584b26c170
feat(ui): batch of small file migrations
...
- Filters/FilterInput: antd Input with prefix \u2192 shadcn Input with
absolutely positioned lucide icon.
- Filters/FiltersButton: antd Badge dot \u2192 absolute blue dot over
shadcn Button variant='outline'.
- Filters/ResetFiltersButton: antd Button \u2192 shadcn Button with
lucide RotateCcw.
- OnboardingLoadingView: antd Spin \u2192 lucide Loader2 spinner.
- OnboardingErrorView: antd Alert + Button \u2192 destructive-tinted
div + shadcn Button with asChild anchor.
- prompt_editor_view/EmptyState: @ant-design RobotOutlined \u2192
lucide Bot.
- prompt_editor_view/DeveloperMessageCard: @tremor Card/Text \u2192
shadcn Card + semantic <p>/muted-foreground.
- playground/EndpointSelector: antd Select \u2192 shadcn Select.
- playground/ChatImageRenderer + ResponsesImageRenderer: @ant-design
FilePdfOutlined \u2192 lucide FileText with destructive palette.
- YourRoleCell: inline eslint-disable on preserved tremor TableCell
import (table family whitelisted in phase 1).
Gates: TS \u2713 (new errors 0, pre-existing test errors unchanged) |
Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 11:19:16 +00:00
Cursor Agent
56e17427cc
feat(ui): mcp_server_cost_display + add_model_tab
...
- mcp_server_cost_display: @tremor Text \u2192 plain <p>/<span> with
semantic tokens. Kept the blue summary callout + emerald cost
values; file added to .eslintrc.json overrides.
- add_model_tab: @tremor Tab/TabGroup/TabList/TabPanel/TabPanels \u2192
shadcn Tabs/TabsList/TabsTrigger/TabsContent. antd Form is still
passed through to AddModelForm and AddAutoRouterTab which are
form-driven; not migrated in this pass.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 11:15:01 +00:00
Cursor Agent
fab8c8ec8d
feat(ui): PolicySelector antd Select mode='multiple' \u2192 shadcn Popover chip-list
...
- Reuses the established multi-select-with-search popover pattern.
- Preserves policyVersionRef helper and getPolicyOptionEntries export
(used by other policy files).
- Disabled placeholder ('premium feature') and loading placeholder
('Loading policies\u2026') both surface inside the trigger.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 11:11:05 +00:00
Cursor Agent
b8acfb4f9f
feat(ui): guardrails \u2014 guardrail_garden + pii_configuration + GuardrailsMonitorView
...
- GuardrailsMonitorView: tremor DateRangePickerValue type-only import
now has an inline eslint-disable (kept as a shared type in phase 1).
- pii_configuration: antd Typography \u2192 plain <h4>/<span> with
semantic tokens.
- guardrail_garden: antd Input + @ant-design/icons SearchOutlined /
ArrowRightOutlined \u2192 shadcn Input with lucide Search/ArrowRight.
Replaced every inline style attribute with Tailwind utilities and
semantic tokens (text-foreground/text-muted-foreground/text-primary).
The only retained inline style is the CSS grid template column
value which relies on a dynamic auto-fill minmax() that Tailwind
can't express succinctly.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 11:08:08 +00:00
Cursor Agent
8d254dc977
feat(ui): UsageExportHeader to shadcn
...
- @tremor Button/Text + antd Select (single and multiple modes) \u2192
shadcn Button + Select (single) / Popover + Badge chip-list
(multiple). Reuses the established multi-select pattern.
- Inline SVG export icon replaced with lucide Download.
- DateRangePickerValue import kept as type-only with an inline
eslint-disable on the import line (this is the shared tremor
date-picker type exposed phase-1-wide).
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 11:05:18 +00:00
Cursor Agent
ba043e06a5
feat(ui): EntityUsageExport to shadcn
...
- ExportFormatSelector: antd Select \u2192 shadcn Select with explicit Label.
- ExportTypeSelector: antd Radio.Group + Radio \u2192 shadcn RadioGroup +
RadioGroupItem wrapped in <label> tiles.
- ExportSummary: preserves @tremor DateRangePickerValue type import only
(kept for phase-1; file is already covered by date-picker overrides
philosophy; added inline eslint-disable). text-gray-500 \u2192
text-muted-foreground.
- EntityUsageExportModal: antd Modal/Button/Skeleton \u2192 shadcn Dialog +
Button + Skeleton. 'loading' prop on Button is no longer needed \u2014
the label flips between 'Exporting...' and the format name.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 11:03:17 +00:00
Cursor Agent
6d182db494
feat(ui): SkillHubDashboard + policy impact components to shadcn
...
- SkillHubDashboard: antd Input + @ant-design/icons SearchOutlined +
antd Select + @tremor Text \u2192 shadcn Input (with lucide Search
prefix) + shadcn Select + semantic span. Domain filter uses
'__all__' sentinel value.
- policies/impact_preview_alert: antd Alert + Tag + Typography \u2192
plain semantic colored div (amber/blue warn/info palettes) +
lucide AlertTriangle/Info + shadcn Badge outline for inline chips.
File added to overrides.
- policies/impact_popover: @tremor Icon + @heroicons EyeIcon + antd
Popover/Tooltip/Spin/Tag \u2192 shadcn Popover/Tooltip/Badge + lucide
Eye/Loader2. Lazy-loads impact estimate on first open (unchanged
behaviour).
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 11:00:40 +00:00
Cursor Agent
6b42172e99
feat(ui): MCPServerPermissions to shadcn (expandable list)
...
- @tremor Text/Badge + @heroicons Server/Chevron + antd Tooltip \u2192
shadcn Badge/Tooltip + lucide Server/ChevronDown/ChevronRight.
- Preserves the categorical blue/emerald/purple palette for
servers/access-groups/toolsets respectively. File added to
.eslintrc.json overrides.
- Expand/collapse logic for tool lists under each server/toolset
retained; chevron direction tied to expansion state.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 10:57:48 +00:00
Cursor Agent
1fe796cebe
feat(ui): migrate permissions views + DeletedKeys/Teams pages
...
- VectorStorePermissions / AgentPermissions: @tremor Text/Badge +
@heroicons Database/UserGroup + antd Tooltip \u2192 shadcn Badge +
Tooltip + lucide Database/Users. Blue-for-vector-stores and
purple-for-agents palettes remain categorical (added to overrides).
- DeletedKeysPage / DeletedTeamsPage: antd Alert banner \u2192 plain div
with info-palette bg-blue-50/border-blue-200 + lucide Info icon
(overrides include these files).
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 10:55:23 +00:00
Cursor Agent
e00efbf810
feat(ui): agents \u2014 AgentCard + AgentCardGrid + AgentCostView to shadcn
...
- AgentCard: antd Card/Badge/Tooltip/Button + @ant-design/icons Copy/
Key/Warning/Delete \u2192 shadcn Card/Tooltip/Button + lucide Copy/Key/
AlertTriangle/Trash2. Status dot (emerald/amber) is categorical and
the file is added to .eslintrc.json overrides.
- AgentCardGrid: antd Skeleton \u2192 shadcn Skeleton. Empty state uses
border-border + bg-muted/50.
- AgentCostView: @tremor Title + antd Descriptions \u2192 plain semantic
two-column grid with bg-muted header column.
- cost_config_fields.tsx skipped \u2014 the form is still driven by antd
Form.Item from the parent; defer to when the full Agents form is
migrated.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 10:52:21 +00:00
Cursor Agent
08b1c0b897
feat(ui): team_multi_select + AutoRotationView migrate to shadcn
...
- team_multi_select: antd Select mode='multiple' \u2192 shadcn Popover +
chip list + infinite-scroll pattern matching team_dropdown.
- AutoRotationView: @tremor Badge/Text + @heroicons RefreshIcon/
ClockIcon \u2192 shadcn Badge + lucide RefreshCw/Clock + semantic
bg-muted/border-border/text-muted-foreground tokens. The
status-pill color (emerald / gray) remains categorical and was
already covered by the existing categorical overrides.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 10:48:53 +00:00
Cursor Agent
328754feee
feat(ui): simple_table + team_dropdown migrate off antd/@tremor Text
...
- simple_table: the Tremor Table family is whitelisted in phase 1 so
only the @tremor Text wrapper was swapped for a plain span with
semantic text-muted-foreground. File keeps its inline eslint-disable
for the preserved Tremor table primitives.
- team_dropdown: antd Select with infinite scroll + debounced remote
search + antd LoadingOutlined \u2192 shadcn Popover + Button (combobox)
+ Input + lucide Loader2/ChevronsUpDown/X. Infinite-scroll is
driven by the list element's scroll handler with the same 0.8
threshold. Cleared button spans stopPropagation to prevent the
popover from toggling open on clear.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 10:46:34 +00:00
Cursor Agent
b58fd0b7fc
feat(ui): common_components \u2014 ModelSelector + PassThroughRoutesSelector + PremiumLoggingSettings
...
- ModelSelector: antd Select + @tremor TextInput/Text + @ant-design/
icons RobotOutlined \u2192 shadcn Select + Input + lucide Bot. 'custom'
option preserved with the inline Input that appears below on
selection.
- PassThroughRoutesSelector: antd Select mode='tags' (typing an ad-hoc
value creates it) \u2192 shadcn Popover + chip-list multi-select with
Enter-to-add-freeform inside the search input.
- PremiumLoggingSettings: @tremor Text \u2192 plain <p>. Emerald/amber
callout badges preserved as categorical colors; file added to
.eslintrc.json overrides.
Gates: TS \u2713 | Build \u2713.
Co-authored-by: yuneng-jiang <yuneng-berri@users.noreply.github.com>
2026-04-23 10:44:09 +00:00