fix(ui): de-duplicate the reset budget option and polish shadcn surfaces - #37010
Conversation
Create Key offered two options labelled "Never resets" in the Reset Budget dropdown. BudgetDurationDropdown renders its unset item using the caller's placeholder, and create_key_button passed placeholder="Never resets" alongside showNeverResets, so the omit option and the explicit-null option looked identical while behaving differently. An omitted budget_duration picks up default_key_generate_params and the linked budget tier's schedule, whereas the "none" sentinel is converted to an explicit null and truly never resets. The unset item now reads "Not set", matching getBudgetDurationLabel, and the create-key test mock passes the placeholder through so a future collision fails the suite The rest is migration cleanup found during manual QA. The models and endpoints tab strip hides its scrollbar and fades at the right edge using a vendored copy of the shadcn scroll-fade utility, keeping the CLI package out of the build. globals.css neutralises the @tailwindcss/forms resting-state rules for combobox-chip-input, which lets twelve call sites drop the same copy-pasted className workaround. Guardrails moves to the line tab variant and stops clipping its textarea focus ring, the log drawer JSON tree takes the app background, the audit log empty state centres, the caching page selects no longer stretch to the row height, the usage page team filter shares its row with the Export button through a new filterSlot prop, and the cost optimization and vector store tab strips drop their leftover full-width divider
…itellm_shadcn_next_0814
Greptile SummaryThe PR clarifies reset-budget choices and updates several dashboard surfaces to use consistent shadcn styling and composition.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains.
|
| Filename | Overview |
|---|---|
| ui/litellm-dashboard/src/components/organisms/create_key_button.tsx | Renames the unset budget-duration placeholder to “Not set” while retaining the explicit never-reset value. |
| ui/litellm-dashboard/src/components/organisms/create_key_button.test.tsx | Extends the dropdown mock and verifies that the unset and explicit never-reset options have distinct labels and values. |
| ui/litellm-dashboard/src/app/globals.css | Adds scroll-fade utilities and normalizes forms-plugin styles for shadcn combobox chip inputs. |
| ui/litellm-dashboard/src/components/EntityUsageExport/UsageExportHeader.tsx | Adds a custom filter slot while preserving the built-in single- and multi-select filter implementations. |
| ui/litellm-dashboard/src/components/ui/button-group.tsx | Introduces a reusable shadcn-style grouped-button primitive. |
| ui/litellm-dashboard/src/components/Navbar/CommunityEngagementButtons/CommunityEngagementButtons.tsx | Migrates community links to shared button variants, button grouping, and data-driven rendering. |
Reviews (2): Last reviewed commit: "Merge remote-tracking branch 'origin/lit..." | Re-trigger Greptile
| /* Verbatim end-edge subset of the shadcn scroll-fade utility (shadcn@4.17.0 dist/tailwind.css), | ||
| vendored so the CLI package is not a build dependency. Re-copy from upstream to update. */ | ||
| @property --scroll-fade-e { |
There was a problem hiding this comment.
Stylesheet adds maintenance commentary
These vendoring and update notes duplicate implementation history in source comments, increasing the chance that the explanation drifts from the CSS; the same pattern also appears in the new forms-plugin override
Context Used: CLAUDE.md (source)
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
|
@greptile review again |
TLDR
Problem this solves:
How it solves it:
User Flow
Before: an admin creating a key cannot tell which "Never resets" to pick, and one of them silently inherits a reset schedule
After: the two entries are labelled for what they do, so the choice matches the outcome
Relevant issues
Linear ticket
Pre-Submission checklist
@greptileaito re-request a review after pushing changes)Delays in PR merge?
If you're seeing a delay in your PR being merged, ping the LiteLLM Team on Slack (#pr-review).
Screenshots / Proof of Fix
Type
🐛 Bug Fix
🧹 Refactoring
Caveats (if any)