/** * Icon mode */ type IconCSSMode = 'mask' | 'background'; /** * Selector for icon */ interface IconCSSIconSelectorOptions { pseudoSelector?: boolean; iconSelector?: string; } /** * Selector for icon when generating data from icon set */ interface IconCSSSelectorOptions extends IconCSSIconSelectorOptions { commonSelector?: string; overrideSelector?: string; } /** * Options common for both multiple icons and single icon */ interface IconCSSSharedOptions { varName?: string | null; forceSquare?: boolean; color?: string; rules?: Record; } /** * Mode */ interface IconCSSModeOptions { mode?: IconCSSMode; } /** * Options for generating common code * * Requires mode */ interface IconCSSCommonCodeOptions extends IconCSSSharedOptions, IconCSSIconSelectorOptions, Required { } /** * Options for generating data for one icon */ interface IconCSSItemOptions extends IconCSSSharedOptions, Required { } /** * Selector for icon */ interface IconContentIconSelectorOptions { iconSelector?: string; } /** * Options common for both multiple icons and single icon */ interface IconContentSharedOptions { height: number; width?: number; color?: string; rules?: Record; } /** * Options for generating data for one icon */ type IconContentItemOptions = IconContentSharedOptions; /** * Formatting modes. Same as in SASS */ type CSSFormatMode = 'expanded' | 'compact' | 'compressed'; /** * Item to format */ interface CSSUnformattedItem { selector: string | string[]; rules: Record; } /** * Formatting options */ interface IconCSSFormatOptions { format?: CSSFormatMode; } /** * Options for generating data for one icon as background/mask */ interface IconCSSIconOptions extends IconCSSSharedOptions, IconCSSIconSelectorOptions, IconCSSModeOptions, IconCSSFormatOptions { } /** * Options for generating data for one icon as content */ interface IconContentIconOptions extends IconContentSharedOptions, IconContentIconSelectorOptions, IconCSSFormatOptions { } /** * Options for generating multiple icons as background/mask */ interface IconCSSIconSetOptions extends IconCSSSharedOptions, IconCSSSelectorOptions, IconCSSModeOptions, IconCSSFormatOptions { } /** * Options for generating multiple icons as content */ interface IconContentIconSetOptions extends IconContentSharedOptions, IconContentIconSelectorOptions, IconCSSFormatOptions { } export { CSSFormatMode, CSSUnformattedItem, IconCSSCommonCodeOptions, IconCSSFormatOptions, IconCSSIconOptions, IconCSSIconSelectorOptions, IconCSSIconSetOptions, IconCSSItemOptions, IconCSSMode, IconCSSModeOptions, IconCSSSelectorOptions, IconCSSSharedOptions, IconContentIconOptions, IconContentIconSelectorOptions, IconContentIconSetOptions, IconContentItemOptions, IconContentSharedOptions };