✨ feat(App.tsx): add support for process.env.PORT environment variable to be able to run app on a configurable port 🐛 fix(App.tsx): change 'port' variable case from lowercase to uppercase to improve semantics 🐛 fix(App.tsx): fix typo in import statement for 'getLoggedUser' function 🐛 fix(App.tsx): add missing import statement for 'LoginType' type 🐛 fix(App.tsx): add missing import statement for 'LOCALHOST_JWT' constant 🐛 fix(App.tsx): add missing import statement for 'onLogin' function 🐛 fix(App.tsx): add missing import statement for 'setUserData' function 🐛 fix(App.tsx): add missing import statement for 'setErrorData' function 🐛 fix(App.tsx): add missing import statement for 'getUser' function ✨ feat(App.tsx): add logic to automatically log in user on localhost with predefined credentials 🐛 fix(PaginatorComponent/index.tsx): calculate 'maxIndex' based on 'totalRowsCount' and 'pageSize' to fix pagination bug 🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug 🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug 🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug 🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug 🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug 🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug 🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug 🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug 🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug 🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug 🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug 🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug 🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug 🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug 🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug 🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug 🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug 🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug 🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug 🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug 🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug 🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug 🐛 fix(PaginatorComponent/index.tsx): update 🐛 fix(UserManagementModal): change is_disabled to is_active to improve semantics and consistency 🐛 fix(AdminPage/index.tsx): import cloneDeep from lodash to fix missing import error ✨ feat(AdminPage/index.tsx): add support for user management functionality, including disabling and editing user properties 🐛 fix(AdminPage/index.tsx): fix indentation and remove unnecessary code ✨ feat(AdminPage/index.tsx): add ConfirmationModal component for editing and disabling users 🔥 chore(AdminPage/index.tsx): remove unused code and fix formatting 🔨 refactor(UserManagement.tsx): refactor UserManagement component to improve readability and maintainability 🔥 chore(UserManagement.tsx): remove unused code and unnecessary closing div tag 🔧 fix(loginPage): add useEffect hook to import statement to fix missing dependency warning 🔄 refactor(api): rename is_disabled field to is_active in Users type for better semantics 🔄 refactor(components): rename is_disabled field to is_active in UserInputType for better semantics 🔄 refactor(utils): add UserCog2 icon import to nodeIconsLucide for future use 🔄 refactor(tailwind.config.js): add text-align-last-left and text-align-last-right utility classes for text alignment
215 lines
7 KiB
JavaScript
215 lines
7 KiB
JavaScript
/** @type {import('tailwindcss').Config} */
|
|
const { fontFamily } = require("tailwindcss/defaultTheme");
|
|
|
|
import plugin from "tailwindcss/plugin";
|
|
|
|
// ! Check if removing the other module.exports made sense
|
|
module.exports = {
|
|
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: true,
|
|
theme: {
|
|
container: {
|
|
center: true,
|
|
padding: "2rem",
|
|
screens: {
|
|
"2xl": "1400px",
|
|
},
|
|
},
|
|
extend: {
|
|
colors: {
|
|
"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-blue": "var(--almost-medium-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)",
|
|
"blur-shared": "var(--blur-shared)",
|
|
"dark-blue": "var(--dark-blue)",
|
|
"dark-gray": "var(--dark-gray)",
|
|
"dark-red": "var(--dark-red)",
|
|
"error-background": "var(--error-background)",
|
|
"error-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)",
|
|
"status-green": "var(--status-green)",
|
|
"status-red": "var(--status-red)",
|
|
"status-yellow": "var(--status-yellow)",
|
|
"success-background": "var(--success-background)",
|
|
"success-foreground": "var(--success-foreground)",
|
|
"beta-background": "var(--beta-background)",
|
|
"beta-foreground": "var(--beta-foreground)",
|
|
"chat-bot-icon": "var(--chat-bot-icon)",
|
|
"chat-user-icon": "var(--chat-user-icon)",
|
|
|
|
white: "var(--white)",
|
|
border: "hsl(var(--border))",
|
|
input: "hsl(var(--input))",
|
|
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))",
|
|
},
|
|
popover: {
|
|
DEFAULT: "hsl(var(--popover))",
|
|
foreground: "hsl(var(--popover-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)",
|
|
},
|
|
fontFamily: {
|
|
sans: ["var(--font-sans)", ...fontFamily.sans],
|
|
},
|
|
},
|
|
},
|
|
|
|
plugins: [
|
|
require("tailwindcss-animate"),
|
|
require("@tailwindcss/forms")({
|
|
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: "#f1f1f1",
|
|
},
|
|
"&::-webkit-scrollbar-thumb": {
|
|
backgroundColor: "#ccc",
|
|
borderRadius: "999px",
|
|
},
|
|
"&::-webkit-scrollbar-thumb:hover": {
|
|
backgroundColor: "#bbb",
|
|
},
|
|
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",
|
|
},
|
|
});
|
|
}),
|
|
require("@tailwindcss/typography"),
|
|
require("daisyui"),
|
|
],
|
|
};
|