@johnmusans/arcadia-ui-style-engine
Version:
Shared style system logic and types for Arcadia UI components
30 lines (22 loc) • 843 B
text/typescript
import type { RegistryItem } from "shadcn/registry";
import { base } from "@arcadia-ui/registry-definition/registry-base";
import { iconLibraries } from "@arcadia-ui/registry-definition/registry-icons";
import { updateRegistryDependencies } from "../helpers/update-registry-deps";
import type { Style } from "../../types";
export function generateRegistryBase(options: {
styleName: string;
baseUrl: string;
style: Style;
}): RegistryItem {
let registryItem = base;
registryItem = updateRegistryDependencies(base, options);
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
const iconLibrary = iconLibraries.find(
(lib) => lib.name === options.style.icons.library,
)!;
registryItem.dependencies = [
...(registryItem.dependencies ?? []),
iconLibrary.package,
];
return registryItem;
}