{"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/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/cjs-entry.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","/* istanbul ignore next */\nimport preval from 'preval.macro'\n\nexport const CHANNEL = '__glamorous__'\nexport const isPreact = preval`module.exports = process.env.BUILD_PREACT === 'true'`\n","import React from 'react'\nimport codegen from 'codegen.macro'\nimport {isPreact} from './constants'\n\nlet PropTypes\n\n/* istanbul ignore next */\nif (isPreact) {\n  if (!React.PropTypes) {\n    PropTypes = () => PropTypes\n    const allTypes = [\n      'array',\n      'bool',\n      'func',\n      'number',\n      'object',\n      'string',\n      'symbol',\n      'any',\n      'arrayOf',\n      'element',\n      'instanceOf',\n      'node',\n      'objectOf',\n      'oneOf',\n      'oneOfType',\n      'shape',\n      'exact',\n    ]\n    allTypes.forEach(type => {\n      PropTypes[type] = PropTypes\n    })\n  }\n  // copied from preact-compat\n  /* eslint-disable no-eq-null, eqeqeq, consistent-return */\n  if (!React.Children) {\n    const Children = {\n      map(children, fn, ctx) {\n        if (children == null) {\n          return null\n        }\n        children = Children.toArray(children)\n        if (ctx && ctx !== children) {\n          fn = fn.bind(ctx)\n        }\n        return children.map(fn)\n      },\n      forEach(children, fn, ctx) {\n        if (children == null) {\n          return null\n        }\n        children = Children.toArray(children)\n        if (ctx && ctx !== children) {\n          fn = fn.bind(ctx)\n        }\n        children.forEach(fn)\n      },\n      count(children) {\n        return (children && children.length) || 0\n      },\n      only(children) {\n        children = Children.toArray(children)\n        if (children.length !== 1) {\n          throw new Error('Children.only() expects only one child.')\n        }\n        return children[0]\n      },\n      toArray(children) {\n        if (children == null) {\n          return []\n        }\n        return [].concat(children)\n      },\n    }\n    React.Children = Children\n  }\n  /* eslint-enable no-eq-null, eqeqeq, consistent-return */\n} else if (parseFloat(React.version.slice(0, 4)) >= 15.5) {\n  /* istanbul ignore next */\n  try {\n    PropTypes = codegen`\n      if (process.env.BUILD_FORMAT === 'umd') {\n        module.exports = \"(typeof window !== 'undefined' ? window : global).PropTypes\"\n      } else {\n        module.exports = \"require('prop-types')\"\n      }\n    `\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 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 React.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 <ComponentToTheme {...this.props} {...this.state} />\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 <https://github.com/jonschlinkert/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 <https://github.com/jonschlinkert/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 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 React.Component {\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    if (this.broadcast !== undefined) {\n      this.publishTheme()\n    }\n  }\n\n  publishTheme(theme) {\n    this.broadcast.setState(this.getTheme(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    }\n    this.broadcast = brcast(this.getTheme(this.props.theme))\n  }\n\n  componentWillReceiveProps(nextProps) {\n    if (this.props.theme !== nextProps.theme) {\n      this.publishTheme(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 ? React.Children.only(this.props.children) : 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\n    .toString()\n    .split(' ')\n    .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      filterProps = [],\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            // if innerRef is forwarded we don't want to apply it here\n            ref: 'innerRef' in toForward ? undefined : props.innerRef,\n            ...toForward,\n            className: this.className,\n          })\n        },\n        {noWarn: true, createElement: false},\n      )\n\n      GlamorousComponent.propTypes = {\n        // className accepts an object due to glamor's css function\n        // returning an object with a toString method that gives the className\n        className: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n        cssOverrides: PropTypes.object,\n        innerRef: PropTypes.func,\n        glam: PropTypes.object,\n      }\n\n      function withComponent(newComp, options = {}) {\n        const {\n          forwardProps: fwp,\n          filterProps: flp,\n          ...componentProperties\n        } = GlamorousComponent\n        return glamorous(\n          {\n            ...componentProperties,\n            comp: newComp,\n            rootEl: getRootEl(newComp),\n          },\n          {\n            // allows the forwardProps and filterProps to be overridden\n            forwardProps: fwp,\n            filterProps: flp,\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          filterProps,\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    filterProps,\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 || getRootEl(comp),\n      // join forwardProps and filterProps\n      // (for anyone doing: glamorous(glamorous.a({}), {}))\n      forwardProps: when(comp.forwardProps, forwardProps),\n      filterProps: when(comp.filterProps, filterProps),\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 getRootEl(comp) {\n  return comp.rootEl ? comp.rootEl : comp.comp || comp\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 === 'number' || typeof value === 'boolean' // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\n\nfunction monadic (fn, cache, serializer, arg) {\n  var cacheKey = isPrimitive(arg) ? arg : serializer(arg)\n\n  var computedValue = cache.get(cacheKey)\n  if (typeof computedValue === 'undefined') {\n    computedValue = fn.call(this, arg)\n    cache.set(cacheKey, computedValue)\n  }\n\n  return computedValue\n}\n\nfunction variadic (fn, cache, serializer) {\n  var args = Array.prototype.slice.call(arguments, 3)\n  var cacheKey = serializer(args)\n\n  var computedValue = cache.get(cacheKey)\n  if (typeof computedValue === 'undefined') {\n    computedValue = fn.apply(this, args)\n    cache.set(cacheKey, computedValue)\n  }\n\n  return computedValue\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","import {isPreact} from './constants'\n\n/*\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 */\nconst reactProps = [\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  'onInvalid',\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\nif (isPreact) {\n  reactProps.push(\n    'autocomplete',\n    'autofocus',\n    'class',\n    'for',\n    'onDblClick',\n    'onSearch',\n    'slot',\n    'srcset',\n  )\n}\n\nexport {reactProps as default}\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\n// eslint-disable-next-line complexity\nexport default function splitProps(\n  {\n    css: cssProp,\n    innerRef,\n    // these are plucked off\n    theme, // because they\n    className, // should never\n    glam, // be forwarded\n    // to the lower\n    // component ever\n    ...rest\n  },\n  {propsAreCssOverrides, rootEl, filterProps, forwardProps},\n) {\n  // forward innerRef if user wishes to do so\n  if (innerRef !== undefined && forwardProps.indexOf('innerRef') !== -1) {\n    rest.innerRef = innerRef\n  }\n  const returnValue = {toForward: {}, cssProp, cssOverrides: {}}\n  if (!propsAreCssOverrides) {\n    if (typeof rootEl !== 'string' && filterProps.length === 0) {\n      // if it's not a string and filterProps is empty,\n      // then we can forward everything (because it's a component)\n      returnValue.toForward = rest\n      return returnValue\n    }\n  }\n  return Object.keys(rest).reduce((split, propName) => {\n    if (filterProps.indexOf(propName) !== -1) {\n      return split\n    } else 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 * <GreenButton>Click Me!</GreenButton>\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 * <glamorous.Div\n *   color=\"green\"\n *   marginLeft={20}\n * >\n *   I'm green!\n * </glamorous.Div>\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.BUILD_FORMAT === 'esm') {\n  module.exports = require('../other/get-exports-code')\n} else {\n  module.exports = ''\n}\n`\n","/* istanbul ignore next */\nimport * 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","/* istanbul ignore next */\nimport glamorous from './cjs-entry'\n\nexport default glamorous\n"],"names":["domElements","htmlTagNames","concat","svgTagNames","filter","tag","index","array","indexOf","CHANNEL","isPreact","PropTypes","React","forEach","type","Children","children","fn","ctx","toArray","bind","map","length","Error","parseFloat","version","slice","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","setOuterTheme","outerTheme","broadcast","undefined","publishTheme","passedTheme","isFunction","mergedTheme","isPlainObject","getTheme","brcast","only","childContextTypes","isRequired","contextTypes","oneOfType","func","node","extractGlamorStyles","className","glamorlessClassName","glamorStyles","toString","split","style","buildGlamorSrcFromClassName","push","getGlamorClassName","styles","cssOverrides","cssProp","handleStyles","mappedArgs","nonGlamorClassNames","devRules","label","glamorClassName","css","extras","join","trim","current","i","result","Array","isArray","recursed","createGlamorous","splitProps","glamorous","comp","config","rootEl","shouldClassNameUpdate","filterProps","forwardProps","propsAreCssOverrides","basePropsToApply","withProps","assign","glamorousComponentFactory","withConfig","newConfig","GlamorousComponent","getPropsToApply","propsToApply","updateClassName","shouldUpdate","previous","toForward","innerRef","string","update","getGlamorousComponentMetadata","newComp","options","fwp","flp","componentProperties","getRootEl","componentsComp","arrayify","when","getDisplayName","accumulator","propsToApplyItem","Object","x","prop","reactHtmlAttributes","reactProps","globalReactHtmlProps","reactHTMLAttributes","supportedSVGTagNames","elements","svg","supportedHtmlTagNames","html","cssProps","ATTRIBUTE_NAME_START_CHAR","ATTRIBUTE_NAME_CHAR","isCustomAttribute","RegExp","prototype","test","isSvgTag","tagName","isHtmlProp","elementAttributes","isCssProp","isReactProp","shouldForwardProperty","toLowerCase","memoize","glam","rest","returnValue","keys","reduce","propName","getters","comps","capitalTag","capitalize","s","toUpperCase","default","glamorousStar","e"],"mappings":"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"}