import { SpecifyBorderValue } from '@specifyapp/specify-design-token-format'; import { colorToJson } from './color.js'; import { dimensionToJson } from './dimension.js'; import { radiiToJson } from './radii.js'; import { jsonToken } from '../tokenToJson.js'; export function borderToJson(value: SpecifyBorderValue): Array { const borderColor = colorToJson(value.color); const borderWidth = dimensionToJson(value.width); const radii = !!value.rectangleCornerRadii ? radiiToJson(value.rectangleCornerRadii) : undefined; const tokens: Array = [{ value: borderWidth, nameExtension: 'borderWidth' }]; if (!!borderColor) tokens.push({ value: borderColor, nameExtension: 'color' }); if (!!radii) tokens.push({ value: radii, nameExtension: 'borderRadius' }); if (!!value.style && typeof value.style === 'string') { tokens.push({ value: value.style, nameExtension: 'style' }); } else if (!!value.style) { tokens.push({ value: { dashArray: value.style.dashArray.map(dimensionToJson), lineCap: value.style.lineCap, }, nameExtension: 'style', }); } return tokens; }