import { PinceauThemePaths, PinceauMediaQueries as PinceauMediaQueries$1, PinceauUtils } from '@pinceau/outputs'; import { DefaultThemeMap } from '@pinceau/theme'; import { namedTypes, ASTNode } from 'ast-types'; import { NodePath } from 'ast-types/lib/node-path'; import { PinceauMediaQueries } from '@pinceau/outputs/theme'; import { SourceLocation } from 'sfc-composer'; import { PathMatch, PropMatch } from '@pinceau/core'; type Primitive = string | number | symbol; type WrapKey = TKey extends string ? `${TPrefix}${TKey}${TSuffix}` : never; type UnwrapKey = TWrappedKey extends WrapKey ? TKey : ''; type WrappedValue = TObject extends { [K in UnwrapKey]: infer TValue; } ? TValue : never; type PrefixObjectKeys = { [K in WrapKey]: WrappedValue; }; type SuffixObjectKeys = { [K in WrapKey]: WrappedValue; }; type WrapObjectKeys = { [K in WrapKey]: WrappedValue; }; type NestedKeyOf = { [Key in keyof TObject & (string | number)]: TObject[Key] extends object | string ? `${Key}` | `${Key}.${NestedKeyOf}` : `${Key}`; }[keyof TObject & (string | number)]; type FilterStartingWith = Set extends `${Needle}${infer _X}` ? Set : never; type WrapUnion = keyof { [K in WrapKey]: any; }; type FilterPaths = T extends `${infer R}.${U}` ? R : never; /** * Takes a supported key from the ThemeMap and returns a list of tokens supporting that key. */ type ThemeProperties = K extends keyof DefaultThemeMap ? FilterStartingWith : never; /** * Take a key and gives a list of tokens under that key in configuration. */ type ThemeTokens = FilterStartingWith; interface StandardLonghandProperties { /** * The **`accent-color`** CSS property sets the accent color for user-interface controls generated by some elements. * * **Syntax**: `auto | ` * * **Initial value**: `auto` * * | Chrome | Firefox | Safari | Edge | IE | * | :----: | :-----: | :------: | :--: | :-: | * | **93** | **92** | **15.4** | n/a | No | * * @see https://developer.mozilla.org/docs/Web/CSS/accent-color */ accentColor?: ThemeProperties<'accentColor'> | Property.AccentColor | TLocalTokens | undefined; /** * The CSS **`align-content`** property sets the distribution of space between and around content items along a flexbox's cross-axis or a grid's block axis. * * **Syntax**: `normal | | | ? ` * * **Initial value**: `normal` * * | Chrome | Firefox | Safari | Edge | IE | * | :------: | :-----: | :-----: | :----: | :----: | * | **29** | **28** | **9** | **12** | **11** | * | 21 _-x-_ | | 7 _-x-_ | | | * * @see https://developer.mozilla.org/docs/Web/CSS/align-content */ alignContent?: ThemeProperties<'alignContent'> | Property.AlignContent | TLocalTokens | undefined; /** * The CSS **`align-items`** property sets the `align-self` value on all direct children as a group. In Flexbox, it controls the alignment of items on the Cross Axis. In Grid Layout, it controls the alignment of items on the Block Axis within their grid area. * * **Syntax**: `normal | stretch | | [ ? ]` * * **Initial value**: `normal` * * | Chrome | Firefox | Safari | Edge | IE | * | :------: | :-----: | :-----: | :----: | :----: | * | **29** | **20** | **9** | **12** | **11** | * | 21 _-x-_ | | 7 _-x-_ | | | * * @see https://developer.mozilla.org/docs/Web/CSS/align-items */ alignItems?: ThemeProperties<'alignItems'> | Property.AlignItems | TLocalTokens | undefined; /** * The **`align-self`** CSS property overrides a grid or flex item's `align-items` value. In Grid, it aligns the item inside the grid area. In Flexbox, it aligns the item on the cross axis. * * **Syntax**: `auto | normal | stretch | | ? ` * * **Initial value**: `auto` * * | Chrome | Firefox | Safari | Edge | IE | * | :------: | :-----: | :-----: | :----: | :----: | * | **29** | **20** | **9** | **12** | **10** | * | 21 _-x-_ | | 7 _-x-_ | | | * * @see https://developer.mozilla.org/docs/Web/CSS/align-self */ alignSelf?: ThemeProperties<'alignSelf'> | Property.AlignSelf | TLocalTokens | undefined; /** * The **`align-tracks`** CSS property sets the alignment in the masonry axis for grid containers that have masonry in their block axis. * * **Syntax**: `[ normal | | | ? ]#` * * **Initial value**: `normal` * * | Chrome | Firefox | Safari | Edge | IE | * | :----: | :-----: | :----: | :--: | :-: | * | No | n/a | No | n/a | No | * * @see https://developer.mozilla.org/docs/Web/CSS/align-tracks */ alignTracks?: ThemeProperties<'alignTracks'> | Property.AlignTracks | TLocalTokens | undefined; /** * The **`animation-composition`** CSS property specifies the composite operation to use when multiple animations affect the same property simultaneously. * * **Syntax**: `#` * * **Initial value**: `replace` * * | Chrome | Firefox | Safari | Edge | IE | * | :-----: | :-----: | :----: | :--: | :-: | * | **112** | n/a | **16** | n/a | No | * * @see https://developer.mozilla.org/docs/Web/CSS/animation-composition */ animationComposition?: ThemeProperties<'animationComposition'> | Property.AnimationComposition | TLocalTokens | undefined; /** * The **`animation-delay`** CSS property specifies the amount of time to wait from applying the animation to an element before beginning to perform the animation. The animation can start later, immediately from its beginning, or immediately and partway through the animation. * * **Syntax**: `