(variant: ThemeVariant)
| 70 | } |
| 71 | |
| 72 | function readPalette(variant: ThemeVariant): PaletteInput { |
| 73 | if ("palette" in variant && variant.palette) { |
| 74 | const palette = variant.palette |
| 75 | return { |
| 76 | neutral: palette.neutral, |
| 77 | ink: palette.ink, |
| 78 | primary: palette.primary, |
| 79 | accent: palette.accent ?? palette.info, |
| 80 | success: palette.success, |
| 81 | warning: palette.warning, |
| 82 | error: palette.error, |
| 83 | info: palette.info, |
| 84 | interactive: palette.interactive ?? palette.primary, |
| 85 | diffAdd: palette.diffAdd ?? shift(palette.success, { c: 0.55, l: 0.14 }), |
| 86 | diffDelete: palette.diffDelete ?? palette.error, |
| 87 | } |
| 88 | } |
| 89 | if ("seeds" in variant && variant.seeds) { |
| 90 | const seeds = variant.seeds |
| 91 | return { |
| 92 | neutral: seeds.neutral, |
| 93 | ink: seeds.neutral, |
| 94 | primary: seeds.primary, |
| 95 | accent: seeds.info, |
| 96 | success: seeds.success, |
| 97 | warning: seeds.warning, |
| 98 | error: seeds.error, |
| 99 | info: seeds.info, |
| 100 | interactive: seeds.interactive, |
| 101 | diffAdd: seeds.diffAdd, |
| 102 | diffDelete: seeds.diffDelete, |
| 103 | } |
| 104 | } |
| 105 | throw new Error("Theme variant requires `palette` or `seeds`") |
| 106 | } |
| 107 | |
| 108 | /** Build v2 primitive ramps (100 = lightest). Alpha ramps are static in `v2/styles/colors.css`. */ |
| 109 | export function generateV2Primitives(variant: ThemeVariant, isDark: boolean): Record<string, V2ColorValue> { |
no test coverage detected