511
*/
512
export function collapseToShorthands(entries: Map<string, string>): string[] {
514
>
515
>
// 1. Box shorthands (margin, padding, border-radius)
516
>
for (const { shorthand, sides } of boxShorthands) {
517
>
const collapsed = collapseBoxValues(entries, sides);
518
>
if (collapsed !== undefined) {
519
shorthandLines.push(`${shorthand}: ${collapsed};`);
520
}
522
>
523
>
// 2. Border: try full `border: W S C` when all four sides are uniform,
524
>
// otherwise collapse each group (border-width, border-style, border-color).
525
>
const borderVals = borderSideGroups.map(g => g.sides.map(s => entries.get(s)));
526
>
const hasAllBorderProps = borderVals.every(group => group.every(v => v !== undefined));
527
>
if (hasAllBorderProps) {
528
const allUniform = borderVals.every(group => group.every(v => v === group[0]));
529
if (allUniform) {