import type { Config } from 'tailwindcss';

// Tailwind's shipped `Config` type may not include the `safelist` option
// depending on the installed types/version. Extend it locally so we can
// use `safelist` without TypeScript errors.
type ConfigWithSafelist = Config & {
	safelist?: Array<string | { pattern: RegExp }>;
};
import { skeleton } from '@skeletonlabs/skeleton';
import forms from '@tailwindcss/forms';
import typography from '@tailwindcss/typography';

const config = {
	darkMode: 'class',
	content: [
		'./src/**/*.{html,js,svelte,ts}',
		'./node_modules/@skeletonlabs/skeleton/**/*.{html,js,svelte,ts}'
	],
	safelist: [
		{
			pattern: /^text-(?:slate|gray|red|orange|yellow|green|teal|blue|indigo|purple|pink)-(?:50|100|200|300|400|500|600|700|800|900)$/
		},
		{
			pattern: /^text-(?:white|black|transparent)$/
		}
	],
	theme: {
		extend: {},
	},
	plugins: [
        forms,
        typography,
		skeleton({
			themes: {
                preset: [
                    "cerberus",
                    "concord",
                    "crimson",
                    "hamlindigo",
                    "modern",
                    "nouveau",
                    "rocket",
                    "terminus",
                    "vintage",
                    "wintry"
                ]
			}
		})
	]
} satisfies ConfigWithSafelist;

export default config;
