@primer/primitives
Version:
Typography, spacing, and color primitives for Primer design system
30 lines (29 loc) • 822 B
JavaScript
import { z } from 'zod';
import { joinFriendly, schemaErrorMessage } from '../utilities/index.js';
const validScopes = [
'all',
'bgColor',
'fgColor',
'borderColor',
'borderWidth',
'size',
'gap',
'radius',
'effectColor',
'effectFloat',
'opacity',
'fontFamily',
'fontStyle',
'fontWeight',
'fontSize',
'lineHeight',
'letterSpacing',
'paragraphSpacing',
'paragraphIndent',
];
export const scopes = (scopeSubset) => {
const scopeArray = scopeSubset !== null && scopeSubset !== void 0 ? scopeSubset : validScopes;
return z.array(z.string()).refine(value => value.every(item => scopeArray.includes(item)), value => ({
message: schemaErrorMessage(`Invalid scope: "${value}"`, `Valid scopes are: ${joinFriendly(scopeArray)}`),
}));
};