kitchensink
Version:
Dispatch's awesome components and style guide
501 lines (372 loc) • 20.5 kB
JavaScript
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Prefixer = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
;
Object.defineProperty(exports, '__esModule', {
value: true
});
exports['default'] = calc;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _utilsJoinPrefixedRules = require('../utils/joinPrefixedRules');
var _utilsJoinPrefixedRules2 = _interopRequireDefault(_utilsJoinPrefixedRules);
var _utilsIsPrefixedValue = require('../utils/isPrefixedValue');
var _utilsIsPrefixedValue2 = _interopRequireDefault(_utilsIsPrefixedValue);
function calc(property, value) {
if (typeof value === 'string' && value.indexOf('calc(') > -1) {
if ((0, _utilsIsPrefixedValue2['default'])(value)) return;
return (0, _utilsJoinPrefixedRules2['default'])(property, value, function (prefix, value) {
return value.replace(/calc\(/g, prefix + 'calc(');
});
}
}
module.exports = exports['default'];
},{"../utils/isPrefixedValue":14,"../utils/joinPrefixedRules":15}],2:[function(require,module,exports){
;
Object.defineProperty(exports, '__esModule', {
value: true
});
exports['default'] = cursor;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _utilsJoinPrefixedRules = require('../utils/joinPrefixedRules');
var _utilsJoinPrefixedRules2 = _interopRequireDefault(_utilsJoinPrefixedRules);
var values = {
'zoom-in': true,
'zoom-out': true,
'grab': true,
'grabbing': true
};
function cursor(property, value) {
if (property === 'cursor' && values[value]) {
return (0, _utilsJoinPrefixedRules2['default'])(property, value);
}
}
module.exports = exports['default'];
},{"../utils/joinPrefixedRules":15}],3:[function(require,module,exports){
;
Object.defineProperty(exports, '__esModule', {
value: true
});
exports['default'] = flex;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _utilsCamelToDashCase = require('../utils/camelToDashCase');
var _utilsCamelToDashCase2 = _interopRequireDefault(_utilsCamelToDashCase);
var values = { flex: true, 'inline-flex': true };
function flex(property, value) {
if (property === 'display' && values[value]) {
return {
display: ['-webkit-box', '-moz-box', '-ms-' + value + 'box', '-webkit-' + value, value]
};
}
}
module.exports = exports['default'];
},{"../utils/camelToDashCase":12}],4:[function(require,module,exports){
;
Object.defineProperty(exports, '__esModule', {
value: true
});
exports['default'] = flexboxIE;
function _defineProperty(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 alternativeValues = {
'space-around': 'distribute',
'space-between': 'justify',
'flex-start': 'start',
'flex-end': 'end'
};
var alternativeProps = {
alignContent: 'msFlexLinePack',
alignSelf: 'msFlexItemAlign',
alignItems: 'msFlexAlign',
justifyContent: 'msFlexPack',
order: 'msFlexOrder',
flexGrow: 'msFlexPositive',
flexShrink: 'msFlexNegative',
flexBasis: 'msPreferredSize'
};
function flexboxIE(property, value) {
if (alternativeProps[property]) {
return _defineProperty({}, alternativeProps[property], alternativeValues[value] || value);
}
}
module.exports = exports['default'];
},{}],5:[function(require,module,exports){
;
Object.defineProperty(exports, '__esModule', {
value: true
});
exports['default'] = flexboxOld;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function _defineProperty(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 _utilsCamelToDashCase = require('../utils/camelToDashCase');
var _utilsCamelToDashCase2 = _interopRequireDefault(_utilsCamelToDashCase);
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) {
if (property === 'flexDirection') {
return {
WebkitBoxOrient: value.indexOf('column') > -1 ? 'vertical' : 'horizontal',
WebkitBoxDirection: value.indexOf('reverse') > -1 ? 'reverse' : 'normal'
};
}
if (alternativeProps[property]) {
return _defineProperty({}, alternativeProps[property], alternativeValues[value] || value);
}
}
module.exports = exports['default'];
},{"../utils/camelToDashCase":12}],6:[function(require,module,exports){
;
Object.defineProperty(exports, '__esModule', {
value: true
});
exports['default'] = gradient;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _utilsJoinPrefixedRules = require('../utils/joinPrefixedRules');
var _utilsJoinPrefixedRules2 = _interopRequireDefault(_utilsJoinPrefixedRules);
var _utilsIsPrefixedValue = require('../utils/isPrefixedValue');
var _utilsIsPrefixedValue2 = _interopRequireDefault(_utilsIsPrefixedValue);
var values = /linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/;
function gradient(property, value) {
if (typeof value === 'string' && value.match(values) !== null) {
if ((0, _utilsIsPrefixedValue2['default'])(value)) return;
return (0, _utilsJoinPrefixedRules2['default'])(property, value);
}
}
module.exports = exports['default'];
},{"../utils/isPrefixedValue":14,"../utils/joinPrefixedRules":15}],7:[function(require,module,exports){
;
Object.defineProperty(exports, '__esModule', {
value: true
});
exports['default'] = sizing;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _utilsJoinPrefixedRules = require('../utils/joinPrefixedRules');
var _utilsJoinPrefixedRules2 = _interopRequireDefault(_utilsJoinPrefixedRules);
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[property] && values[value]) {
return (0, _utilsJoinPrefixedRules2['default'])(property, value);
}
}
module.exports = exports['default'];
},{"../utils/joinPrefixedRules":15}],8:[function(require,module,exports){
;
Object.defineProperty(exports, '__esModule', {
value: true
});
exports['default'] = transition;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function _defineProperty(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 _utilsCamelToDashCase = require('../utils/camelToDashCase');
var _utilsCamelToDashCase2 = _interopRequireDefault(_utilsCamelToDashCase);
var _utilsCapitalizeString = require('../utils/capitalizeString');
var _utilsCapitalizeString2 = _interopRequireDefault(_utilsCapitalizeString);
var _utilsIsPrefixedValue = require('../utils/isPrefixedValue');
var _utilsIsPrefixedValue2 = _interopRequireDefault(_utilsIsPrefixedValue);
var _prefixProps = require('../prefixProps');
var _prefixProps2 = _interopRequireDefault(_prefixProps);
var properties = {
transition: true,
transitionProperty: true,
WebkitTransition: true,
WebkitTransitionProperty: true
};
function transition(property, value) {
// also check for already prefixed transitions
if (typeof value === 'string' && properties[property]) {
var _ref2;
var outputValue = prefixValue(value);
var webkitOutput = outputValue.split(',').filter(function (value) {
return value.match(/-moz-|-ms-/) === null;
}).join(',');
// if the property is already prefixed
if (property.indexOf('Webkit') > -1) {
return _defineProperty({}, property, webkitOutput);
}
return _ref2 = {}, _defineProperty(_ref2, 'Webkit' + (0, _utilsCapitalizeString2['default'])(property), webkitOutput), _defineProperty(_ref2, property, outputValue), _ref2;
}
}
function prefixValue(value) {
if ((0, _utilsIsPrefixedValue2['default'])(value)) {
return value;
}
// only split multi values, not cubic beziers
var multipleValues = value.split(/,(?![^()]*(?:\([^()]*\))?\))/g);
// iterate each single value and check for transitioned properties
// that need to be prefixed as well
multipleValues.forEach(function (val, index) {
multipleValues[index] = Object.keys(_prefixProps2['default']).reduce(function (out, prefix) {
var dashCasePrefix = '-' + prefix.toLowerCase() + '-';
Object.keys(_prefixProps2['default'][prefix]).forEach(function (prop) {
var dashCaseProperty = (0, _utilsCamelToDashCase2['default'])(prop);
if (val.indexOf(dashCaseProperty) > -1) {
// join all prefixes and create a new value
out = val.replace(dashCaseProperty, dashCasePrefix + dashCaseProperty) + ',' + out;
}
});
return out;
}, val);
});
return multipleValues.join(',');
}
module.exports = exports['default'];
},{"../prefixProps":10,"../utils/camelToDashCase":12,"../utils/capitalizeString":13,"../utils/isPrefixedValue":14}],9:[function(require,module,exports){
;
Object.defineProperty(exports, '__esModule', {
value: true
});
exports['default'] = prefixAll;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _prefixProps = require('./prefixProps');
var _prefixProps2 = _interopRequireDefault(_prefixProps);
var _utilsCapitalizeString = require('./utils/capitalizeString');
var _utilsCapitalizeString2 = _interopRequireDefault(_utilsCapitalizeString);
var _utilsAssign = require('./utils/assign');
var _utilsAssign2 = _interopRequireDefault(_utilsAssign);
var _pluginsCalc = require('./plugins/calc');
var _pluginsCalc2 = _interopRequireDefault(_pluginsCalc);
var _pluginsCursor = require('./plugins/cursor');
var _pluginsCursor2 = _interopRequireDefault(_pluginsCursor);
var _pluginsFlex = require('./plugins/flex');
var _pluginsFlex2 = _interopRequireDefault(_pluginsFlex);
var _pluginsSizing = require('./plugins/sizing');
var _pluginsSizing2 = _interopRequireDefault(_pluginsSizing);
var _pluginsGradient = require('./plugins/gradient');
var _pluginsGradient2 = _interopRequireDefault(_pluginsGradient);
var _pluginsTransition = require('./plugins/transition');
var _pluginsTransition2 = _interopRequireDefault(_pluginsTransition);
// special flexbox specifications
var _pluginsFlexboxIE = require('./plugins/flexboxIE');
var _pluginsFlexboxIE2 = _interopRequireDefault(_pluginsFlexboxIE);
var _pluginsFlexboxOld = require('./plugins/flexboxOld');
var _pluginsFlexboxOld2 = _interopRequireDefault(_pluginsFlexboxOld);
var plugins = [_pluginsCalc2['default'], _pluginsCursor2['default'], _pluginsSizing2['default'], _pluginsGradient2['default'], _pluginsTransition2['default'], _pluginsFlexboxIE2['default'], _pluginsFlexboxOld2['default'], _pluginsFlex2['default']];
/**
* Returns a prefixed version of the style object using all vendor prefixes
* @param {Object} styles - Style object that gets prefixed properties added
* @returns {Object} - Style object with prefixed properties and values
*/
function prefixAll(styles) {
return Object.keys(styles).reduce(function (prefixedStyles, property) {
var value = styles[property];
if (value instanceof Object && !Array.isArray(value)) {
// recurse through nested style objects
prefixedStyles[property] = prefixAll(value);
} else {
Object.keys(_prefixProps2['default']).forEach(function (prefix) {
var properties = _prefixProps2['default'][prefix];
// add prefixes if needed
if (properties[property]) {
prefixedStyles[prefix + (0, _utilsCapitalizeString2['default'])(property)] = value;
}
});
// resolve every special plugins
plugins.forEach(function (plugin) {
return (0, _utilsAssign2['default'])(prefixedStyles, plugin(property, value));
});
}
return prefixedStyles;
}, styles);
}
module.exports = exports['default'];
},{"./plugins/calc":1,"./plugins/cursor":2,"./plugins/flex":3,"./plugins/flexboxIE":4,"./plugins/flexboxOld":5,"./plugins/gradient":6,"./plugins/sizing":7,"./plugins/transition":8,"./prefixProps":10,"./utils/assign":11,"./utils/capitalizeString":13}],10:[function(require,module,exports){
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = { "Webkit": { "transform": true, "transformOrigin": true, "transformOriginX": true, "transformOriginY": true, "backfaceVisibility": true, "perspective": true, "perspectiveOrigin": true, "transformStyle": true, "transformOriginZ": true, "animation": true, "animationDelay": true, "animationDirection": true, "animationFillMode": true, "animationDuration": true, "animationIterationCount": true, "animationName": true, "animationPlayState": true, "animationTimingFunction": true, "appearance": true, "userSelect": true, "fontKerning": true, "textEmphasisPosition": true, "textEmphasis": true, "textEmphasisStyle": true, "textEmphasisColor": true, "boxDecorationBreak": true, "clipPath": true, "maskImage": true, "maskMode": true, "maskRepeat": true, "maskPosition": true, "maskClip": true, "maskOrigin": true, "maskSize": true, "maskComposite": true, "mask": true, "maskBorderSource": true, "maskBorderMode": true, "maskBorderSlice": true, "maskBorderWidth": true, "maskBorderOutset": true, "maskBorderRepeat": true, "maskBorder": true, "maskType": true, "textDecorationStyle": true, "textDecorationSkip": true, "textDecorationLine": true, "textDecorationColor": true, "filter": true, "fontFeatureSettings": true, "breakAfter": true, "breakBefore": true, "breakInside": true, "columnCount": true, "columnFill": true, "columnGap": true, "columnRule": true, "columnRuleColor": true, "columnRuleStyle": true, "columnRuleWidth": true, "columns": true, "columnSpan": true, "columnWidth": true, "flex": true, "flexBasis": true, "flexDirection": true, "flexGrow": true, "flexFlow": true, "flexShrink": true, "flexWrap": true, "alignContent": true, "alignItems": true, "alignSelf": true, "justifyContent": true, "order": true, "transition": true, "transitionDelay": true, "transitionDuration": true, "transitionProperty": true, "transitionTimingFunction": true, "backdropFilter": true, "scrollSnapType": true, "scrollSnapPointsX": true, "scrollSnapPointsY": true, "scrollSnapDestination": true, "scrollSnapCoordinate": true, "shapeImageThreshold": true, "shapeImageMargin": true, "shapeImageOutside": true, "hyphens": true, "flowInto": true, "flowFrom": true, "regionFragment": true, "textSizeAdjust": true, "borderImage": true, "borderImageOutset": true, "borderImageRepeat": true, "borderImageSlice": true, "borderImageSource": true, "borderImageWidth": true, "tabSize": true, "objectFit": true, "objectPosition": true }, "Moz": { "appearance": true, "userSelect": true, "boxSizing": true, "textAlignLast": true, "textDecorationStyle": true, "textDecorationSkip": true, "textDecorationLine": true, "textDecorationColor": true, "tabSize": true, "hyphens": true, "fontFeatureSettings": true, "breakAfter": true, "breakBefore": true, "breakInside": true, "columnCount": true, "columnFill": true, "columnGap": true, "columnRule": true, "columnRuleColor": true, "columnRuleStyle": true, "columnRuleWidth": true, "columns": true, "columnSpan": true, "columnWidth": true }, "ms": { "flex": true, "flexBasis": false, "flexDirection": true, "flexGrow": false, "flexFlow": true, "flexShrink": false, "flexWrap": true, "alignContent": false, "alignItems": false, "alignSelf": false, "justifyContent": false, "order": false, "transform": true, "transformOrigin": true, "transformOriginX": true, "transformOriginY": true, "userSelect": true, "wrapFlow": true, "wrapThrough": true, "wrapMargin": true, "scrollSnapType": true, "scrollSnapPointsX": true, "scrollSnapPointsY": true, "scrollSnapDestination": true, "scrollSnapCoordinate": true, "touchAction": true, "hyphens": true, "flowInto": true, "flowFrom": true, "breakBefore": true, "breakAfter": true, "breakInside": true, "regionFragment": true, "gridTemplateColumns": true, "gridTemplateRows": true, "gridTemplateAreas": true, "gridTemplate": true, "gridAutoColumns": true, "gridAutoRows": true, "gridAutoFlow": true, "grid": true, "gridRowStart": true, "gridColumnStart": true, "gridRowEnd": true, "gridRow": true, "gridColumn": true, "gridColumnEnd": true, "gridColumnGap": true, "gridRowGap": true, "gridArea": true, "gridGap": true, "textSizeAdjust": true } };
module.exports = exports["default"];
},{}],11:[function(require,module,exports){
// leight polyfill for Object.assign
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = function (base) {
var extend = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
return Object.keys(extend).reduce(function (out, key) {
base[key] = extend[key];
return out;
}, {});
};
module.exports = exports["default"];
},{}],12:[function(require,module,exports){
/**
* Converts a camel-case string to a dash-case string
* @param {string} str - str that gets converted to dash-case
*/
;
Object.defineProperty(exports, '__esModule', {
value: true
});
exports['default'] = function (str) {
return str.replace(/([a-z]|^)([A-Z])/g, function (match, p1, p2) {
return p1 + '-' + p2.toLowerCase();
}).replace('ms-', '-ms-');
};
module.exports = exports['default'];
},{}],13:[function(require,module,exports){
// helper to capitalize strings
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = function (str) {
return str.charAt(0).toUpperCase() + str.slice(1);
};
module.exports = exports["default"];
},{}],14:[function(require,module,exports){
;
Object.defineProperty(exports, '__esModule', {
value: true
});
exports['default'] = function (value) {
if (Array.isArray(value)) value = value.join(',');
return value.match(/-webkit-|-moz-|-ms-/) !== null;
};
module.exports = exports['default'];
},{}],15:[function(require,module,exports){
;
Object.defineProperty(exports, '__esModule', {
value: true
});
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function _defineProperty(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 _camelToDashCase = require('./camelToDashCase');
var _camelToDashCase2 = _interopRequireDefault(_camelToDashCase);
// returns a style object with a single concated prefixed value string
exports['default'] = function (property, value) {
var replacer = arguments.length <= 2 || arguments[2] === undefined ? function (prefix, value) {
return prefix + value;
} : arguments[2];
return (function () {
return _defineProperty({}, property, ['-webkit-', '-moz-', ''].map(function (prefix) {
return replacer(prefix, value);
}));
})();
};
module.exports = exports['default'];
},{"./camelToDashCase":12}]},{},[9])(9)
});