UNPKG

postcss-logical-polyfill

Version:

A PostCSS plugin that provides physical property polyfills for CSS logical properties with intelligent direction-aware selector handling, block-direction optimization, and extended logical property support via shim system

43 lines (42 loc) 1.75 kB
/** * Core selector utility functions for handling direction-specific CSS selectors * * This module provides two main functions: * - detectDirection: Determine the direction context of a CSS selector * - generateSelector: Generate a new selector for a specific direction context */ /** * Configuration for direction selector detection and generation */ export interface DirectionConfig { ltr?: string; rtl?: string; } /** * Detect the direction context of a CSS selector * * @param selector - The CSS selector to analyze * @param config - Configuration containing custom direction selectors * @returns The detected direction: 'ltr', 'rtl', or 'none' * * @example * detectDirection('.button', { ltr: '.ltr', rtl: '.rtl' }) // 'none' * detectDirection('.ltr .button', { ltr: '.ltr', rtl: '.rtl' }) // 'ltr' * detectDirection('[dir="rtl"] .button') // 'rtl' * detectDirection('.theme.rtl .button', { rtl: '.rtl' }) // 'rtl' */ export declare function detectDirection(selector: string, config?: DirectionConfig): 'ltr' | 'rtl' | 'none'; /** * Generate a new selector for a specific direction context * * @param selector - The original CSS selector * @param direction - The target direction: 'ltr' or 'rtl' * @param config - Configuration containing custom direction selectors * @returns The generated selector with appropriate direction context * * @example * generateSelector('.button', 'ltr', { ltr: '.ltr' }) // '.ltr .button' * generateSelector('.ltr .button', 'rtl', { ltr: '.ltr', rtl: '.rtl' }) // '.rtl .button' * generateSelector('[dir="ltr"] .button', 'rtl') // '[dir="rtl"] .button' */ export declare function generateSelector(selector: string, direction: 'ltr' | 'rtl', config?: DirectionConfig): string;