mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-09-21 21:50:49 +02:00

feat: Enhance CategoryTabs and Marketplace components for better responsiveness and navigation feat: Refactor AgentCard and AgentGrid components for improved layout and accessibility feat: Implement animated category transitions in AgentMarketplace and update NewChat component layout feat: Refactor UI components for improved styling and accessibility in sharing dialogs refactor: remove GenericManagePermissionsDialog and GrantAccessDialog components - Deleted GenericManagePermissionsDialog and GrantAccessDialog components to streamline sharing functionality. - Updated ManagePermissionsDialog to utilize AccessRolesPicker directly. - Introduced UnifiedPeopleSearch for improved people selection experience. - Enhanced PublicSharingToggle with InfoHoverCard for better user guidance. - Adjusted AgentPanel to change error status to warning for duplicate agent versions. - Updated translations to include new keys for search and access management. feat: Add responsive design for SelectedPrincipalsList and improve layout in GenericGrantAccessDialog feat: Enhance styling in SelectedPrincipalsList and SearchPicker components for improved UI consistency feat: Improve PublicSharingToggle component with enhanced styling and accessibility features feat: Introduce InfoHoverCard component and refactor enums for better organization feat: Implement infinite scroll for agent grids and enhance performance - Added `useInfiniteScroll` hook to manage infinite scrolling behavior in agent grids. - Integrated infinite scroll functionality into `AgentGrid` and `VirtualizedAgentGrid` components. - Updated `AgentMarketplace` to pass the scroll container to the agent grid components. - Refactored loading indicators to show a spinner instead of a "Load More" button. - Created `VirtualizedAgentGrid` component for optimized rendering of agent cards using virtualization. - Added performance tests for `VirtualizedAgentGrid` to ensure efficient handling of large datasets. - Updated translations to include new messages for end-of-results scenarios. chore: Remove unused permission-related UI localization keys ci: Update Agent model tests to handle duplicate support_contact updates - Modified tests to ensure that updating an agent with the same support_contact does not create a new version and returns successfully. - Enhanced verification for partial changes in support_contact, confirming no new version is created when content remains the same. chore: Address ESLint, clean up unused imports and improve prop definitions in various components ci: fix tests ci: update tests chore: remove unused search localization keys
165 lines
5.7 KiB
JavaScript
165 lines
5.7 KiB
JavaScript
// const { fontFamily } = require('tailwindcss/defaultTheme');
|
|
|
|
/** @type {import('tailwindcss').Config} */
|
|
module.exports = {
|
|
content: [
|
|
'./src/**/*.{js,jsx,ts,tsx}',
|
|
// Include component library files
|
|
'../packages/client/src/**/*.{js,jsx,ts,tsx}',
|
|
],
|
|
// darkMode: 'class',
|
|
darkMode: ['class'],
|
|
theme: {
|
|
fontFamily: {
|
|
sans: ['Inter', 'sans-serif'],
|
|
mono: ['Roboto Mono', 'monospace'],
|
|
},
|
|
// fontFamily: {
|
|
// sans: ['Söhne', 'sans-serif'],
|
|
// mono: ['Söhne Mono', 'monospace'],
|
|
// },
|
|
extend: {
|
|
width: {
|
|
authPageWidth: '370px',
|
|
},
|
|
keyframes: {
|
|
'accordion-down': {
|
|
from: { height: 0 },
|
|
to: { height: 'var(--radix-accordion-content-height)' },
|
|
},
|
|
'accordion-up': {
|
|
from: { height: 'var(--radix-accordion-content-height)' },
|
|
to: { height: 0 },
|
|
},
|
|
'slide-in-right': {
|
|
'0%': { transform: 'translateX(100%)' },
|
|
'100%': { transform: 'translateX(0)' },
|
|
},
|
|
'slide-in-left': {
|
|
'0%': { transform: 'translateX(-100%)' },
|
|
'100%': { transform: 'translateX(0)' },
|
|
},
|
|
'slide-out-left': {
|
|
'0%': { transform: 'translateX(0)' },
|
|
'100%': { transform: 'translateX(-100%)' },
|
|
},
|
|
'slide-out-right': {
|
|
'0%': { transform: 'translateX(0)' },
|
|
'100%': { transform: 'translateX(100%)' },
|
|
},
|
|
},
|
|
animation: {
|
|
'fade-in': 'fadeIn 0.5s ease-out forwards',
|
|
'accordion-down': 'accordion-down 0.2s ease-out',
|
|
'accordion-up': 'accordion-up 0.2s ease-out',
|
|
'slide-in-right': 'slide-in-right 300ms cubic-bezier(0.25, 0.1, 0.25, 1)',
|
|
'slide-in-left': 'slide-in-left 300ms cubic-bezier(0.25, 0.1, 0.25, 1)',
|
|
'slide-out-left': 'slide-out-left 300ms cubic-bezier(0.25, 0.1, 0.25, 1)',
|
|
'slide-out-right': 'slide-out-right 300ms cubic-bezier(0.25, 0.1, 0.25, 1)',
|
|
},
|
|
colors: {
|
|
gray: {
|
|
20: '#ececf1',
|
|
50: '#f7f7f8',
|
|
100: '#ececec',
|
|
200: '#e3e3e3',
|
|
300: '#cdcdcd',
|
|
400: '#999696',
|
|
500: '#595959',
|
|
600: '#424242',
|
|
700: '#2f2f2f',
|
|
800: '#212121',
|
|
850: '#171717',
|
|
900: '#0d0d0d',
|
|
},
|
|
green: {
|
|
50: '#f1f9f7',
|
|
100: '#def2ed',
|
|
200: '#a6e5d6',
|
|
300: '#6dc8b9',
|
|
400: '#41a79d',
|
|
500: '#10a37f',
|
|
550: '#349072',
|
|
600: '#126e6b',
|
|
700: '#0a4f53',
|
|
800: '#06373e',
|
|
900: '#031f29',
|
|
},
|
|
'brand-purple': 'var(--brand-purple)',
|
|
presentation: 'var(--presentation)',
|
|
'text-primary': 'var(--text-primary)',
|
|
'text-secondary': 'var(--text-secondary)',
|
|
'text-secondary-alt': 'var(--text-secondary-alt)',
|
|
'text-tertiary': 'var(--text-tertiary)',
|
|
'text-warning': 'var(--text-warning)',
|
|
'ring-primary': 'var(--ring-primary)',
|
|
'header-primary': 'var(--header-primary)',
|
|
'header-hover': 'var(--header-hover)',
|
|
'header-button-hover': 'var(--header-button-hover)',
|
|
'surface-active': 'var(--surface-active)',
|
|
'surface-active-alt': 'var(--surface-active-alt)',
|
|
'surface-hover': 'var(--surface-hover)',
|
|
'surface-hover-alt': 'var(--surface-hover-alt)',
|
|
'surface-primary': 'var(--surface-primary)',
|
|
'surface-primary-alt': 'var(--surface-primary-alt)',
|
|
'surface-primary-contrast': 'var(--surface-primary-contrast)',
|
|
'surface-secondary': 'var(--surface-secondary)',
|
|
'surface-secondary-alt': 'var(--surface-secondary-alt)',
|
|
'surface-tertiary': 'var(--surface-tertiary)',
|
|
'surface-tertiary-alt': 'var(--surface-tertiary-alt)',
|
|
'surface-dialog': 'var(--surface-dialog)',
|
|
'surface-submit': 'var(--surface-submit)',
|
|
'surface-submit-hover': 'var(--surface-submit-hover)',
|
|
'surface-destructive': 'var(--surface-destructive)',
|
|
'surface-destructive-hover': 'var(--surface-destructive-hover)',
|
|
'surface-chat': 'var(--surface-chat)',
|
|
'border-light': 'var(--border-light)',
|
|
'border-medium': 'var(--border-medium)',
|
|
'border-medium-alt': 'var(--border-medium-alt)',
|
|
'border-heavy': 'var(--border-heavy)',
|
|
'border-xheavy': 'var(--border-xheavy)',
|
|
/* These are test styles */
|
|
border: 'hsl(var(--border))',
|
|
input: 'hsl(var(--input))',
|
|
['switch-unchecked']: 'hsl(var(--switch-unchecked))',
|
|
ring: 'hsl(var(--ring))',
|
|
background: 'hsl(var(--background))',
|
|
foreground: 'hsl(var(--foreground))',
|
|
primary: {
|
|
DEFAULT: 'hsl(var(--primary))',
|
|
foreground: 'hsl(var(--primary-foreground))',
|
|
},
|
|
secondary: {
|
|
DEFAULT: 'hsl(var(--secondary))',
|
|
foreground: 'hsl(var(--secondary-foreground))',
|
|
},
|
|
destructive: {
|
|
DEFAULT: 'hsl(var(--destructive))',
|
|
foreground: 'hsl(var(--destructive-foreground))',
|
|
},
|
|
muted: {
|
|
DEFAULT: 'hsl(var(--muted))',
|
|
foreground: 'hsl(var(--muted-foreground))',
|
|
},
|
|
accent: {
|
|
DEFAULT: 'hsl(var(--accent))',
|
|
foreground: 'hsl(var(--accent-foreground))',
|
|
},
|
|
card: {
|
|
DEFAULT: 'hsl(var(--card))',
|
|
foreground: 'hsl(var(--card-foreground))',
|
|
},
|
|
},
|
|
borderRadius: {
|
|
lg: 'var(--radius)',
|
|
md: 'calc(var(--radius) - 2px)',
|
|
sm: 'calc(var(--radius) - 4px)',
|
|
},
|
|
},
|
|
},
|
|
plugins: [
|
|
require('tailwindcss-animate'),
|
|
require('tailwindcss-radix'),
|
|
// require('@tailwindcss/typography'),
|
|
],
|
|
};
|