@sussudio/platform
Version:
Internal APIs for VS Code's service injection the base services.
93 lines (91 loc) • 3.67 kB
text/typescript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { Color } from '@sussudio/base/common/color.mjs';
import { IDisposable } from '@sussudio/base/common/lifecycle.mjs';
import { IThemable, styleFn } from '@sussudio/base/common/styler.mjs';
import { ColorIdentifier, ColorValue } from './colorRegistry.mjs';
import { IColorTheme, IThemeService } from './themeService.mjs';
export interface IStyleOverrides {
[color: string]: ColorIdentifier | undefined;
}
export interface IColorMapping {
[optionsKey: string]: ColorValue | undefined;
}
export interface IComputedStyles {
[color: string]: Color | undefined;
}
export declare function computeStyles(theme: IColorTheme, styleMap: IColorMapping): IComputedStyles;
export declare function attachStyler<T extends IColorMapping>(
themeService: IThemeService,
styleMap: T,
widgetOrCallback: IThemable | styleFn,
): IDisposable;
export interface ISelectBoxStyleOverrides extends IStyleOverrides, IListStyleOverrides {
selectBackground?: ColorIdentifier;
selectListBackground?: ColorIdentifier;
selectForeground?: ColorIdentifier;
decoratorRightForeground?: ColorIdentifier;
selectBorder?: ColorIdentifier;
focusBorder?: ColorIdentifier;
}
export declare function attachSelectBoxStyler(
widget: IThemable,
themeService: IThemeService,
style?: ISelectBoxStyleOverrides,
): IDisposable;
export interface IListStyleOverrides extends IStyleOverrides {
listBackground?: ColorIdentifier;
listFocusBackground?: ColorIdentifier;
listFocusForeground?: ColorIdentifier;
listFocusOutline?: ColorIdentifier;
listActiveSelectionBackground?: ColorIdentifier;
listActiveSelectionForeground?: ColorIdentifier;
listActiveSelectionIconForeground?: ColorIdentifier;
listFocusAndSelectionOutline?: ColorIdentifier;
listFocusAndSelectionBackground?: ColorIdentifier;
listFocusAndSelectionForeground?: ColorIdentifier;
listInactiveSelectionBackground?: ColorIdentifier;
listInactiveSelectionIconForeground?: ColorIdentifier;
listInactiveSelectionForeground?: ColorIdentifier;
listInactiveFocusBackground?: ColorIdentifier;
listInactiveFocusOutline?: ColorIdentifier;
listHoverBackground?: ColorIdentifier;
listHoverForeground?: ColorIdentifier;
listDropBackground?: ColorIdentifier;
listSelectionOutline?: ColorIdentifier;
listHoverOutline?: ColorIdentifier;
treeIndentGuidesStroke?: ColorIdentifier;
tableColumnsBorder?: ColorIdentifier;
tableOddRowsBackgroundColor?: ColorIdentifier;
}
export declare function attachListStyler(
widget: IThemable,
themeService: IThemeService,
overrides?: IColorMapping,
): IDisposable;
export declare const defaultListStyles: IColorMapping;
export declare function attachStylerCallback(
themeService: IThemeService,
colors: {
[name: string]: ColorIdentifier;
},
callback: styleFn,
): IDisposable;
export interface IMenuStyleOverrides extends IColorMapping {
shadowColor?: ColorIdentifier;
borderColor?: ColorIdentifier;
foregroundColor?: ColorIdentifier;
backgroundColor?: ColorIdentifier;
selectionForegroundColor?: ColorIdentifier;
selectionBackgroundColor?: ColorIdentifier;
selectionBorderColor?: ColorIdentifier;
separatorColor?: ColorIdentifier;
}
export declare const defaultMenuStyles: IMenuStyleOverrides;
export declare function attachMenuStyler(
widget: IThemable,
themeService: IThemeService,
style?: IMenuStyleOverrides,
): IDisposable;