{"version":3,"file":"glamorous.umd.js","sources":["../src/dom-elements.js","../src/constants.js","../src/react-compat.js","../src/with-theme.js","../node_modules/is-function/index.js","../node_modules/is-plain-object/node_modules/isobject/index.js","../node_modules/is-plain-object/index.js","../node_modules/brcast/dist/brcast.es.js","../src/theme-provider.js","../src/get-glamor-classname.js","../src/create-glamorous.js","../node_modules/fast-memoize/src/index.js","../node_modules/react-html-attributes/dist/index.js","../src/react-props.js","../src/should-forward-property.js","../src/split-props.js","../src/index.js","../src/umd-entry.js"],"sourcesContent":["import htmlTagNames from 'html-tag-names'\nimport svgTagNames from 'svg-tag-names'\n\nconst domElements = htmlTagNames\n .concat(svgTagNames)\n .filter((tag, index, array) => array.indexOf(tag) === index)\n\nexport default domElements\n","export const CHANNEL = '__glamorous__'\n","import React from 'react'\n\nlet PropTypes\n\n/* istanbul ignore next */\nif (parseFloat(React.version.slice(0, 4)) >= 15.5) {\n /* istanbul ignore next */\n try {\n PropTypes = require('prop-types')\n /* istanbul ignore next */\n } catch (error) {\n // ignore\n }\n}\n/* istanbul ignore next */\nPropTypes = PropTypes || React.PropTypes\n\nexport {PropTypes}\n\n/*\neslint\n import/no-mutable-exports:0,\n import/prefer-default-export:0,\n react/no-deprecated:0\n */\n","import React, {Component} from 'react'\n\nimport {CHANNEL} from './constants'\nimport {PropTypes} from './react-compat'\n\nfunction generateWarningMessage(Comp) {\n const componentName = Comp.displayName || Comp.name || 'FunctionComponent'\n // eslint-disable-next-line max-len\n return `glamorous warning: Expected component called \"${componentName}\" which uses withTheme to be within a ThemeProvider but none was found.`\n}\n\nexport default function withTheme(\n ComponentToTheme,\n {noWarn = false, createElement = true} = {},\n) {\n class ThemedComponent extends Component {\n static propTypes = {\n theme: PropTypes.object,\n }\n warned = noWarn\n state = {theme: {}}\n setTheme = theme => this.setState({theme})\n\n // eslint-disable-next-line complexity\n componentWillMount() {\n if (!this.context[CHANNEL]) {\n if (process.env.NODE_ENV !== 'production' && !this.warned) {\n this.warned = true\n // eslint-disable-next-line no-console\n console.warn(generateWarningMessage(ComponentToTheme))\n }\n }\n const {theme} = this.props\n if (this.context[CHANNEL]) {\n // if a theme is provided via props,\n // it takes precedence over context\n this.setTheme(theme ? theme : this.context[CHANNEL].getState())\n } else {\n this.setTheme(theme || {})\n }\n }\n\n componentWillReceiveProps(nextProps) {\n if (this.props.theme !== nextProps.theme) {\n this.setTheme(nextProps.theme)\n }\n }\n\n componentDidMount() {\n if (this.context[CHANNEL] && !this.props.theme) {\n // subscribe to future theme changes\n this.subscriptionId = this.context[CHANNEL].subscribe(this.setTheme)\n }\n }\n\n componentWillUnmount() {\n // cleanup subscription\n this.subscriptionId &&\n this.context[CHANNEL].unsubscribe(this.subscriptionId)\n }\n\n render() {\n if (createElement) {\n return \n } else {\n // this allows us to effectively use the GlamorousComponent\n // as our `render` method without going through lifecycle hooks.\n // Also allows us to forward the context in the scenario where\n // a user wants to add more context.\n // eslint-disable-next-line babel/new-cap\n return ComponentToTheme.call(\n this,\n {...this.props, ...this.state},\n this.context,\n )\n }\n }\n }\n\n const defaultContextTypes = {\n [CHANNEL]: PropTypes.object,\n }\n\n let userDefinedContextTypes = null\n\n // configure the contextTypes to be settable by the user,\n // however also retaining the glamorous channel.\n Object.defineProperty(ThemedComponent, 'contextTypes', {\n enumerable: true,\n configurable: true,\n set(value) {\n userDefinedContextTypes = value\n },\n get() {\n // if the user has provided a contextTypes definition,\n // merge the default context types with the provided ones.\n if (userDefinedContextTypes) {\n return {\n ...defaultContextTypes,\n ...userDefinedContextTypes,\n }\n }\n return defaultContextTypes\n },\n })\n\n return ThemedComponent\n}\n","module.exports = isFunction\n\nvar toString = Object.prototype.toString\n\nfunction isFunction (fn) {\n var string = toString.call(fn)\n return string === '[object Function]' ||\n (typeof fn === 'function' && string !== '[object RegExp]') ||\n (typeof window !== 'undefined' &&\n // IE8 and below\n (fn === window.setTimeout ||\n fn === window.alert ||\n fn === window.confirm ||\n fn === window.prompt))\n};\n","/*!\n * isobject \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function isObject(val) {\n return val != null && typeof val === 'object' && Array.isArray(val) === false;\n};\n","/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar isObject = require('isobject');\n\nfunction isObjectObject(o) {\n return isObject(o) === true\n && Object.prototype.toString.call(o) === '[object Object]';\n}\n\nmodule.exports = function isPlainObject(o) {\n var ctor,prot;\n\n if (isObjectObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (typeof ctor !== 'function') return false;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObjectObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n};\n","function createBroadcast (initialState) {\n var listeners = {};\n var id = 1;\n var _state = initialState;\n\n function getState () {\n return _state\n }\n\n function setState (state) {\n _state = state;\n var keys = Object.keys(listeners);\n var i = 0;\n var len = keys.length;\n for (; i < len; i++) {\n // if a listener gets unsubscribed during setState we just skip it\n if (listeners[keys[i]]) { listeners[keys[i]](state); }\n }\n }\n\n // subscribe to changes and return the subscriptionId\n function subscribe (listener) {\n if (typeof listener !== 'function') {\n throw new Error('listener must be a function.')\n }\n var currentId = id;\n listeners[currentId] = listener;\n id += 1;\n return currentId\n }\n\n // remove subscription by removing the listener function\n function unsubscribe (id) {\n listeners[id] = undefined;\n }\n\n return { getState: getState, setState: setState, subscribe: subscribe, unsubscribe: unsubscribe }\n}\n\nexport default createBroadcast;\n","import React, {Component} from 'react'\nimport isFunction from 'is-function'\nimport isPlainObject from 'is-plain-object'\nimport brcast from 'brcast'\nimport {PropTypes} from './react-compat'\nimport {CHANNEL} from './constants'\n\n/**\n * This is a component which will provide a theme to the entire tree\n * via context and event listener\n * (because pure components block context updates)\n * inspired by the styled-components implementation\n * https://github.com/styled-components/styled-components\n * @param {Object} theme the theme object..\n */\nclass ThemeProvider extends Component {\n broadcast = brcast(this.props.theme)\n\n // create theme, by merging with outer theme, if present\n getTheme(passedTheme) {\n const theme = passedTheme || this.props.theme\n if (isFunction(theme)) {\n const mergedTheme = theme(this.outerTheme)\n if (!isPlainObject(mergedTheme)) {\n throw new Error(\n '[ThemeProvider] Please return an object from your theme function, ' +\n 'i.e. theme={() => ({})}!',\n )\n }\n return mergedTheme\n }\n return {...this.outerTheme, ...theme}\n }\n\n getChildContext() {\n return {\n [CHANNEL]: this.broadcast,\n }\n }\n\n setOuterTheme = theme => {\n this.outerTheme = theme\n }\n\n componentDidMount() {\n // create a new subscription for keeping track of outer theme, if present\n if (this.context[CHANNEL]) {\n this.subscriptionId = this.context[CHANNEL].subscribe(this.setOuterTheme)\n }\n }\n\n componentWillMount() {\n // set broadcast state by merging outer theme with own\n if (this.context[CHANNEL]) {\n this.setOuterTheme(this.context[CHANNEL].getState())\n this.broadcast.setState(this.getTheme())\n }\n }\n\n componentWillReceiveProps(nextProps) {\n if (this.props.theme !== nextProps.theme) {\n this.broadcast.setState(this.getTheme(nextProps.theme))\n }\n }\n\n componentWillUnmount() {\n this.subscriptionId &&\n this.context[CHANNEL].unsubscribe(this.subscriptionId)\n }\n\n render() {\n return this.props.children ?\n React.Children.only(this.props.children) :\n null\n }\n}\n\nThemeProvider.childContextTypes = {\n [CHANNEL]: PropTypes.object.isRequired,\n}\n\nThemeProvider.contextTypes = {\n [CHANNEL]: PropTypes.object,\n}\n\nThemeProvider.propTypes = {\n theme: PropTypes.oneOfType([PropTypes.object, PropTypes.func]).isRequired,\n children: PropTypes.node,\n}\n\nexport default ThemeProvider\n","import {css} from 'glamor'\n/**\n * This function takes a className string and gets all the\n * associated glamor styles. It's used to merge glamor styles\n * from a className to make sure that specificity is not\n * a problem when passing a className to a component.\n * @param {String} [className=''] the className string\n * @return {Object} { glamorStyles, glamorlessClassName }\n * - glamorStyles is an array of all the glamor styles objects\n * - glamorlessClassName is the rest of the className string\n * without the glamor classNames\n */\nfunction extractGlamorStyles(className) {\n const glamorlessClassName = []\n const glamorStyles = []\n className.toString().split(' ').forEach(name => {\n if (name.indexOf('css-') === 0) {\n const style = buildGlamorSrcFromClassName(name)\n glamorStyles.push(style)\n } else {\n glamorlessClassName.push(name)\n }\n })\n\n return {glamorlessClassName, glamorStyles}\n}\n\n/** Glamor's css function returns an object with the shape\n *\n * {\n * [`data-css-${hash}`]: '',\n * toString() { return `css-${hash}` }\n * }\n *\n * Whenever glamor's build function encounters an object with\n * this shape it just pulls the resulting styles from the cache.\n *\n * note: the toString method is not needed to qualify the shape\n**/\nfunction buildGlamorSrcFromClassName(className) {\n return {[`data-${className}`]: ''}\n}\n\nexport default getGlamorClassName\n\nfunction getGlamorClassName({\n styles,\n props,\n cssOverrides,\n cssProp,\n context,\n displayName,\n}) {\n const {mappedArgs, nonGlamorClassNames} = handleStyles(\n [...styles, props.className, cssOverrides, cssProp],\n props,\n context,\n )\n // eslint-disable-next-line max-len\n const isDev = process.env.NODE_ENV === 'development' || !process.env.NODE_ENV\n const devRules = isDev ? {label: displayName} : null\n const glamorClassName = css(devRules, ...mappedArgs).toString()\n const extras = nonGlamorClassNames.join(' ').trim()\n return `${glamorClassName} ${extras}`.trim()\n}\n\n// this next function is on a \"hot\" code-path\n// so it's pretty complex to make sure it's fast.\n// eslint-disable-next-line complexity\nfunction handleStyles(styles, props, context) {\n let current\n const mappedArgs = []\n const nonGlamorClassNames = []\n for (let i = 0; i < styles.length; i++) {\n current = styles[i]\n if (typeof current === 'function') {\n const result = current(props, context)\n if (typeof result === 'string') {\n const {glamorStyles, glamorlessClassName} = extractGlamorStyles(result)\n mappedArgs.push(...glamorStyles)\n nonGlamorClassNames.push(...glamorlessClassName)\n } else {\n mappedArgs.push(result)\n }\n } else if (typeof current === 'string') {\n const {glamorStyles, glamorlessClassName} = extractGlamorStyles(current)\n mappedArgs.push(...glamorStyles)\n nonGlamorClassNames.push(...glamorlessClassName)\n } else if (Array.isArray(current)) {\n const recursed = handleStyles(current, props, context)\n mappedArgs.push(...recursed.mappedArgs)\n nonGlamorClassNames.push(...recursed.nonGlamorClassNames)\n } else {\n mappedArgs.push(current)\n }\n }\n return {mappedArgs, nonGlamorClassNames}\n}\n","/*\n * This is a relatively small abstraction that's ripe for open sourcing.\n * Documentation is in the README.md\n */\nimport React from 'react'\nimport {PropTypes} from './react-compat'\nimport withTheme from './with-theme'\nimport getGlamorClassName from './get-glamor-classname'\n\nexport default createGlamorous\n\nfunction createGlamorous(splitProps) {\n return glamorous\n\n /**\n * This is the main export and the function that people\n * interact with most directly.\n *\n * It accepts a component which can be a string or\n * a React Component and returns\n * a \"glamorousComponentFactory\"\n * @param {String|ReactComponent} comp the component to render\n * @param {Object} options helpful info for the GlamorousComponents\n * @return {Function} the glamorousComponentFactory\n */\n function glamorous(comp, config = {}) {\n const {\n rootEl,\n displayName,\n shouldClassNameUpdate,\n forwardProps = [],\n propsAreCssOverrides = comp.propsAreCssOverrides,\n withProps: basePropsToApply,\n } = config\n Object.assign(glamorousComponentFactory, {withConfig})\n return glamorousComponentFactory\n\n function withConfig(newConfig) {\n return glamorous(comp, {...config, ...newConfig})\n }\n\n /**\n * This returns a React Component that renders the comp (closure)\n * with a className based on the given glamor styles object(s)\n * @param {...Object|Function} styles the styles to create with glamor.\n * If any of these are functions, they are invoked with the component\n * props and the return value is used.\n * @return {ReactComponent} the ReactComponent function\n */\n function glamorousComponentFactory(...styles) {\n /**\n * This is a component which will render the comp (closure)\n * with the glamorous styles (closure). Forwards any valid\n * props to the underlying component.\n */\n const GlamorousComponent = withTheme(\n function GlamorousInnerComponent(props, context) {\n props = getPropsToApply(\n GlamorousComponent.propsToApply,\n {},\n props,\n context,\n )\n const updateClassName = shouldUpdate(props, context, this.previous)\n\n if (shouldClassNameUpdate) {\n this.previous = {props, context}\n }\n\n const {toForward, cssOverrides, cssProp} = splitProps(\n props,\n GlamorousComponent,\n )\n\n // create className to apply\n this.className = updateClassName ?\n getGlamorClassName({\n styles: GlamorousComponent.styles,\n props,\n cssOverrides,\n cssProp,\n context,\n displayName: GlamorousComponent.displayName,\n }) :\n this.className\n\n return React.createElement(GlamorousComponent.comp, {\n ref: props.innerRef,\n ...toForward,\n className: this.className,\n })\n },\n {noWarn: true, createElement: false},\n )\n\n GlamorousComponent.propTypes = {\n className: PropTypes.string,\n cssOverrides: PropTypes.object,\n innerRef: PropTypes.func,\n glam: PropTypes.object,\n }\n\n function withComponent(newComp, options = {}) {\n const {forwardProps: fp, ...componentProperties} = GlamorousComponent\n return glamorous(\n {\n ...componentProperties,\n comp: newComp,\n },\n {\n // allows the forwardProps to be overridden\n forwardProps: fp,\n ...options,\n },\n )()\n }\n\n function withProps(...propsToApply) {\n return glamorous(GlamorousComponent, {withProps: propsToApply})()\n }\n\n function shouldUpdate(props, context, previous) {\n // exiting early so components which do not use this\n // optimization are not penalized by hanging onto\n // references to previous props and context\n if (!shouldClassNameUpdate) {\n return true\n }\n let update = true\n if (previous) {\n if (\n !shouldClassNameUpdate(\n previous.props,\n props,\n previous.context,\n context,\n )\n ) {\n update = false\n }\n }\n\n return update\n }\n\n Object.assign(\n GlamorousComponent,\n getGlamorousComponentMetadata({\n comp,\n styles,\n rootEl,\n forwardProps,\n displayName,\n propsToApply: basePropsToApply,\n }),\n {\n isGlamorousComponent: true,\n propsAreCssOverrides,\n withComponent,\n withProps,\n withConfig,\n },\n )\n return GlamorousComponent\n }\n }\n\n function getGlamorousComponentMetadata({\n comp,\n styles,\n rootEl,\n forwardProps,\n displayName,\n propsToApply: basePropsToApply,\n }) {\n const componentsComp = comp.comp ? comp.comp : comp\n const propsToApply = comp.propsToApply ?\n [...comp.propsToApply, ...arrayify(basePropsToApply)] :\n arrayify(basePropsToApply)\n return {\n // join styles together (for anyone doing: glamorous(glamorous.a({}), {}))\n styles: when(comp.styles, styles),\n // keep track of the ultimate rootEl to render (we never\n // actually render anything but\n // the base component, even when people wrap a glamorous\n // component in glamorous\n comp: componentsComp,\n rootEl: rootEl || componentsComp,\n // join forwardProps (for anyone doing: glamorous(glamorous.a({}), {}))\n forwardProps: when(comp.forwardProps, forwardProps),\n // set the displayName to something that's slightly more\n // helpful than `GlamorousComponent` :)\n displayName: displayName || `glamorous(${getDisplayName(comp)})`,\n // these are props that should be applied to the component at render time\n propsToApply,\n }\n }\n}\n\n/**\n * reduces the propsToApply given to a single props object\n * @param {Array} propsToApply an array of propsToApply objects:\n * - object\n * - array of propsToApply items\n * - function that accepts the accumulated props and the context\n * @param {Object} accumulator an object to apply props onto\n * @param {Object} props the props that should ultimately take precedence\n * @param {*} context the context object\n * @return {Object} the reduced props\n */\nfunction getPropsToApply(propsToApply, accumulator, props, context) {\n // using forEach rather than reduce here because the reduce solution\n // effectively did the same thing because we manipulate the `accumulator`\n propsToApply.forEach(propsToApplyItem => {\n if (typeof propsToApplyItem === 'function') {\n return Object.assign(\n accumulator,\n propsToApplyItem(Object.assign({}, accumulator, props), context),\n )\n } else if (Array.isArray(propsToApplyItem)) {\n return Object.assign(\n accumulator,\n getPropsToApply(propsToApplyItem, accumulator, props, context),\n )\n }\n return Object.assign(accumulator, propsToApplyItem)\n })\n // props wins\n return Object.assign(accumulator, props)\n}\n\nfunction arrayify(x = []) {\n return Array.isArray(x) ? x : [x]\n}\n\nfunction when(comp, prop) {\n return comp ? comp.concat(prop) : prop\n}\n\nfunction getDisplayName(comp) {\n return typeof comp === 'string' ?\n comp :\n comp.displayName || comp.name || 'unknown'\n}\n","//\n// Main\n//\n\nfunction memoize (fn, options) {\n var cache = options && options.cache\n ? options.cache\n : cacheDefault\n\n var serializer = options && options.serializer\n ? options.serializer\n : serializerDefault\n\n var strategy = options && options.strategy\n ? options.strategy\n : strategyDefault\n\n return strategy(fn, {\n cache: cache,\n serializer: serializer\n })\n}\n\n//\n// Strategy\n//\n\nfunction isPrimitive (value) {\n return value == null || (typeof value !== 'function' && typeof value !== 'object')\n}\n\nfunction monadic (fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg)\n\n if (!cache.has(cacheKey)) {\n var computedValue = fn.call(this, arg)\n cache.set(cacheKey, computedValue)\n return computedValue\n }\n\n return cache.get(cacheKey)\n}\n\nfunction variadic (fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3)\n var cacheKey = serializer(args)\n\n if (!cache.has(cacheKey)) {\n var computedValue = fn.apply(this, args)\n cache.set(cacheKey, computedValue)\n return computedValue\n }\n\n return cache.get(cacheKey)\n}\n\nfunction assemble (fn, context, strategy, cache, serialize) {\n return strategy.bind(\n context,\n fn,\n cache,\n serialize\n )\n}\n\nfunction strategyDefault (fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic\n\n return assemble(\n fn,\n this,\n strategy,\n options.cache.create(),\n options.serializer\n )\n}\n\nfunction strategyVariadic (fn, options) {\n var strategy = variadic\n\n return assemble(\n fn,\n this,\n strategy,\n options.cache.create(),\n options.serializer\n )\n}\n\nfunction strategyMonadic (fn, options) {\n var strategy = monadic\n\n return assemble(\n fn,\n this,\n strategy,\n options.cache.create(),\n options.serializer\n )\n}\n\n//\n// Serializer\n//\n\nfunction serializerDefault () {\n return JSON.stringify(arguments)\n}\n\n//\n// Cache\n//\n\nfunction ObjectWithoutPrototypeCache () {\n this.cache = Object.create(null)\n}\n\nObjectWithoutPrototypeCache.prototype.has = function (key) {\n return (key in this.cache)\n}\n\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key]\n}\n\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value\n}\n\nvar cacheDefault = {\n create: function create () {\n return new ObjectWithoutPrototypeCache()\n }\n}\n\n//\n// API\n//\n\nmodule.exports = memoize\nmodule.exports.strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar reactHtmlAttributes = require('./react-html-attributes.json');\n\nexports.default = reactHtmlAttributes;\n\nmodule.exports = reactHtmlAttributes; // for CommonJS compatibility","/*\n * This is used to check if a property name is one of the React-specific\n * properties and determine if that property should be forwarded\n * to the React component\n */\n\n/* Logic copied from ReactDOMUnknownPropertyHook */\nexport default [\n 'children',\n 'dangerouslySetInnerHTML',\n 'key',\n 'ref',\n 'autoFocus',\n 'defaultValue',\n 'valueLink',\n 'defaultChecked',\n 'checkedLink',\n 'innerHTML',\n 'suppressContentEditableWarning',\n 'onFocusIn',\n 'onFocusOut',\n 'className',\n\n /* List copied from https://facebook.github.io/react/docs/events.html */\n 'onCopy',\n 'onCut',\n 'onPaste',\n 'onCompositionEnd',\n 'onCompositionStart',\n 'onCompositionUpdate',\n 'onKeyDown',\n 'onKeyPress',\n 'onKeyUp',\n 'onFocus',\n 'onBlur',\n 'onChange',\n 'onInput',\n 'onSubmit',\n 'onClick',\n 'onContextMenu',\n 'onDoubleClick',\n 'onDrag',\n 'onDragEnd',\n 'onDragEnter',\n 'onDragExit',\n 'onDragLeave',\n 'onDragOver',\n 'onDragStart',\n 'onDrop',\n 'onMouseDown',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOut',\n 'onMouseOver',\n 'onMouseUp',\n 'onSelect',\n 'onTouchCancel',\n 'onTouchEnd',\n 'onTouchMove',\n 'onTouchStart',\n 'onScroll',\n 'onWheel',\n 'onAbort',\n 'onCanPlay',\n 'onCanPlayThrough',\n 'onDurationChange',\n 'onEmptied',\n 'onEncrypted',\n 'onEnded',\n 'onError',\n 'onLoadedData',\n 'onLoadedMetadata',\n 'onLoadStart',\n 'onPause',\n 'onPlay',\n 'onPlaying',\n 'onProgress',\n 'onRateChange',\n 'onSeeked',\n 'onSeeking',\n 'onStalled',\n 'onSuspend',\n 'onTimeUpdate',\n 'onVolumeChange',\n 'onWaiting',\n 'onLoad',\n 'onAnimationStart',\n 'onAnimationEnd',\n 'onAnimationIteration',\n 'onTransitionEnd',\n\n 'onCopyCapture',\n 'onCutCapture',\n 'onPasteCapture',\n 'onCompositionEndCapture',\n 'onCompositionStartCapture',\n 'onCompositionUpdateCapture',\n 'onKeyDownCapture',\n 'onKeyPressCapture',\n 'onKeyUpCapture',\n 'onFocusCapture',\n 'onBlurCapture',\n 'onChangeCapture',\n 'onInputCapture',\n 'onSubmitCapture',\n 'onClickCapture',\n 'onContextMenuCapture',\n 'onDoubleClickCapture',\n 'onDragCapture',\n 'onDragEndCapture',\n 'onDragEnterCapture',\n 'onDragExitCapture',\n 'onDragLeaveCapture',\n 'onDragOverCapture',\n 'onDragStartCapture',\n 'onDropCapture',\n 'onMouseDownCapture',\n 'onMouseEnterCapture',\n 'onMouseLeaveCapture',\n 'onMouseMoveCapture',\n 'onMouseOutCapture',\n 'onMouseOverCapture',\n 'onMouseUpCapture',\n 'onSelectCapture',\n 'onTouchCancelCapture',\n 'onTouchEndCapture',\n 'onTouchMoveCapture',\n 'onTouchStartCapture',\n 'onScrollCapture',\n 'onWheelCapture',\n 'onAbortCapture',\n 'onCanPlayCapture',\n 'onCanPlayThroughCapture',\n 'onDurationChangeCapture',\n 'onEmptiedCapture',\n 'onEncryptedCapture',\n 'onEndedCapture',\n 'onErrorCapture',\n 'onLoadedDataCapture',\n 'onLoadedMetadataCapture',\n 'onLoadStartCapture',\n 'onPauseCapture',\n 'onPlayCapture',\n 'onPlayingCapture',\n 'onProgressCapture',\n 'onRateChangeCapture',\n 'onSeekedCapture',\n 'onSeekingCapture',\n 'onStalledCapture',\n 'onSuspendCapture',\n 'onTimeUpdateCapture',\n 'onVolumeChangeCapture',\n 'onWaitingCapture',\n 'onLoadCapture',\n 'onAnimationStartCapture',\n 'onAnimationEndCapture',\n 'onAnimationIterationCapture',\n 'onTransitionEndCapture',\n]\n","/* eslint max-lines:0, func-style:0 */\n// copied from:\n// https://github.com/styled-components/styled-components/tree/\n// 956e8210b6277860c89404f9cb08735f97eaa7e1/src/utils/validAttr.js\n/* Trying to avoid the unknown-prop errors on glamorous components\n by filtering by React's attribute whitelist.\n */\n\nimport memoize from 'fast-memoize'\nimport reactHTMLAttributes from 'react-html-attributes'\nimport reactProps from './react-props'\n\nconst globalReactHtmlProps = reactHTMLAttributes['*']\nconst supportedSVGTagNames = reactHTMLAttributes.elements.svg\nconst supportedHtmlTagNames = reactHTMLAttributes.elements.html\n\n// these are valid attributes that have the\n// same name as CSS properties, and is used\n// for css overrides API\nconst cssProps = ['color', 'height', 'width']\n\n/* From DOMProperty */\nconst ATTRIBUTE_NAME_START_CHAR =\n // eslint-disable-next-line max-len\n ':A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD'\n// eslint-disable-next-line max-len\nconst ATTRIBUTE_NAME_CHAR = `${ATTRIBUTE_NAME_START_CHAR}\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040`\nconst isCustomAttribute = RegExp.prototype.test.bind(\n new RegExp(`^(data|aria)-[${ATTRIBUTE_NAME_CHAR}]*$`),\n)\n\nconst isSvgTag = tagName =>\n // in our context, we only say that SVG tags are SVG\n // if they are not also HTML.\n // See https://github.com/paypal/glamorous/issues/245\n // the svg tag will always be treated as svg for\n // er... obvious reasons\n tagName === 'svg' ||\n (supportedHtmlTagNames.indexOf(tagName) === -1 &&\n supportedSVGTagNames.indexOf(tagName) !== -1)\nconst isHtmlProp = (name, tagName) => {\n let elementAttributes\n\n if (isSvgTag(tagName)) {\n // all SVG attributes supported by React are grouped under 'svg'\n elementAttributes = reactHTMLAttributes.svg\n } else {\n elementAttributes = reactHTMLAttributes[tagName] || []\n }\n\n return (\n globalReactHtmlProps.indexOf(name) !== -1 ||\n elementAttributes.indexOf(name) !== -1\n )\n}\nconst isCssProp = name => cssProps.indexOf(name) !== -1\nconst isReactProp = name => reactProps.indexOf(name) !== -1\n\n// eslint-disable-next-line complexity\nconst shouldForwardProperty = (tagName, name) =>\n typeof tagName !== 'string' ||\n ((isHtmlProp(name, tagName) ||\n isReactProp(name) ||\n isCustomAttribute(name.toLowerCase())) &&\n (!isCssProp(name) || isSvgTag(tagName)))\n\nexport default memoize(shouldForwardProperty)\n","import shouldForwardProperty from './should-forward-property'\n\nexport default function splitProps(\n {\n css: cssProp,\n // these are plucked off\n theme, // because they\n className, // should never\n innerRef, // be forwarded\n glam, // to the lower\n // component ever\n ...rest\n },\n {propsAreCssOverrides, rootEl, forwardProps},\n) {\n const returnValue = {toForward: {}, cssProp, cssOverrides: {}}\n if (!propsAreCssOverrides) {\n if (typeof rootEl !== 'string') {\n // if it's not a string, then we can forward everything\n // (because it's a component)\n returnValue.toForward = rest\n return returnValue\n }\n }\n return Object.keys(rest).reduce((split, propName) => {\n if (\n forwardProps.indexOf(propName) !== -1 ||\n shouldForwardProperty(rootEl, propName)\n ) {\n split.toForward[propName] = rest[propName]\n } else if (propsAreCssOverrides) {\n split.cssOverrides[propName] = rest[propName]\n }\n return split\n }, returnValue)\n}\n\n/* eslint no-unused-vars:0 */\n","import codegen from 'codegen.macro'\nimport domElements from './dom-elements'\nimport withTheme from './with-theme'\nimport ThemeProvider from './theme-provider'\nimport createGlamorous from './create-glamorous'\nimport splitProps from './split-props'\n\nconst glamorous = createGlamorous(splitProps)\n\n/*\n * This creates a glamorousComponentFactory for every DOM element so you can\n * simply do:\n * const GreenButton = glamorous.button({\n * backgroundColor: 'green',\n * padding: 20,\n * })\n * Click Me!\n */\nObject.assign(\n glamorous,\n domElements.reduce((getters, tag) => {\n // TODO: next breaking change, let's make\n // the `displayName` be: `glamorous.${tag}`\n getters[tag] = glamorous(tag)\n return getters\n }, {}),\n)\n\n/*\n * This creates a glamorous component for each DOM element so you can\n * simply do:\n * \n * I'm green!\n * \n */\nObject.assign(\n glamorous,\n domElements.reduce((comps, tag) => {\n const capitalTag = capitalize(tag)\n comps[capitalTag] = glamorous[tag]()\n comps[capitalTag].displayName = `glamorous.${capitalTag}`\n comps[capitalTag].propsAreCssOverrides = true\n return comps\n }, {}),\n)\n\nfunction capitalize(s) {\n return s.slice(0, 1).toUpperCase() + s.slice(1)\n}\n\n/*\n * Fix importing in typescript after rollup compilation\n * https://github.com/rollup/rollup/issues/1156\n * https://github.com/Microsoft/TypeScript/issues/13017#issuecomment-268657860\n */\nglamorous.default = glamorous\n\nexport default glamorous\nexport {ThemeProvider, withTheme}\n\ncodegen`\nif (process.env.FORMAT === 'es') {\n module.exports = require('../other/get-exports-code')\n} else {\n module.exports = ''\n}\n`\n","import * as glamorousStar from './'\n\nconst glamorous = glamorousStar.default\n\nObject.assign(\n glamorous,\n Object.keys(glamorousStar).reduce((e, prop) => {\n if (prop !== 'default') {\n // eslint-disable-next-line import/namespace\n e[prop] = glamorousStar[prop]\n }\n return e\n }, {}),\n)\n\nexport default glamorous\n"],"names":["domElements","htmlTagNames","concat","svgTagNames","filter","tag","index","array","indexOf","CHANNEL","PropTypes","parseFloat","React","version","slice","require","error","generateWarningMessage","Comp","componentName","displayName","name","withTheme","ComponentToTheme","noWarn","createElement","ThemedComponent","warned","state","theme","setTheme","setState","context","warn","props","getState","nextProps","subscriptionId","subscribe","unsubscribe","call","Component","propTypes","object","defaultContextTypes","userDefinedContextTypes","defineProperty","value","isObject","ThemeProvider","broadcast","brcast","setOuterTheme","outerTheme","passedTheme","isFunction","mergedTheme","isPlainObject","Error","getTheme","children","Children","only","childContextTypes","isRequired","contextTypes","oneOfType","func","node","extractGlamorStyles","className","glamorlessClassName","glamorStyles","toString","split","forEach","style","buildGlamorSrcFromClassName","push","getGlamorClassName","styles","cssOverrides","cssProp","handleStyles","mappedArgs","nonGlamorClassNames","isDev","devRules","label","glamorClassName","css","extras","join","trim","current","i","length","result","Array","isArray","recursed","createGlamorous","splitProps","glamorous","comp","config","rootEl","shouldClassNameUpdate","forwardProps","propsAreCssOverrides","basePropsToApply","withProps","assign","glamorousComponentFactory","withConfig","newConfig","GlamorousComponent","GlamorousInnerComponent","getPropsToApply","propsToApply","updateClassName","shouldUpdate","previous","toForward","innerRef","string","withComponent","newComp","options","fp","componentProperties","update","getGlamorousComponentMetadata","componentsComp","arrayify","when","getDisplayName","accumulator","propsToApplyItem","Object","x","prop","reactHtmlAttributes","globalReactHtmlProps","reactHTMLAttributes","supportedSVGTagNames","elements","svg","supportedHtmlTagNames","html","cssProps","ATTRIBUTE_NAME_START_CHAR","ATTRIBUTE_NAME_CHAR","isCustomAttribute","RegExp","prototype","test","bind","isSvgTag","tagName","isHtmlProp","elementAttributes","isCssProp","isReactProp","reactProps","shouldForwardProperty","toLowerCase","memoize","glam","rest","returnValue","keys","reduce","propName","getters","comps","capitalTag","capitalize","s","toUpperCase","default","glamorousStar","e"],"mappings":"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"}