UNPKG

@aesthetic/style

Version:

A low-level, high-performance, atomic-based CSS-in-JS style engine.

23 lines (18 loc) 592 B
import { SheetManager, SheetMap } from '@aesthetic/types'; import { insertAtRule, insertImportRule, insertRule, isAtRule, isImportRule } from './helpers'; export function createSheetManager(sheets: SheetMap): SheetManager { return { insertRule(rule, options, index) { const sheet = sheets[options.type ?? (options.media || options.supports ? 'conditions' : 'standard')]; if (isImportRule(rule)) { return insertImportRule(sheet, rule); } if (isAtRule(rule)) { return insertAtRule(sheet, rule); } return insertRule(sheet, rule, index); }, sheets, }; }