{"version":3,"file":"chunks/b411259822d875.js","mappings":"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","sources":["webpack:///./node_modules/@atlaskit/analytics-next/dist/es2019/components/AnalyticsContext/LegacyAnalyticsContext.js","webpack:///./node_modules/@atlaskit/analytics-next/dist/es2019/components/AnalyticsContext/index.js","webpack:///./node_modules/@atlaskit/analytics-next/dist/es2019/components/AnalyticsListener/LegacyAnalyticsListener.js","webpack:///./node_modules/@atlaskit/analytics-next/dist/es2019/components/AnalyticsListener/index.js","webpack:///./node_modules/@atlaskit/analytics-next/dist/es2019/events/AnalyticsEvent.js","webpack:///./node_modules/@atlaskit/analytics-next/dist/es2019/events/UIAnalyticsEvent.js","webpack:///./node_modules/@atlaskit/analytics-next/dist/es2019/hooks/useAnalyticsContext.js","webpack:///./node_modules/@atlaskit/analytics-next/dist/es2019/hooks/useAnalyticsEvents.js","webpack:///./node_modules/@emotion/is-prop-valid/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","webpack:///./node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","webpack:///./node_modules/@emotion/styled/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","webpack:///./node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","webpack:///./node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","webpack:///./node_modules/@atlassiansox/bxpkit-features-highlight-wpl/src/utils/constants.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-features-highlight-wpl/src/messages/features-highlight-messages.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-features-highlight-wpl/src/components/card-details.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-features-highlight-wpl/src/components/card.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-features-highlight-wpl/src/components/card-container.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-features-highlight-wpl/src/components/media-container.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-features-highlight-wpl/src/components/pagination-container.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-features-highlight-wpl/src/components/features-highlight-container.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-features-highlight-wpl/src/features-highlight-wpl.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-features-highlight-wpl/src/utils/util-functions.tsx","webpack:///./resources/js/react/cms-components/features-highlight-wpl/FeaturesHighlightContainer.tsx"],"sourcesContent":["import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { default as AnalyticsReactContext } from '@atlaskit/analytics-next-stable-react-context';\nconst ContextTypes = {\n  getAtlaskitAnalyticsContext: PropTypes.func,\n  getAtlaskitAnalyticsEventHandlers: PropTypes.func\n};\n\nconst noop = () => []; // eslint-disable-next-line @repo/internal/react/no-class-components\n\n\nclass AnalyticsContext extends Component {\n  constructor(props) {\n    super(props);\n\n    _defineProperty(this, \"getChildContext\", () => ({\n      getAtlaskitAnalyticsContext: this.getAnalyticsContext\n    }));\n\n    _defineProperty(this, \"getAnalyticsContext\", () => {\n      const {\n        data\n      } = this.props;\n      const {\n        getAtlaskitAnalyticsContext = noop\n      } = this.context;\n      return [...getAtlaskitAnalyticsContext(), data];\n    });\n\n    _defineProperty(this, \"getAnalyticsEventHandlers\", () => {\n      const {\n        getAtlaskitAnalyticsEventHandlers = noop\n      } = this.context;\n      return getAtlaskitAnalyticsEventHandlers();\n    });\n\n    this.contextValue = {\n      getAtlaskitAnalyticsContext: this.getAnalyticsContext,\n      getAtlaskitAnalyticsEventHandlers: this.getAnalyticsEventHandlers\n    };\n  }\n\n  render() {\n    const {\n      children\n    } = this.props;\n    return /*#__PURE__*/React.createElement(AnalyticsReactContext.Provider, {\n      value: this.contextValue\n    }, children);\n  }\n\n}\n\n_defineProperty(AnalyticsContext, \"contextTypes\", ContextTypes);\n\n_defineProperty(AnalyticsContext, \"childContextTypes\", ContextTypes);\n\nexport default AnalyticsContext;","import LegacyAnalyticsContext from './LegacyAnalyticsContext';\nimport ModernAnalyticsContext from './ModernAnalyticsContext';\nlet ExportedAnalyticsContext;\n\nif (typeof process !== 'undefined' && process.env['ANALYTICS_NEXT_MODERN_CONTEXT']) {\n  ExportedAnalyticsContext = ModernAnalyticsContext;\n} else {\n  ExportedAnalyticsContext = LegacyAnalyticsContext;\n}\n\nexport default ExportedAnalyticsContext;","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { default as AnalyticsReactContext } from '@atlaskit/analytics-next-stable-react-context';\nconst ContextTypes = {\n  getAtlaskitAnalyticsEventHandlers: PropTypes.func,\n  getAtlaskitAnalyticsContext: PropTypes.func\n};\n\nconst noop = () => []; // eslint-disable-next-line @repo/internal/react/no-class-components\n\n\nclass AnalyticsListener extends Component {\n  constructor(props) {\n    super(props);\n\n    _defineProperty(this, \"getChildContext\", () => ({\n      getAtlaskitAnalyticsEventHandlers: this.getAnalyticsEventHandlers,\n      getAtlaskitAnalyticsContext: this.getAtlaskitAnalyticsContext\n    }));\n\n    _defineProperty(this, \"getAnalyticsEventHandlers\", () => {\n      const {\n        channel,\n        onEvent\n      } = this.props;\n      const {\n        getAtlaskitAnalyticsEventHandlers = noop\n      } = this.context;\n\n      const handler = (event, eventChannel) => {\n        if (channel === '*' || channel === eventChannel) {\n          onEvent(event, eventChannel);\n        }\n      };\n\n      return [handler, ...getAtlaskitAnalyticsEventHandlers()];\n    });\n\n    _defineProperty(this, \"getAtlaskitAnalyticsContext\", () => {\n      const {\n        getAtlaskitAnalyticsContext = noop\n      } = this.context;\n      return getAtlaskitAnalyticsContext();\n    });\n\n    this.contextValue = {\n      getAtlaskitAnalyticsContext: this.getAtlaskitAnalyticsContext,\n      getAtlaskitAnalyticsEventHandlers: this.getAnalyticsEventHandlers\n    };\n  }\n\n  render() {\n    const {\n      children\n    } = this.props;\n    return /*#__PURE__*/React.createElement(AnalyticsReactContext.Provider, {\n      value: this.contextValue\n    }, children);\n  }\n\n}\n\n_defineProperty(AnalyticsListener, \"contextTypes\", ContextTypes);\n\n_defineProperty(AnalyticsListener, \"childContextTypes\", ContextTypes);\n\nexport default AnalyticsListener;","import LegacyAnalyticsListener from './LegacyAnalyticsListener';\nimport ModernAnalyticsListener from './ModernAnalyticsListener';\nlet ExportedAnalyticsListener;\n\nif (typeof process !== 'undefined' && process.env['ANALYTICS_NEXT_MODERN_CONTEXT']) {\n  ExportedAnalyticsListener = ModernAnalyticsListener;\n} else {\n  ExportedAnalyticsListener = LegacyAnalyticsListener;\n}\n\nexport default ExportedAnalyticsListener;","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nexport const isAnalyticsEvent = obj => {\n  var _obj$constructor;\n\n  return obj instanceof AnalyticsEvent || !!(obj !== null && obj !== void 0 && obj._isAnalyticsEvent) || // Backwards compatibility with older analytics-next packages\n  (obj === null || obj === void 0 ? void 0 : (_obj$constructor = obj.constructor) === null || _obj$constructor === void 0 ? void 0 : _obj$constructor.name) === 'AnalyticsEvent';\n};\nexport default class AnalyticsEvent {\n  constructor(props) {\n    _defineProperty(this, \"_isAnalyticsEvent\", true);\n\n    _defineProperty(this, \"clone\", () => {\n      // just a shallow clone, don't change sub refs unless you want to\n      // affect the original's too\n      const payload = { ...this.payload\n      };\n      return new AnalyticsEvent({\n        payload\n      });\n    });\n\n    this.payload = props.payload;\n  }\n\n  update(updater) {\n    if (typeof updater === 'function') {\n      this.payload = updater(this.payload);\n    }\n\n    if (typeof updater === 'object') {\n      this.payload = { ...this.payload,\n        ...updater\n      };\n    }\n\n    return this;\n  }\n\n}","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport AnalyticsEvent from './AnalyticsEvent';\nexport const isUIAnalyticsEvent = obj => {\n  var _obj$constructor;\n\n  return obj instanceof UIAnalyticsEvent || !!(obj !== null && obj !== void 0 && obj._isUIAnalyticsEvent) || // Backwards compatibility with older analytics-next packages\n  (obj === null || obj === void 0 ? void 0 : (_obj$constructor = obj.constructor) === null || _obj$constructor === void 0 ? void 0 : _obj$constructor.name) === 'UIAnalyticsEvent';\n};\nexport default class UIAnalyticsEvent extends AnalyticsEvent {\n  constructor(props) {\n    super(props);\n\n    _defineProperty(this, \"_isUIAnalyticsEvent\", true);\n\n    _defineProperty(this, \"clone\", () => {\n      if (this.hasFired) {\n        if (process.env.NODE_ENV !== 'production' && !process.env.CI) {\n          // eslint-disable-next-line no-console\n          console.warn(\"Cannot clone an event after it's been fired.\");\n        }\n\n        return null;\n      }\n\n      const context = [...this.context];\n      const handlers = [...this.handlers];\n      /**\n       * A hacky \"deep clone\" of the object. This is limited in that it wont\n       * support functions, regexs, Maps, Sets, etc, but none of those need to\n       * be represented in our payload.\n       */\n\n      const payload = JSON.parse(JSON.stringify(this.payload));\n      return new UIAnalyticsEvent({\n        context,\n        handlers,\n        payload\n      });\n    });\n\n    _defineProperty(this, \"fire\", channel => {\n      if (this.hasFired) {\n        if (process.env.NODE_ENV !== 'production' && !process.env.CI) {\n          // eslint-disable-next-line no-console\n          console.warn('Cannot fire an event twice.');\n        }\n\n        return;\n      }\n\n      this.handlers.forEach(handler => handler(this, channel));\n      this.hasFired = true;\n    });\n\n    this.context = props.context || [];\n    this.handlers = props.handlers || [];\n    this.hasFired = false;\n  }\n\n  update(updater) {\n    if (this.hasFired) {\n      if (process.env.NODE_ENV !== 'production' && !process.env.CI) {\n        // eslint-disable-next-line no-console\n        console.warn(\"Cannot update an event after it's been fired.\");\n      }\n\n      return this;\n    }\n\n    return super.update(updater);\n  }\n\n}","import { useContext } from 'react';\nimport { default as AnalyticsReactContext } from '@atlaskit/analytics-next-stable-react-context';\nexport const useAnalyticsContext = () => {\n  return useContext(AnalyticsReactContext);\n};","import { useCallbackOne } from 'use-memo-one';\nimport UIAnalyticsEvent from '../events/UIAnalyticsEvent';\nimport { useAnalyticsContext } from './useAnalyticsContext';\nexport function useAnalyticsEvents() {\n  const analyticsContext = useAnalyticsContext();\n  const createAnalyticsEvent = useCallbackOne(payload => {\n    return new UIAnalyticsEvent({\n      context: analyticsContext.getAtlaskitAnalyticsContext(),\n      handlers: analyticsContext.getAtlaskitAnalyticsEventHandlers(),\n      payload\n    });\n  }, [analyticsContext]);\n  return {\n    createAnalyticsEvent\n  };\n}","function memoize(fn) {\n  var cache = Object.create(null);\n  return function (arg) {\n    if (cache[arg] === undefined) cache[arg] = fn(arg);\n    return cache[arg];\n  };\n}\n\nexport { memoize as default };\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n  return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n  /* o */\n  && prop.charCodeAt(1) === 110\n  /* n */\n  && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n  var rawClassName = '';\n  classNames.split(' ').forEach(function (className) {\n    if (registered[className] !== undefined) {\n      registeredStyles.push(registered[className] + \";\");\n    } else {\n      rawClassName += className + \" \";\n    }\n  });\n  return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n  var className = cache.key + \"-\" + serialized.name;\n\n  if ( // we only need to add the styles to the registered cache if the\n  // class name could be used further down\n  // the tree but if it's a string tag, we know it won't\n  // so we don't have to add it to registered cache.\n  // this improves memory usage since we can avoid storing the whole style string\n  (isStringTag === false || // we need to always store it if we're in compat mode and\n  // in node since emotion-server relies on whether a style is in\n  // the registered cache to know whether a style is global or not\n  // also, note that this check will be dead code eliminated in the browser\n  isBrowser === false ) && cache.registered[className] === undefined) {\n    cache.registered[className] = serialized.styles;\n  }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n  registerStyles(cache, serialized, isStringTag);\n  var className = cache.key + \"-\" + serialized.name;\n\n  if (cache.inserted[serialized.name] === undefined) {\n    var current = serialized;\n\n    do {\n      cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n      current = current.next;\n    } while (current !== undefined);\n  }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n  return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n  return typeof tag === 'string' && // 96 is one less than the char code\n  // for \"a\" so this is checking that\n  // it's a lowercase character\n  tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n  var shouldForwardProp;\n\n  if (options) {\n    var optionsShouldForwardProp = options.shouldForwardProp;\n    shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n      return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n    } : optionsShouldForwardProp;\n  }\n\n  if (typeof shouldForwardProp !== 'function' && isReal) {\n    shouldForwardProp = tag.__emotion_forwardProp;\n  }\n\n  return shouldForwardProp;\n};\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\n\nvar Insertion = function Insertion(_ref) {\n  var cache = _ref.cache,\n      serialized = _ref.serialized,\n      isStringTag = _ref.isStringTag;\n  registerStyles(cache, serialized, isStringTag);\n  useInsertionEffectAlwaysWithSyncFallback(function () {\n    return insertStyles(cache, serialized, isStringTag);\n  });\n\n  return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (tag === undefined) {\n      throw new Error('You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.');\n    }\n  }\n\n  var isReal = tag.__emotion_real === tag;\n  var baseTag = isReal && tag.__emotion_base || tag;\n  var identifierName;\n  var targetClassName;\n\n  if (options !== undefined) {\n    identifierName = options.label;\n    targetClassName = options.target;\n  }\n\n  var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n  var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n  var shouldUseAs = !defaultShouldForwardProp('as');\n  return function () {\n    var args = arguments;\n    var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n    if (identifierName !== undefined) {\n      styles.push(\"label:\" + identifierName + \";\");\n    }\n\n    if (args[0] == null || args[0].raw === undefined) {\n      styles.push.apply(styles, args);\n    } else {\n      if (process.env.NODE_ENV !== 'production' && args[0][0] === undefined) {\n        console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n      }\n\n      styles.push(args[0][0]);\n      var len = args.length;\n      var i = 1;\n\n      for (; i < len; i++) {\n        if (process.env.NODE_ENV !== 'production' && args[0][i] === undefined) {\n          console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n        }\n\n        styles.push(args[i], args[0][i]);\n      }\n    } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class\n\n\n    var Styled = withEmotionCache(function (props, cache, ref) {\n      var FinalTag = shouldUseAs && props.as || baseTag;\n      var className = '';\n      var classInterpolations = [];\n      var mergedProps = props;\n\n      if (props.theme == null) {\n        mergedProps = {};\n\n        for (var key in props) {\n          mergedProps[key] = props[key];\n        }\n\n        mergedProps.theme = React.useContext(ThemeContext);\n      }\n\n      if (typeof props.className === 'string') {\n        className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n      } else if (props.className != null) {\n        className = props.className + \" \";\n      }\n\n      var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n      className += cache.key + \"-\" + serialized.name;\n\n      if (targetClassName !== undefined) {\n        className += \" \" + targetClassName;\n      }\n\n      var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n      var newProps = {};\n\n      for (var _key in props) {\n        if (shouldUseAs && _key === 'as') continue;\n\n        if ( // $FlowFixMe\n        finalShouldForwardProp(_key)) {\n          newProps[_key] = props[_key];\n        }\n      }\n\n      newProps.className = className;\n      newProps.ref = ref;\n      return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n        cache: cache,\n        serialized: serialized,\n        isStringTag: typeof FinalTag === 'string'\n      }), /*#__PURE__*/React.createElement(FinalTag, newProps));\n    });\n    Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n    Styled.defaultProps = tag.defaultProps;\n    Styled.__emotion_real = Styled;\n    Styled.__emotion_base = baseTag;\n    Styled.__emotion_styles = styles;\n    Styled.__emotion_forwardProp = shouldForwardProp;\n    Object.defineProperty(Styled, 'toString', {\n      value: function value() {\n        if (targetClassName === undefined && process.env.NODE_ENV !== 'production') {\n          return 'NO_COMPONENT_SELECTOR';\n        } // $FlowFixMe: coerce undefined to string\n\n\n        return \".\" + targetClassName;\n      }\n    });\n\n    Styled.withComponent = function (nextTag, nextOptions) {\n      return createStyled(nextTag, _extends({}, options, nextOptions, {\n        shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n      })).apply(void 0, styles);\n    };\n\n    return Styled;\n  };\n};\n\nexport { createStyled as default };\n","import createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport 'react';\nimport '@emotion/is-prop-valid';\nimport '@emotion/react';\nimport '@emotion/utils';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nvar newStyled = createStyled.bind();\ntags.forEach(function (tagName) {\n  // $FlowFixMe: we can ignore this because its exposed type is defined by the CreateStyled type\n  newStyled[tagName] = newStyled(tagName);\n});\n\nexport { newStyled as default };\n","import {\n  B50,\n  N900,\n  B500,\n  P500,\n  N0,\n  N20,\n  Y200,\n  R200,\n  G200,\n  T200,\n  B200,\n  P100,\n  N500,\n  N70,\n  Y500\n} from '@atlaskit/theme/colors';\nimport { BG_COLOR_PROPERTIES } from '../models/colors-props';\n\nexport const GRAY3 = '#505F79';\nexport const NUM_OF_CARDS = 3;\nexport const MIN_CYCLE_TIME = 7000;\n\nexport const DEFAULT_BG_COLOR = 'b50';\n\n// Intersection options\nexport const INTERSECTION_OPTIONS = { threshold: 0.35 };\n\nexport enum LAYOUT_TYPE {\n  CARDS_LEFT = 'cards_left',\n  CARDS_RIGHT = 'cards_right'\n}\n\nexport enum MEDIA_TYPE {\n  VIDEO = 'video',\n  IMAGE = 'image'\n}\n\nexport enum SWIPE_DIRECTION {\n  LEFT = 'left',\n  RIGHT = 'right'\n}\n\n/* ---------------------BG COLOR CODINGS---------------------------*/\n\nexport const BG_COLOR_CODING_MAP: {\n  [key: string]: BG_COLOR_PROPERTIES;\n} = {\n  b50: {\n    colorCode: B50,\n    typeColor: N900,\n    cardActiveColor: N0,\n    cardHoverColor: `${N0}50`,\n    categoryTypeColor: GRAY3,\n    paginationColorActive: N500,\n    paginationColorInactive: N0\n  },\n  n0: {\n    colorCode: N0,\n    typeColor: N900,\n    cardActiveColor: N20,\n    cardHoverColor: `${N20}50`,\n    categoryTypeColor: GRAY3,\n    paginationColorActive: N500,\n    paginationColorInactive: N70\n  },\n  n900: {\n    colorCode: N900,\n    typeColor: N0,\n    cardActiveColor: `${N0}10`,\n    cardHoverColor: `${N0}20`,\n    categoryTypeColor: N0,\n    paginationColorActive: Y500,\n    paginationColorInactive: N0\n  },\n  p500: {\n    colorCode: P500,\n    typeColor: N0,\n    cardActiveColor: `${N0}10`,\n    cardHoverColor: `${N0}20`,\n    categoryTypeColor: N0,\n    paginationColorActive: Y500,\n    paginationColorInactive: N0\n  },\n  b500: {\n    colorCode: B500,\n    typeColor: N0,\n    cardActiveColor: `${N0}10`,\n    cardHoverColor: `${N0}20`,\n    categoryTypeColor: N0,\n    paginationColorActive: Y500,\n    paginationColorInactive: N0\n  }\n};\n\n/* ---------------------BAR COLOR CODINGS---------------------------*/\nexport const BAR_COLOR_CODING_MAP: Map<string, string> = new Map<\n  string,\n  string\n>();\n\nBAR_COLOR_CODING_MAP.set('y200', Y200);\nBAR_COLOR_CODING_MAP.set('r200', R200);\nBAR_COLOR_CODING_MAP.set('g200', G200);\nBAR_COLOR_CODING_MAP.set('t200', T200);\nBAR_COLOR_CODING_MAP.set('b200', B200);\nBAR_COLOR_CODING_MAP.set('p100', P100);\n\n/* ---------------- Analytics event data -----------------------*/\nexport const defaultAnalyticsData = {\n  eventComponent: 'featuresHighlightComponent',\n  eventContainer: 'featuresHighlightContainer'\n};\n","import { defineMessages } from 'react-intl';\n\nconst ID_PREFIX = 'FeaturesHighlightWpl.';\n\nexport const messages = defineMessages({\n  heading: {\n    id: `${ID_PREFIX}heading`,\n    defaultMessage: `The is a default heading`\n  },\n  cardLabel1: {\n    id: `${ID_PREFIX}label1`,\n    defaultMessage: `Card Label 1`\n  },\n  cardLabel2: {\n    id: `${ID_PREFIX}label2`,\n    defaultMessage: `Card Label 2`\n  },\n  cardLabel3: {\n    id: `${ID_PREFIX}label3`,\n    defaultMessage: `Card Label 3`\n  },\n  cardCategory1: {\n    id: `${ID_PREFIX}categoryLabel1`,\n    defaultMessage: `Card Category 1`\n  },\n  cardCategory2: {\n    id: `${ID_PREFIX}categoryLabel2`,\n    defaultMessage: `Card Category 2`\n  },\n  cardCategory3: {\n    id: `${ID_PREFIX}categoryLabel3`,\n    defaultMessage: `Card Category 3`\n  },\n  cardTitle1: {\n    id: `${ID_PREFIX}cardTitle1`,\n    defaultMessage: `Card Title 1`\n  },\n  cardTitle2: {\n    id: `${ID_PREFIX}cardTitle2`,\n    defaultMessage: `Card Title 2`\n  },\n  cardTitle3: {\n    id: `${ID_PREFIX}cardTitle3`,\n    defaultMessage: `Card Title 3`\n  },\n  cardDescription1: {\n    id: `${ID_PREFIX}cardDescription1`,\n    defaultMessage: `Feature 01 description lorem ipsum dolor amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt.`\n  },\n  cardDescription2: {\n    id: `${ID_PREFIX}cardDescription2`,\n    defaultMessage: `Feature 02 description lorem ipsum dolor amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt.`\n  },\n  cardDescription3: {\n    id: `${ID_PREFIX}cardDescription3`,\n    defaultMessage: `Feature 03 description lorem ipsum dolor amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt.`\n  },\n  altTextImage1: {\n    id: `${ID_PREFIX}altTextImage1`,\n    defaultMessage: `This is default alternative text for Image 1`\n  },\n  altTextImage2: {\n    id: `${ID_PREFIX}altTextImage2`,\n    defaultMessage: `This is default alternative text for Image 2`\n  },\n  altTextImage3: {\n    id: `${ID_PREFIX}altTextImage3`,\n    defaultMessage: `This is default alternative text for Image 3`\n  },\n  embeddedVideosError: {\n    id: `${ID_PREFIX}embeddedVideosError`,\n    defaultMessage: `Sorry, your browser doesn't support embedded videos.`\n  }\n});\n","import styled from '@emotion/styled';\nimport * as React from '@emotion/react';\nimport { CardDetailsProps } from '../models/card-props';\nimport { FormattedHTMLMessage } from 'react-intl';\nimport { messages } from '../messages';\n\nexport function CardDetailsContainer({\n  isCategoryLabel,\n  categoryTypeColor,\n  cardId\n}: CardDetailsProps) {\n  return (\n    <CardDetailsRoot>\n      <CardFieldsContainer>\n        {isCategoryLabel && (\n          <CategoryNameField categoryTypeColor={categoryTypeColor}>\n            <FormattedHTMLMessage\n              {...(cardId == 1\n                ? { ...messages.cardCategory1 }\n                : cardId == 2\n                ? { ...messages.cardCategory2 }\n                : { ...messages.cardCategory3 })}\n            />\n          </CategoryNameField>\n        )}\n        <HiddenElement id={'label' + cardId}>\n          <FormattedHTMLMessage\n            {...(cardId == 1\n              ? { ...messages.cardLabel1 }\n              : cardId == 2\n              ? { ...messages.cardLabel2 }\n              : { ...messages.cardLabel3 })}\n          />\n        </HiddenElement>\n        <TitleField id={`title` + cardId}>\n          <FormattedHTMLMessage\n            {...(cardId == 1\n              ? { ...messages.cardTitle1 }\n              : cardId == 2\n              ? { ...messages.cardTitle2 }\n              : { ...messages.cardTitle3 })}\n          />\n        </TitleField>\n        <DescriptionField id={`description` + cardId}>\n          <FormattedHTMLMessage\n            {...(cardId == 1\n              ? { ...messages.cardDescription1 }\n              : cardId == 2\n              ? { ...messages.cardDescription2 }\n              : { ...messages.cardDescription3 })}\n          />\n        </DescriptionField>\n      </CardFieldsContainer>\n    </CardDetailsRoot>\n  );\n}\n\nexport const HiddenElement = styled.div`\n  position: absolute;\n  left: -10000px;\n  top: auto;\n  width: 1px;\n  height: 1px;\n  overflow: hidden;\n`;\n\nexport const CardDetailsRoot = styled.div`\n  height: 100%;\n  width: 100%;\n  display: flex;\n  flex-direction: row;\n  justify-content: flex-start;\n`;\n\nexport const CardFieldsContainer = styled.div`\n  padding: 16px;\n  display: flex;\n  flex-direction: column;\n  justify-content: inherit;\n`;\n\nexport const CategoryNameField = styled.div<{ categoryTypeColor?: string }>`\n  width: 100%;\n  line-height: 18px;\n  font-size: 12px;\n  font-weight: 400;\n  font-family: Charlie Display, -apple-system, BlinkMacSystemFont, Segoe UI,\n    Roboto, Noto Sans, Ubuntu, Droid Sans, Helvetica Neue, sans-serif;\n  margin-bottom: 16px;\n  text-transform: uppercase;\n  color: ${(props) => props.categoryTypeColor};\n`;\n\nexport const TitleField = styled.div`\n  width: 100%;\n  font-weight: 500;\n  line-height: 24px;\n  letter-spacing: 0.3px;\n  margin-bottom: 8px;\n  font-size: 20px;\n  display: block;\n\n  @media only screen and (max-width: 1023px) {\n    font-size: 16px;\n    line-height: 20px;\n  }\n`;\n\nexport const DescriptionField = styled.div`\n  width: 100%;\n  height: fit-content;\n  line-height: 24px;\n  font-size: 16px;\n  font-weight: 400;\n`;\n","import styled from '@emotion/styled';\nimport * as React from '@emotion/react';\nimport { NUM_OF_CARDS, BAR_COLOR_CODING_MAP } from '../utils/constants';\nimport { BG_COLOR_PROPERTIES } from '../models/colors-props';\nimport {\n  CardClickHandlerType,\n  KeyPressHandlerType\n} from '../models/interaction-handler-props';\nimport { CardProps, ColorBarProps } from '../models/card-props';\nimport { CardDetailsContainer } from './card-details';\n\nexport const renderCards = (\n  cardClickHandler: CardClickHandlerType,\n  keyPressHandler: KeyPressHandlerType,\n  isColorBar: boolean,\n  isCategoryLabel: boolean,\n  colorCoding: BG_COLOR_PROPERTIES,\n  barColor?: string\n) => {\n  const cardList = [];\n  for (let cardId = 1; cardId <= NUM_OF_CARDS; cardId++) {\n    cardList.push(\n      <Card\n        key={cardId}\n        className={`card card${cardId}`}\n        colorCoding={colorCoding}\n        role=\"button\"\n        tabIndex={0}\n        onClick={(e) => cardClickHandler(cardId, e)}\n        onKeyDown={(e) => keyPressHandler(cardId, e)}\n        aria-labelledby={`label` + cardId}\n        aria-describedby={`title` + cardId + ` description` + cardId}\n      >\n        {isColorBar && (\n          <ColorBar\n            key={cardId}\n            className={`bar bar${cardId}`}\n            barColor={barColor}\n          />\n        )}\n        <CardDetailsContainer\n          categoryTypeColor={colorCoding.categoryTypeColor}\n          isCategoryLabel={isCategoryLabel}\n          cardId={cardId}\n        />\n      </Card>\n    );\n  }\n  return cardList;\n};\n\nexport const Card = styled.div<CardProps>`\n  display: flex;\n  flex-basis: auto;\n  min-width: inherit;\n  cursor: pointer;\n  flex-direction: row;\n\n  @media only screen and (max-width: 1023px) {\n    margin-right: 16px;\n    margin-left: 16px;\n    flex-direction: column;\n  }\n\n  @media only screen and (max-width: 767px) {\n    min-width: 100%;\n    flex-shrink: 0;\n    margin-right: 0px;\n    margin-left: 0px;\n    display: inline-flex;\n  }\n`;\n\nexport const ColorBar = styled.div<ColorBarProps>`\n  width: 8px;\n  background-color: ${(props) =>\n    props.barColor &&\n    BAR_COLOR_CODING_MAP.has(props.barColor) &&\n    BAR_COLOR_CODING_MAP.get(props.barColor)};\n\n  @media only screen and (max-width: 1023px) {\n    width: 100%;\n    min-height: 8px;\n    max-height: 8px;\n  }\n`;\n","import styled from '@emotion/styled';\nimport * as React from '@emotion/react';\nimport {\n  CardContainerProps,\n  CardContainerRootProps\n} from '../models/card-props';\nimport { renderCards } from './card';\n\nexport function CardContainer({\n  selectedMedia,\n  cardClickHandler,\n  keyPressHandler,\n  componentOrder,\n  colorCoding,\n  isColorBar,\n  barColor,\n  isCategoryLabel\n}: CardContainerProps) {\n  return (\n    <CardContainerRoot\n      selectedMedia={selectedMedia}\n      componentOrder={componentOrder}\n      colorCoding={colorCoding}\n    >\n      {renderCards(\n        cardClickHandler,\n        keyPressHandler,\n        isColorBar,\n        isCategoryLabel,\n        colorCoding,\n        barColor\n      )}\n    </CardContainerRoot>\n  );\n}\n\nexport const CardContainerRoot = styled.div<CardContainerRootProps>`\n  display: flex;\n  justify-content: flex-start;\n  flex-basis: calc(99.9999% / 12 * 4 - 16px);\n  max-width: calc(99.9999% / 12 * 4 - 16px);\n  flex-direction: column;\n  order: ${(props) => props.componentOrder};\n  margin-right: 16px;\n  gap: 8px;\n\n  .card {\n    &:hover {\n      background-color: ${(props) => props.colorCoding.cardHoverColor};\n\n      .bar {\n        opacity: 1;\n      }\n    }\n\n    .bar {\n      opacity: 0;\n    }\n  }\n\n  .card.card${(props) => props.selectedMedia} {\n    background-color: ${(props) => props.colorCoding.cardActiveColor};\n\n    &:hover {\n      background-color: ${(props) => props.colorCoding.cardActiveColor};\n    }\n\n    .bar {\n      opacity: 1;\n    }\n  }\n\n  @media only screen and (max-width: 1023px) {\n    flex-basis: 100%;\n    max-width: 100%;\n    flex-direction: row;\n    margin-bottom: 16px;\n    order: 1;\n    flex-wrap: nowrap;\n    margin-right: 0;\n    margin-left: 0;\n    justify-content: center;\n    gap: 32px;\n\n    .card {\n      width: calc(33.3333%);\n      margin: 0;\n    }\n  }\n\n  @media only screen and (max-width: 767px) {\n    justify-content: flex-start;\n    transition: transform 0.3s;\n    transform: ${(props) => `translateX(-${(props.selectedMedia - 1) * 100}%)`};\n    gap: 0;\n\n    .card {\n      width: 100%;\n    }\n  }\n`;\n","import * as React from '@emotion/react';\nimport styled from '@emotion/styled';\nimport {\n  createRef,\n  MutableRefObject,\n  RefObject,\n  useEffect,\n  useRef,\n  useState\n} from 'react';\nimport { messages } from '../messages';\nimport {\n  MediaContainerProps,\n  MediaContainerRootProps,\n  MediaWrapperProps\n} from '../models/media-props';\nimport {\n  INTERSECTION_OPTIONS,\n  MEDIA_TYPE,\n  NUM_OF_CARDS\n} from '../utils/constants';\n\nexport function MediaContainer({\n  selectedMedia,\n  componentOrder,\n  mediaType,\n  mediaSourceLinks,\n  intl,\n  inViewChange,\n  videoEnded\n}: MediaContainerProps) {\n  const [isInView, setIsInView] = useState<boolean>(false);\n  const containerRef: MutableRefObject<HTMLDivElement | null> = useRef(null);\n\n  const handleIntersect = (entries: any[]) => {\n    const entry = entries[0] || {};\n    const { isIntersecting } = entry;\n    setIsInView(!!isIntersecting);\n    inViewChange(!!isIntersecting);\n  };\n\n  useEffect(() => {\n    if (!containerRef.current) {\n      return;\n    }\n\n    const observer = new IntersectionObserver(\n      handleIntersect,\n      INTERSECTION_OPTIONS\n    );\n    observer.observe(containerRef.current);\n  }, [containerRef]);\n\n  return (\n    <MediaContainerRoot ref={containerRef} componentOrder={componentOrder}>\n      <MediaWrapper selectedMedia={selectedMedia}>\n        {renderMedia(\n          mediaType,\n          mediaSourceLinks,\n          intl,\n          selectedMedia,\n          videoEnded,\n          isInView\n        )}\n      </MediaWrapper>\n    </MediaContainerRoot>\n  );\n}\n\nconst renderMedia = (\n  mediaType: MEDIA_TYPE,\n  mediaSourceLinks: string[],\n  intl: ReactIntl.InjectedIntl,\n  selectedMedia: number,\n  videoEnded: () => void,\n  isInView: boolean\n) => {\n  const videoRefMap = new Map<number, RefObject<HTMLVideoElement>>();\n  if (mediaType === MEDIA_TYPE.VIDEO) {\n    // Auto start video when it is selected card\n    useEffect(() => {\n      for (const [videoId, video] of videoRefMap.entries()) {\n        if (!video?.current || !video.current.play) {\n          continue;\n        }\n        // play from start when video is selected and in view\n        if (videoId === selectedMedia && isInView) {\n          video.current.currentTime = 0;\n          video.current.play();\n        } else {\n          video.current.pause();\n        }\n      }\n    }, [selectedMedia, isInView]);\n  }\n\n  const mediaList = [];\n  for (let cardId = 1; cardId <= NUM_OF_CARDS; cardId++) {\n    const props = selectedMedia === cardId ? { tabIndex: 1 } : { tabIndex: -1 };\n\n    let mediaContent;\n    if (mediaType === MEDIA_TYPE.VIDEO) {\n      const ref = createRef<HTMLVideoElement>();\n\n      mediaContent = (\n        <video\n          ref={ref}\n          width=\"100%\"\n          height=\"100%\"\n          object-fit=\"fill\"\n          preload=\"auto\"\n          muted={true}\n          tabIndex={-1}\n          onEnded={() => videoEnded()}\n          playsInline={true}\n        >\n          <source src={mediaSourceLinks[cardId - 1]} />\n          {intl.formatMessage(messages.embeddedVideosError)}\n        </video>\n      );\n\n      videoRefMap.set(cardId, ref);\n    } else if (mediaType === MEDIA_TYPE.IMAGE) {\n      mediaContent = (\n        <img\n          width=\"100%\"\n          height=\"auto\"\n          src={mediaSourceLinks[cardId - 1]}\n          // @ts-ignore\n          alt={intl.formatMessage(messages[`altTextImage${cardId}`])}\n        />\n      );\n    }\n\n    mediaList.push(\n      <Media key={cardId} className={`media media${cardId}`} {...props}>\n        {mediaContent}\n      </Media>\n    );\n  }\n  return mediaList;\n};\n\nexport const MediaWrapper = styled.div<MediaWrapperProps>`\n  display: flex;\n  justify-content: flex-start;\n  flex-wrap: nowrap;\n  overflow: hidden;\n  flex-direction: row;\n\n  .media img {\n    object-fit: contain;\n    object-position: top;\n    margin-bottom: 0;\n  }\n\n  @media only screen and (min-width: 768px) {\n    .media {\n      order: 2;\n    }\n\n    .media.media${(props) => props.selectedMedia} {\n      order: 1;\n    }\n  }\n\n  @media only screen and (max-width: 767px) {\n    min-height: 216px;\n    margin-right: 0px;\n    margin-left: 0px;\n    transition: transform 0.3s;\n    transform: ${(props) => `translateX(-${(props.selectedMedia - 1) * 100}%)`};\n    overflow: visible;\n  }\n`;\n\nexport const MediaContainerRoot = styled.div<MediaContainerRootProps>`\n  display: flex;\n  justify-content: flex-start;\n  align-content: start;\n  flex-wrap: nowrap;\n  flex-direction: row;\n  overflow: visible;\n  flex-basis: calc(99.9999% / 12 * 8);\n  max-width: calc(99.9999% / 12 * 8);\n  order: ${(props) => props.componentOrder};\n  margin-left: 16px;\n  margin-bottom: auto;\n\n  @media only screen and (max-width: 1023px) {\n    flex-basis: 100%;\n    max-width: 100%;\n    margin-left: 0;\n    margin-right: 0;\n    order: 2;\n  }\n`;\n\nexport const Media = styled.div`\n  flex-basis: inherit;\n  min-width: 100%;\n  display: inline-flex;\n`;\n","import styled from '@emotion/styled';\nimport * as React from '@emotion/react';\nimport { NUM_OF_CARDS } from '../utils/constants';\nimport { PaginationContainerProps } from '../models/card-props';\nimport { BG_COLOR_PROPERTIES } from '../models/colors-props';\n\nexport function PaginationContainer({\n  selectedMedia,\n  colorCoding\n}: PaginationContainerProps) {\n  return (\n    <PaginationContainerRoot\n      selectedMedia={selectedMedia}\n      colorCoding={colorCoding}\n    >\n      {renderCardDots(colorCoding)}\n    </PaginationContainerRoot>\n  );\n}\n\nconst renderCardDots = (colorCoding: BG_COLOR_PROPERTIES) => {\n  const cardDotList = [];\n  for (let cardId = 1; cardId <= NUM_OF_CARDS; cardId++) {\n    cardDotList.push(\n      <CardDots\n        key={cardId}\n        className={`cardDot cardDot${cardId}`}\n        colorCoding={colorCoding}\n      />\n    );\n  }\n  return cardDotList;\n};\n\nexport const PaginationContainerRoot = styled.div<{\n  selectedMedia: number;\n  colorCoding: BG_COLOR_PROPERTIES;\n}>`\n  flex-basis: inherit;\n  height: 12px;\n  min-width: 100%;\n  margin-top: 32px;\n  margin-bottom: 32px;\n  display: none;\n  align-items: center;\n  justify-content: center;\n\n  @media only screen and (max-width: 767px) {\n    display: flex;\n\n    .cardDot {\n      background-color: ${(props) => props.colorCoding.paginationColorInactive};\n    }\n\n    .cardDot.cardDot${(props) => props.selectedMedia} {\n      background-color: ${(props) => props.colorCoding.paginationColorActive};\n    }\n  }\n`;\n\nexport const CardDots = styled.div<{ colorCoding: BG_COLOR_PROPERTIES }>`\n  margin-left: 6px;\n  margin-right: 6px;\n  width: 8px;\n  height: 8px;\n  border-radius: 50%;\n`;\n","import styled from '@emotion/styled';\nimport React, {\n  useState,\n  MouseEvent,\n  TouchEvent,\n  KeyboardEvent,\n  MutableRefObject,\n  useEffect\n} from 'react';\nimport { CardContainer } from './card-container';\nimport { MediaContainer } from './media-container';\nimport { PaginationContainer } from './pagination-container';\nimport {\n  FeaturesHighlightContainerProps,\n  HighlightRootProps\n} from '../models/features-highlight-props';\nimport {\n  LAYOUT_TYPE,\n  SWIPE_DIRECTION,\n  defaultAnalyticsData,\n  NUM_OF_CARDS,\n  MEDIA_TYPE,\n  MIN_CYCLE_TIME\n} from '../utils/constants';\nimport { messages } from '../messages';\nimport { FormattedHTMLMessage } from 'react-intl';\nimport { useAnalyticsEvents } from '@atlaskit/analytics-next';\n\nexport function FeaturesHighlightContainer({\n  layoutType,\n  colorCoding,\n  isColorBar,\n  barColor,\n  isCategoryLabel,\n  mediaType,\n  mediaSourceLinks,\n  intl\n}: FeaturesHighlightContainerProps) {\n  const [selectedMedia, setSelectedMedia] = useState(1);\n  const [isDragging, setIsDragging] = useState(false);\n  const [dragAmount, setDragAmount] = useState(0);\n  const [startX, setStartX] = useState(0);\n  const [nextAfter, setNextAfter] = useState(0);\n  const timeoutRef: MutableRefObject<any | null> = React.useRef(null);\n  const selectedRef: MutableRefObject<number> = React.useRef(selectedMedia);\n\n  const isTouchDevice =\n    'ontouchstart' in window ||\n    navigator.maxTouchPoints > 0 ||\n    navigator.msMaxTouchPoints > 0;\n\n  const { createAnalyticsEvent } = useAnalyticsEvents();\n  let cardClickAnalyticsData = {\n    ...defaultAnalyticsData,\n    action: 'clicked',\n    eventType: 'UI',\n    actionSubject: 'card'\n  };\n\n  const cardClickHandler = (\n    clickedElement: number,\n    mouseClick?: MouseEvent\n  ) => {\n    mouseClick && mouseClick.preventDefault();\n    changeActiveElement(clickedElement);\n  };\n\n  const keyPressHandler = (\n    clickedElement: number,\n    keyPress?: KeyboardEvent\n  ) => {\n    if (keyPress?.key == ' ' || keyPress?.key == 'Enter') {\n      changeActiveElement(clickedElement);\n    }\n  };\n\n  const changeActiveElement = (clickedElement: number) => {\n    if (clickedElement === selectedMedia) {\n      return;\n    }\n\n    if (clickedElement < 1 || clickedElement > NUM_OF_CARDS) {\n      return;\n    }\n\n    setSelectedMedia(clickedElement);\n\n    createAnalyticsEvent({\n      ...cardClickAnalyticsData,\n      cardNumber: clickedElement\n    }).fire();\n  };\n\n  const startDrag = (touchEvent?: TouchEvent, mouseEvent?: MouseEvent) => {\n    if (isTouchDevice && touchEvent) {\n      setIsDragging(true);\n      setStartX(touchEvent.touches[0].clientX);\n    } else if (mouseEvent && window.innerWidth < 767) {\n      setIsDragging(true);\n      setStartX(mouseEvent.clientX);\n    }\n  };\n\n  const Drag = (touchEvent?: TouchEvent, mouseEvent?: MouseEvent) => {\n    if (isDragging) {\n      if (isTouchDevice && touchEvent) {\n        setDragAmount(touchEvent.touches[0].clientX - startX);\n      } else if (mouseEvent && window.innerWidth < 767) {\n        setDragAmount(mouseEvent.clientX - startX);\n      }\n    }\n  };\n\n  const stopDrag = () => {\n    if (isDragging) {\n      setIsDragging(false);\n      // Setting 100 as the amount of distance that needs to be covered in order to trigger a swipe\n      if (Math.abs(dragAmount) > 100) {\n        if (dragAmount < 0) {\n          swipeCards(SWIPE_DIRECTION.LEFT);\n        } else {\n          swipeCards(SWIPE_DIRECTION.RIGHT);\n        }\n      }\n    }\n  };\n\n  const swipeCards = (direction: SWIPE_DIRECTION) => {\n    let nextSelected = selectedRef.current;\n    if (\n      direction === SWIPE_DIRECTION.LEFT &&\n      selectedMedia < mediaSourceLinks.length\n    ) {\n      nextSelected += 1;\n    } else if (direction === SWIPE_DIRECTION.RIGHT && selectedMedia > 1) {\n      nextSelected -= 1;\n    }\n    setSelectedMedia(nextSelected);\n\n    createAnalyticsEvent({\n      ...cardClickAnalyticsData,\n      isTouchDevice: isTouchDevice,\n      cardNumber: nextSelected\n    }).fire();\n  };\n\n  const nextHighlight = () => {\n    const nextId = selectedRef.current + 1;\n    setSelectedMedia(nextId > NUM_OF_CARDS ? 1 : nextId);\n  };\n\n  const videoEnded = () => {\n    if (Date.now() >= nextAfter) {\n      nextHighlight();\n      return;\n    }\n\n    // Time remains before minimum wait, delay till then\n    timeoutRef.current = setTimeout(() => {\n      nextHighlight();\n    }, nextAfter - Date.now());\n  };\n\n  const changeInView = (isInView: boolean) => {\n    if (!isInView) {\n      // Clear timeout\n      if (timeoutRef.current) {\n        clearTimeout(timeoutRef.current);\n      }\n    } else {\n      startTimeout();\n    }\n  };\n\n  const startTimeout = () => {\n    if (mediaType === MEDIA_TYPE.IMAGE) {\n      timeoutRef.current = setTimeout(() => {\n        nextHighlight();\n      }, MIN_CYCLE_TIME);\n    } else {\n      setNextAfter(Date.now() + MIN_CYCLE_TIME);\n    }\n  };\n\n  useEffect(() => {\n    // Storing in the ref is required for the setTimeout that is started for images when called from changeInView\n    selectedRef.current = selectedMedia;\n\n    // Clear timeout\n    if (timeoutRef.current !== null) {\n      clearTimeout(timeoutRef.current);\n    }\n\n    startTimeout();\n  }, [selectedMedia]);\n\n  return (\n    <FeaturesHighlightRoot typeColor={colorCoding.typeColor}>\n      <HeadingContainer>\n        <FormattedHTMLMessage {...messages.heading} />\n      </HeadingContainer>\n      <CoreContentContainer\n        onTouchStart={(e) => startDrag(e)}\n        onMouseDown={(e) => startDrag(undefined, e)}\n        onTouchMove={(e) => Drag(e)}\n        onMouseMove={(e) => Drag(undefined, e)}\n        onTouchEnd={() => stopDrag()}\n        onMouseUp={() => stopDrag()}\n      >\n        <CardContainer\n          selectedMedia={selectedMedia}\n          cardClickHandler={cardClickHandler}\n          keyPressHandler={keyPressHandler}\n          componentOrder={layoutType == LAYOUT_TYPE.CARDS_LEFT ? 1 : 2}\n          colorCoding={colorCoding}\n          isColorBar={isColorBar}\n          barColor={barColor}\n          isCategoryLabel={isCategoryLabel}\n        />\n        <MediaContainer\n          selectedMedia={selectedMedia}\n          componentOrder={layoutType == LAYOUT_TYPE.CARDS_RIGHT ? 1 : 2}\n          mediaType={mediaType}\n          mediaSourceLinks={mediaSourceLinks}\n          intl={intl}\n          inViewChange={(isInView) => changeInView(isInView)}\n          videoEnded={() => videoEnded()}\n        />\n        <PaginationContainer\n          selectedMedia={selectedMedia}\n          colorCoding={colorCoding}\n        />\n      </CoreContentContainer>\n    </FeaturesHighlightRoot>\n  );\n}\n\nexport const FeaturesHighlightRoot = styled.div<HighlightRootProps>`\n  display: flex;\n  flex-wrap: wrap;\n  flex-basis: 100%;\n  max-width: 100%;\n  position: relative;\n  flex-direction: row;\n  min-width: 992px;\n  justify-content: center;\n  color: ${(props) => props?.typeColor};\n  padding-bottom: 64px;\n\n  @media only screen and (max-width: 1023px) {\n    min-width: 736px;\n    margin-left: 0px;\n    margin-right: 0px;\n  }\n\n  @media only screen and (max-width: 767px) {\n    min-width: 288px;\n    padding-bottom: 0;\n  }\n`;\n\nexport const CoreContentContainer = styled.div`\n  display: flex;\n  max-width: inherit;\n  flex-direction: row;\n  align-content: center;\n  height: fit-content;\n\n  @media only screen and (max-width: 1023px) {\n    flex-direction: column;\n    justify-content: center;\n  }\n\n  @media only screen and (max-width: 767px) {\n    overflow: hidden;\n    justify-content: flex-start;\n    display: block;\n  }\n`;\n\nexport const HeadingContainer = styled.h2`\n  text-align: center;\n  flex-basis: calc(99.9999% / 12 * 8 - 16px);\n  max-width: calc(99.9999% / 12 * 8 - 16px);\n  position: inherit;\n  font-size: 36px;\n  font-weight: 500;\n  line-height: 44px;\n  font-style: normal;\n  margin-top: 64px;\n  margin-bottom: 32px;\n\n  @media only screen and (max-width: 1023px) {\n    margin-top: 32px;\n  }\n\n  @media only screen and (max-width: 767px) {\n    font-size: 24px;\n    line-height: 32px;\n    flex-basis: 100%;\n    max-width: 100%;\n  }\n`;\n","import styled from '@emotion/styled';\nimport * as React from '@emotion/react';\nimport { FeaturesHighlightContainer } from './components/features-highlight-container';\nimport { FeaturesHighlightProps } from './models/features-highlight-props';\nimport { getColorCodings } from './utils/util-functions';\nimport { messages } from './messages';\nimport { AnalyticsContext } from '@atlaskit/analytics-next';\nimport { InjectedIntlProps, injectIntl } from 'react-intl';\nimport { defaultAnalyticsData } from './utils/constants';\n\nfunction FeaturesHighlightWpl({\n  layoutType,\n  selectedBgColor,\n  isColorBar,\n  barColor,\n  mediaType,\n  mediaSourceLinks,\n  isCategoryLabel,\n  intl\n}: FeaturesHighlightProps & InjectedIntlProps) {\n  const colorCodings = getColorCodings(selectedBgColor);\n\n  return (\n    <AnalyticsContext data={defaultAnalyticsData}>\n      <Root bgColorCode={colorCodings?.colorCode}>\n        <FeaturesHighlightContainer\n          layoutType={layoutType}\n          colorCoding={colorCodings}\n          isColorBar={isColorBar}\n          barColor={barColor}\n          isCategoryLabel={isCategoryLabel}\n          mediaType={mediaType}\n          mediaSourceLinks={mediaSourceLinks}\n          intl={intl}\n        />\n      </Root>\n    </AnalyticsContext>\n  );\n}\n\nconst Root = styled.div<{ bgColorCode?: string }>`\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  justify-content: center;\n  font-family: Charlie Text, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto,\n    Noto Sans, Ubuntu, Droid Sans, Helvetica Neue, sans-serif;\n  background-color: ${(props) => props.bgColorCode};\n`;\n\nFeaturesHighlightWpl.messages = messages;\nexport default injectIntl(FeaturesHighlightWpl);\n","import { BG_COLOR_CODING_MAP, DEFAULT_BG_COLOR } from './constants';\n\n// Selecting the color coding for the component based on the selected bg color\nexport const getColorCodings = (selectedColor: string) => {\n  return (\n    BG_COLOR_CODING_MAP[selectedColor] ?? BG_COLOR_CODING_MAP[DEFAULT_BG_COLOR]\n  );\n};\n","import { AnalyticsListener } from \"@atlaskit/analytics-next\";\nimport FeaturesHighlightWpl from \"@atlassiansox/bxpkit-features-highlight-wpl\";\nimport { LAYOUT_TYPE, MEDIA_TYPE } from \"@atlassiansox/bxpkit-features-highlight-wpl/lib/commonjs/src/utils/constants\";\nimport React from \"react\";\nimport { IntlProvider } from \"react-intl\";\nimport { trackEvent } from '../../../common/analytics';\n\nconst getLayoutTypeEnum = (layoutType: string) => {\n  return layoutType == \"cards_right\" ? LAYOUT_TYPE.CARDS_RIGHT : LAYOUT_TYPE.CARDS_LEFT;\n}\n\nconst getMediaTypeEnum = (mediaType: string) => {\n  return mediaType == \"video\" ? MEDIA_TYPE.VIDEO : MEDIA_TYPE.IMAGE;\n}\n\nfunction sendAnalytics({ payload, context }) {\n  const analyticsDataList = [...context, payload];\n  const analyticsEvent = analyticsDataList.reduce((mergedAnalyticsEvent, currentAnalyicsEvent) => {\n    return {...mergedAnalyticsEvent, ...currentAnalyicsEvent};\n  }, {})\n  trackEvent(analyticsEvent.eventName, analyticsEvent);\n}\n\ntype FeaturesHighlightContainerType = {\n  readonly layoutType: string,\n  readonly selectedBgColor: string,\n  readonly isColorBar: boolean,\n  readonly isCategoryLabel: boolean,\n  readonly barColor: string,\n  readonly mediaType: string,\n  readonly image1Src: string,\n  readonly image2Src: string,\n  readonly image3Src: string,\n  readonly video1Src: string,\n  readonly video2Src: string,\n  readonly video3Src: string,\n  readonly labels : { [key: string]: string }\n}\n\nexport default function FeaturesHighlightContainer (\n  {\n  layoutType,\n  selectedBgColor, \n  isColorBar,\n  isCategoryLabel,\n  barColor,\n  mediaType,\n  image1Src,\n  image2Src,\n  image3Src,\n  video1Src,\n  video2Src,\n  video3Src, \n  labels}: FeaturesHighlightContainerType\n  ) {\n    \n  let mediaTypeEnum = getMediaTypeEnum(mediaType);\n  let mediaSourceLinks = [];\n  if (mediaTypeEnum == MEDIA_TYPE.VIDEO) {\n    mediaSourceLinks = [video1Src, video2Src, video3Src];\n  } else {\n    mediaSourceLinks = [image1Src, image2Src, image3Src];\n  }\n  return (\n    <AnalyticsListener onEvent={sendAnalytics}>\n      <IntlProvider\n        locale={document.documentElement.lang}\n        messages={labels}\n      >\n        <FeaturesHighlightWpl\n          layoutType={getLayoutTypeEnum(layoutType)}\n          selectedBgColor={selectedBgColor}\n          isColorBar={isColorBar}\n          barColor={barColor}\n          isCategoryLabel={isCategoryLabel}\n          mediaType={mediaTypeEnum}\n          mediaSourceLinks={mediaSourceLinks} />\n      </IntlProvider>\n    </AnalyticsListener>\n  );\n};"],"names":["ContextTypes","getAtlaskitAnalyticsContext","getAtlaskitAnalyticsEventHandlers","noop","AnalyticsContext","Component","constructor","props","super","this","getAnalyticsContext","data","context","contextValue","getAnalyticsEventHandlers","render","children","value","ExportedAnalyticsContext","AnalyticsListener","channel","onEvent","event","eventChannel","ExportedAnalyticsListener","AnalyticsEvent","payload","update","updater","UIAnalyticsEvent","hasFired","handlers","JSON","parse","stringify","forEach","handler","useAnalyticsContext","useContext","useAnalyticsEvents","analyticsContext","createAnalyticsEvent","memoize","fn","cache","Object","create","arg","undefined","reactPropsRegex","isPropValid","prop","test","charCodeAt","registerStyles","serialized","isStringTag","className","key","name","registered","styles","testOmitPropsOnStringTag","testOmitPropsOnComponent","getDefaultShouldForwardProp","tag","composeShouldForwardProps","options","isReal","shouldForwardProp","optionsShouldForwardProp","__emotion_forwardProp","propName","Insertion","_ref","inserted","current","insert","sheet","next","insertStyles","newStyled","createStyled","identifierName","targetClassName","__emotion_real","baseTag","__emotion_base","label","target","defaultShouldForwardProp","shouldUseAs","args","arguments","__emotion_styles","slice","push","raw","apply","len","length","i","Styled","w","ref","registeredStyles","classNames","rawClassName","FinalTag","as","classInterpolations","mergedProps","theme","T","split","concat","finalShouldForwardProp","newProps","_key","displayName","defaultProps","defineProperty","withComponent","nextTag","nextOptions","bind","tagName","SWIPE_DIRECTION","MEDIA_TYPE","LAYOUT_TYPE","B50","N900","N0","N500","N20","N70","Y500","P500","B500","Map","Y200","R200","G200","T200","B200","P100","GRAY3","NUM_OF_CARDS","MIN_CYCLE_TIME","INTERSECTION_OPTIONS","threshold","BG_COLOR_CODING_MAP","b50","colorCode","typeColor","cardActiveColor","cardHoverColor","categoryTypeColor","paginationColorActive","paginationColorInactive","n0","n900","p500","b500","BAR_COLOR_CODING_MAP","set","defaultAnalyticsData","eventComponent","eventContainer","ID_PREFIX","messages","heading","id","defaultMessage","cardLabel1","cardLabel2","cardLabel3","cardCategory1","cardCategory2","cardCategory3","cardTitle1","cardTitle2","cardTitle3","cardDescription1","cardDescription2","cardDescription3","altTextImage1","altTextImage2","altTextImage3","embeddedVideosError","CardDetailsContainer","isCategoryLabel","cardId","CardDetailsRoot","CardFieldsContainer","CategoryNameField","HiddenElement","TitleField","DescriptionField","renderCards","cardClickHandler","keyPressHandler","isColorBar","colorCoding","barColor","cardList","Card","role","tabIndex","onClick","e","onKeyDown","ColorBar","has","get","CardContainer","selectedMedia","componentOrder","CardContainerRoot","MediaContainer","mediaType","mediaSourceLinks","intl","inViewChange","videoEnded","isInView","setIsInView","useState","containerRef","useRef","handleIntersect","entries","entry","isIntersecting","useEffect","IntersectionObserver","observe","MediaContainerRoot","MediaWrapper","renderMedia","videoRefMap","VIDEO","videoId","video","play","currentTime","pause","mediaList","mediaContent","createRef","width","height","preload","muted","onEnded","playsInline","src","formatMessage","IMAGE","alt","Media","PaginationContainer","PaginationContainerRoot","renderCardDots","cardDotList","CardDots","FeaturesHighlightContainer","layoutType","setSelectedMedia","isDragging","setIsDragging","dragAmount","setDragAmount","startX","setStartX","nextAfter","setNextAfter","timeoutRef","selectedRef","isTouchDevice","window","navigator","maxTouchPoints","msMaxTouchPoints","cardClickAnalyticsData","action","eventType","actionSubject","changeActiveElement","clickedElement","cardNumber","fire","startDrag","touchEvent","mouseEvent","touches","clientX","innerWidth","Drag","stopDrag","Math","abs","swipeCards","LEFT","RIGHT","direction","nextSelected","nextHighlight","nextId","startTimeout","setTimeout","Date","now","clearTimeout","FeaturesHighlightRoot","HeadingContainer","CoreContentContainer","onTouchStart","onMouseDown","onTouchMove","onMouseMove","onTouchEnd","onMouseUp","mouseClick","preventDefault","keyPress","CARDS_LEFT","CARDS_RIGHT","changeInView","FeaturesHighlightWpl","selectedBgColor","colorCodings","Root","bgColorCode","getLayoutTypeEnum","getMediaTypeEnum","sendAnalytics","analyticsEvent","reduce","mergedAnalyticsEvent","currentAnalyicsEvent","_objectSpread","trackEvent","eventName","_ref2","image1Src","image2Src","image3Src","video1Src","video2Src","video3Src","labels","mediaTypeEnum","React","IntlProvider","locale","document","documentElement","lang"],"sourceRoot":""}