@@ -132,7 +147,11 @@ export function TagFilter({
cursor-pointer
bg-background
hover:bg-hover
- ${selectedTags.includes(tag) ? "bg-hover" : ""}
+ ${
+ selectedTags.includes(tag)
+ ? "bg-background-search-filter-dropdown"
+ : ""
+ }
`}
>
{tag.tag_key}
diff --git a/web/src/components/ui/calendar.tsx b/web/src/components/ui/calendar.tsx
index fe751d4a072..33c7320467e 100644
--- a/web/src/components/ui/calendar.tsx
+++ b/web/src/components/ui/calendar.tsx
@@ -34,23 +34,45 @@ function Calendar({
table: "w-full border-collapse space-y-1",
head_row: "flex",
head_cell:
- "text-neutral-500 rounded-md w-9 font-normal text-[0.8rem] dark:text-neutral-400",
+ "text-calendar-text-muted rounded-md w-9 font-normal text-[0.8rem] dark:text-calendar-text-muted-dark",
row: "flex w-full mt-2",
- cell: "h-9 w-9 text-center text-sm p-0 relative [&:has([aria-selected].day-range-end)]:rounded-r-md [&:has([aria-selected].day-outside)]:bg-neutral-100/50 [&:has([aria-selected])]:bg-neutral-100 first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md focus-within:relative focus-within:z-20 dark:[&:has([aria-selected].day-outside)]:bg-neutral-800/50 dark:[&:has([aria-selected])]:bg-neutral-800",
+ cell: cn(
+ "h-9 w-9 text-center text-sm p-0 relative",
+ "[&:has([aria-selected].day-range-end)]:rounded-r-md",
+ "[&:has([aria-selected].day-outside)]:bg-calendar-bg-outside-selected",
+ "[&:has([aria-selected])]:bg-calendar-bg-selected",
+ "first:[&:has([aria-selected])]:rounded-l-md",
+ "last:[&:has([aria-selected])]:rounded-r-md",
+ "focus-within:relative focus-within:z-20",
+ "dark:[&:has([aria-selected].day-outside)]:bg-calendar-bg-outside-selected-dark",
+ "dark:[&:has([aria-selected])]:bg-calendar-bg-selected-dark"
+ ),
day: cn(
buttonVariants({ variant: "ghost" }),
"h-9 w-9 p-0 font-normal aria-selected:opacity-100"
),
- day_range_end: "day-range-end !text-neutral-200",
- day_selected:
- "bg-neutral-900 text-neutral-50 hover:bg-neutral-900 hover:text-neutral-50 focus:bg-neutral-900 focus:text-neutral-50 dark:bg-neutral-50 dark:text-neutral-900 dark:hover:bg-neutral-50 dark:hover:text-neutral-900 dark:focus:bg-neutral-50 dark:focus:text-neutral-900",
+ day_selected: cn(
+ "bg-calendar-selected text-calendar-text-selected rounded-full",
+ "hover:bg-calendar-selected hover:text-calendar-text-selected",
+ "focus:bg-calendar-selected focus:text-calendar-text-selected"
+ ),
+ day_range_start: cn(
+ "bg-calendar-range-start text-calendar-text-selected rounded-l-full",
+ "hover:bg-calendar-range-start hover:text-calendar-text-selected",
+ "focus:bg-calendar-range-start focus:text-calendar-text-selected"
+ ),
+ day_range_end: cn(
+ "bg-calendar-range-end text-calendar-text-selected rounded-r-full",
+ "hover:bg-calendar-range-end hover:text-calendar-text-selected",
+ "focus:bg-calendar-range-end focus:text-calendar-text-selected"
+ ),
day_today:
"bg-neutral-100 text-neutral-900 dark:bg-neutral-800 dark:text-neutral-50",
day_outside:
"day-outside text-neutral-500 opacity-50 aria-selected:bg-neutral-100/50 aria-selected:text-neutral-500 aria-selected:opacity-30 dark:text-neutral-400 dark:aria-selected:bg-neutral-800/50 dark:aria-selected:text-neutral-400",
day_disabled: "text-neutral-500 opacity-50 dark:text-neutral-400",
day_range_middle:
- "aria-selected:bg-neutral-100 aria-selected:text-neutral-900 dark:aria-selected:bg-neutral-800 dark:aria-selected:text-neutral-50",
+ "aria-selected:bg-calendar-bg-selected aria-selected:text-calendar-text-selected dark:aria-selected:bg-calendar-bg-selected-dark dark:aria-selected:text-calendar-text-selected-dark",
day_hidden: "invisible",
...classNames,
}}
diff --git a/web/tailwind-themes/UF Themign.js b/web/tailwind-themes/UF Themign.js
new file mode 100644
index 00000000000..1929e3297e7
--- /dev/null
+++ b/web/tailwind-themes/UF Themign.js
@@ -0,0 +1,399 @@
+/** @type {import('tailwindcss').Config} */
+
+module.exports = {
+ darkMode: "class",
+ content: [
+ "./app/**/*.{js,ts,jsx,tsx,mdx}",
+ "./pages/**/*.{js,ts,jsx,tsx,mdx}",
+ "./components/**/*.{js,ts,jsx,tsx,mdx}",
+
+ // Or if using `src` directory:
+ "./src/**/*.{js,ts,jsx,tsx,mdx}",
+
+ // tremor
+ "./node_modules/@tremor/**/*.{js,ts,jsx,tsx}",
+ ],
+
+ theme: {
+ transparent: "transparent",
+ current: "currentColor",
+ extend: {
+ transitionProperty: {
+ spacing: "margin, padding",
+ },
+
+ keyframes: {
+ "subtle-pulse": {
+ "0%, 100%": { opacity: 0.9 },
+ "50%": { opacity: 0.5 },
+ },
+ pulse: {
+ "0%, 100%": { opacity: 0.9 },
+ "50%": { opacity: 0.4 },
+ },
+ },
+ animation: {
+ "fade-in-up": "fadeInUp 0.5s ease-out",
+ "subtle-pulse": "subtle-pulse 2s ease-in-out infinite",
+ pulse: "pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite",
+ },
+
+ gradientColorStops: {
+ "neutral-10": "#e5e5e5 5%",
+ },
+ screens: {
+ "2xl": "1420px",
+ "3xl": "1700px",
+ "4xl": "2000px",
+ mobile: { max: "767px" },
+ desktop: "768px",
+ },
+ fontFamily: {
+ sans: ["var(--font-inter)"],
+ },
+ width: {
+ "message-xs": "450px",
+ "message-sm": "550px",
+ "message-default": "740px",
+ "searchbar-xs": "560px",
+ "searchbar-sm": "660px",
+ searchbar: "850px",
+ "document-sidebar": "800px",
+ "document-sidebar-large": "1000px",
+ "searchbar-max": "60px",
+ },
+ maxWidth: {
+ "document-sidebar": "1000px",
+ "message-max": "850px",
+ "content-max": "725px",
+ "searchbar-max": "800px",
+ },
+ colors: {
+ // code styling
+ "code-bg": "var(--black)",
+ "code-text": "var(--code-text)",
+ "token-comment": "var(--token-comment)",
+ "token-punctuation": "var(--token-punctuation)",
+ "token-property": "var(--token-property)",
+ "token-selector": "var(--token-selector)",
+ "token-atrule": "var(--token-atrule)",
+ "token-function": "var(--token-function)",
+ "token-regex": "var(--token-regex)",
+ "token-attr-name": "var(--token-attr-name)",
+ "non-selectable": "var(--non-selectable)",
+
+ // background
+ background: "#EDEDF1",
+ "background-100": "var(--background-100)",
+ "background-125": "var(--background-125)",
+ "background-150": "var(--background-150)",
+ "background-200": "var(--background-200)",
+ "background-300": "var(--background-300)",
+ "background-400": "var(--background-400)",
+ "background-500": "var(--background-500)",
+ "background-600": "var(--background-600)",
+ "background-700": "var(--background-700)",
+ "background-800": "var(--background-800)",
+ "background-900": "var(--background-900)",
+ "background-toggle": "var(--background-100)",
+
+ "toggled-background": "var(--background-500)",
+ "untoggled-background": "var(--background-300)",
+ "background-inverted": "var(--background-inverted)",
+ "background-emphasis": "var(--background-emphasis)",
+ "background-strong": "var(--background-800)",
+ "background-search": "var(--white)",
+
+ "text-history-sidebar-button": "var(--text-900)",
+ "userdropdown-background": "var(--background-300)",
+ "text-sidebar-toggled-header": "var(--text-200)",
+ "text-sidebar-header": "var(--text-900)",
+ "text-sidebar-dark": "var(--text-200)",
+
+ "search-answer-border": "var(--background-300)",
+
+ "background-search-filter": "var(--background-100)",
+ "background-search-filter-dropdown": "var(--background-100)",
+
+ "text-editing-message": "var(--text-800)",
+
+ "background-chat-hover": "#1D4ED8",
+ "background-chat-selected": "#1D4ED8",
+ // colors for sidebar in chat, search, and manage settings
+ "background-sidebar": "#0021A5",
+ "background-settings-sidebar": "var(--background-100)",
+ "background-chatbar": "#FFFFFF",
+ "text-sidebar": "#FFFFFF",
+
+ // Settings
+ "text-sidebar-subtle": "#A9D4FF",
+ "icon-settings-sidebar": "var(--text-300)",
+ "text-settings-sidebar": "var(--text-300)",
+ "text-settings-sidebar-strong": "var(--text-200)",
+ "background-settings-hover": "#0026CC",
+ "background-back-button": "#A9D4FF",
+ "text-back-button": "var(--text-800)",
+
+ "background-search-answer": "var(--background-100)",
+ "text-search-answer": "var(--text-100)",
+ "text-recent-assistants": "var(--text-800)",
+ "border-recent-assistants": "var(--background-300)",
+ "text-mobile-sidebar-toggled": "var(--text-200)",
+ "text-mobile-sidebar-untoggled": "var(--text-900)",
+
+ "background-starter-message": "var(--background-100)",
+ "background-starter-message-hover": "var(--background-150)",
+
+ // Background for chat messages (user bubbles)
+ user: "#0021A5",
+
+ // Colors for the search toggle buttons
+ "background-agentic-toggled": "var(--light-success)",
+ "background-agentic-untoggled": "var(--undo)",
+ "text-agentic-toggled": "var(--text-800)",
+ "text-agentic-untoggled": "var(--white)",
+ "text-chatbar-subtle": "var(--text-500)",
+ "text-chatbar": "var(--text-800)",
+
+ // Color for the star indicator on high quality search results.
+ "star-indicator": "var(--background-100)",
+
+ // Backgrounds for submit buttons on search and chat
+ "submit-background": "#0021A5",
+ "disabled-submit-background": "var(--background-400)",
+
+ "background-recent-assistants-hover": "var(--background-100)",
+
+ "sidebar-toggle": "var(--text-200)",
+
+ input: "var(--white)",
+
+ "text-50": "var(--text-50)",
+ "text-100": "var(--text-100)",
+ "text-200": "var(--text-200)",
+ "text-300": "var(--text-300)",
+ "text-400": "var(--text-400)",
+ "text-500": "var(--text-500)",
+ "text-600": "var(--text-600)",
+ "text-700": "var(--text-700)",
+ "text-800": "var(--text-800)",
+ "text-900": "var(--text-900)",
+ "text-950": "var(--text-950)",
+
+ "user-text": "#FFFFFF",
+
+ description: "var(--text-400)",
+ subtle: "var(--text-500)",
+ default: "var(--text-600)",
+ emphasis: "var(--text-700)",
+ strong: "var(--text-900)",
+
+ // borders
+ border: "var(--border)",
+ "border-light": "var(--border-light)",
+ "border-medium": "var(--border-medium)",
+ "border-strong": "var(--border-strong)",
+ "border-dark": "var(--border-dark)",
+ "non-selectable-border": "#f5c2c7",
+
+ inverted: "var(--white)",
+ link: "var(--link)",
+ "link-hover": "var(--link-hover)",
+
+ // one offs
+ error: "var(--error)",
+ success: "var(--success)",
+ alert: "var(--alert)",
+ accent: "var(--accent)",
+
+ // hover
+ "hover-light": "var(--background-100)",
+ "hover-lightish": "var(--background-125)",
+
+ hover: "var(--background-200)",
+ "hover-emphasis": "var(--background-700)",
+ "accent-hover": "var(--accent-hover)",
+
+ // keyword highlighting
+ highlight: {
+ text: "var(--highlight-text)",
+ },
+
+ // scrollbar
+ scrollbar: {
+ track: "var(--scrollbar-track)",
+ thumb: "var(--scrollbar-thumb)",
+ "thumb-hover": "var(--scrollbar-thumb-hover)",
+
+ dark: {
+ thumb: "var(--scrollbar-dark-thumb)",
+ "thumb-hover": "var(--scrollbar-dark-thumb-hover)",
+ },
+ },
+
+ // for display documents
+ document: "var(--document-color)",
+
+ // light mode
+ tremor: {
+ brand: {
+ faint: "var(--tremor-brand-faint)",
+ muted: "var(--tremor-brand-muted)",
+ subtle: "var(--tremor-brand-subtle)",
+ DEFAULT: "#3b82f6", // blue-500
+ emphasis: "var(--tremor-brand-emphasis)",
+ inverted: "var(--tremor-brand-inverted)",
+ },
+ background: {
+ muted: "var(--tremor-background-muted)",
+ subtle: "var(--tremor-background-subtle)",
+ DEFAULT: "#ffffff", // white
+ emphasis: "var(--tremor-background-emphasis)",
+ },
+ border: {
+ DEFAULT: "#e5e7eb", // gray-200
+ },
+ ring: {
+ DEFAULT: "#e5e7eb", // gray-200
+ },
+ content: {
+ subtle: "var(--tremor-content-subtle)",
+ DEFAULT: "var(--tremor-content-default)",
+ emphasis: "var(--tremor-content-emphasis)",
+ strong: "var(--tremor-content-strong)",
+ inverted: "var(--tremor-content-inverted)",
+ },
+ },
+ // dark mode
+ "dark-tremor": {
+ brand: {
+ faint: "var(--dark-tremor-brand-faint)",
+ muted: "var(--dark-tremor-brand-muted)",
+ subtle: "var(--dark-tremor-brand-subtle)",
+ DEFAULT: "#3b82f6", // blue-500
+ emphasis: "var(--dark-tremor-brand-emphasis)",
+ inverted: "var(--dark-tremor-brand-inverted)",
+ },
+ background: {
+ muted: "var(--dark-tremor-background-muted)",
+ subtle: "var(--dark-tremor-background-subtle)",
+ DEFAULT: "var(--dark-tremor-background-default)",
+ emphasis: "var(--dark-tremor-background-emphasis)",
+ },
+ border: {
+ DEFAULT: "#1f2937", // gray-800
+ },
+ ring: {
+ DEFAULT: "#1f2937", // gray-800
+ },
+ content: {
+ subtle: "var(--dark-tremor-content-subtle)",
+ DEFAULT: "var(--dark-tremor-content-default)",
+ emphasis: "var(--dark-tremor-content-emphasis)",
+ strong: "var(--dark-tremor-content-strong)",
+ inverted: "var(--dark-tremor-content-inverted)",
+ },
+ },
+ calendar: {
+ // Light mode
+ "bg-selected": "#3B82F6",
+ "bg-outside-selected": "rgba(59, 130, 246, 0.2)",
+ "text-muted": "#6B7280",
+ "text-selected": "#FFFFFF",
+ "range-start": "#000000",
+ "range-middle": "#EFF6FF",
+ "range-end": "#000000",
+ "text-in-range": "#1E40AF",
+
+ // Dark mode
+ "bg-selected-dark": "#2563EB",
+ "bg-outside-selected-dark": "rgba(37, 99, 235, 0.2)",
+ "text-muted-dark": "#9CA3AF",
+ "text-selected-dark": "#F3F4F6",
+ "range-start-dark": "#1E40AF",
+ "range-middle-dark": "#1E3A8A",
+ "range-end-dark": "#1E40AF",
+ "text-in-range-dark": "#BFDBFE",
+
+ // Hover effects
+ "hover-bg": "#60A5FA",
+ "hover-bg-dark": "#3B82F6",
+ "hover-text": "#1E3A8A",
+ "hover-text-dark": "#DBEAFE",
+
+ // Today's date
+ "today-bg": "#FDE68A",
+ "today-bg-dark": "#92400E",
+ "today-text": "#92400E",
+ "today-text-dark": "#FDE68A",
+ },
+ },
+ boxShadow: {
+ // light
+ "tremor-input": "0 1px 2px 0 rgb(0 0 0 / 0.05)",
+ "tremor-card":
+ "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",
+ "tremor-dropdown":
+ "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
+ // dark
+ "dark-tremor-input": "0 1px 2px 0 rgb(0 0 0 / 0.05)",
+ "dark-tremor-card":
+ "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",
+ "dark-tremor-dropdown":
+ "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
+ },
+ borderRadius: {
+ "tremor-small": "0.375rem",
+ "tremor-default": "0.5rem",
+ "tremor-full": "9999px",
+ },
+ fontSize: {
+ "code-sm": "small",
+ "tremor-label": ["0.75rem"],
+ "tremor-default": ["0.875rem", { lineHeight: "1.25rem" }],
+ "tremor-title": ["1.125rem", { lineHeight: "1.75rem" }],
+ "tremor-metric": ["1.875rem", { lineHeight: "2.25rem" }],
+ },
+ fontWeight: {
+ description: "375",
+ "token-bold": "bold",
+ },
+ fontStyle: {
+ "token-italic": "italic",
+ },
+ },
+ },
+ safelist: [
+ {
+ pattern:
+ /^(bg-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/,
+ variants: ["hover", "ui-selected"],
+ },
+ {
+ pattern:
+ /^(text-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/,
+ variants: ["hover", "ui-selected"],
+ },
+ {
+ pattern:
+ /^(border-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/,
+ variants: ["hover", "ui-selected"],
+ },
+ {
+ pattern:
+ /^(ring-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/,
+ },
+ {
+ pattern:
+ /^(stroke-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/,
+ },
+ {
+ pattern:
+ /^(fill-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/,
+ },
+ ],
+ plugins: [
+ require("@tailwindcss/typography"),
+ require("@headlessui/tailwindcss"),
+ ],
+};
diff --git a/web/tailwind-themes/tailwind.config.js b/web/tailwind-themes/tailwind.config.js
index 4f33de65946..a8ea1a0549a 100644
--- a/web/tailwind-themes/tailwind.config.js
+++ b/web/tailwind-themes/tailwind.config.js
@@ -108,6 +108,8 @@ module.exports = {
"background-search-filter": "var(--background-100)",
"background-search-filter-dropdown": "var(--background-100)",
+ "user-bubble": "var(--user-bubble)",
+
// colors for sidebar in chat, search, and manage settings
"background-sidebar": "var(--background-100)",
"background-chatbar": "var(--background-100)",
@@ -141,6 +143,14 @@ module.exports = {
// Background for chat messages (user bubbles)
user: "var(--user-bubble)",
+ "userdropdown-background": "var(--background-100)",
+ "text-mobile-sidebar-toggled": "var(--text-800)",
+ "text-mobile-sidebar-untoggled": "var(--text-500)",
+ "text-editing-message": "var(--text-800)",
+ "background-sidebar": "var(--background-100)",
+ "background-search-filter": "var(--background-100)",
+ "background-search-filter-dropdown": "var(--background-hover)",
+
"background-toggle": "var(--background-100)",
// Colors for the search toggle buttons
@@ -320,6 +330,39 @@ module.exports = {
fontStyle: {
"token-italic": "italic",
},
+ calendar: {
+ // Light mode
+ "bg-selected": "#4B5563",
+ "bg-outside-selected": "rgba(75, 85, 99, 0.2)",
+ "text-muted": "#6B7280",
+ "text-selected": "#FFFFFF",
+ "range-start": "#000000",
+ "range-middle": "#F3F4F6",
+ "range-end": "#000000",
+ "text-in-range": "#1F2937",
+
+ // Dark mode
+ "bg-selected-dark": "#6B7280",
+ "bg-outside-selected-dark": "rgba(107, 114, 128, 0.2)",
+ "text-muted-dark": "#9CA3AF",
+ "text-selected-dark": "#F3F4F6",
+ "range-start-dark": "#374151",
+ "range-middle-dark": "#4B5563",
+ "range-end-dark": "#374151",
+ "text-in-range-dark": "#E5E7EB",
+
+ // Hover effects
+ "hover-bg": "#9CA3AF",
+ "hover-bg-dark": "#6B7280",
+ "hover-text": "#374151",
+ "hover-text-dark": "#E5E7EB",
+
+ // Today's date
+ "today-bg": "#D1D5DB",
+ "today-bg-dark": "#4B5563",
+ "today-text": "#374151",
+ "today-text-dark": "#D1D5DB",
+ },
},
},
safelist: [