UNPKG

tailwindcss

Version:

A utility-first CSS framework for rapidly building custom user interfaces.

39 lines (26 loc) 1.3 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = buildSelectorVariant; var _escapeClassName = require('./escapeClassName'); var _escapeClassName2 = _interopRequireDefault(_escapeClassName); var _postcssSelectorParser = require('postcss-selector-parser'); var _postcssSelectorParser2 = _interopRequireDefault(_postcssSelectorParser); var _tap = require('lodash/tap'); var _tap2 = _interopRequireDefault(_tap); var _get = require('lodash/get'); var _get2 = _interopRequireDefault(_get); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function buildSelectorVariant(selector, variantName, separator, onError = () => {}) { return (0, _postcssSelectorParser2.default)(selectors => { (0, _tap2.default)(selectors.first.filter(({ type }) => type === 'class').pop(), classSelector => { if (classSelector === undefined) { onError('Variant cannot be generated because selector contains no classes.'); return; } const baseClass = (0, _get2.default)(classSelector, 'raws.value', classSelector.value); classSelector.setPropertyAndEscape('value', `${variantName}${(0, _escapeClassName2.default)(separator)}${baseClass}`); }); }).processSync(selector); }