import type { Plugin } from 'vite'; import { type ColorShadeMap, type SemanticColorOverrides } from '../tokens/colors'; import type { FontFamilyOverrides, SemanticFontOverrides } from '../tokens/typography'; import type { SemanticRadiusOverrides } from '../tokens/radius'; import type { SemanticShadowOverrides } from '../tokens/shadows'; import type { SemanticMotionOverrides } from '../tokens/motion'; import type { SemanticSpacingOverrides } from '../tokens/spacing'; import type { SemanticTextShadowOverrides } from '../tokens/text-shadows'; import { type GoogleFontRequest } from './google-fonts'; export interface BeatuiTailwindPluginOptions { /** * Register custom color palettes with 11 shades each (50–950). * Custom palette names become valid values for `semanticColors` and can be * used in component `color` props after type registration. * * The plugin automatically emits a `beatui-custom-colors.d.ts` file in the * project root that registers these names with the TypeScript type system. */ customColors?: Record; /** * Override the semantic color mapping BeatUI uses (e.g. map `primary` to `emerald`). * When `customColors` is provided, custom color names are also accepted. */ semanticColors?: SemanticColorOverrides; /** Override semantic font aliases (e.g. map `heading` to `var(--font-family-serif)`). */ semanticFonts?: SemanticFontOverrides; /** Override semantic radius aliases for controls, surfaces, etc. */ semanticRadii?: SemanticRadiusOverrides; /** Override semantic shadow aliases (elevation levels for surfaces, overlays, etc.). */ semanticShadows?: SemanticShadowOverrides; /** Override semantic motion tokens (transition durations/easing). */ semanticMotion?: SemanticMotionOverrides; /** Override spacing stack aliases for layout stacks. */ semanticSpacing?: SemanticSpacingOverrides; /** Override semantic text shadow aliases (e.g. button emphasis shadows). */ semanticTextShadows?: SemanticTextShadowOverrides; /** Override the default font family tokens (e.g. set `sans` to a custom stack). */ fontFamilies?: FontFamilyOverrides; /** * Override the base spacing unit (`--spacing-base`). All spacing scale values * are computed from this variable. Defaults to `'0.25rem'`. */ baseSpacing?: string; /** * Override the base font size (`--font-size-base`). All font size and per-size * line height values are computed from this variable. Defaults to `'1rem'`. */ baseFontSize?: string; /** * Override the base motion duration (`--motion-duration-base`). All duration * values are computed from this variable. Defaults to `'200ms'`. */ baseMotionDuration?: string; /** Automatically import the BeatUI Tailwind CSS bundle into the application entry. */ injectCss?: boolean; /** Tailwind class that denotes dark mode. Defaults to 'dark'. */ darkClass?: string; /** Attribute inspected for RTL mode. Defaults to `dir="rtl"`. */ rtlAttribute?: string; /** Value of RTL attribute that should trigger `.b-rtl`. Defaults to `rtl`. */ rtlValue?: string; /** Request Google Fonts for local hosting. */ googleFonts?: GoogleFontRequest | GoogleFontRequest[]; } export declare function beatuiTailwindPlugin(options?: BeatuiTailwindPluginOptions): Plugin; export default beatuiTailwindPlugin; export type { GoogleFontRequest };