Validators

Type Aliases

RuleValidators

type RuleValidators = (flatten) => object[];

Parameters

ParameterType
flattenFlattenTokens

Returns

object

NameType
errorsValidatorError[]

TypeValidators

type TypeValidators = object;

Index Signature

[key: string]: object

ValidatorConfig

type ValidatorConfig = object;

Properties

rules?
optional rules?: RuleValidators;
types?
optional types?: TypeValidators;

ValidatorError

type ValidatorError = object;

Properties

message
message: string;
name
name: string;
path
path: string;
value?
optional value?: unknown;

ValidatorReturn

type ValidatorReturn = object;

Properties

errors
errors: ValidatorError[];
warnings
warnings: string[];

Variables

borderTokenPropertyTypes

const borderTokenPropertyTypes: Record<string, string>;

BorderTokenSchema

const BorderTokenSchema: ZodMiniObject<{
  $deprecated: ZodMiniOptional<ZodMiniUnion<readonly [ZodMiniBoolean<boolean>, ZodMiniString<string>]>>;
  $description: ZodMiniOptional<ZodMiniString<string>>;
  $extensions: ZodMiniOptional<ZodMiniRecord<ZodMiniString<string>, ZodMiniUnknown>>;
  $type: ZodMiniOptional<ZodMiniLiteral<"border">>;
  $value: ZodMiniUnion<readonly [ZodMiniString<string>, ZodMiniObject<{
     color: ZodMiniUnion<readonly [ZodMiniObject<{
        alpha: ZodMiniOptional<...>;
        colorSpace: ZodMiniString<...>;
        components: ZodMiniArray<...>;
        hex: ZodMiniOptional<...>;
     }, $strict>, ZodMiniString<string>]>;
     style: ZodMiniUnion<readonly [ZodMiniUnion<readonly [ZodMiniString<...>, ZodMiniObject<..., ...>]>, ZodMiniString<string>]>;
     width: ZodMiniUnion<readonly [ZodMiniObject<{
        unit: ZodMiniUnion<...>;
        value: ZodMiniNumber<...>;
     }, $strict>, ZodMiniString<string>]>;
  }, $strict>]>;
}, $strict>;

BorderValueSchema

const BorderValueSchema: ZodMiniObject<{
  color: ZodMiniUnion<readonly [ZodMiniObject<{
     alpha: ZodMiniOptional<ZodMiniNumber<number>>;
     colorSpace: ZodMiniString<string>;
     components: ZodMiniArray<ZodMiniUnion<readonly [ZodMiniNumber<number>, ZodMiniLiteral<"none">]>>;
     hex: ZodMiniOptional<ZodMiniString<string>>;
  }, $strict>, ZodMiniString<string>]>;
  style: ZodMiniUnion<readonly [ZodMiniUnion<readonly [ZodMiniString<string>, ZodMiniObject<{
     dashArray: ZodMiniArray<ZodMiniUnion<readonly [..., ...]>>;
     lineCap: ZodMiniString<string>;
  }, $strict>]>, ZodMiniString<string>]>;
  width: ZodMiniUnion<readonly [ZodMiniObject<{
     unit: ZodMiniUnion<readonly [ZodMiniLiteral<"px">, ZodMiniLiteral<"rem">]>;
     value: ZodMiniNumber<number>;
  }, $strict>, ZodMiniString<string>]>;
}, $strict>;

colorSpaces

const colorSpaces: readonly ["srgb", "srgb-linear", "hsl", "hwb", "lab", "lch", "oklab", "oklch", "display-p3", "a98-rgb", "prophoto-rgb", "rec2020", "xyz-d65", "xyz-d50"];

ColorTokenSchema

