@johnmusans/arcadia-ui-style-engine
Version:
Shared style system logic and types for Arcadia UI components
42 lines (39 loc) • 935 B
text/typescript
import { DEFAULT_VARIANTS } from "../constants";
import type { Variants, VariantsDefinition } from "../types";
export const createVariants = (
variantsDefinition: VariantsDefinition,
): Variants => {
const {
buttons,
calendars,
"badge-and-tag-group": badgeAndTagGroup,
"list-box-and-menu": listBoxAndMenu,
checkboxes,
radios,
inputs,
overlays,
pickers,
selection,
...restVariants
} = variantsDefinition;
return {
...DEFAULT_VARIANTS,
...restVariants,
button: buttons,
calendar: calendars,
badge: badgeAndTagGroup,
"tag-group": badgeAndTagGroup,
"list-box": listBoxAndMenu,
menu: listBoxAndMenu,
checkbox: checkboxes,
"radio-group": radios,
input: inputs,
popover: overlays,
modal: overlays,
drawer: overlays,
"date-picker": pickers,
"date-range-picker": pickers,
combobox: pickers,
select: selection,
};
};