@ordojs/core
Version:
Core compiler and runtime for OrdoJS framework
66 lines • 1.76 kB
TypeScript
/**
* @fileoverview CSS Scoping System for OrdoJS Framework
* Handles scoping CSS selectors to prevent style conflicts between components
*/
import { type StyleBlockNode } from '../types/index.js';
/**
* CSS Scoping options
*/
export interface CSSScopingOptions {
/**
* Prefix to use for scoped selectors
*/
scopePrefix?: string;
/**
* Whether to use data attributes for scoping (true) or class names (false)
*/
useDataAttributes?: boolean;
/**
* Whether to preserve original selectors in addition to scoped ones
*/
preserveOriginalSelectors?: boolean;
}
/**
* CSS Scoper for OrdoJS components
*/
export declare class OrdoJSCSSScoper {
private options;
constructor(options?: Partial<CSSScopingOptions>);
/**
* Scope CSS rules to a specific component
*/
scopeStyles(styleBlock: StyleBlockNode, componentName: string): StyleBlockNode;
/**
* Scope a single CSS rule
*/
private scopeRule;
/**
* Scope a CSS selector
*/
private scopeSelector;
/**
* Scope a single CSS selector (without commas)
*/
private scopeSingleSelector;
/**
* Scope a single selector part (no combinators)
*/
private scopeSelectorPart;
/**
* Generate a unique scope ID for a component
*/
private generateScopeId;
/**
* Generate a simple hash from a string
*/
private hashString;
/**
* Generate the data attribute or class name for component markup
*/
generateScopeAttribute(componentName: string): string;
/**
* Convert a scoped StyleBlockNode back to CSS text
*/
generateScopedCSS(styleBlock: StyleBlockNode): string;
}
//# sourceMappingURL=css-scoper.d.ts.map