const ColorTokenSchema: ZodMiniObject<{
  $deprecated: ZodMiniOptional<ZodMiniUnion<readonly [ZodMiniBoolean<boolean>, ZodMiniString<string>]>>;
  $description: ZodMiniOptional<ZodMiniString<string>>;
  $extensions: ZodMiniOptional<ZodMiniRecord<ZodMiniString<string>, ZodMiniUnknown>>;
  $type: ZodMiniOptional<ZodMiniLiteral<"color">>;
  $value: ZodMiniUnion<readonly [ZodMiniString<string>, ZodMiniObject<{
     alpha: ZodMiniOptional<ZodMiniNumber<number>>;
     colorSpace: ZodMiniString<string>;
     components: ZodMiniArray<ZodMiniUnion<readonly [ZodMiniNumber<number>, ZodMiniLiteral<"none">]>>;
     hex: ZodMiniOptional<ZodMiniString<string>>;
  }, $strict>]>;
}, $strict>;

ColorValueSchema

const ColorValueSchema: ZodMiniObject<{
  alpha: ZodMiniOptional<ZodMiniNumber<number>>;
  colorSpace: ZodMiniString<string>;
  components: ZodMiniArray<ZodMiniUnion<readonly [ZodMiniNumber<number>, ZodMiniLiteral<"none">]>>;
  hex: ZodMiniOptional<ZodMiniString<string>>;
}, $strict>;

CubicBezierTokenSchema

const CubicBezierTokenSchema: ZodMiniObject<{
  $deprecated: ZodMiniOptional<ZodMiniUnion<readonly [ZodMiniBoolean<boolean>, ZodMiniString<string>]>>;
  $description: ZodMiniOptional<ZodMiniString<string>>;
  $extensions: ZodMiniOptional<ZodMiniRecord<ZodMiniString<string>, ZodMiniUnknown>>;
  $type: ZodMiniOptional<ZodMiniLiteral<"cubicBezier">>;
  $value: ZodMiniUnion<readonly [ZodMiniString<string>, ZodMiniArray<ZodMiniNumber<number>>]>;
}, $strict>;

A schema for a cubic bezier token. The cubic bezier token is an array of 4 numbers. The first and third numbers must be between 0 and 1. Reference: https://tr.designtokens.org/format/#cubic-bezier

Returns

The cubic bezier token schema.


CubicBezierValueSchema

const CubicBezierValueSchema: ZodMiniArray<ZodMiniNumber<number>>;

DimensionTokenSchema

const DimensionTokenSchema: ZodMiniObject<{
  $deprecated: ZodMiniOptional<ZodMiniUnion<readonly [ZodMiniBoolean<boolean>, ZodMiniString<string>]>>;
  $description: ZodMiniOptional<ZodMiniString<string>>;
  $extensions: ZodMiniOptional<ZodMiniRecord<ZodMiniString<string>, ZodMiniUnknown>>;
  $type: ZodMiniOptional<ZodMiniLiteral<"dimension">>;
  $value: ZodMiniUnion<readonly [ZodMiniString<string>, ZodMiniObject<{
     unit: ZodMiniUnion<readonly [ZodMiniLiteral<"px">, ZodMiniLiteral<"rem">]>;
     value: ZodMiniNumber<number>;
  }, $strict>]>;
}, $strict>;

DimensionValueSchema

const DimensionValueSchema: ZodMiniObject<{
  unit: ZodMiniUnion<readonly [ZodMiniLiteral<"px">, ZodMiniLiteral<"rem">]>;
  value: ZodMiniNumber<number>;
}, $strict>;

dtcgJsonSchemas

const dtcgJsonSchemas: TypeValidators;

DurationTokenSchema

const DurationTokenSchema: ZodMiniObject<{
  $deprecated: ZodMiniOptional<ZodMiniUnion<readonly [ZodMiniBoolean<boolean>, ZodMiniString<string>]>>;
  $description: ZodMiniOptional<ZodMiniString<string>>;
  $extensions: ZodMiniOptional<ZodMiniRecord<ZodMiniString<string>, ZodMiniUnknown>>;
  $type: ZodMiniOptional<ZodMiniLiteral<"duration">>;
  $value: ZodMiniUnion<readonly [ZodMiniString<string>, ZodMiniObject<{
     unit: ZodMiniUnion<readonly [ZodMiniLiteral<"ms">, ZodMiniLiteral<"s">]>;
     value: ZodMiniNumber<number>;
  }, $strict>]>;
}, $strict>;

