import { defineConfig } from 'windicss/helpers' import formsPlugin from 'windicss/plugin/forms' import typographyPlugin from 'windicss/plugin/typography' import aspectRatioPlugin from 'windicss/plugin/aspect-ratio' import lineClampPlugin from 'windicss/plugin/line-clamp' import windiColors from 'windicss/colors' // @ts-expect-error no types for plugin-scrollbar import scrollbar from '@windicss/plugin-scrollbar' // @ts-expect-error no types for plugin-animation import animations from '@windicss/plugin-animations' // @ts-expect-error no types for plugin-question-mark import questionMark from '@windicss/plugin-question-mark' import ncTypographyPlugin from './assets/nc-typography-plugin' import ncWindicssShortcutsPlugin from './assets/nc-windicss-shortcuts-plugin' import { theme as colors, ncBuildColorsWithOpacity, themeColors, themeV2Colors, themeV3Colors, themeV4Colors, themeVariables, } from './utils/colorsUtils' const isEE = process.env.EE export default defineConfig({ extract: { include: [ ...(isEE ? [ '../**/*.{vue,html,jsx,tsx,css,scss}', '../extensions/**/*.md', '../composables/useColumnFilteredOrSorted.ts', '../components/smartsheet/header/*.ts', '../components/smartsheet/grid/canvas/cells/*.ts', '../components/smartsheet/grid/canvas/cells/**/*.ts', '../utils/cssUtils.ts', ] : [ '**/*.{vue,html,jsx,tsx,css,scss}', 'extensions/**/*.md', 'composables/useColumnFilteredOrSorted.ts', 'components/smartsheet/header/*.ts', 'components/smartsheet/grid/canvas/cells/*.ts', 'components/smartsheet/grid/canvas/cells/**/*.ts', 'utils/cssUtils.ts', ]), ], exclude: ['node_modules', '.git'], }, darkMode: 'class', safelist: [ 'text-yellow-500', 'text-sky-500', 'text-red-500', 'bg-primary-selected', 'text-pink-500', 'text-orange-500', 'text-blue-500', 'text-purple-500', 'text-grey', ], plugins: [ ncTypographyPlugin, scrollbar, animations, questionMark, formsPlugin, typographyPlugin({ dark: true, }), aspectRatioPlugin, lineClampPlugin, ncWindicssShortcutsPlugin, ], preflight: { alias: { 'nuxt-link': 'a', 'nuxt-img': 'img', }, }, shortcuts: { 'color-transition': 'transition-colors duration-100 ease-in', 'scrollbar-thin-primary': 'scrollbar scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-primary scrollbar-track-base-white', 'scrollbar-thin-dull': 'scrollbar scrollbar-thin scrollbar-thumb-rounded-md scrollbar-thumb-nc-gray-100 scrollbar-track-base-white', 'nc-scrollbar-thin': 'scrollbar scrollbar-thin scrollbar-thumb-gray-200 dark:scrollbar-thumb-gray-500 hover:scrollbar-thumb-gray-300 dark:hover:scrollbar-thumb-gray-600 scrollbar-track-transparent', 'nc-content-max-w': 'max-w-[97.5rem]', }, theme: { fontFamily: { inter: ['Inter', 'Manrope', 'sans-serif'], sans: ['Vazirmatn', 'sans-serif'], serif: ['Vazirmatn', 'serif'], mono: ['Inter', 'mono'], default: ['Inter', 'Manrope', 'sans-serif'], }, extend: { // Use simple string values (min-width) so that `