import { LanguageVariant } from '@hubspot/cms-components';
import {
  ColorFieldDefaults,
  TextFieldDefaults,
} from '@hubspot/cms-components/fields';

type ColorFieldValue = typeof ColorFieldDefaults;

export type LanguageSwitcherIslandProps = {
  translations: LanguageVariant[];
  className?: string;
  style?: React.CSSProperties;
  color?: ColorFieldValue;
  colorHover?: ColorFieldValue;
  menuBackgroundColorHover?: ColorFieldValue;
  menuBackgroundColor?: ColorFieldValue;
  languageSwitcherSelectText?: string;
};

export type LanguageSwitcherProps = {
  translations?: LanguageVariant[];
  className?: string;
  style?: React.CSSProperties;
  color?: ColorFieldValue;
  colorHover?: ColorFieldValue;
  menuBackgroundColorHover?: ColorFieldValue;
  menuBackgroundColor?: ColorFieldValue;
  languageSwitcherSelectText?: string;
};

export type LanguageOptionsProps = {
  translations: LanguageVariant[];
  menuBackgroundColor?: ColorFieldValue;
  menuBackgroundColorHover?: ColorFieldValue;
  color?: ColorFieldValue;
  colorHover?: ColorFieldValue;
};

export type ContentFieldsProps = {
  languageSwitcherSelectTextLabel?: string;
  languageSwitcherSelectTextName?: string;
  languageSwitcherSelectTextDefault?: typeof TextFieldDefaults;
};

export type StyleFieldsProps = {
  colorLabel?: string;
  colorName?: string;
  colorDefault?: ColorFieldValue;
  colorHoverLabel?: string;
  colorHoverName?: string;
  colorHoverDefault?: ColorFieldValue;
  menuBackgroundColorLabel?: string;
  menuBackgroundColorName?: string;
  menuBackgroundColorDefault?: ColorFieldValue;
  menuBackgroundColorHoverLabel?: string;
  menuBackgroundColorHoverName?: string;
  menuBackgroundColorHoverDefault?: ColorFieldValue;
};