A schema for a duration token. The duration token is an object with a value and a unit. The unit can be "ms" or "s". Reference: https://tr.designtokens.org/format/#duration

Returns

The duration token schema.


DurationValueSchema

const DurationValueSchema: ZodMiniObject<{
  unit: ZodMiniUnion<readonly [ZodMiniLiteral<"ms">, ZodMiniLiteral<"s">]>;
  value: ZodMiniNumber<number>;
}, $strict>;

FontFamilyTokenSchema

const FontFamilyTokenSchema: ZodMiniObject<{
  $deprecated: ZodMiniOptional<ZodMiniUnion<readonly [ZodMiniBoolean<boolean>, ZodMiniString<string>]>>;
  $description: ZodMiniOptional<ZodMiniString<string>>;
  $extensions: ZodMiniOptional<ZodMiniRecord<ZodMiniString<string>, ZodMiniUnknown>>;
  $type: ZodMiniOptional<ZodMiniLiteral<"fontFamily">>;
  $value: ZodMiniUnion<readonly [ZodMiniString<string>, ZodMiniUnion<readonly [ZodMiniString<string>, ZodMiniArray<ZodMiniString<string>>]>]>;
}, $strict>;

FontFamilyValueSchema

const FontFamilyValueSchema: ZodMiniUnion<readonly [ZodMiniString<string>, ZodMiniArray<ZodMiniString<string>>]>;

FontWeightTokenSchema

const FontWeightTokenSchema: ZodMiniObject<{
  $deprecated: ZodMiniOptional<ZodMiniUnion<readonly [ZodMiniBoolean<boolean>, ZodMiniString<string>]>>;
  $description: ZodMiniOptional<ZodMiniString<string>>;
  $extensions: ZodMiniOptional<ZodMiniRecord<ZodMiniString<string>, ZodMiniUnknown>>;
  $type: ZodMiniOptional<ZodMiniLiteral<"fontWeight">>;
  $value: ZodMiniUnion<readonly [ZodMiniString<string>, ZodMiniUnion<readonly [ZodMiniNumber<number>, ZodMiniString<string>]>]>;
}, $strict>;

fontWeightValues

const fontWeightValues: object;

Type Declaration

NameType
100readonly ["thin", "hairline"]
200readonly ["extra-light", "ultra-light"]
300readonly ["light"]
400readonly ["normal", "regular", "book"]
500readonly ["medium"]
600readonly ["semi-bold", "demi-bold"]
700readonly ["bold"]
800readonly ["extra-bold", "ultra-bold"]
900readonly ["black", "heavy"]
950readonly ["extra-black", "ultra-black"]

FontWeightValueSchema

const FontWeightValueSchema: ZodMiniUnion<readonly [ZodMiniNumber<number>, ZodMiniString<string>]>;

gradientTokenPropertyTypes

const gradientTokenPropertyTypes: Record<string, string>;

GradientTokenSchema

const GradientTokenSchema: ZodMiniObject<{
  $deprecated: ZodMiniOptional<ZodMiniUnion<readonly [ZodMiniBoolean<boolean>, ZodMiniString<string>]>>;
  $description: ZodMiniOptional<ZodMiniString<string>>;
  $extensions: ZodMiniOptional<ZodMiniRecord<ZodMiniString<string>, ZodMiniUnknown>>;
  $type: ZodMiniOptional<ZodMiniLiteral<"gradient">>;
  $value: ZodMiniUnion<readonly [ZodMiniString<string>, ZodMiniArray<ZodMiniUnion<readonly [ZodMiniObject<{
     color: ZodMiniUnion<readonly [..., ...]>;
     position: ZodMiniUnion<readonly [..., ...]>;
  }, $strict>, ZodMiniString<string>]>>]>;
}, $strict>;

JsonPointerReferenceSchema

const JsonPointerReferenceSchema: ZodMiniString<string>;

lineCapPredefinedValues

