107 lines
4.0 KiB
TypeScript
107 lines
4.0 KiB
TypeScript
import { ComponentValue } from '@csstools/css-parser-algorithms';
|
|
import type { TokenDimension } from '@csstools/css-tokenizer';
|
|
import type { TokenNumber } from '@csstools/css-tokenizer';
|
|
import type { TokenPercentage } from '@csstools/css-tokenizer';
|
|
|
|
export declare function calc(css: string, options?: conversionOptions): string;
|
|
|
|
export declare function calcFromComponentValues(componentValuesList: Array<Array<ComponentValue>>, options?: conversionOptions): Array<Array<ComponentValue>>;
|
|
|
|
export declare type conversionOptions = {
|
|
/**
|
|
* If a calc expression can not be solved the parse error might be reported through this callback.
|
|
* Not all cases are covered. Open an issue if you need specific errors reported.
|
|
*
|
|
* Values are recursively visited and at each nesting level an attempt is made to solve the expression.
|
|
* Errors can be reported multiple times as a result of this.
|
|
*/
|
|
onParseError?: (error: ParseError) => void;
|
|
/**
|
|
* Pass global values as a map of key value pairs.
|
|
*/
|
|
globals?: GlobalsWithStrings;
|
|
/**
|
|
* The default precision is fairly high.
|
|
* It aims to be high enough to make rounding unnoticeable in the browser.
|
|
* You can set it to a lower number to suite your needs.
|
|
*/
|
|
precision?: number;
|
|
/**
|
|
* The CSS pixel length of one device pixel.
|
|
* Used when rounding to `line-width` and similar features
|
|
*/
|
|
devicePixelLength?: number;
|
|
/**
|
|
* By default this package will try to preserve units.
|
|
* The heuristic to do this is very simplistic.
|
|
* We take the first unit we encounter and try to convert other dimensions to that unit.
|
|
*
|
|
* This better matches what users expect from a CSS dev tool.
|
|
*
|
|
* If you want to have outputs that are closes to CSS serialized values you can set `true`.
|
|
*/
|
|
toCanonicalUnits?: boolean;
|
|
/**
|
|
* Convert NaN, Infinity, ... into standard representable values.
|
|
*/
|
|
censorIntoStandardRepresentableValues?: boolean;
|
|
/**
|
|
* Some percentages resolve against other values and might be negative or positive depending on context.
|
|
* Raw percentages are more likely to be safe to simplify outside of a browser context
|
|
*
|
|
* @see https://drafts.csswg.org/css-values-4/#calc-simplification
|
|
*/
|
|
rawPercentages?: boolean;
|
|
/**
|
|
* The values used to generate random value cache keys.
|
|
*/
|
|
randomCaching?: {
|
|
/**
|
|
* The name of the property the random function is used in.
|
|
*/
|
|
propertyName: string;
|
|
/**
|
|
* N is the index of the random function among other random functions in the same property value.
|
|
*/
|
|
propertyN: number;
|
|
/**
|
|
* An element ID identifying the element the style is being applied to.
|
|
* When omitted any `random()` call will not be computed.
|
|
*/
|
|
elementID: string;
|
|
/**
|
|
* A document ID identifying the Document the styles are from.
|
|
* When omitted any `random()` call will not be computed.
|
|
*/
|
|
documentID: string;
|
|
};
|
|
};
|
|
|
|
export declare type GlobalsWithStrings = Map<string, TokenDimension | TokenNumber | TokenPercentage | string>;
|
|
|
|
export declare const mathFunctionNames: Set<string>;
|
|
|
|
/**
|
|
* Any errors are reported through the `onParseError` callback.
|
|
*/
|
|
export declare class ParseError extends Error {
|
|
/** The index of the start character of the current token. */
|
|
sourceStart: number;
|
|
/** The index of the end character of the current token. */
|
|
sourceEnd: number;
|
|
constructor(message: string, sourceStart: number, sourceEnd: number);
|
|
}
|
|
|
|
export declare const ParseErrorMessage: {
|
|
UnexpectedAdditionOfDimensionOrPercentageWithNumber: string;
|
|
UnexpectedSubtractionOfDimensionOrPercentageWithNumber: string;
|
|
};
|
|
|
|
export declare class ParseErrorWithComponentValues extends ParseError {
|
|
/** The associated component values. */
|
|
componentValues: Array<ComponentValue>;
|
|
constructor(message: string, componentValues: Array<ComponentValue>);
|
|
}
|
|
|
|
export { }
|