UNPKG

@stylable/core

Version:

CSS for Components

122 lines 4.24 kB
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