const lineCapPredefinedValues: readonly ["butt", "round", "square"];

NumberTokenSchema

const NumberTokenSchema: ZodMiniObject<{
  $deprecated: ZodMiniOptional<ZodMiniUnion<readonly [ZodMiniBoolean<boolean>, ZodMiniString<string>]>>;
  $description: ZodMiniOptional<ZodMiniString<string>>;
  $extensions: ZodMiniOptional<ZodMiniRecord<ZodMiniString<string>, ZodMiniUnknown>>;
  $type: ZodMiniOptional<ZodMiniLiteral<"number">>;
  $value: ZodMiniUnion<readonly [ZodMiniString<string>, ZodMiniNumber<number>]>;
}, $strict>;

A schema for a number token. Reference: https://tr.designtokens.org/format/#number

Returns

The number token schema.


NumberValueSchema

const NumberValueSchema: ZodMiniNumber<number>;

ReferenceValueSchema

const ReferenceValueSchema: ZodMiniString<string>;

shadowTokenPropertyTypes

const shadowTokenPropertyTypes: Record<string, string>;

ShadowTokenSchema

const ShadowTokenSchema: ZodMiniObject<{
  $deprecated: ZodMiniOptional<ZodMiniUnion<readonly [ZodMiniBoolean<boolean>, ZodMiniString<string>]>>;
  $description: ZodMiniOptional<ZodMiniString<string>>;
  $extensions: ZodMiniOptional<ZodMiniRecord<ZodMiniString<string>, ZodMiniUnknown>>;
  $type: ZodMiniOptional<ZodMiniLiteral<"shadow">>;
  $value: ZodMiniUnion<readonly [ZodMiniString<string>, ZodMiniUnion<readonly [ZodMiniObject<{
     blur: ZodMiniUnion<readonly [ZodMiniObject<..., ...>, ZodMiniString<...>]>;
     color: ZodMiniUnion<readonly [ZodMiniObject<..., ...>, ZodMiniString<...>]>;
     inset: ZodMiniOptional<ZodMiniBoolean<boolean>>;
     offsetX: ZodMiniUnion<readonly [ZodMiniObject<..., ...>, ZodMiniString<...>]>;
     offsetY: ZodMiniUnion<readonly [ZodMiniObject<..., ...>, ZodMiniString<...>]>;
     spread: ZodMiniUnion<readonly [ZodMiniObject<..., ...>, ZodMiniString<...>]>;
   }, $strict>, ZodMiniArray<ZodMiniUnion<readonly [ZodMiniObject<{
     blur: ...;
     color: ...;
     inset: ...;
     offsetX: ...;
     offsetY: ...;
     spread: ...;
  }, $strict>, ZodMiniString<string>]>>]>]>;
}, $strict>;

A schema for a shadow token. Reference: https://tr.designtokens.org/format/#shadow

Returns

The shadow token schema.


StrictStringSchema

const StrictStringSchema: ZodMiniString<string>;

strokePredefinedValues

const strokePredefinedValues: readonly ["solid", "dashed", "dotted", "double", "groove", "ridge", "outset", "inset"];

strokeStyleTokenPropertyTypes

const strokeStyleTokenPropertyTypes: Record<string, string>;

StrokeStyleTokenSchema

const StrokeStyleTokenSchema: ZodMiniObject<{
  $deprecated: ZodMiniOptional<ZodMiniUnion<readonly [ZodMiniBoolean<boolean>, ZodMiniString<string>]>>;
  $description: ZodMiniOptional<ZodMiniString<string>>;
  $extensions: ZodMiniOptional<ZodMiniRecord<ZodMiniString<string>, ZodMiniUnknown>>;
  $type: ZodMiniOptional<ZodMiniLiteral<"strokeStyle">>;
  $value: ZodMiniUnion<readonly [ZodMiniString<string>, ZodMiniUnion<readonly [ZodMiniString<string>, ZodMiniObject<{
     dashArray: ZodMiniArray<ZodMiniUnion<readonly [..., ...]>>;
     lineCap: ZodMiniString<string>;
  }, $strict>]>]>;
}, $strict>;

