styletron-vue
Version:
Vue bindings for styletron.
905 lines (668 loc) • 25.9 kB
JavaScript
/*!
* styletron-vue v0.4.1
* (c) 2017-present egoist <0x142857@gmail.com>
* Released under the MIT License.
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(factory((global.Styletron = {})));
}(this, (function (exports) { 'use strict';
function plugin (Vue) {
Vue.mixin({
beforeCreate: function beforeCreate() {
this.$styletron = this.$options.styletron || this.$parent && this.$parent.$options.styletron;
}
});
}
function unwrapExports (x) {
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
}
function createCommonjsModule(fn, module) {
return module = { exports: {} }, fn(module, module.exports), module.exports;
}
var capitalizeString_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = capitalizeString;
function capitalizeString(str) {
return str.charAt(0).toUpperCase() + str.slice(1);
}
module.exports = exports["default"];
});
unwrapExports(capitalizeString_1);
var prefixProperty_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = prefixProperty;
var _capitalizeString2 = _interopRequireDefault(capitalizeString_1);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function prefixProperty(prefixProperties, property, style) {
if (prefixProperties.hasOwnProperty(property)) {
var newStyle = {};
var requiredPrefixes = prefixProperties[property];
var capitalizedProperty = (0, _capitalizeString2.default)(property);
var keys = Object.keys(style);
for (var i = 0; i < keys.length; i++) {
var styleProperty = keys[i];
if (styleProperty === property) {
for (var j = 0; j < requiredPrefixes.length; j++) {
newStyle[requiredPrefixes[j] + capitalizedProperty] = style[property];
}
}
newStyle[styleProperty] = style[styleProperty];
}
return newStyle;
}
return style;
}
module.exports = exports["default"];
});
unwrapExports(prefixProperty_1);
var prefixValue_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = prefixValue;
function prefixValue(plugins, property, value, style, metaData) {
for (var i = 0, len = plugins.length; i < len; ++i) {
var processedValue = plugins[i](property, value, style, metaData);
// we can stop processing if a value is returned
// as all plugin criteria are unique
if (processedValue) {
return processedValue;
}
}
}
module.exports = exports["default"];
});
unwrapExports(prefixValue_1);
var addNewValuesOnly_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = addNewValuesOnly;
function addIfNew(list, value) {
if (list.indexOf(value) === -1) {
list.push(value);
}
}
function addNewValuesOnly(list, values) {
if (Array.isArray(values)) {
for (var i = 0, len = values.length; i < len; ++i) {
addIfNew(list, values[i]);
}
} else {
addIfNew(list, values);
}
}
module.exports = exports["default"];
});
unwrapExports(addNewValuesOnly_1);
var isObject_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = isObject;
function isObject(value) {
return value instanceof Object && !Array.isArray(value);
}
module.exports = exports["default"];
});
unwrapExports(isObject_1);
var createPrefixer_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = createPrefixer;
var _prefixProperty2 = _interopRequireDefault(prefixProperty_1);
var _prefixValue2 = _interopRequireDefault(prefixValue_1);
var _addNewValuesOnly2 = _interopRequireDefault(addNewValuesOnly_1);
var _isObject2 = _interopRequireDefault(isObject_1);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function createPrefixer(_ref) {
var prefixMap = _ref.prefixMap,
plugins = _ref.plugins;
function prefixAll(style) {
for (var property in style) {
var value = style[property];
// handle nested objects
if ((0, _isObject2.default)(value)) {
style[property] = prefixAll(value);
// handle array values
} else if (Array.isArray(value)) {
var combinedValue = [];
for (var i = 0, len = value.length; i < len; ++i) {
var processedValue = (0, _prefixValue2.default)(plugins, property, value[i], style, prefixMap);
(0, _addNewValuesOnly2.default)(combinedValue, processedValue || value[i]);
}
// only modify the value if it was touched
// by any plugin to prevent unnecessary mutations
if (combinedValue.length > 0) {
style[property] = combinedValue;
}
} else {
var _processedValue = (0, _prefixValue2.default)(plugins, property, value, style, prefixMap);
// only modify the value if it was touched
// by any plugin to prevent unnecessary mutations
if (_processedValue) {
style[property] = _processedValue;
}
style = (0, _prefixProperty2.default)(prefixMap, property, style);
}
}
return style;
}
return prefixAll;
}
module.exports = exports["default"];
});
unwrapExports(createPrefixer_1);
var staticData = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
var w = ["Webkit"];
var m = ["Moz"];
var ms = ["ms"];
var wm = ["Webkit", "Moz"];
var wms = ["Webkit", "ms"];
var wmms = ["Webkit", "Moz", "ms"];
exports.default = {
plugins: [],
prefixMap: { "appearance": wm, "textEmphasisPosition": w, "textEmphasis": w, "textEmphasisStyle": w, "textEmphasisColor": w, "boxDecorationBreak": w, "maskImage": w, "maskMode": w, "maskRepeat": w, "maskPosition": w, "maskClip": w, "maskOrigin": w, "maskSize": w, "maskComposite": w, "mask": w, "maskBorderSource": w, "maskBorderMode": w, "maskBorderSlice": w, "maskBorderWidth": w, "maskBorderOutset": w, "maskBorderRepeat": w, "maskBorder": w, "maskType": w, "textDecorationStyle": w, "textDecorationSkip": w, "textDecorationLine": w, "textDecorationColor": w, "userSelect": wmms, "backdropFilter": w, "fontKerning": w, "scrollSnapType": wms, "scrollSnapPointsX": wms, "scrollSnapPointsY": wms, "scrollSnapDestination": wms, "scrollSnapCoordinate": wms, "clipPath": w, "shapeImageThreshold": w, "shapeImageMargin": w, "shapeImageOutside": w, "filter": w, "hyphens": wms, "flowInto": wms, "flowFrom": wms, "breakBefore": wms, "breakAfter": wms, "breakInside": wms, "regionFragment": wms, "writingMode": wms, "tabSize": m, "fontFeatureSettings": w, "columnCount": w, "columnFill": w, "columnGap": w, "columnRule": w, "columnRuleColor": w, "columnRuleStyle": w, "columnRuleWidth": w, "columns": w, "columnSpan": w, "columnWidth": w, "wrapFlow": ms, "wrapThrough": ms, "wrapMargin": ms, "gridTemplateColumns": ms, "gridTemplateRows": ms, "gridTemplateAreas": ms, "gridTemplate": ms, "gridAutoColumns": ms, "gridAutoRows": ms, "gridAutoFlow": ms, "grid": ms, "gridRowStart": ms, "gridColumnStart": ms, "gridRowEnd": ms, "gridRow": ms, "gridColumn": ms, "gridColumnEnd": ms, "gridColumnGap": ms, "gridRowGap": ms, "gridArea": ms, "gridGap": ms, "textSizeAdjust": wms, "flex": w, "flexBasis": w, "flexDirection": w, "flexGrow": w, "flexFlow": w, "flexShrink": w, "flexWrap": w, "alignContent": w, "alignItems": w, "alignSelf": w, "justifyContent": w, "order": w, "transform": w, "transformOrigin": w, "transformOriginX": w, "transformOriginY": w, "backfaceVisibility": w, "perspective": w, "perspectiveOrigin": w, "transformStyle": w, "transformOriginZ": w, "animation": w, "animationDelay": w, "animationDirection": w, "animationFillMode": w, "animationDuration": w, "animationIterationCount": w, "animationName": w, "animationPlayState": w, "animationTimingFunction": w }
};
module.exports = exports["default"];
});
unwrapExports(staticData);
var cursor_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = cursor;
var prefixes = ["-webkit-", "-moz-", ""];
var values = {
"zoom-in": true,
"zoom-out": true,
grab: true,
grabbing: true
};
function cursor(property, value) {
if (property === "cursor" && values.hasOwnProperty(value)) {
return prefixes.map(function (prefix) {
return prefix + value;
});
}
}
module.exports = exports["default"];
});
unwrapExports(cursor_1);
var isPrefixedValue_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = isPrefixedValue;
var regex = /-webkit-|-moz-|-ms-/;
function isPrefixedValue(value) {
return typeof value === 'string' && regex.test(value);
}
module.exports = exports['default'];
});
unwrapExports(isPrefixedValue_1);
var crossFade_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = crossFade;
var _isPrefixedValue2 = _interopRequireDefault(isPrefixedValue_1);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// http://caniuse.com/#search=cross-fade
var prefixes = ["-webkit-", ""];
function crossFade(property, value) {
if (typeof value === "string" && !(0, _isPrefixedValue2.default)(value) && value.indexOf("cross-fade(") > -1) {
return prefixes.map(function (prefix) {
return value.replace(/cross-fade\(/g, prefix + "cross-fade(");
});
}
}
module.exports = exports["default"];
});
unwrapExports(crossFade_1);
var filter_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = filter;
var _isPrefixedValue2 = _interopRequireDefault(isPrefixedValue_1);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// http://caniuse.com/#feat=css-filter-function
var prefixes = ["-webkit-", ""];
function filter(property, value) {
if (typeof value === "string" && !(0, _isPrefixedValue2.default)(value) && value.indexOf("filter(") > -1) {
return prefixes.map(function (prefix) {
return value.replace(/filter\(/g, prefix + "filter(");
});
}
}
module.exports = exports["default"];
});
unwrapExports(filter_1);
var flex_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = flex;
var values = {
flex: ["-webkit-box", "-moz-box", "-ms-flexbox", "-webkit-flex", "flex"],
"inline-flex": ["-webkit-inline-box", "-moz-inline-box", "-ms-inline-flexbox", "-webkit-inline-flex", "inline-flex"]
};
function flex(property, value) {
if (property === "display" && values.hasOwnProperty(value)) {
return values[value];
}
}
module.exports = exports["default"];
});
unwrapExports(flex_1);
var flexboxOld_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = flexboxOld;
var alternativeValues = {
"space-around": "justify",
"space-between": "justify",
"flex-start": "start",
"flex-end": "end",
"wrap-reverse": "multiple",
wrap: "multiple"
};
var alternativeProps = {
alignItems: "WebkitBoxAlign",
justifyContent: "WebkitBoxPack",
flexWrap: "WebkitBoxLines"
};
function flexboxOld(property, value, style) {
if (property === "flexDirection" && typeof value === "string") {
if (value.indexOf("column") > -1) {
style.WebkitBoxOrient = "vertical";
} else {
style.WebkitBoxOrient = "horizontal";
}
if (value.indexOf("reverse") > -1) {
style.WebkitBoxDirection = "reverse";
} else {
style.WebkitBoxDirection = "normal";
}
}
if (alternativeProps.hasOwnProperty(property)) {
style[alternativeProps[property]] = alternativeValues[value] || value;
}
}
module.exports = exports["default"];
});
unwrapExports(flexboxOld_1);
var gradient_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = gradient;
var _isPrefixedValue2 = _interopRequireDefault(isPrefixedValue_1);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var prefixes = ["-webkit-", "-moz-", ""];
var values = /linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/;
function gradient(property, value) {
if (typeof value === "string" && !(0, _isPrefixedValue2.default)(value) && values.test(value)) {
return prefixes.map(function (prefix) {
return prefix + value;
});
}
}
module.exports = exports["default"];
});
unwrapExports(gradient_1);
var imageSet_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = imageSet;
var _isPrefixedValue2 = _interopRequireDefault(isPrefixedValue_1);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// http://caniuse.com/#feat=css-image-set
var prefixes = ["-webkit-", ""];
function imageSet(property, value) {
if (typeof value === "string" && !(0, _isPrefixedValue2.default)(value) && value.indexOf("image-set(") > -1) {
return prefixes.map(function (prefix) {
return value.replace(/image-set\(/g, prefix + "image-set(");
});
}
}
module.exports = exports["default"];
});
unwrapExports(imageSet_1);
var position_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = position;
function position(property, value) {
if (property === "position" && value === "sticky") {
return ["-webkit-sticky", "sticky"];
}
}
module.exports = exports["default"];
});
unwrapExports(position_1);
var sizing_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = sizing;
var prefixes = ["-webkit-", "-moz-", ""];
var properties = {
maxHeight: true,
maxWidth: true,
width: true,
height: true,
columnWidth: true,
minWidth: true,
minHeight: true
};
var values = {
"min-content": true,
"max-content": true,
"fill-available": true,
"fit-content": true,
"contain-floats": true
};
function sizing(property, value) {
if (properties.hasOwnProperty(property) && values.hasOwnProperty(value)) {
return prefixes.map(function (prefix) {
return prefix + value;
});
}
}
module.exports = exports["default"];
});
unwrapExports(sizing_1);
var uppercasePattern = /[A-Z]/g;
var msPattern = /^ms-/;
var cache = {};
function hyphenateStyleName(string) {
return string in cache
? cache[string]
: cache[string] = string
.replace(uppercasePattern, '-$&')
.toLowerCase()
.replace(msPattern, '-ms-');
}
var hyphenateStyleName_1 = hyphenateStyleName;
var hyphenateProperty_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = hyphenateProperty;
var _hyphenateStyleName2 = _interopRequireDefault(hyphenateStyleName_1);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function hyphenateProperty(property) {
return (0, _hyphenateStyleName2.default)(property);
}
module.exports = exports['default'];
});
unwrapExports(hyphenateProperty_1);
var transition_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = transition;
var _hyphenateProperty2 = _interopRequireDefault(hyphenateProperty_1);
var _isPrefixedValue2 = _interopRequireDefault(isPrefixedValue_1);
var _capitalizeString2 = _interopRequireDefault(capitalizeString_1);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var properties = {
transition: true,
transitionProperty: true,
WebkitTransition: true,
WebkitTransitionProperty: true,
MozTransition: true,
MozTransitionProperty: true
};
var prefixMapping = {
Webkit: "-webkit-",
Moz: "-moz-",
ms: "-ms-"
};
function prefixValue(value, propertyPrefixMap) {
if ((0, _isPrefixedValue2.default)(value)) {
return value;
}
// only split multi values, not cubic beziers
var multipleValues = value.split(/,(?![^()]*(?:\([^()]*\))?\))/g);
for (var i = 0, len = multipleValues.length; i < len; ++i) {
var singleValue = multipleValues[i];
var values = [singleValue];
for (var property in propertyPrefixMap) {
var dashCaseProperty = (0, _hyphenateProperty2.default)(property);
if (singleValue.indexOf(dashCaseProperty) > -1 && dashCaseProperty !== "order") {
var prefixes = propertyPrefixMap[property];
for (var j = 0, pLen = prefixes.length; j < pLen; ++j) {
// join all prefixes and create a new value
values.unshift(singleValue.replace(dashCaseProperty, prefixMapping[prefixes[j]] + dashCaseProperty));
}
}
}
multipleValues[i] = values.join(",");
}
return multipleValues.join(",");
}
function transition(property, value, style, propertyPrefixMap) {
// also check for already prefixed transitions
if (typeof value === "string" && properties.hasOwnProperty(property)) {
var outputValue = prefixValue(value, propertyPrefixMap);
// if the property is already prefixed
var webkitOutput = outputValue.split(/,(?![^()]*(?:\([^()]*\))?\))/g).filter(function (val) {
return !/-moz-|-ms-/.test(val);
}).join(",");
if (property.indexOf("Webkit") > -1) {
return webkitOutput;
}
var mozOutput = outputValue.split(/,(?![^()]*(?:\([^()]*\))?\))/g).filter(function (val) {
return !/-webkit-|-ms-/.test(val);
}).join(",");
if (property.indexOf("Moz") > -1) {
return mozOutput;
}
style["Webkit" + (0, _capitalizeString2.default)(property)] = webkitOutput;
style["Moz" + (0, _capitalizeString2.default)(property)] = mozOutput;
return outputValue;
}
}
module.exports = exports["default"];
});
unwrapExports(transition_1);
var _static = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createPrefixer2 = _interopRequireDefault(createPrefixer_1);
var _staticData2 = _interopRequireDefault(staticData);
var _cursor2 = _interopRequireDefault(cursor_1);
var _crossFade2 = _interopRequireDefault(crossFade_1);
var _filter2 = _interopRequireDefault(filter_1);
var _flex2 = _interopRequireDefault(flex_1);
var _flexboxOld2 = _interopRequireDefault(flexboxOld_1);
var _gradient2 = _interopRequireDefault(gradient_1);
var _imageSet2 = _interopRequireDefault(imageSet_1);
var _position2 = _interopRequireDefault(position_1);
var _sizing2 = _interopRequireDefault(sizing_1);
var _transition2 = _interopRequireDefault(transition_1);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var plugins = [_crossFade2.default, _cursor2.default, _filter2.default, _flexboxOld2.default, _gradient2.default, _imageSet2.default, _position2.default, _sizing2.default, _transition2.default, _flex2.default];
exports.default = (0, _createPrefixer2.default)({
prefixMap: _staticData2.default.prefixMap,
plugins: plugins
});
module.exports = exports["default"];
});
var prefixAll = unwrapExports(_static);
const uppercasePattern$1 = /[A-Z]/g;
const msPattern$1 = /^ms-/;
const cache$1 = {};
function hyphenateStyleName$1(prop) {
return prop in cache$1 ? cache$1[prop] : cache$1[prop] = prop.replace(uppercasePattern$1, '-$&').toLowerCase().replace(msPattern$1, '-ms-');
}
const prefixedBlockCache = {};
function injectStylePrefixed(styletron, styles, media, pseudo, cache = prefixedBlockCache) {
let classString = '';
for (const originalKey in styles) {
const originalVal = styles[originalKey];
const originalValType = typeof originalVal;
const isPrimitiveVal = originalValType === 'string' || originalValType === 'number';
if (isPrimitiveVal || Array.isArray(originalVal)) {
let block = '';
if (isPrimitiveVal && cache.hasOwnProperty(originalKey) && cache[originalKey].hasOwnProperty(originalVal)) {
block = cache[originalKey][originalVal];
} else {
const prefixed = prefixAll({
[originalKey]: originalVal
});
for (const prefixedKey in prefixed) {
const prefixedVal = prefixed[prefixedKey];
const prefixedValType = typeof prefixedVal;
if (prefixedValType === 'string' || prefixedValType === 'number') {
block += `${hyphenateStyleName$1(prefixedKey)}:${prefixedVal};`;
continue;
}
if (Array.isArray(prefixedVal)) {
const hyphenated = hyphenateStyleName$1(prefixedKey);
for (let i = 0; i < prefixedVal.length; i++) {
block += `${hyphenated}:${prefixedVal[i]};`;
}
continue;
}
}
block = block.slice(0, -1); // Remove trailing semicolon
if (isPrimitiveVal) {
if (!cache.hasOwnProperty(originalKey)) {
cache[originalKey] = {};
}
cache[originalKey][originalVal] = block;
}
}
classString += ' ' + styletron.injectRawDeclaration({
block,
media,
pseudo
});
}
if (originalValType === 'object') {
if (originalKey[0] === ':') {
classString += ' ' + injectStylePrefixed(styletron, originalVal, media, originalKey, cache);
continue;
}
if (originalKey.substring(0, 6) === '@media') {
classString += ' ' + injectStylePrefixed(styletron, originalVal, originalKey.substr(7), pseudo, cache);
continue;
}
}
} // remove leading space on way out
return classString.slice(1);
}
/*!
* nano-assign v1.0.0
* (c) 2017-present egoist <0x142857@gmail.com>
* Released under the MIT License.
*/
var index = function(obj) {
var arguments$1 = arguments;
for (var i = 1; i < arguments.length; i++) {
// eslint-disable-next-line guard-for-in, prefer-rest-params
for (var p in arguments[i]) { obj[p] = arguments$1[i][p]; }
}
return obj
};
var nanoAssign_common = index;
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
return typeof obj;
} : function (obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};
var defineProperty = function (obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
};
var STYLETRON_KEY = '__STYLETRON';
function array2obj(source) {
if (Array.isArray(source)) {
return source.reduce(function (res, key) {
res[key] = null;
return res;
}, {});
}
return source;
}
function createComponent(tag, stylesArray, props) {
var _Component;
var Component = (_Component = {
props: props,
functional: true
}, defineProperty(_Component, STYLETRON_KEY, {
tag: tag,
styles: stylesArray
}), defineProperty(_Component, 'inject', {
theme: {
default: null
},
styletron: {
default: null
}
}), defineProperty(_Component, 'render', function render(h, ctx) {
var resolvedStyle = {};
for (var i = 0; i < Component[STYLETRON_KEY].styles.length; i++) {
var style = Component[STYLETRON_KEY].styles[i];
if (typeof style === 'function') {
nanoAssign_common(resolvedStyle, style(ctx.props, ctx));
} else if ((typeof style === 'undefined' ? 'undefined' : _typeof(style)) === 'object') {
nanoAssign_common(resolvedStyle, style);
}
}
var styletron = ctx.parent.$styletron || ctx.injections.styletron;
if ("development" === 'development' && !styletron) {
throw new Error('[styletron-vue] You need to bind styletron instance first!');
}
var styletronClassName = injectStylePrefixed(styletron, resolvedStyle);
var className = [ctx.data.class, styletronClassName];
return h(tag, nanoAssign_common({}, ctx.data, { class: className, props: ctx.props }), ctx.children);
}), _Component);
return Component;
}
function styled(base, styleArg, props) {
var inheritProps = (typeof base === 'undefined' ? 'undefined' : _typeof(base)) === 'object' ? array2obj(base.props) : null;
var finalProps = nanoAssign_common({}, inheritProps, array2obj(props));
if ((typeof base === 'undefined' ? 'undefined' : _typeof(base)) === 'object' && base[STYLETRON_KEY]) {
var _base$STYLETRON_KEY = base[STYLETRON_KEY],
tag = _base$STYLETRON_KEY.tag,
styles = _base$STYLETRON_KEY.styles;
return createComponent(tag, styles.concat(styleArg), finalProps);
} else if (typeof base === 'string' || (typeof base === 'undefined' ? 'undefined' : _typeof(base)) === 'object') {
return createComponent(base, [styleArg], finalProps);
}
{
throw new Error('`styled` takes either a DOM element name or a component');
}
}
exports['default'] = plugin;
exports.styled = styled;
Object.defineProperty(exports, '__esModule', { value: true });
})));