@makigas/genshi-svelte
Version:
The Svelte Components required to integrate Genshi into a Svelte application
49 lines (48 loc) • 1.12 kB
JavaScript
/**
* @generic E the element
* @generic P the prop value
* @generic M the modifier
* @param element the element type
* @param mapping
*/
export function modifierClass(element, mapping, modifier) {
if (modifier in mapping) {
const className = mapping[modifier];
if (className) {
return `${element}--${className}`;
}
}
return null;
}
export function densityClass(element, density) {
return modifierClass(element, {
gapless: 'gapless',
compact: 'compact',
normal: null,
cozy: 'cozy',
}, density);
}
export function colorClass(element, color) {
return modifierClass(element, {
normal: null,
suggested: 'suggested',
destructive: 'destructive',
}, color);
}
export function sizeClass(element, size) {
return modifierClass(element, {
xs: 'xs',
sm: 'sm',
md: null,
lg: 'lg',
xl: 'xl',
}, size);
}
export function ariaInvalid(valid) {
if (valid == 'invalid') {
return 'true';
}
else if (valid == 'valid') {
return 'false';
}
}