StrokeStyleValueSchema

const StrokeStyleValueSchema: ZodMiniUnion<readonly [ZodMiniString<string>, ZodMiniObject<{
  dashArray: ZodMiniArray<ZodMiniUnion<readonly [ZodMiniObject<{
     unit: ZodMiniUnion<readonly [..., ...]>;
     value: ZodMiniNumber<number>;
  }, $strict>, ZodMiniString<string>]>>;
  lineCap: ZodMiniString<string>;
}, $strict>]>;

TokenValueReferenceSchema

const TokenValueReferenceSchema: ZodMiniString<string> = ReferenceValueSchema;

transitionTokenPropertyTypes

const transitionTokenPropertyTypes: Record<string, string>;

TransitionTokenSchema

const TransitionTokenSchema: ZodMiniObject<{
  $deprecated: ZodMiniOptional<ZodMiniUnion<readonly [ZodMiniBoolean<boolean>, ZodMiniString<string>]>>;
  $description: ZodMiniOptional<ZodMiniString<string>>;
  $extensions: ZodMiniOptional<ZodMiniRecord<ZodMiniString<string>, ZodMiniUnknown>>;
  $type: ZodMiniOptional<ZodMiniLiteral<"transition">>;
  $value: ZodMiniUnion<readonly [ZodMiniString<string>, ZodMiniObject<{
     delay: ZodMiniUnion<readonly [ZodMiniObject<{
        unit: ZodMiniUnion<...>;
        value: ZodMiniNumber<...>;
     }, $strict>, ZodMiniString<string>]>;
     duration: ZodMiniUnion<readonly [ZodMiniObject<{
        unit: ZodMiniUnion<...>;
        value: ZodMiniNumber<...>;
     }, $strict>, ZodMiniString<string>]>;
     timingFunction: ZodMiniUnion<readonly [ZodMiniArray<ZodMiniNumber<number>>, ZodMiniString<string>]>;
  }, $strict>]>;
}, $strict>;

TransitionValueSchema

const TransitionValueSchema: ZodMiniObject<{
  delay: ZodMiniUnion<readonly [ZodMiniObject<{
     unit: ZodMiniUnion<readonly [ZodMiniLiteral<"ms">, ZodMiniLiteral<"s">]>;
     value: ZodMiniNumber<number>;
  }, $strict>, ZodMiniString<string>]>;
  duration: ZodMiniUnion<readonly [ZodMiniObject<{
     unit: ZodMiniUnion<readonly [ZodMiniLiteral<"ms">, ZodMiniLiteral<"s">]>;
     value: ZodMiniNumber<number>;
  }, $strict>, ZodMiniString<string>]>;
  timingFunction: ZodMiniUnion<readonly [ZodMiniArray<ZodMiniNumber<number>>, ZodMiniString<string>]>;
}, $strict>;

typographyTokenPropertyTypes

const typographyTokenPropertyTypes: Record<string, TokenType>;

TypographyTokenSchema

const TypographyTokenSchema: ZodMiniObject<{
  $deprecated: ZodMiniOptional<ZodMiniUnion<readonly [ZodMiniBoolean<boolean>, ZodMiniString<string>]>>;
  $description: ZodMiniOptional<ZodMiniString<string>>;
  $extensions: ZodMiniOptional<ZodMiniRecord<ZodMiniString<string>, ZodMiniUnknown>>;
  $type: ZodMiniOptional<ZodMiniLiteral<"typography">>;
  $value: ZodMiniUnion<readonly [ZodMiniString<string>, ZodMiniObject<{
     fontFamily: ZodMiniUnion<readonly [ZodMiniUnion<readonly [ZodMiniString<...>, ZodMiniArray<...>]>, ZodMiniString<string>]>;
     fontSize: ZodMiniUnion<readonly [ZodMiniObject<{
        unit: ZodMiniUnion<...>;
        value: ZodMiniNumber<...>;
     }, $strict>, ZodMiniString<string>]>;
     fontWeight: ZodMiniUnion<readonly [ZodMiniUnion<readonly [ZodMiniNumber<...>, ZodMiniString<...>]>, ZodMiniString<string>]>;
     letterSpacing: ZodMiniUnion<readonly [ZodMiniObject<{
        unit: ZodMiniUnion<...>;
        value: ZodMiniNumber<...>;
     }, $strict>, ZodMiniString<string>]>;
     lineHeight: ZodMiniUnion<readonly [ZodMiniNumber<number>, ZodMiniString<string>]>;
  }, $strict>]>;
}, $strict>;

