| 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 { } |