goobs-frontend
Version:
A comprehensive React-based libary for building modern web applications
190 lines • 5.53 kB
TypeScript
import { default as React } from 'react';
export interface AccordionTheme {
container: {
backgroundColor: string;
borderWidth: string;
borderStyle: string;
borderColor: string;
borderRadius: string;
boxShadow: string;
backdropFilter: string;
backgroundImage?: string;
};
containerHover: {
transform: string;
boxShadow: string;
borderColor?: string;
};
containerExpanded: {
boxShadow: string;
backgroundColor: string;
borderColor?: string;
backgroundImage?: string;
};
summary: {
backgroundColor: string;
color: string;
fontFamily: string;
fontSize: string;
fontWeight: string | number;
letterSpacing: string;
textShadow?: string;
borderBottom: string;
minHeight: string;
height?: string;
maxHeight?: string;
whiteSpace?: string;
overflow?: string;
textOverflow?: string;
minWidth?: string;
};
summaryHover: {
backgroundColor: string;
color: string;
transform?: string;
textShadow?: string;
};
summaryExpanded: {
backgroundColor: string;
borderBottomColor: string;
color: string;
fontWeight: string | number;
textShadow?: string;
};
details: {
backgroundColor: string;
borderTop: string;
color: string;
fontFamily: string;
fontSize: string;
lineHeight: string | number;
backdropFilter: string;
};
icon: {
color: string;
filter?: string;
};
iconHover: {
color: string;
transform: string;
filter?: string;
};
iconExpanded: {
transform: string;
color: string;
filter?: string;
};
transition: string;
mobile: {
borderRadius: string;
boxShadow: string;
summaryPadding: string;
summaryMinHeight: string;
detailsPadding: string;
summaryFontSize: string;
};
tablet: {
detailsPadding: string;
};
desktop: {
detailsPadding: string;
};
}
export interface AccordionStyles {
theme?: 'light' | 'dark' | 'sacred';
backgroundColor?: string;
borderColor?: string;
borderRadius?: string;
borderWidth?: string;
boxShadow?: string;
backdropFilter?: string;
backgroundImage?: string;
hoverBackgroundColor?: string;
hoverBorderColor?: string;
hoverBoxShadow?: string;
hoverTransform?: string;
expandedBackgroundColor?: string;
expandedBorderColor?: string;
expandedBoxShadow?: string;
expandedBackgroundImage?: string;
summaryBackgroundColor?: string;
summaryColor?: string;
summaryFontFamily?: string;
summaryFontSize?: string;
summaryFontWeight?: string | number;
summaryLetterSpacing?: string;
summaryTextShadow?: string;
summaryBorderBottom?: string;
summaryWhiteSpace?: string;
summaryOverflow?: string;
summaryTextOverflow?: string;
summaryHoverBackgroundColor?: string;
summaryHoverColor?: string;
summaryHoverTransform?: string;
summaryHoverTextShadow?: string;
summaryExpandedBackgroundColor?: string;
summaryExpandedBorderBottomColor?: string;
summaryExpandedColor?: string;
summaryExpandedFontWeight?: string | number;
summaryExpandedTextShadow?: string;
detailsBackgroundColor?: string;
detailsBorderTop?: string;
detailsColor?: string;
detailsFontFamily?: string;
detailsFontSize?: string;
detailsLineHeight?: string | number;
detailsBackdropFilter?: string;
iconColor?: string;
iconFilter?: string;
iconHoverColor?: string;
iconHoverTransform?: string;
iconHoverFilter?: string;
iconExpandedTransform?: string;
iconExpandedColor?: string;
iconExpandedFilter?: string;
padding?: string;
summaryPadding?: string;
detailsPadding?: string;
margin?: string;
marginBottom?: string;
minHeight?: string;
summaryMinHeight?: string;
transitionDuration?: string;
transitionEasing?: string;
disabled?: boolean;
outline?: boolean;
width?: string;
maxWidth?: string;
minWidth?: string;
height?: string;
maxHeight?: string;
level?: number;
levelIndentBase?: number;
levelIndentIncrement?: number;
}
export declare const accordionThemes: Record<'light' | 'dark' | 'sacred', AccordionTheme>;
export declare const getAccordionTheme: (styles?: AccordionStyles) => AccordionTheme;
export declare const getAccordionStyles: (styles?: AccordionStyles, isHovered?: boolean, isExpanded?: boolean, isDisabled?: boolean) => {
container: React.CSSProperties;
summary: React.CSSProperties;
details: React.CSSProperties;
icon: React.CSSProperties;
responsive: {
mobile: {
container: Partial<React.CSSProperties>;
summary: Partial<React.CSSProperties>;
details: Partial<React.CSSProperties>;
};
tablet: {
container: Partial<React.CSSProperties>;
summary: Partial<React.CSSProperties>;
details: Partial<React.CSSProperties>;
};
desktop: {
container: Partial<React.CSSProperties>;
summary: Partial<React.CSSProperties>;
details: Partial<React.CSSProperties>;
};
};
};
//# sourceMappingURL=accordion.d.ts.map