import type { SemanticTokens } from '@pandacss/dev'; export const tokenFilesMapper = [ { themeType: 'token', tokensType: 'colors', fileMatchPattern: 'tokens/core/color.json', }, { themeType: 'token', tokensType: 'fonts', fileMatchPattern: 'tokens/core/font-family.json', }, { themeType: 'token', tokensType: 'fontWeights', fileMatchPattern: 'tokens/core/font-weight.json', }, { themeType: 'token', tokensType: 'fontSizes', fileMatchPattern: 'tokens/core/typescale.json', }, { themeType: 'token', tokensType: 'durations', fileMatchPattern: 'tokens/core/transition-duration.json', }, { themeType: 'token', tokensType: 'easings', fileMatchPattern: 'tokens/core/transition-easing.json', }, { themeType: 'semanticToken', tokensType: 'colors', fileMatchPattern: /tokens\/color\/.*/, }, { themeType: 'semanticToken', tokensType: 'shadows', fileMatchPattern: 'tokens/elevation/elevation.json', }, { themeType: 'semanticToken', tokensType: 'sizes', fileMatchPattern: 'tokens/layout/area.json', }, { themeType: 'semanticToken', tokensType: 'sizes', fileMatchPattern: 'tokens/layout/grid.json', }, // Also register grid tokens under `spacing` so they can be used directly on // `gap`/`padding`/`margin` (Panda's spacing-defaulted utilities) without the // `[{sizes...}]` escape-hatch. { themeType: 'semanticToken', tokensType: 'spacing', fileMatchPattern: 'tokens/layout/grid.json', }, { themeType: 'semanticToken', tokensType: 'sizes', fileMatchPattern: 'tokens/layout/safe-area.json', }, { themeType: 'semanticToken', tokensType: 'borderWidths', fileMatchPattern: 'tokens/size/border.json', }, { themeType: 'semanticToken', tokensType: 'sizes', fileMatchPattern: 'tokens/size/dimension.json', }, // Also register dimension tokens under `spacing` (e.g. icon-square widths used // as `paddingRight` to reserve space for an overlaid clear button). { themeType: 'semanticToken', tokensType: 'spacing', fileMatchPattern: 'tokens/size/dimension.json', }, { themeType: 'semanticToken', tokensType: 'sizes', fileMatchPattern: 'tokens/size/offset.json', }, { themeType: 'semanticToken', tokensType: 'spacing', fileMatchPattern: 'tokens/size/padding.json', }, { themeType: 'semanticToken', tokensType: 'radii', fileMatchPattern: 'tokens/size/radius.json', }, { themeType: 'semanticToken', tokensType: 'spacing', fileMatchPattern: 'tokens/size/spacing.json', }, { themeType: 'semanticToken', tokensType: 'sizes', fileMatchPattern: 'tokens/size/target.json', }, { themeType: 'semanticToken', tokensType: 'fonts', fileMatchPattern: 'tokens/typography/font-family.json', }, { themeType: 'semanticToken', tokensType: 'durations', fileMatchPattern: 'tokens/transition/duration.json', }, { themeType: 'semanticToken', tokensType: 'easings', fileMatchPattern: 'tokens/transition/easing.json', }, { themeType: 'semanticToken', tokensType: 'fontSizes', fileMatchPattern: 'tokens/typography/font-size.json', }, { themeType: 'semanticToken', tokensType: 'fontWeights', fileMatchPattern: 'tokens/typography/font-weight.json', }, { themeType: 'semanticToken', tokensType: 'lineHeights', fileMatchPattern: 'tokens/typography/line-height.json', }, ] as const satisfies Array<{ themeType: 'token' | 'semanticToken'; tokensType: keyof SemanticTokens; fileMatchPattern: string | RegExp; }>;