UNPKG

@primer/primitives

Version:

Typography, spacing, and color primitives for Primer design system

35 lines (34 loc) 931 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()).superRefine((value, ctx) => { if (!value.every(item => scopeArray.includes(item))) { ctx.addIssue({ code: 'custom', message: schemaErrorMessage(`Invalid scope: "${value}"`, `Valid scopes are: ${joinFriendly(scopeArray)}`), }); } }); };