32 lines
1.4 KiB
JavaScript
32 lines
1.4 KiB
JavaScript
import { renderLogo } from './renderer.js';
|
|
import { renderInkLogo } from './InkRenderer.js';
|
|
import { PALETTES, resolvePalette, getPaletteNames, getDefaultPalette, getPalettePreview, } from './palettes.js';
|
|
export const DEFAULT_PALETTE = 'grad-blue';
|
|
export const DEFAULT_FONT = 'Standard';
|
|
export const DEFAULT_DIRECTION = 'vertical';
|
|
export function resolveColors(palette) {
|
|
if (Array.isArray(palette)) {
|
|
return palette;
|
|
}
|
|
const colors = resolvePalette(palette);
|
|
if (!colors) {
|
|
throw new Error(`Unknown palette: ${palette}`);
|
|
}
|
|
return colors;
|
|
}
|
|
export async function render(text, options = {}) {
|
|
const { palette = DEFAULT_PALETTE, font = DEFAULT_FONT, direction = DEFAULT_DIRECTION, } = options;
|
|
const paletteColors = resolveColors(palette);
|
|
return renderLogo(text, paletteColors, font, direction);
|
|
}
|
|
export async function renderFilled(text, options = {}) {
|
|
const { palette = DEFAULT_PALETTE, font, letterSpacing } = options;
|
|
// Validate letter spacing
|
|
if (letterSpacing !== undefined && letterSpacing < 0) {
|
|
throw new Error('Letter spacing must be 0 or greater');
|
|
}
|
|
const paletteColors = resolveColors(palette);
|
|
return renderInkLogo(text, paletteColors, { font, letterSpacing });
|
|
}
|
|
export { PALETTES, resolvePalette, getPaletteNames, getDefaultPalette, getPalettePreview, };
|
|
//# sourceMappingURL=lib.js.map
|