UNPKG

@primer/primitives

Version:

Typography, spacing, and color primitives for Primer design system

30 lines (29 loc) 822 B
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)}`), })); };