(variant: ThemeVariant)
| 471 | } |
| 472 | |
| 473 | function getColors(variant: ThemeVariant): ThemeColors { |
| 474 | const input = variant as { palette?: unknown; seeds?: unknown } |
| 475 | if (input.palette && input.seeds) { |
| 476 | throw new Error("Theme variant cannot define both `palette` and `seeds`") |
| 477 | } |
| 478 | |
| 479 | if (variant.palette) { |
| 480 | return { |
| 481 | compact: true, |
| 482 | neutral: variant.palette.neutral, |
| 483 | ink: variant.palette.ink, |
| 484 | primary: variant.palette.primary, |
| 485 | accent: variant.palette.accent ?? variant.palette.info, |
| 486 | success: variant.palette.success, |
| 487 | warning: variant.palette.warning, |
| 488 | error: variant.palette.error, |
| 489 | info: variant.palette.info, |
| 490 | interactive: variant.palette.interactive ?? variant.palette.primary, |
| 491 | diffAdd: variant.palette.diffAdd, |
| 492 | diffDelete: variant.palette.diffDelete, |
| 493 | } |
| 494 | } |
| 495 | |
| 496 | if (variant.seeds) { |
| 497 | return { |
| 498 | compact: false, |
| 499 | neutral: variant.seeds.neutral, |
| 500 | ink: undefined, |
| 501 | primary: variant.seeds.primary, |
| 502 | accent: variant.seeds.info, |
| 503 | success: variant.seeds.success, |
| 504 | warning: variant.seeds.warning, |
| 505 | error: variant.seeds.error, |
| 506 | info: variant.seeds.info, |
| 507 | interactive: variant.seeds.interactive, |
| 508 | diffAdd: variant.seeds.diffAdd, |
| 509 | diffDelete: variant.seeds.diffDelete, |
| 510 | } |
| 511 | } |
| 512 | |
| 513 | throw new Error("Theme variant requires `palette` or `seeds`") |
| 514 | } |
| 515 | |
| 516 | function generateNeutralAlphaScale(neutralScale: HexColor[], isDark: boolean): HexColor[] { |
| 517 | const alphas = isDark |
no outgoing calls
no test coverage detected