@stylable/core
Version:
CSS for Components
122 lines • 4.24 kB
TypeScript
import * as STSymbol from './st-symbol';
import type { ImportSymbol } from './st-import';
import type { ElementSymbol } from './css-type';
import type { ClassSymbol } from './css-class';
import * as postcss from 'postcss';
import { FunctionNode, WordNode } from 'postcss-value-parser';
import type { StylableMeta } from '../stylable-meta';
import { Diagnostics } from '../diagnostics';
import type { Stylable } from '../stylable';
export interface MixinValue {
type: string;
options: Array<{
value: string;
}> | Record<string, string>;
partial?: boolean;
valueNode?: FunctionNode | WordNode;
originDecl: postcss.Declaration;
}
export type ValidMixinSymbols = ImportSymbol | ClassSymbol | ElementSymbol;
export type AnalyzedMixin = {
valid: true;
data: MixinValue;
symbol: ValidMixinSymbols;
} | {
valid: false;
data: MixinValue;
symbol: Exclude<STSymbol.StylableSymbol, ValidMixinSymbols> | undefined;
};
export type MixinReflection = {
name: string;
kind: 'css-fragment';
args: Record<string, string>[];
optionalArgs: Map<string, {
name: string;
}>;
} | {
name: string;
kind: 'js-func';
args: string[];
func: (...args: any[]) => any;
} | {
name: string;
kind: 'invalid';
args: string;
};
export declare const MixinType: {
readonly ALL: "-st-mixin";
readonly PARTIAL: "-st-partial-mixin";
};
export declare const diagnostics: {
VALUE_CANNOT_BE_STRING: {
(): import("../diagnostics").DiagnosticBase;
code: string;
severity: import("../diagnostics").DiagnosticSeverity;
};
INVALID_NAMED_PARAMS: {
(): import("../diagnostics").DiagnosticBase;
code: string;
severity: import("../diagnostics").DiagnosticSeverity;
};
INVALID_MERGE_OF: {
(mergeValue: string): import("../diagnostics").DiagnosticBase;
code: string;
severity: import("../diagnostics").DiagnosticSeverity;
};
INVALID_RECURSIVE_MIXIN: {
(): import("../diagnostics").DiagnosticBase;
code: string;
severity: import("../diagnostics").DiagnosticSeverity;
};
PARTIAL_MIXIN_MISSING_ARGUMENTS: {
(type: string): import("../diagnostics").DiagnosticBase;
code: string;
severity: import("../diagnostics").DiagnosticSeverity;
};
UNKNOWN_MIXIN: {
(name: string): import("../diagnostics").DiagnosticBase;
code: string;
severity: import("../diagnostics").DiagnosticSeverity;
};
OVERRIDE_MIXIN: {
(mixinType: string): import("../diagnostics").DiagnosticBase;
code: string;
severity: import("../diagnostics").DiagnosticSeverity;
};
FAILED_TO_APPLY_MIXIN: {
(error: string): import("../diagnostics").DiagnosticBase;
code: string;
severity: import("../diagnostics").DiagnosticSeverity;
};
JS_MIXIN_NOT_A_FUNC: {
(): import("../diagnostics").DiagnosticBase;
code: string;
severity: import("../diagnostics").DiagnosticSeverity;
};
UNSUPPORTED_MIXIN_SYMBOL: {
(name: string, symbolType: "var" | "class" | "layer" | "container" | "import" | "element" | "cssVar" | "keyframes"): import("../diagnostics").DiagnosticBase;
code: string;
severity: import("../diagnostics").DiagnosticSeverity;
};
CIRCULAR_MIXIN: {
(circularPaths: string[]): import("../diagnostics").DiagnosticBase;
code: string;
severity: import("../diagnostics").DiagnosticSeverity;
};
UNKNOWN_ARG: {
(argName: any): import("../diagnostics").DiagnosticBase;
code: string;
severity: import("../diagnostics").DiagnosticSeverity;
};
};
export declare const hooks: import("./feature").FeatureHooks<import("./feature").NodeTypes>;
export declare class StylablePublicApi {
private stylable;
constructor(stylable: Stylable);
resolveExpr(meta: StylableMeta, expr: string, { diagnostics, resolveOptionalArgs, }?: {
diagnostics?: Diagnostics;
resolveOptionalArgs?: boolean;
}): MixinReflection[];
scopeNestedSelector(scopeSelector: string, nestSelector: string): string;
}
//# sourceMappingURL=st-mixin.d.ts.map