langflow/src/frontend/tailwind.config.mjs
Lucas Oliveira a09652ca5f
fix: refactor loading of main page, use new Sidebar in main page, fix small UI bugs (#4451)
* Tighten space between main page sidebar buttons

* Fixed skeleton size

* Added playground button back

* Updated no components and flows state

* Update default icon to Workflow

* Fixed size of list cards

* Removed browse store

* Removed playground button

* Removed black background from empty folder state

* Update empty state color

* Fix color of empty state

* fix text not selectable

* updated border color

* added shadow only on hover

* Remove JSON from Download JSON

* Fixed colors and weight of tabs on home page

* Fixed padding on list and grid components

* Update icons that take long to load

* Fixed icon and bg color for home tiles

* Removed unused code

* removed placeholder data for skeleton to not appear on first load

* Make onSuccess refetch the queries so that the loading waits for it

* Removed unused divs on foldersidebarnav

* Refactor sidebar buttons to use new shadcn sidebar

* Created skeletons for folder, grid and list

* Added new sidebar size

* Use new sidebar button on header and implemented animation

* Changed icon to getIcon

* Added sidebar provider and fixed loading states of the main page

* Removed folder buttons on emptyPage

* Fixed foldername to appear immediatly, and fixed loading states for the folders

* Removed unused state from folders store

* Removed unused states from folders store type

* Added new icon

* fixed modals component to not show a trash icon

* Changed icons to load immediatly

* Added empty folder condition to not display header info

* Added conditions to show loading state until everything loads

* Created empty folder state

* Changed empty page to correct colors

* Added skeletons while flows of the folder are loading

* Removed shadow from text

* Fixed font chivo taking long time to load

* Fix adding new folder not redirecting

* [autofix.ci] apply automated fixes

* Fixed colors and paddings on list and grid components

* Re added tooltips to upload and create folders

* fix input for name editing

* Fix tests

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-11-08 17:33:52 +00:00

431 lines
15 KiB
JavaScript

/** @type {import('tailwindcss').Config} */
import tailwindcssForms from "@tailwindcss/forms";
import tailwindcssTypography from "@tailwindcss/typography";
import tailwindcssAnimate from "tailwindcss-animate";
import tailwindcssDottedBackground from "tailwindcss-dotted-background";
import { fontFamily } from "tailwindcss/defaultTheme";
import plugin from "tailwindcss/plugin";
const config = {
variants: {
extend: {
display: ["group-hover"],
textColor: ["group-increment-hover", "group-decrement-hover"],
},
},
darkMode: ["class"],
content: [
"app/**/*.{ts,tsx}",
"components/**/*.{ts,tsx}",
"./index.html",
"./src/**/*.{js,ts,tsx,jsx}",
],
safelist: [
"bg-status-blue",
"bg-status-green",
"bg-status-red",
"bg-status-yellow",
],
important: false,
theme: {
container: {
center: true,
screens: {
"2xl": "1400px",
},
},
extend: {
screens: {
xl: "1200px",
"2xl": "1400px",
},
keyframes: {
wiggle: {
"0%, 100%": { transform: "scale(100%)" },
"50%": { transform: "scale(120%)" },
},
"border-beam": {
"100%": {
"offset-distance": "100%",
},
},
},
animation: {
wiggle: "wiggle 150ms ease-in-out 1",
"slow-wiggle": "wiggle 500ms ease-in-out 1",
"border-beam": "border-beam calc(var(--duration)*1s) infinite linear",
},
colors: {
"frozen-blue": "rgba(128, 190, 219, 0.86)", // Custom blue color for the frozen effect
"frosted-glass": "rgba(255, 255, 255, 0.8)", // Custom frosted glass effect
"component-icon": "var(--component-icon)",
"flow-icon": "var(--flow-icon)",
"low-indigo": "var(--low-indigo)",
"chat-send": "var(--chat-send)",
connection: "var(--connection)",
"almost-dark-gray": "var(--almost-dark-gray)",
"almost-light-blue": "var(--almost-light-blue)",
"almost-medium-gray": "var(--almost-medium-gray)",
"almost-medium-green": "var(--almost-medium-green)",
"almost-medium-red": "var(--almost-medium-red)",
"btn-shadow": "var(--round-btn-shadow)",
"build-trigger": "var(--build-trigger)",
"chat-trigger": "var(--chat-trigger)",
"chat-trigger-disabled": "var(--chat-trigger-disabled)",
"dark-blue": "var(--dark-blue)",
"dark-gray": "var(--dark-gray)",
"dark-red": "var(--dark-red)",
error: {
DEFAULT: "var(--error)",
background: "var(--error-background)",
foreground: "var(--error-foreground)",
},
"high-dark-gray": "var(--high-dark-gray)",
"high-indigo": "var(--high-indigo)",
"high-light-gray": "var(--high-light-gray)",
"info-background": "var(--info-background)",
"info-foreground": "var(--info-foreground)",
"light-blue": "var(--light-blue)",
"light-gray": "var(--light-gray)",
"light-slate": "var(--light-slate)",
"medium-blue": "var(--medium-blue)",
"status-blue": "var(--status-blue)",
"medium-dark-gray": "var(--medium-dark-gray)",
"medium-dark-green": "var(--medium-dark-green)",
"medium-dark-red": "var(--medium-dark-red)",
"medium-emerald": "var(--medium-emerald)",
"medium-gray": "var(--medium-gray)",
"medium-high-indigo": "var(--medium-high-indigo)",
"medium-indigo": "var(--medium-indigo)",
"medium-low-gray": "var(--medium-low-gray)",
"note-amber": "hsl(var(--note-amber))",
"note-neutral": "hsl(var(--note-neutral))",
"note-rose": "hsl(var(--note-rose))",
"note-blue": "hsl(var(--note-blue))",
"note-lime": "hsl(var(--note-lime))",
"status-green": "var(--status-green)",
"status-red": "var(--status-red)",
"status-yellow": "var(--status-yellow)",
"status-gray": "var(--status-gray)",
"success-background": "var(--success-background)",
"success-foreground": "var(--success-foreground)",
"accent-pink": "hsl(var(--accent-pink))",
"accent-pink-foreground": "hsl(var(--accent-pink-foreground))",
filter: {
foreground: "var(--filter-foreground)",
background: "var(--filter-background)",
},
beta: {
background: "var(--beta-background)",
foreground: "var(--beta-foreground)",
"foreground-soft": "var(--beta-foreground-soft)",
},
"chat-bot-icon": "var(--chat-bot-icon)",
"chat-user-icon": "var(--chat-user-icon)",
"code-background": "hsl(var(--code-background))",
canvas: {
DEFAULT: "hsl(var(--canvas))",
dot: "hsl(var(--canvas-dot))",
},
ice: "var(--ice)",
selected: "var(--selected)",
hover: "var(--hover)",
border: "hsl(var(--border))",
input: "hsl(var(--input))",
ring: "hsl(var(--ring))",
"error-red": "hsl(var(--error-red))",
"error-red-border": "hsl(var(--error-red-border))",
"node-selected": "hsl(var(--node-selected))",
background: "hsl(var(--background))",
foreground: "hsl(var(--foreground))",
"accent-emerald": {
DEFAULT: "hsl(var(--accent-emerald))",
foreground: "hsl(var(--accent-emerald-foreground))",
},
"emerald-smooth": "hsl(var(--emaral-smooth))",
"emerald-hard": "hsl(var(--emeral-hard))",
placeholder: "hsl(var(--placeholder))",
"hard-zinc": "hsl(var(--hard-zinc))",
"smooth-red": "hsl(var(--smooth-red))",
"placeholder-foreground": "hsl(var(--placeholder-foreground))",
primary: {
DEFAULT: "hsl(var(--primary))",
foreground: "hsl(var(--primary-foreground))",
hover: "hsl(var(--primary-hover))",
},
secondary: {
DEFAULT: "hsl(var(--secondary))",
foreground: "hsl(var(--secondary-foreground))",
hover: "hsl(var(--secondary-hover))",
},
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))",
},
"accent-emerald": {
DEFAULT: "hsl(var(--accent-emerald))",
foreground: "hsl(var(--accent-emerald-foreground))",
hover: "hsl(var(--accent-emerald-hover))",
},
"accent-indigo": {
DEFAULT: "hsl(var(--accent-indigo))",
foreground: "hsl(var(--accent-indigo-foreground))",
},
"accent-pink": {
DEFAULT: "hsl(var(--accent-pink))",
foreground: "hsl(var(--accent-pink-foreground))",
},
popover: {
DEFAULT: "hsl(var(--popover))",
foreground: "hsl(var(--popover-foreground))",
},
card: {
DEFAULT: "hsl(var(--card))",
foreground: "hsl(var(--card-foreground))",
},
tooltip: {
DEFAULT: "hsl(var(--tooltip))",
foreground: "hsl(var(--tooltip-foreground))",
},
"code-block": {
DEFAULT: "#18181B",
muted: "#27272A",
},
"accent-yellow": {
DEFAULT: "hsl(var(--accent-yellow))",
foreground: "hsl(var(--accent-yellow-foreground))",
},
"accent-blue": {
DEFAULT: "hsl(var(--accent-blue))",
foreground: "hsl(var(--accent-blue-foreground))",
},
"accent-gray": {
DEFAULT: "hsl(var(--accent-gray))",
foreground: "hsl(var(--accent-gray-foreground))",
},
"accent-lime": {
DEFAULT: "hsl(var(--accent-lime))",
foreground: "hsl(var(--accent-lime-foreground))",
},
"accent-red": {
DEFAULT: "hsl(var(--accent-red))",
foreground: "hsl(var(--accent-red-foreground))",
},
"accent-violet": {
DEFAULT: "hsl(var(--accent-violet))",
foreground: "hsl(var(--accent-violet-foreground))",
},
"accent-emerald": {
DEFAULT: "hsl(var(--accent-emerald))",
foreground: "hsl(var(--accent-emerald-foreground))",
},
"accent-fuchsia": {
DEFAULT: "hsl(var(--accent-fuchsia))",
foreground: "hsl(var(--accent-fuchsia-foreground))",
},
"accent-purple": {
DEFAULT: "hsl(var(--accent-purple))",
foreground: "hsl(var(--accent-purple-foreground))",
},
"accent-cyan": {
DEFAULT: "hsl(var(--accent-cyan))",
foreground: "hsl(var(--accent-cyan-foreground))",
},
"accent-indigo": {
DEFAULT: "hsl(var(--accent-indigo))",
foreground: "hsl(var(--accent-indigo-foreground))",
},
"node-ring": "hsl(var(--node-ring))",
},
borderRadius: {
lg: `var(--radius)`,
md: `calc(var(--radius) - 2px)`,
sm: "calc(var(--radius) - 4px)",
},
borderWidth: {
1.75: "1.75px",
1.5: "1.5px",
},
fontFamily: {
sans: ["var(--font-sans)", ...fontFamily.sans],
mono: ["var(--font-mono)", ...fontFamily.mono],
chivo: ["var(--font-chivo)", ...fontFamily.sans],
},
boxShadow: {
"frozen-ring": "0 0 10px 2px rgba(128, 190, 230, 0.5)",
node: "0 0px 15px -3px rgb(0 0 0 / 0.1), 0 0px 6px -4px rgb(0 0 0 / 0.1);",
"frosted-ring": "0 0 10px 2px rgba(128, 190, 230, 0.7)",
},
backdropBlur: {
xs: "2px",
},
},
},
plugins: [
tailwindcssAnimate,
tailwindcssForms({
strategy: "class", // only generate classes
}),
plugin(function ({ addUtilities }) {
addUtilities({
".scrollbar-hide": {
/* IE and Edge */
"-ms-overflow-style": "none",
/* Firefox */
"scrollbar-width": "none",
/* Safari and Chrome */
"&::-webkit-scrollbar": {
display: "none",
},
},
".truncate-multiline": {
display: "-webkit-box",
"-webkit-line-clamp":
"3" /* Change this number to the number of lines you want to show */,
"-webkit-box-orient": "vertical",
overflow: "hidden",
"text-overflow": "ellipsis",
},
".truncate-doubleline": {
display: "-webkit-box",
"-webkit-line-clamp":
"2" /* Change this number to the number of lines you want to show */,
"-webkit-box-orient": "vertical",
overflow: "hidden",
"text-overflow": "ellipsis",
},
".word-break-break-word": {
wordBreak: "break-word",
},
".arrow-hide": {
"&::-webkit-inner-spin-button": {
"-webkit-appearance": "none",
margin: 0,
},
"&::-webkit-outer-spin-button": {
"-webkit-appearance": "none",
margin: 0,
},
},
".password": {
"-webkit-text-security": "disc",
"font-family": "text-security-disc",
},
".stop": {
"-webkit-animation-play-state": "paused",
"-moz-animation-play-state": "paused",
"animation-play-state": "paused",
},
".custom-scroll": {
"&::-webkit-scrollbar": {
width: "8px",
height: "8px",
},
"&::-webkit-scrollbar-track": {
backgroundColor: "hsl(var(--muted))",
},
"&::-webkit-scrollbar-thumb": {
backgroundColor: "hsl(var(--border))",
borderRadius: "999px",
},
"&::-webkit-scrollbar-thumb:hover": {
backgroundColor: "hsl(var(--ring))",
},
cursor: "auto",
},
".dark .theme-attribution .react-flow__attribution": {
backgroundColor: "rgba(255, 255, 255, 0.2)",
padding: "0px 5px",
},
".dark .theme-attribution .react-flow__attribution a": {
color: "black",
},
".text-align-last-left": {
"text-align-last": "left",
},
".text-align-last-right": {
"text-align-last": "right",
},
":focus-visible": {
outline: "none !important",
outlineOffset: "0px !important",
},
".note-node-markdown": {
lineHeight: "1",
"& ul li::marker": {
color: "black",
},
"& ol li::marker": {
color: "black",
},
"& h1, & h2, & h3, & h4, & h5, & h6, & p, & ul, & ol": {
marginBottom: "0.25rem",
},
},
});
}),
tailwindcssTypography,
tailwindcssDottedBackground,
plugin(function ({ addUtilities, theme, e }) {
const colors = theme("colors");
const generateUtilities = (colors, prefix = "") => {
return Object.keys(colors).reduce((acc, colorName) => {
const colorValue = colors[colorName];
const className = prefix ? `${prefix}-${e(colorName)}` : e(colorName);
if (typeof colorValue === "string") {
acc[`.truncate-${className}`] = {
position: "relative",
overflow: "hidden",
"&::after": {
content: '""',
position: "absolute",
inset: "0 0 0 0",
background: `linear-gradient(to right, transparent, 75%, ${colorValue})`,
},
};
} else if (typeof colorValue === "object") {
// Use the DEFAULT value for the base class if it exists
if (colorValue.DEFAULT) {
acc[`.truncate-${className}`] = {
position: "relative",
overflow: "hidden",
"&::after": {
content: '""',
position: "absolute",
inset: "0 0 0 0",
background: `linear-gradient(to right, transparent, ${colorValue.DEFAULT})`,
},
};
}
// Recursively generate utilities for nested color objects
Object.assign(acc, generateUtilities(colorValue, className));
}
return acc;
}, {});
};
const newUtilities = generateUtilities(colors);
addUtilities(newUtilities, ["responsive", "hover"]);
}),
plugin(({ addVariant }) => {
addVariant("group-increment-hover", ":merge(.group-increment):hover &");
addVariant("group-decrement-hover", ":merge(.group-decrement):hover &");
}),
],
};
export default config;