feat(admin-ui): enhance dark mode support across UI components
- Updated various components in the llm-router to include dark mode styles, ensuring better visibility and aesthetics in dark theme. - Added tests for API URL helpers to validate sign-in URL construction and redirection logic. - Improved the sign-in flow to handle trusted redirects for standalone admin origins. - Enhanced CSS styles for dark mode, including adjustments to backgrounds, borders, and text colors for better contrast and readability. - Refactored input components to maintain consistent styling in both light and dark modes.
This commit is contained in:
@@ -85,6 +85,7 @@ const modelValue = defineModel<T>({ required: false })
|
||||
'text-disabled:neutral-400 dark:text-disabled:neutral-600',
|
||||
'cursor-disabled:not-allowed',
|
||||
'w-full rounded-lg px-2 py-1 text-sm outline-none',
|
||||
'text-neutral-900 dark:text-neutral-100 placeholder:text-neutral-400 dark:placeholder:text-neutral-500',
|
||||
'shadow-sm',
|
||||
'bg-neutral-50 dark:bg-neutral-950 focus:bg-neutral-50 dark:focus:bg-neutral-900',
|
||||
]"
|
||||
|
||||
@@ -40,6 +40,7 @@ const variantClasses: Record<InputVariant, Record<InputTheme, {
|
||||
default: [
|
||||
'w-full rounded-lg px-2 py-1 text-nowrap text-sm outline-none',
|
||||
'bg-neutral-50 dark:bg-neutral-950 focus:bg-neutral-50 dark:focus:bg-neutral-900',
|
||||
'text-neutral-900 dark:text-neutral-100 placeholder:text-neutral-400 dark:placeholder:text-neutral-500',
|
||||
'focus:border-primary-300 dark:focus:border-primary-400/50 border-2 border-solid border-neutral-100 dark:border-neutral-900',
|
||||
'text-disabled:neutral-400 dark:text-disabled:neutral-600',
|
||||
'shadow-sm',
|
||||
@@ -51,6 +52,7 @@ const variantClasses: Record<InputVariant, Record<InputTheme, {
|
||||
default: [
|
||||
'w-full rounded-lg px-2 py-1 text-nowrap text-sm outline-none',
|
||||
'bg-neutral-50 dark:bg-neutral-950 focus:bg-neutral-50 dark:focus:bg-neutral-900',
|
||||
'text-neutral-900 dark:text-neutral-100 placeholder:text-neutral-400 dark:placeholder:text-neutral-500',
|
||||
'focus:border-primary-300 dark:focus:border-primary-400/50 border-2 border-solid border-neutral-100 dark:border-neutral-900',
|
||||
'text-disabled:neutral-400 dark:text-disabled:neutral-600',
|
||||
'shadow-sm',
|
||||
@@ -62,6 +64,7 @@ const variantClasses: Record<InputVariant, Record<InputTheme, {
|
||||
default: [
|
||||
'w-full rounded-lg px-2 py-1 text-nowrap text-sm outline-none',
|
||||
'bg-neutral-100 dark:bg-neutral-800 focus:bg-neutral-50 dark:focus:bg-neutral-950',
|
||||
'text-neutral-900 dark:text-neutral-100 placeholder:text-neutral-400 dark:placeholder:text-neutral-500',
|
||||
'focus:border-primary-500/30 dark:focus:border-primary-400/50 border-2 border-solid border-neutral-500/5 dark:border-neutral-700/40',
|
||||
'text-disabled:neutral-400 dark:text-disabled:neutral-600',
|
||||
],
|
||||
|
||||
@@ -13,6 +13,7 @@ const modelValue = defineModel<string>({ default: '' })
|
||||
'text-disabled:neutral-400 dark:text-disabled:neutral-600',
|
||||
'cursor-disabled:not-allowed',
|
||||
'w-full rounded-lg px-2 py-1 text-nowrap text-sm outline-none',
|
||||
'text-neutral-900 dark:text-neutral-100 placeholder:text-neutral-400 dark:placeholder:text-neutral-500',
|
||||
'shadow-sm',
|
||||
'bg-neutral-50 dark:bg-neutral-950 focus:bg-neutral-50 dark:focus:bg-neutral-900',
|
||||
]"
|
||||
|
||||
@@ -154,7 +154,7 @@ const baseClasses = computed(() => {
|
||||
const theme = variant[props.theme] || variant.default
|
||||
|
||||
return [
|
||||
'font-medium outline-none',
|
||||
'font-medium outline-none whitespace-nowrap',
|
||||
'transition-all duration-200 ease-in-out',
|
||||
'disabled:cursor-not-allowed disabled:opacity-50',
|
||||
'backdrop-blur-md',
|
||||
|
||||
Reference in New Issue
Block a user