A schema for a typography token. Reference: https://tr.designtokens.org/format/#typography

Returns

The typography token schema.

Functions

createSchema()

function createSchema<T, V>(type, value): ZodMiniObject<{
  $deprecated: ZodMiniOptional<ZodMiniUnion<readonly [ZodMiniBoolean<boolean>, ZodMiniString<string>]>>;
  $description: ZodMiniOptional<ZodMiniString<string>>;
  $extensions: ZodMiniOptional<ZodMiniRecord<ZodMiniString<string>, ZodMiniUnknown>>;
  $type: ZodMiniOptional<ZodMiniLiteral<T>>;
  $value: ZodMiniUnion<readonly [ZodMiniString<string>, V]>;
}, $strict>;

Creates a schema for a token.

Type Parameters

Type Parameter
T extends string
V extends ZodMiniType<any, any, $ZodTypeInternals<any, any>>

Parameters

ParameterTypeDescription
typeTThe type of the token.
valueVThe value of the token.

Returns

ZodMiniObject<{ $deprecated: ZodMiniOptional<ZodMiniUnion<readonly [ZodMiniBoolean<boolean>, ZodMiniString<string>]>>; $description: ZodMiniOptional<ZodMiniString<string>>; $extensions: ZodMiniOptional<ZodMiniRecord<ZodMiniString<string>, ZodMiniUnknown>>; $type: ZodMiniOptional<ZodMiniLiteral<T>>; $value: ZodMiniUnion<readonly [ZodMiniString<string>, V]>; }, $strict>

The token schema.


dtcgValidator()

function dtcgValidator(value, config?): ValidatorReturn;

Validate the token group. The function checks if the token group is valid and if the references are correct.

Parameters

ParameterTypeDescription
valueunknownUnknown value to validate
configValidatorConfigValidator to use

Returns

ValidatorReturn

True if the value is a valid token group


GroupSchema()

function GroupSchema(customTypes?): ZodMiniObject<{
  $deprecated: ZodMiniOptional<ZodMiniUnion<readonly [ZodMiniBoolean<boolean>, ZodMiniString<string>]>>;
  $description: ZodMiniOptional<ZodMiniString<string>>;
  $extends: ZodMiniOptional<ZodMiniUnion<readonly [ZodMiniString<string>, ZodMiniString<string>]>>;
  $extensions: ZodMiniOptional<ZodMiniRecord<ZodMiniString<string>, ZodMiniUnknown>>;
  $root: ZodMiniOptional<ZodMiniUnknown>;
  $schema: ZodMiniOptional<ZodMiniString<string>>;
  $type: ZodMiniOptional<ZodMiniString<string>>;
}, $loose>;

Parameters

ParameterType
customTypes?string[]

Returns

ZodMiniObject<{ $deprecated: ZodMiniOptional<ZodMiniUnion<readonly [ZodMiniBoolean<boolean>, ZodMiniString<string>]>>; $description: ZodMiniOptional<ZodMiniString<string>>; $extends: ZodMiniOptional<ZodMiniUnion<readonly [ZodMiniString<string>, ZodMiniString<string>]>>; $extensions: ZodMiniOptional<ZodMiniRecord<ZodMiniString<string>, ZodMiniUnknown>>; $root: ZodMiniOptional<ZodMiniUnknown>; $schema: ZodMiniOptional<ZodMiniString<string>>; $type: ZodMiniOptional<ZodMiniString<string>>; }, $loose>