import type { Theme } from '@mui/material/styles'; import type { SxProps } from '@mui/system'; export interface CSSProperties extends React.CSSProperties { rgba?: string; opacity?: number; } export interface NamedTheme { name: ThemeTypes; theme: Theme; } export declare enum ThemeTypes { DARK_THEME = "darkTheme", LIGHT_THEME = "lightTheme", XMAS_THEME = "xmasTheme", EUMETNET_THEME = "eumetnetTheme", DEMO_THEME = "demoTheme" } export type ButtonVariant = 'primary' | 'secondary' | 'tertiary' | 'flat' | 'tool' | 'boxed' | 'icon'; export interface ButtonStyle { default: CSSProperties; mouseOver: CSSProperties; active: CSSProperties; activeMouseOver: CSSProperties; disabled: CSSProperties; focus: CSSProperties; } export interface ChipsStyle { mouseOver: CSSProperties; activeMouseOver: CSSProperties; } export interface GeowebColorPalette { background: { surface: CSSProperties['color']; surfaceApp: CSSProperties['color']; surfaceBrowser: CSSProperties['color']; }; brand: { brand: CSSProperties['color']; }; buttons: { primary: ButtonStyle; secondary: ButtonStyle; tertiary: ButtonStyle; flat: ButtonStyle; tool: ButtonStyle; boxed: ButtonStyle; icon: ButtonStyle; }; chips: { flat: ChipsStyle; }; iconButtons: { flat: ButtonStyle; tool: ButtonStyle; boxed: ButtonStyle; }; typographyAndIcons: { text: CSSProperties['color']; icon: CSSProperties['color']; buttonIcon: CSSProperties['color']; iconLinkActive: CSSProperties['color']; iconLinkDisabled: CSSProperties['color']; iconWarning: CSSProperties['color']; textLinkActive: CSSProperties['color']; buttonIconTertiaryFlat: CSSProperties['color']; inactiveText: CSSProperties['color']; systemScopeIcon: CSSProperties['color']; userScopeIcon: CSSProperties['color']; sharedByOthersIcon: CSSProperties['color']; informationDialog: CSSProperties['color']; }; textInputField: { default: CSSProperties; active: CSSProperties; disabled: CSSProperties; label: CSSProperties; mouseOver: CSSProperties; error: CSSProperties; errorMouseOver: CSSProperties; }; menuItem: { mouseOver: CSSProperties['color']; selected: CSSProperties['color']; selectedMouseOver: CSSProperties['color']; }; tab: { mouseOver: CSSProperties; }; greys: { accessible: CSSProperties['color']; accessibleLight: CSSProperties['color']; }; cards: { cardContainer: CSSProperties['color']; cardContainerBorder: CSSProperties['color']; cardContainerMouseOver: CSSProperties['color']; cardContainerDisabled: CSSProperties['color']; cardContainerDisabledBorder: CSSProperties['color']; cardContainerDisabledMouseOver: CSSProperties['color']; }; backdrops: { black: CSSProperties; white: CSSProperties; }; workspace: { activeWindow: CSSProperties['color']; inactiveWindow: CSSProperties['color']; tabButtonHover: CSSProperties['color']; }; timeSlider: { playerNeedleTimeTop: CSSProperties; playerNeedleTime: CSSProperties; playerNeedlePlayerTop: CSSProperties; playerNeedlePlayer: CSSProperties; playerTimeMarkers: CSSProperties; playerTimeText: CSSProperties; timelineIndicator: CSSProperties; timelineText: CSSProperties; timelineTimeScale: CSSProperties; timelineNightTime: CSSProperties; timelineTimelineSurface: CSSProperties; timelineMonthChangeDash: CSSProperties; timelineSelectionBackground: CSSProperties; timelineSelectionOutline: CSSProperties; timeScalePointer: CSSProperties; timeScaleHorizontalScale: CSSProperties; timeScaleTimeIndicators: CSSProperties; timeScaleTimeIndicatorsActive: CSSProperties; timeScaleShadowButtonScale: CSSProperties; ledgendObservedBackground: CSSProperties; legendForecastBackground: CSSProperties; legendNoDataBackground: CSSProperties; }; timeSliderLite: { selected: CSSProperties; needle: CSSProperties; needleDefault: CSSProperties; needleShadow: CSSProperties; needleLabel: CSSProperties; timeline: CSSProperties; timelineBackground: CSSProperties; timelineBackgroundAlternative: CSSProperties; timelineBackgroundDisabled: CSSProperties; timelineBackgroundDisabledAlternative: CSSProperties; timelineBackgroundObserved: CSSProperties; timelineBackgroundObservedAlternative: CSSProperties; }; soundings: { tooltip: CSSProperties; }; customSlider: { rail: CSSProperties['color']; railDisabled: CSSProperties['color']; track: CSSProperties['color']; trackDisabled: CSSProperties['color']; thumb: CSSProperties['color']; thumbDisabled: CSSProperties['color']; mark: CSSProperties['color']; markDisabled: CSSProperties['color']; }; customSwitch: { thumb: CSSProperties['color']; thumbDisabled: CSSProperties['color']; track: CSSProperties['color']; trackActive: CSSProperties['color']; }; syncGroups: { drawerOpen: CSSProperties; }; logo?: { image: string; }; layerManager: { headerRowText: CSSProperties; tableRowDefaultText: CSSProperties; tableRowDefaultCardContainer: CSSProperties; tableRowDisabledText: CSSProperties; tableRowDisabledCardContainer: CSSProperties; dragHandleHover: CSSProperties; root: SxProps; opacitySelect: { root: SxProps; button: SxProps; popper: SxProps; }; baseLayerRow: { root: SxProps; }; }; tooltips: { tooltipContainer: CSSProperties; tooltipText: CSSProperties; tooltipSelect: { select: SxProps; menu: SxProps; }; }; captions: { captionStatus: CSSProperties; captionInformation: CSSProperties; captionError: CSSProperties; captionErrorBackground: CSSProperties; captionDisabled: CSSProperties; }; functional: { success: CSSProperties['color']; successOutline: CSSProperties; error: CSSProperties['color']; errorOutline: CSSProperties; warning: CSSProperties['color']; warningOutline: CSSProperties; warningHighlight: CSSProperties; notification: CSSProperties['color']; notificationOutline: CSSProperties; summary: CSSProperties['color']; summaryOutline: CSSProperties; disabled: CSSProperties['color']; disabledOutline: CSSProperties; }; snackbar: { background: CSSProperties['color']; text: CSSProperties['color']; action: CSSProperties['color']; actionHover: CSSProperties; }; festoonOverlay?: CSSProperties; festoonContainer?: CSSProperties; festoonBackdrop?: CSSProperties; chip: { highlightDefault: CSSProperties; highlightDefaultMouseOver: CSSProperties; highlightActiveDefault: CSSProperties; highlightActiveMouseOver: CSSProperties; }; } export type Elevations = Record; declare module '@mui/material/styles' { interface Palette { geowebColors: GeowebColorPalette; } interface PaletteOptions { geowebColors: GeowebColorPalette; } } declare module '@mui/material/Button' { interface ButtonPropsVariantOverrides { primary: true; secondary: true; tertiary: true; flat: true; tool: true; boxed: true; icon: true; } }