{"version":3,"sources":["webpack:///./src/constants.ts","webpack:///./src/components/primary-buttons/primary-buttons.tsx","webpack:///./src/components/privacy-info.tsx","webpack:///./src/components/language-select/language-select.tsx","webpack:///./src/components/register-section/register-section.tsx","webpack:///./src/components/register-section/images/waves.png","webpack:///./src/components/register-section/images sync ^\\.\\/.*\\-.*\\.png$","webpack:///./src/components/register-section/images/1-1.png","webpack:///./src/components/register-section/images/1-2.png","webpack:///./src/components/register-section/images/1-3.png","webpack:///./src/components/register-section/images/1-4.png","webpack:///./src/components/register-section/images/1-5.png","webpack:///./src/components/register-section/images/1-6.png","webpack:///./src/components/register-section/images/2-1.png","webpack:///./src/components/register-section/images/2-2.png","webpack:///./src/components/register-section/images/2-3.png","webpack:///./src/components/register-section/images/2-4.png","webpack:///./src/components/register-section/images/2-5.png","webpack:///./src/components/plot/plot.tsx","webpack:///./src/components/request-language-modal/language-autocomplete.tsx","webpack:///./src/components/request-language-modal/language-request-success.tsx","webpack:///./src/components/request-language-modal/request-language-modal.tsx","webpack:///../node_modules/@yr/monotone-cubic-spline/index.js","webpack:///./src/components/pages/home/images/fading.svg","webpack:///./src/components/pages/home/images/speak.svg","webpack:///./src/components/pages/home/hero.tsx","webpack:///./src/components/pages/home/stats.tsx","webpack:///./src/components/pages/home/home.tsx"],"names":["DAILY_GOALS","Object","freeze","speak","listen","BENEFITS","WHATS_PUBLIC","PrimaryButton","_a","className","to","trackClass","props","__rest","React","disabled","getTrackClass","join","LocaleLink","assign","type","RecordButton","status","MicIcon","StopIcon","RecordLink","URLS","SPEAK","Voice","PlayButton","isPlaying","OldPlayIcon","PlayLink","LISTEN","localizedPrefix","Localized","id","elems","privacyLink","href","target","rel","contributableLocales","require","ALL_LOCALES","value","onChange","Downshift","initialInputValue","getItemProps","highlightedIndex","isOpen","toggleMenu","onClick","concat","map","l","i","key","item","RegisterSection","children","flipped","marsSrc","locale","useLocale","index","setIndex","useState","tab","setTab","isBenefits","info","createElement","src","alt","name","checked","trackHome","cx","module","exports","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","resolve","Y_OFFSET","TOTAL_LINE_MARGIN","LINE_OFFSET","TEXT_OFFSET","PLOT_PADDING","Plot","constructor","state","width","svgRef","updateSize","this","setState","current","getBoundingClientRect","componentDidMount","window","addEventListener","componentWillUnmount","removeEventListener","render","data","formatNumber","max","renderXTickLabel","tickCount","tickMultipliers","tickMultiplier","slice","reverse","find","m","ticks","height","ref","Array","from","length","_","y","x","dominantBaseline","textAnchor","Math","round","x1","y1","x2","y2","stroke","datum","BAR_HEIGHT","n","toString","BarPlot","reduce","d","date","Date","toLocaleString","hour","minute","replace","barWidth","getBarX","offset","stopColor","fill","LanguageAutocomplete","requestedLanguages","useTypedSelector","store","languages","fetchRequestedLanguages","useAction","RequestedLanguages","actions","fetch","Input","LabeledInput","useEffect","getInputProps","inputValue","selectedItem","options","Set","filter","toLowerCase","includes","exactMatch","attrs","label","required","style","position","left","top","zIndex","border","maxHeight","overflowY","background","backgroundColor","fontWeight","onRequestClose","SuccessIcon","TextButton","color","RequestLanguageModal","email","user","isSubmitted","language","NATIVE_NAMES","navigator","lang","split","otherLanguage","sendEmails","update","updateOtherLanguage","save","event","__awaiter","preventDefault","api","createLanguageRequest","updateUser","subscribeToNewsletter","Modal","innerClassName","LanguageRequestSuccess","onSubmit","LabeledSelect","entries","Hr","Button","rounded","PrivacyInfo","mapDispatchToProps","create","User","connect","mapStateToProps","slope","p0","p1","points","_points","tgts","finiteDifferences","a","b","s","abs","sqrt","_i","min","push","tangents","p","pts","t","t0","_p","_t","start","end","svgPath","point","Hero","count","dimensions","showToMeasure","toggleableRefs","measure","fetchDailyClipsCount","fetchDailyVotesCount","componentDidUpdate","offsetWidth","offsetHeight","getToggleableProps","onHide","onShow","PrimaryLink","onMouseEnter","onMouseLeave","TERMS","vars","goal","spline","Tooltip","StatsCard","onLocaleChange","header","setLocale","LanguageSelect","ClipsStats","formatSeconds","totalSeconds","precise","seconds","minutes","floor","hours","toPrecision","timeParts","MetricValue","attribute","title","Metric","labelId","pointFromDatum","PLOT_STROKE_WIDTH","lastIndex","strokeWidth","cy","r","CIRCLE_RADIUS","BareRoot","hoveredIndex","pathRef","updateData","fetchClipsStats","handleMouseMove","path","clientX","handleMouseOut","getString","total","valid","toLocaleDateString","day","month","year","Root","withLocalization","VoiceStats","fetchClipVoices","HomePage","heroes","shallowEqual","activeHero","setActiveHero","showRequestLanguageModal","setShowRequestLanguageModal","showWallOfText","setShowWallOfText","statsRef","useRef","location","hash","scrollIntoView","scrollBy","ContributableLocaleLock","isContributable","account","LinkButton"],"mappings":"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","file":"7.js?id=abce180a8ac45a4c43f4","sourcesContent":["export const DAILY_GOALS = Object.freeze({\n  speak: [120, 250],\n  listen: [240],\n});\n\nexport const BENEFITS = [\n  'rich-data',\n  'improve-audio',\n  'keep-track',\n  'compare-progress',\n  'view-goals',\n  'join-newsletter',\n];\n\nexport const WHATS_PUBLIC = [\n  'email-not-public',\n  'recordings-and-locale-public',\n  'username-optin-public',\n  'demographic-deidentified-clarity',\n  'username-email-not-demographic',\n];\n","import * as React from 'react';\nimport URLS from '../../urls';\nimport { LocaleLink } from '../locale-helpers';\nimport { getTrackClass } from '../../services/tracker';\nimport { MicIcon, OldPlayIcon, StopIcon } from '../ui/icons';\n\nimport './primary-buttons.css';\n\nexport const PrimaryButton = ({\n  className,\n  to,\n  trackClass,\n  ...props\n}: { to?: string; trackClass?: string } & React.ButtonHTMLAttributes<any>) => (\n  <div\n    className={[\n      'primary-button',\n      className,\n      props.disabled ? 'disabled' : '',\n      trackClass ? getTrackClass('fs', trackClass) : '',\n    ].join(' ')}>\n    {to ? (\n      <LocaleLink to={to} {...props} />\n    ) : (\n      <button type=\"button\" {...props} />\n    )}\n    <div className=\"background\" />\n  </div>\n);\n\nexport type RecordingStatus = null | 'waiting' | 'recording';\n\nexport const RecordButton = ({\n  status,\n  trackClass,\n  ...props\n}: {\n  status: RecordingStatus;\n  trackClass?: string;\n} & React.ButtonHTMLAttributes<any>) => (\n  <PrimaryButton\n    className={status === null ? 'stop' : 'record'}\n    {...props}\n    trackClass={trackClass}\n    disabled={status === 'waiting'}>\n    {status === null && <MicIcon />}\n    {status === 'recording' && <StopIcon />}\n  </PrimaryButton>\n);\n\nexport const RecordLink = (props: any) => (\n  <PrimaryButton className=\"stop\" to={URLS.SPEAK} {...props}>\n    <MicIcon />\n  </PrimaryButton>\n);\n\nexport const Voice = (props: any) => (\n  <PrimaryButton className=\"stop\" {...props} />\n);\n\nexport const PlayButton = ({\n  isPlaying,\n  trackClass,\n  ...props\n}: { isPlaying: boolean; trackClass?: string } & React.ButtonHTMLAttributes<\n  any\n>) => (\n  <PrimaryButton\n    className={isPlaying ? 'stop' : 'play'}\n    trackClass={trackClass}\n    {...props}>\n    {isPlaying ? <StopIcon /> : <OldPlayIcon />}\n  </PrimaryButton>\n);\n\nexport const PlayLink = (props: any) => (\n  <PrimaryButton className=\"play\" to={URLS.LISTEN} {...props}>\n    <OldPlayIcon />\n  </PrimaryButton>\n);\n","import { Localized } from '@fluent/react';\nimport * as React from 'react';\n\nexport default ({ localizedPrefix }: { localizedPrefix?: string }) => {\n  localizedPrefix = localizedPrefix || '';\n  return (\n    <>\n      <Localized id={localizedPrefix + 'stayintouch'}>\n        <p className=\"small\" />\n      </Localized>\n      <br />\n\n      <Localized\n        id={localizedPrefix + 'privacy-info'}\n        elems={{\n          privacyLink: (\n            <a href=\"/privacy\" target=\"_blank\" rel=\"noopener noreferrer\" />\n          ),\n        }}>\n        <p className=\"small\" />\n      </Localized>\n    </>\n  );\n};\n","import { Localized } from '@fluent/react';\nimport Downshift from 'downshift';\nimport * as React from 'react';\n\nconst contributableLocales = require('../../../../locales/contributable.json') as string[];\n\nimport './language-select.css';\n\nexport const ALL_LOCALES = 'all-locales';\n\nexport default ({\n  value,\n  onChange,\n}: {\n  value: string;\n  onChange: (locale: string) => any;\n}) => (\n  <Downshift initialInputValue={value} onChange={onChange}>\n    {({ getItemProps, highlightedIndex, isOpen, toggleMenu }) => (\n      <div className=\"language-select\" onClick={() => toggleMenu()}>\n        <Localized id={value}>\n          <div className=\"current\" />\n        </Localized>\n        {isOpen && (\n          <ul onClick={() => toggleMenu()}>\n            {[ALL_LOCALES].concat(contributableLocales).map((l, i) => (\n              <Localized key={l} id={l}>\n                <li\n                  className={[\n                    l === value ? 'selected' : '',\n                    highlightedIndex === i ? 'highlighted' : '',\n                  ].join(' ')}\n                  {...getItemProps({ item: l })}\n                  value={l}\n                />\n              </Localized>\n            ))}\n          </ul>\n        )}\n      </div>\n    )}\n  </Downshift>\n);\n","import cx from 'classnames';\nimport { Localized } from '@fluent/react';\nimport React from 'react';\nimport { useState } from 'react';\nimport { trackHome } from '../../services/tracker';\nimport { BENEFITS, WHATS_PUBLIC } from '../../constants';\nimport { useLocale } from '../locale-helpers';\n\nimport './register-section.css';\n\nexport default function RegisterSection({\n  children,\n  flipped = false,\n  marsSrc,\n}: {\n  children: React.ReactNode[];\n  flipped?: boolean;\n  marsSrc: string;\n}) {\n  const [locale] = useLocale();\n  const [index, setIndex] = useState(0);\n  const [tab, setTab] = useState('benefits');\n  const isBenefits = tab == 'benefits';\n  const info = (\n    <div className=\"signup-info\">\n      <div className=\"tabs\">\n        <img\n          className=\"waves\"\n          src={require('./images/waves.png')}\n          alt=\"Waves\"\n        />\n        {['benefits', 'whats-public'].map(l => (\n          <label key={l}>\n            <input\n              type=\"radio\"\n              name=\"tab\"\n              checked={tab == l}\n              onChange={() => {\n                setTab(l);\n                setIndex(0);\n                trackHome('change-benefits-tabs', locale);\n              }}\n            />\n            <Localized id={l}>\n              <div />\n            </Localized>\n          </label>\n        ))}\n      </div>\n      <div className=\"list-and-bg\">\n        <div className=\"bg\" />\n        <ul key={tab}>\n          {(isBenefits ? BENEFITS : WHATS_PUBLIC).map((l, i) => (\n            <li\n              key={l}\n              className={i == index ? 'active' : ''}\n              onClick={() => {\n                setIndex(i);\n                trackHome(\n                  isBenefits\n                    ? 'click-benefits-item'\n                    : 'click-whats-public-item',\n                  locale\n                );\n              }}>\n              <span>{i + 1}.</span>\n              <Localized id={l}>\n                <span />\n              </Localized>\n            </li>\n          ))}\n        </ul>\n      </div>\n    </div>\n  );\n\n  return (\n    <section className={cx('register-section', { flipped })}>\n      <div className=\"top\">\n        <div className=\"cta-container\">\n          {children}\n          {info}\n        </div>\n        <div className=\"images-container\">\n          <img className=\"mars\" src={marsSrc} alt=\"Mars\" />\n          <img\n            className=\"screenshot\"\n            src={require(`./images/${isBenefits ? 1 : 2}-${index + 1}.png`)}\n            alt=\"\"\n          />\n        </div>\n      </div>\n    </section>\n  );\n}\n","module.exports = __webpack_public_path__ + \"a2c72ce8a9bd6f20f71fa49fc8b9dd73.png\";","var map = {\n\t\"./1-1.png\": 163,\n\t\"./1-2.png\": 164,\n\t\"./1-3.png\": 165,\n\t\"./1-4.png\": 166,\n\t\"./1-5.png\": 167,\n\t\"./1-6.png\": 168,\n\t\"./2-1.png\": 169,\n\t\"./2-2.png\": 170,\n\t\"./2-3.png\": 171,\n\t\"./2-4.png\": 172,\n\t\"./2-5.png\": 173\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 162;","module.exports = __webpack_public_path__ + \"2cb216340211e9b34afb1b57cfc32594.png\";","module.exports = __webpack_public_path__ + \"8e6cb9062d62d488bdf3fd9071d86031.png\";","module.exports = __webpack_public_path__ + \"0b4220a387d9aad682345524a7733f5d.png\";","module.exports = __webpack_public_path__ + \"ff4df4f7d1a06f0f93a888e76cfdaca1.png\";","module.exports = __webpack_public_path__ + \"bdde4170dd8fb0ced9f55e35db39a784.png\";","module.exports = __webpack_public_path__ + \"f095ff0ceeef4e50c4ac4a3d226a3462.png\";","module.exports = __webpack_public_path__ + \"a7d0c00c65eb5ec0b51d1fe1bbebd237.png\";","module.exports = __webpack_public_path__ + \"0b4220a387d9aad682345524a7733f5d.png\";","module.exports = __webpack_public_path__ + \"c7b641eff0dd692673efc1d0bc1ffd2d.png\";","module.exports = __webpack_public_path__ + \"43c5462406314770c88feb382dae8381.png\";","module.exports = __webpack_public_path__ + \"7548c4482abe7c0f77caee1a7db86200.png\";","import * as React from 'react';\n\nexport const Y_OFFSET = 10;\nexport const TOTAL_LINE_MARGIN = 154;\nexport const TEXT_OFFSET = 40;\nexport const LINE_OFFSET = TEXT_OFFSET + 5;\nexport const PLOT_PADDING = 13;\n\nimport './plot.css';\n\nexport type PlotProps = {\n  children: (state: { max: number; width: number }) => React.ReactNode;\n  data: any[];\n  formatNumber: (n: number) => string;\n  max: number;\n  renderXTickLabel: (datum: any, i: number) => React.ReactNode;\n  tickCount: number;\n  tickMultipliers: number[];\n} & React.SVGProps<SVGElement>;\n\nexport default class Plot extends React.Component<\n  PlotProps,\n  {\n    width: number;\n  }\n> {\n  state: {\n    width: number;\n  } = {\n    width: 0,\n  };\n\n  svgRef = React.createRef<SVGSVGElement>();\n\n  async componentDidMount() {\n    window.addEventListener('resize', this.updateSize);\n    this.updateSize();\n  }\n\n  componentWillUnmount() {\n    window.removeEventListener('resize', this.updateSize);\n  }\n\n  updateSize = () => {\n    this.setState({\n      width: this.svgRef.current.getBoundingClientRect().width,\n    });\n  };\n\n  render() {\n    let {\n      children,\n      data,\n      formatNumber,\n      max,\n      renderXTickLabel,\n      tickCount,\n      tickMultipliers,\n      ...props\n    } = this.props;\n    const { width } = this.state;\n\n    const tickMultiplier =\n      tickMultipliers\n        .slice()\n        .reverse()\n        .find(m => max > m) || 1;\n    const ticks = (tickCount - 1) * tickMultiplier;\n\n    max = max + (ticks - (max % ticks));\n\n    return (\n      <svg\n        width=\"100%\"\n        height=\"100%\"\n        className=\"plot\"\n        {...props}\n        ref={this.svgRef}>\n        {Array.from({ length: tickCount }).map((_, i) => {\n          const y = (i * TOTAL_LINE_MARGIN) / tickCount + Y_OFFSET;\n          return (\n            <React.Fragment key={i}>\n              <text\n                className=\"tick-label\"\n                x={TEXT_OFFSET}\n                y={y}\n                dominantBaseline=\"middle\"\n                textAnchor=\"end\">\n                {formatNumber(\n                  Math.round(((tickCount - 1 - i) * max) / (tickCount - 1))\n                )}\n              </text>\n              <line\n                x1={LINE_OFFSET}\n                y1={y}\n                x2={width + PLOT_PADDING}\n                y2={y}\n                stroke=\"rgba(0,0,0,0.2)\"\n              />\n            </React.Fragment>\n          );\n        })}\n        {data.map((datum, i) => (\n          <text\n            key={i}\n            className=\"x tick-label\"\n            x={\n              LINE_OFFSET +\n              i * ((width - PLOT_PADDING - TEXT_OFFSET) / data.length)\n            }\n            y={Y_OFFSET + TOTAL_LINE_MARGIN}>\n            {renderXTickLabel(datum, i)}\n          </text>\n        ))}\n        {children({ width, max })}\n      </svg>\n    );\n  }\n}\n\nconst BAR_COUNT = 10;\nconst BAR_WIDTH_LG = 15;\nconst BAR_WIDTH_XS = 7;\nconst TICK_COUNT = 4;\nconst BAR_HEIGHT = TOTAL_LINE_MARGIN * ((TICK_COUNT - 1) / TICK_COUNT);\n\nfunction formatNumber(n: number) {\n  return n > 1000 ? Math.round(n / 1000) + 'k' : n.toString();\n}\n\nexport const BarPlot = ({\n  data,\n}: {\n  data: { date: string; value: number }[];\n}) => (\n  <Plot\n    data={data}\n    formatNumber={formatNumber}\n    max={(data || []).reduce((max, d) => Math.max(max, d.value), 0)}\n    renderXTickLabel={({ date }) => {\n      const timeString = new Date(date)\n        .toLocaleString([], {\n          hour: '2-digit',\n          minute: '2-digit',\n        })\n        .replace(':00 ', '')\n        .replace(/\\./g, '');\n\n      return timeString;\n    }}\n    tickCount={TICK_COUNT}\n    tickMultipliers={[5, 10, 100, 1000]}>\n    {({ max, width }) => {\n      const barWidth = width < 400 ? BAR_WIDTH_XS : BAR_WIDTH_LG;\n      const getBarX = (i: number) =>\n        LINE_OFFSET +\n        PLOT_PADDING -\n        barWidth / 2 +\n        (i * (width - PLOT_PADDING - TEXT_OFFSET)) / BAR_COUNT;\n\n      return (\n        <>\n          {Array.from({ length: BAR_COUNT }).map((_, i) => (\n            <rect\n              key={i}\n              className=\"bg\"\n              x={getBarX(i)}\n              y={Y_OFFSET}\n              width={barWidth}\n              height={BAR_HEIGHT}\n            />\n          ))}\n\n          <defs>\n            <linearGradient id=\"blue-purple\" x2=\"0%\" y2=\"100%\">\n              <stop offset=\"5%\" stopColor=\"#88d1f1\" />\n              <stop offset=\"95%\" stopColor=\"#b1b5e5\" />\n            </linearGradient>\n          </defs>\n          {(data || []).map(({ value }: any, i: number) => {\n            const height = (value * BAR_HEIGHT) / max || 0;\n            return (\n              <rect\n                key={i}\n                fill=\"url(#blue-purple)\"\n                className={i + 1 === BAR_COUNT ? 'current' : ''}\n                x={getBarX(i)}\n                y={Y_OFFSET + BAR_HEIGHT - height}\n                width={barWidth}\n                height={height}\n              />\n            );\n          })}\n        </>\n      );\n    }}\n  </Plot>\n);\n","import Downshift from 'downshift';\nimport { Localized } from '@fluent/react';\nimport * as React from 'react';\nimport { useEffect } from 'react';\nimport { useAction } from '../../hooks/store-hooks';\nimport { RequestedLanguages } from '../../stores/requested-languages';\nimport { useTypedSelector } from '../../stores/tree';\nimport { LabeledInput } from '../ui/ui';\n\nexport default function LanguageAutocomplete({\n  onChange,\n}: {\n  onChange: (...args: any[]) => any;\n}) {\n  const requestedLanguages = useTypedSelector(\n    store => store.requestedLanguages.languages\n  );\n  const fetchRequestedLanguages = useAction(RequestedLanguages.actions.fetch);\n\n  // Types for Downshift haven't caught up yet. Can be removed in the future\n  const Input = LabeledInput as any;\n\n  useEffect(() => {\n    fetchRequestedLanguages();\n  }, []);\n\n  return (\n    <Downshift onChange={onChange}>\n      {({\n        getInputProps,\n        getItemProps,\n        isOpen,\n        inputValue,\n        selectedItem,\n        highlightedIndex,\n      }) => {\n        const options = Array.from(\n          new Set(requestedLanguages || [])\n        ).filter(name => name.toLowerCase().includes(inputValue.toLowerCase()));\n        const exactMatch = options.find(\n          name => name.toLowerCase() === inputValue.toLowerCase()\n        );\n        return (\n          <div>\n            <Localized id=\"language-autocomplete\" attrs={{ label: true }}>\n              <Input\n                {...getInputProps({\n                  label: (\n                    <Localized id=\"other-language\">\n                      <span />\n                    </Localized>\n                  ),\n                  required: true,\n                  type: 'text',\n                })}\n              />\n            </Localized>\n            <div style={{ position: 'relative' }}>\n              {isOpen && (\n                <div\n                  style={{\n                    position: 'absolute',\n                    left: 0,\n                    top: '-1rem',\n                    zIndex: 10,\n                    border: '1px solid #ccc',\n                    width: '100%',\n                    maxHeight: '5rem',\n                    overflowY: 'auto',\n                    background: 'white',\n                  }}>\n                  {!exactMatch && (\n                    <div\n                      {...getItemProps({ item: inputValue })}\n                      style={{\n                        backgroundColor:\n                          highlightedIndex === 0 ? 'lightgray' : 'white',\n                        fontWeight: selectedItem === name ? 'bold' : 'normal',\n                      }}>\n                      Add new Language \"{inputValue}\"\n                    </div>\n                  )}\n                  {options.map((name, index) => (\n                    <div\n                      {...getItemProps({ item: name })}\n                      key={name}\n                      style={{\n                        backgroundColor:\n                          highlightedIndex === index + (exactMatch ? 0 : 1)\n                            ? 'lightgray'\n                            : 'white',\n                        fontWeight: selectedItem === name ? 'bold' : 'normal',\n                      }}>\n                      {name}\n                    </div>\n                  ))}\n                </div>\n              )}\n            </div>\n          </div>\n        );\n      }}\n    </Downshift>\n  );\n}\n","import { Localized } from '@fluent/react';\nimport * as React from 'react';\nimport { SuccessIcon } from '../ui/icons';\nimport { TextButton } from '../ui/ui';\n\nexport default ({ onRequestClose }: { onRequestClose: () => void }) => (\n  <>\n    <SuccessIcon className=\"success\" />\n\n    <Localized id=\"request-language-success-title\">\n      <h2 />\n    </Localized>\n\n    <br />\n\n    <Localized id=\"request-language-success-content\">\n      <p className=\"small\" />\n    </Localized>\n\n    <br />\n\n    <Localized id=\"return-to-cv\">\n      <TextButton\n        onClick={onRequestClose}\n        className=\"small\"\n        style={{ fontWeight: 'bold', color: 'black' }}\n      />\n    </Localized>\n\n    <br />\n    <br />\n  </>\n);\n","import { Localized } from '@fluent/react';\nimport * as React from 'react';\nimport { connect } from 'react-redux';\nimport Modal from '../modal/modal';\nimport { Button, Hr, LabeledInput, LabeledSelect } from '../ui/ui';\nimport API from '../../services/api';\nimport { NATIVE_NAMES } from '../../services/localization';\nimport { RequestedLanguages } from '../../stores/requested-languages';\nimport StateTree from '../../stores/tree';\nimport { User } from '../../stores/user';\nimport PrivacyInfo from '../privacy-info';\nimport LanguageAutocomplete from './language-autocomplete';\nimport LanguageRequestSuccess from './language-request-success';\n\ninterface PropsFromState {\n  api: API;\n  user: User.State;\n}\n\ninterface PropsFromDispatch {\n  createLanguageRequest: typeof RequestedLanguages.actions.create;\n  updateUser: typeof User.actions.update;\n}\n\ninterface Props extends PropsFromState, PropsFromDispatch {\n  onRequestClose: () => void;\n}\n\ninterface State {\n  email: string;\n  isSubmitted: boolean;\n  language: string;\n  otherLanguage: string;\n  sendEmails: boolean;\n}\n\nclass RequestLanguageModal extends React.Component<Props, State> {\n  state: State = {\n    email: this.props.user.email,\n    isSubmitted: false,\n    language:\n      NATIVE_NAMES[\n        navigator.languages.find(lang => lang.split('-')[0] !== 'en')\n      ],\n    otherLanguage: '',\n    sendEmails: this.props.user.sendEmails,\n  };\n\n  private update = ({ target }: any) => {\n    this.setState({\n      [target.name]: target.type === 'checkbox' ? target.checked : target.value,\n    } as any);\n  };\n\n  private updateOtherLanguage = (otherLanguage: string) => {\n    this.setState({ otherLanguage });\n  };\n\n  private save = async (event: React.FormEvent<HTMLFormElement>) => {\n    event.preventDefault();\n    const { api, createLanguageRequest, updateUser, user } = this.props;\n    const { email, language, otherLanguage, sendEmails } = this.state;\n\n    createLanguageRequest(language == 'other' ? otherLanguage : language);\n    if (!user.sendEmails && sendEmails) {\n      await api.subscribeToNewsletter(email);\n    }\n    updateUser({ email, sendEmails });\n    this.setState({ isSubmitted: true });\n  };\n\n  render() {\n    const { onRequestClose } = this.props;\n    const {\n      email,\n      language,\n      otherLanguage,\n      isSubmitted,\n      sendEmails,\n    } = this.state;\n    return (\n      <Modal\n        innerClassName={\n          'request-language-modal ' + (isSubmitted ? '' : 'left-align')\n        }\n        onRequestClose={onRequestClose}>\n        {isSubmitted ? (\n          <LanguageRequestSuccess onRequestClose={onRequestClose} />\n        ) : (\n          <form onSubmit={this.save}>\n            <div className=\"title-and-action\">\n              <Localized id=\"request-language-title\">\n                <h2 />\n              </Localized>\n            </div>\n\n            <br />\n\n            <Localized\n              id=\"request-language-form-language\"\n              attrs={{ label: true }}>\n              <LabeledSelect\n                name=\"language\"\n                required\n                value={language}\n                onChange={this.update}>\n                <Localized id=\"select-language\">\n                  <option value=\"\" />\n                </Localized>\n                {Object.entries(NATIVE_NAMES).map(([code, name]) => (\n                  <option key={name} value={name}>\n                    {name}\n                  </option>\n                ))}\n                <Localized id=\"other\">\n                  <option value=\"other\" />\n                </Localized>\n              </LabeledSelect>\n            </Localized>\n\n            {language == 'other' && (\n              <LanguageAutocomplete onChange={this.updateOtherLanguage} />\n            )}\n\n            <Localized id=\"email-input\" attrs={{ label: true }}>\n              <LabeledInput\n                label=\"Email\"\n                name=\"email\"\n                required\n                type=\"email\"\n                value={email}\n                onChange={this.update}\n              />\n            </Localized>\n\n            <label className=\"opt-in\">\n              <input\n                name=\"sendEmails\"\n                type=\"checkbox\"\n                checked={sendEmails}\n                onChange={this.update}\n              />\n              <Localized id=\"yes-receive-emails\">\n                <span />\n              </Localized>\n            </label>\n\n            <Hr />\n\n            <div className=\"actions\">\n              <Localized id=\"submit-form-action\">\n                <Button\n                  disabled={\n                    !email || (language == 'other' ? !otherLanguage : !language)\n                  }\n                  type=\"submit\"\n                  rounded\n                />\n              </Localized>\n              <div />\n            </div>\n\n            <br />\n\n            <PrivacyInfo />\n          </form>\n        )}\n      </Modal>\n    );\n  }\n}\n\nconst mapStateToProps = ({ api, user }: StateTree) => ({\n  api,\n  user,\n});\n\nconst mapDispatchToProps = {\n  createLanguageRequest: RequestedLanguages.actions.create,\n  updateUser: User.actions.update,\n};\n\nexport default connect<PropsFromState, any>(\n  mapStateToProps,\n  mapDispatchToProps\n)(RequestLanguageModal) as any;\n","'use strict';\n\n/**\n * Convert a series of points to a monotone cubic spline\n * Algorithm based on https://github.com/mbostock/d3\n * https://github.com/yr/monotone-cubic-spline\n * @copyright Yr\n * @license MIT\n */\n\nvar ε = 1e-6;\n\nmodule.exports = {\n  /**\n   * Convert 'points' to bezier\n   * @param {Array} points\n   * @returns {Array}\n   */\n  points: function points(_points) {\n    var tgts = tangents(_points);\n\n    var p = _points[1];\n    var p0 = _points[0];\n    var pts = [];\n    var t = tgts[1];\n    var t0 = tgts[0];\n\n    // Add starting 'M' and 'C' points\n    pts.push(p0, [p0[0] + t0[0], p0[1] + t0[1], p[0] - t[0], p[1] - t[1], p[0], p[1]]);\n\n    // Add 'S' points\n    for (var i = 2, n = tgts.length; i < n; i++) {\n      var _p = _points[i];\n      var _t = tgts[i];\n\n      pts.push([_p[0] - _t[0], _p[1] - _t[1], _p[0], _p[1]]);\n    }\n\n    return pts;\n  },\n\n\n  /**\n   * Slice out a segment of 'points'\n   * @param {Array} points\n   * @param {Number} start\n   * @param {Number} end\n   * @returns {Array}\n   */\n  slice: function slice(points, start, end) {\n    var pts = points.slice(start, end);\n\n    if (start) {\n      // Add additional 'C' points\n      if (pts[1].length < 6) {\n        var n = pts[0].length;\n\n        pts[1] = [pts[0][n - 2] * 2 - pts[0][n - 4], pts[0][n - 1] * 2 - pts[0][n - 3]].concat(pts[1]);\n      }\n      // Remove control points for 'M'\n      pts[0] = pts[0].slice(-2);\n    }\n\n    return pts;\n  },\n\n\n  /**\n   * Convert 'points' to svg path\n   * @param {Array} points\n   * @returns {String}\n   */\n  svgPath: function svgPath(points) {\n    var p = '';\n\n    for (var i = 0; i < points.length; i++) {\n      var point = points[i];\n      var n = point.length;\n\n      if (!i) {\n        p += 'M' + point[n - 2] + ' ' + point[n - 1];\n      } else if (n > 4) {\n        p += 'C' + point[0] + ', ' + point[1];\n        p += ', ' + point[2] + ', ' + point[3];\n        p += ', ' + point[4] + ', ' + point[5];\n      } else {\n        p += 'S' + point[0] + ', ' + point[1];\n        p += ', ' + point[2] + ', ' + point[3];\n      }\n    }\n\n    return p;\n  }\n};\n\n/**\n * Generate tangents for 'points'\n * @param {Array} points\n * @returns {Array}\n */\nfunction tangents(points) {\n  var m = finiteDifferences(points);\n  var n = points.length - 1;\n\n  var tgts = [];\n  var a = void 0,\n      b = void 0,\n      d = void 0,\n      s = void 0;\n\n  for (var i = 0; i < n; i++) {\n    d = slope(points[i], points[i + 1]);\n\n    if (Math.abs(d) < ε) {\n      m[i] = m[i + 1] = 0;\n    } else {\n      a = m[i] / d;\n      b = m[i + 1] / d;\n      s = a * a + b * b;\n      if (s > 9) {\n        s = d * 3 / Math.sqrt(s);\n        m[i] = s * a;\n        m[i + 1] = s * b;\n      }\n    }\n  }\n\n  for (var _i = 0; _i <= n; _i++) {\n    s = (points[Math.min(n, _i + 1)][0] - points[Math.max(0, _i - 1)][0]) / (6 * (1 + m[_i] * m[_i]));\n    tgts.push([s || 0, m[_i] * s || 0]);\n  }\n\n  return tgts;\n}\n\n/**\n * Compute slope from point 'p0' to 'p1'\n * @param {Array} p0\n * @param {Array} p1\n * @returns {Number}\n */\nfunction slope(p0, p1) {\n  return (p1[1] - p0[1]) / (p1[0] - p0[0]);\n}\n\n/**\n * Compute three-point differences for 'points'\n * @param {Array} points\n * @returns {Array}\n */\nfunction finiteDifferences(points) {\n  var m = [];\n  var p0 = points[0];\n  var p1 = points[1];\n  var d = m[0] = slope(p0, p1);\n  var i = 1;\n\n  for (var n = points.length - 1; i < n; i++) {\n    p0 = p1;\n    p1 = points[i + 1];\n    m[i] = (d + (d = slope(p0, p1))) * 0.5;\n  }\n  m[i] = d;\n\n  return m;\n}","module.exports = __webpack_public_path__ + \"559d2b611b7d60f4464cd9f3ca8aafdf.svg\";","module.exports = __webpack_public_path__ + \"df91fa2ab6ba9b38ce01ac2e7dab5947.svg\";","import { Localized } from '@fluent/react';\nimport * as React from 'react';\nimport { connect } from 'react-redux';\nimport { DAILY_GOALS } from '../../../constants';\nimport API from '../../../services/api';\nimport { trackHome } from '../../../services/tracker';\nimport { Locale } from '../../../stores/locale';\nimport StateTree from '../../../stores/tree';\nimport URLS from '../../../urls';\nimport { LocaleLink } from '../../locale-helpers';\nimport { PlayLink, RecordLink } from '../../primary-buttons/primary-buttons';\n\nimport './hero.css';\n\ninterface PropsFromState {\n  api: API;\n  locale: Locale.State;\n}\n\ntype State = {\n  count: number;\n  dimensions: { width: number; height: number }[];\n  showToMeasure: boolean;\n};\n\nclass Hero extends React.Component<\n  {\n    type: 'speak' | 'listen';\n    status: 'active' | 'compressed' | null;\n    onShow: () => any;\n    onHide: () => any;\n  } & PropsFromState,\n  State\n> {\n  state: State = { count: null, dimensions: [], showToMeasure: true };\n\n  toggleableRefs: any = Array.from({ length: 4 }).map(() => React.createRef());\n\n  async componentDidMount() {\n    window.addEventListener('resize', this.showToMeasure);\n    this.measure();\n\n    const { api, type } = this.props;\n    this.setState({\n      count: await (type === 'speak'\n        ? api.fetchDailyClipsCount()\n        : api.fetchDailyVotesCount()),\n    });\n  }\n\n  componentWillUnmount() {\n    window.removeEventListener('resize', this.showToMeasure);\n  }\n\n  componentDidUpdate() {\n    if (this.state.showToMeasure) {\n      this.measure();\n    }\n  }\n\n  showToMeasure = () => this.setState({ showToMeasure: true });\n\n  measure() {\n    this.setState({\n      dimensions: this.toggleableRefs.map(\n        ({ current: { offsetWidth, offsetHeight } }: any) => ({\n          width: offsetWidth,\n          height: offsetHeight,\n        })\n      ),\n      showToMeasure: false,\n    });\n  }\n\n  getToggleableProps(i: number, className = '') {\n    const { status } = this.props;\n    const { dimensions, showToMeasure } = this.state;\n    return {\n      ref: this.toggleableRefs[i],\n      className: 'toggleable ' + className,\n      style: showToMeasure\n        ? {}\n        : status === 'active'\n        ? dimensions[i]\n        : { width: 0, height: 0 },\n    };\n  }\n\n  render() {\n    const { locale, onHide, onShow, status, type } = this.props;\n    const { count } = this.state;\n    const isSpeak = type == 'speak';\n    const PrimaryLink = isSpeak ? RecordLink : PlayLink;\n    return (\n      <div\n        className={['hero-box', type, status].join(' ')}\n        onClick={onShow}\n        onMouseEnter={onShow}\n        onMouseLeave={onHide}>\n        <div className=\"column title\">\n          <Localized id={type}>\n            <h1 />\n          </Localized>\n          <h3>\n            <Localized id={type + '-subtitle'}>\n              <span />\n            </Localized>\n          </h3>\n          <div {...this.getToggleableProps(0)}>\n            <Localized id={type + '-paragraph'}>\n              <p className=\"description\" />\n            </Localized>\n            <Localized id=\"read-terms-q\">\n              <LocaleLink to={URLS.TERMS} className=\"terms\" />\n            </Localized>\n          </div>\n        </div>\n        <div className=\"column cta\">\n          <PrimaryLink\n            trackClass={`${type}-from-home`}\n            onClick={() => trackHome(type, locale)}\n          />\n          <div {...this.getToggleableProps(1, 'line ' + type)} />\n          <div {...this.getToggleableProps(2)}>\n            <Localized\n              id=\"help-reach-goal\"\n              vars={{ goal: DAILY_GOALS[type][0] }}>\n              <div className=\"cta-message\" />\n            </Localized>\n          </div>\n        </div>\n        <div {...this.getToggleableProps(3, 'progress column')}>\n          <Localized id=\"todays-progress\">\n            <h3 className=\"progress-title\" />\n          </Localized>\n          <span className=\"progress-count\">\n            <span className=\"current\">{count === null ? '?' : count}</span>\n            <span className=\"total\">\n              {' / '}\n              {DAILY_GOALS[type][0]}\n            </span>\n          </span>\n          <p>\n            <Localized id={type + '-goal-text'}>\n              <i />\n            </Localized>\n          </p>\n        </div>\n        <div className=\"fading\" />\n      </div>\n    );\n  }\n}\n\nconst mapStateToProps = ({ api, locale }: StateTree) => ({\n  api,\n  locale,\n});\n\nexport default connect<PropsFromState>(mapStateToProps)(Hero);\n","const spline = require('@yr/monotone-cubic-spline');\nimport {\n  Localized,\n  withLocalization,\n  WithLocalizationProps,\n} from '@fluent/react';\nimport * as React from 'react';\nimport { useState } from 'react';\nimport { connect } from 'react-redux';\nimport API from '../../../services/api';\nimport { trackHome } from '../../../services/tracker';\nimport StateTree from '../../../stores/tree';\nimport LanguageSelect, {\n  ALL_LOCALES,\n} from '../../language-select/language-select';\nimport Plot, {\n  BarPlot,\n  LINE_OFFSET,\n  PLOT_PADDING,\n  TOTAL_LINE_MARGIN,\n  Y_OFFSET,\n} from '../../plot/plot';\n\nimport './stats.css';\n\nconst { Tooltip } = require('react-tippy');\n\nconst PLOT_STROKE_WIDTH = 2;\n\ntype Attribute = 'total' | 'valid';\n\ninterface State {\n  locale: string;\n}\n\nfunction StatsCard({\n  children,\n  onLocaleChange,\n  header,\n}: {\n  children?: React.ReactNode;\n  header: React.ReactNode;\n  onLocaleChange: (locale: string) => any;\n}) {\n  const [locale, setLocale] = useState(ALL_LOCALES);\n  return (\n    <div className=\"home-card\">\n      <div className=\"head\">\n        {header}\n        <LanguageSelect\n          value={locale}\n          onChange={locale => {\n            trackHome('metric-locale-change', locale);\n            setLocale(locale);\n            onLocaleChange(locale == ALL_LOCALES ? null : locale);\n          }}\n        />\n      </div>\n      {children}\n    </div>\n  );\n}\n\ninterface PropsFromState {\n  api: API;\n}\n\nconst mapStateToProps = ({ api }: StateTree) => ({\n  api,\n});\n\nexport namespace ClipsStats {\n  const DATA_LENGTH = 5;\n  const TICK_COUNT = 7;\n  const CIRCLE_RADIUS = 8;\n\n  function formatSeconds(totalSeconds: number, precise: boolean = false) {\n    const seconds = totalSeconds % 60;\n    const minutes = Math.floor(totalSeconds / 60) % 60;\n    const hours = Math.floor(totalSeconds / 3600);\n\n    if (precise) return `${hours.toLocaleString()}h`;\n    if (hours >= 1000) {\n      return (hours / 1000).toPrecision(2) + 'k';\n    }\n\n    const timeParts = [];\n\n    if (hours > 0) {\n      timeParts.push(hours + 'h');\n    }\n\n    if (hours < 10 && minutes > 0) {\n      timeParts.push(minutes + 'm');\n    }\n\n    if (hours == 0 && minutes < 10 && seconds > 0) {\n      timeParts.push(seconds + 's');\n    }\n\n    return timeParts.join(' ') || '0';\n  }\n\n  const MetricValue = ({ attribute, title, children }: any) => (\n    <div className={'metric-value ' + attribute} title={title}>\n      <div className=\"point\">●</div>\n      {children}\n    </div>\n  );\n\n  const Metric = ({\n    data,\n    labelId,\n    attribute,\n  }: {\n    data: any[];\n    labelId: string;\n    attribute: Attribute;\n  }) => (\n    <div className=\"metric\">\n      <Localized id={labelId}>\n        <div className=\"label\" />\n      </Localized>\n      <MetricValue\n        attribute={attribute}\n        title={\n          data.length > 0\n            ? formatSeconds(data[data.length - 1][attribute], true)\n            : ''\n        }>\n        {data.length > 0\n          ? formatSeconds(data[data.length - 1][attribute])\n          : '?'}\n      </MetricValue>\n    </div>\n  );\n\n  const Path = React.forwardRef(\n    (\n      {\n        attribute,\n        data,\n        max,\n        width,\n      }: {\n        attribute: Attribute;\n        data: any[];\n        max: number;\n        width: number;\n      },\n      ref: any\n    ) => {\n      if (data.length === 0) return null;\n\n      const pointFromDatum = (x: number, y: number): [number, number] => [\n        LINE_OFFSET +\n          PLOT_PADDING +\n          (x * (width - LINE_OFFSET - 2 * PLOT_PADDING - CIRCLE_RADIUS)) /\n            (data.length - 1),\n        Y_OFFSET -\n          PLOT_STROKE_WIDTH / 2 +\n          ((1 - y / max) * (data.length + 1) * TOTAL_LINE_MARGIN) / TICK_COUNT,\n      ];\n\n      const lastIndex = data.length - 1;\n      const [x, y] = pointFromDatum(lastIndex, data[lastIndex][attribute]);\n\n      return (\n        <>\n          <path\n            d={spline.svgPath(\n              spline.points(\n                data.map((datum: any, i: number) =>\n                  pointFromDatum(i, datum[attribute])\n                )\n              )\n            )}\n            className={attribute}\n            fill=\"none\"\n            ref={ref}\n            strokeWidth={PLOT_STROKE_WIDTH}\n          />\n          <circle\n            cx={x}\n            cy={y}\n            r={CIRCLE_RADIUS}\n            fill=\"white\"\n            className={'outer ' + attribute}\n          />\n          <circle\n            cx={x}\n            cy={y}\n            r={CIRCLE_RADIUS - 2}\n            className={'inner ' + attribute}\n          />\n        </>\n      );\n    }\n  );\n\n  class BareRoot extends React.Component<\n    WithLocalizationProps & PropsFromState\n  > {\n    state: { data: any[]; hoveredIndex: number } = {\n      data: [],\n      hoveredIndex: null,\n    };\n\n    pathRef: any = React.createRef();\n\n    async componentDidMount() {\n      await this.updateData();\n    }\n\n    updateData = async (locale?: string) => {\n      this.setState({ data: await this.props.api.fetchClipsStats(locale) });\n    };\n\n    handleMouseMove = (event: any) => {\n      const path = this.pathRef.current;\n      if (!path) {\n        this.setState({ hoveredIndex: null });\n      }\n      const { left, width } = path.getBoundingClientRect();\n      const hoveredIndex =\n        Math.round((DATA_LENGTH * (event.clientX - left)) / width) - 1;\n      this.setState({\n        hoveredIndex:\n          hoveredIndex >= 0 && hoveredIndex < DATA_LENGTH ? hoveredIndex : null,\n      });\n    };\n\n    handleMouseOut = () => this.setState({ hoveredIndex: null });\n\n    render() {\n      const { getString } = this.props;\n      const { data, hoveredIndex } = this.state;\n\n      const datum = data[hoveredIndex];\n      const { date, total, valid } = datum || ({} as any);\n      const tooltipContents = datum ? (\n        <>\n          <b>\n            {new Date(date).toLocaleDateString([], {\n              day: 'numeric',\n              month: 'long',\n              year: 'numeric',\n            })}\n          </b>\n          <div className=\"metrics\">\n            <MetricValue attribute=\"total\">{formatSeconds(total)}</MetricValue>\n            <MetricValue attribute=\"valid\">{formatSeconds(valid)}</MetricValue>\n          </div>\n        </>\n      ) : null;\n\n      return (\n        <StatsCard\n          header={\n            <div className=\"metrics\">\n              <Metric data={data} labelId=\"hours-recorded\" attribute=\"total\" />\n              <Metric data={data} labelId=\"hours-validated\" attribute=\"valid\" />\n            </div>\n          }\n          onLocaleChange={this.updateData}></StatsCard>\n      );\n    }\n  }\n\n  export const Root = connect<PropsFromState>(mapStateToProps)(\n    withLocalization(BareRoot)\n  );\n}\n\nexport const VoiceStats = connect<PropsFromState>(mapStateToProps)(\n  class BareRoot extends React.Component<PropsFromState> {\n    state: { data: any[] } = { data: [] };\n\n    async componentDidMount() {\n      await this.updateData();\n    }\n\n    updateData = async (locale?: string) => {\n      this.setState({ data: await this.props.api.fetchClipVoices(locale) });\n    };\n\n    render() {\n      const { data } = this.state;\n      return (\n        <StatsCard\n          header={\n            <div>\n              <Localized id=\"voices-online\">\n                <h3 />\n              </Localized>\n              <div className=\"online-voices\">\n                {data.length > 0\n                  ? data[data.length - 1].value.toLocaleString()\n                  : '?'}\n              </div>\n            </div>\n          }\n          onLocaleChange={this.updateData}>\n          <BarPlot data={data} />\n        </StatsCard>\n      );\n    }\n  }\n);\n","import { Localized } from '@fluent/react';\nimport * as React from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport { shallowEqual } from 'react-redux';\nimport { trackHome } from '../../../services/tracker';\nimport { useTypedSelector } from '../../../stores/tree';\nimport { ContributableLocaleLock } from '../../locale-helpers';\nimport { RecordLink } from '../../primary-buttons/primary-buttons';\nimport RegisterSection from '../../register-section/register-section';\nimport RequestLanguageModal from '../../request-language-modal/request-language-modal';\nimport { LinkButton } from '../../ui/ui';\nimport Hero from './hero';\nimport { ClipsStats, VoiceStats } from './stats';\n\nimport './home.css';\n\ntype HeroType = 'speak' | 'listen';\n\nexport default function HomePage() {\n  const heroes = ['speak', 'listen'];\n  const { locale, user } = useTypedSelector(\n    ({ locale, user }) => ({\n      locale,\n      user,\n    }),\n    shallowEqual\n  );\n\n  const [activeHero, setActiveHero] = useState<null | HeroType>(null);\n  const [showRequestLanguageModal, setShowRequestLanguageModal] = useState(\n    false\n  );\n  const [showWallOfText, setShowWallOfText] = useState(false);\n\n  const statsRef = useRef<HTMLDivElement>(null);\n\n  useEffect(() => {\n    if (location.hash == '#stats') {\n      statsRef.current.scrollIntoView(true);\n      window.scrollBy(0, -130);\n    }\n  }, []);\n\n  return (\n    <div className=\"home\">\n      <ContributableLocaleLock\n        render={({ isContributable }: any) =>\n          isContributable ? (\n            <div\n              className={\n                'heroes ' + (heroes.length > 1 ? 'multiple' : 'single')\n              }>\n              {heroes.map((type: HeroType) => (\n                <Hero\n                  key={type + locale}\n                  type={type}\n                  status={\n                    heroes.length == 1 || activeHero === type\n                      ? 'active'\n                      : activeHero\n                      ? 'compressed'\n                      : null\n                  }\n                  onShow={() => setActiveHero(type)}\n                  onHide={() =>\n                    setActiveHero(activeHero === type ? null : activeHero)\n                  }\n                />\n              ))}\n            </div>\n          ) : (\n            <div className=\"non-contributable-hero\">\n              <img\n                className=\"fading\"\n                src={require('./images/fading.svg')}\n                alt=\"Fading\"\n              />\n              <img\n                className=\"waves\"\n                src={require('./images/speak.svg')}\n                alt=\"Waves\"\n              />\n            </div>\n          )\n        }\n      />\n\n      <div className=\"text\">\n        <div className=\"inner\">\n          <div className=\"title\">\n            <Localized id=\"home-title\">\n              <h1 />\n            </Localized>\n          </div>\n\n          <div className=\"description\">\n            <Localized id=\"wall-of-text-first\">\n              <p />\n            </Localized>\n\n            <br />\n\n            <Localized id=\"wall-of-text-second\">\n              <p />\n            </Localized>\n\n            <br />\n\n            {showWallOfText && (\n              <>\n                <Localized id=\"wall-of-text-more-desktop\">\n                  <p />\n                </Localized>\n                <br />\n              </>\n            )}\n\n            <Localized\n              id={showWallOfText ? 'languages-show-less' : 'show-wall-of-text'}>\n              <button\n                className=\"show-more\"\n                type=\"button\"\n                onClick={() => {\n                  if (showWallOfText) {\n                    trackHome('read-more', locale);\n                  }\n                  setShowWallOfText(!showWallOfText);\n                }}\n              />\n            </Localized>\n          </div>\n        </div>\n      </div>\n\n      <div className=\"stats\" ref={statsRef}>\n        <ClipsStats.Root />\n        <VoiceStats />\n      </div>\n\n      {user.account ? (\n        <section className=\"contribute-section\">\n          <div className=\"mars-container\">\n            <img src=\"/img/mars.svg\" alt=\"Mars\" />\n          </div>\n          <div className=\"cta\">\n            <ContributableLocaleLock\n              render={({ isContributable }: any) =>\n                isContributable ? (\n                  <>\n                    <RecordLink\n                      onClick={() => trackHome('speak-mars', locale)}\n                    />\n                    <Localized id=\"ready-to-record\">\n                      <h1 />\n                    </Localized>\n                  </>\n                ) : (\n                  <>\n                    <Localized id=\"request-language-text\">\n                      <h1 />\n                    </Localized>\n                    <div style={{ width: '100%' }} />\n                    <Localized id=\"request-language-button\">\n                      <button\n                        type=\"button\"\n                        className=\"request-language\"\n                        onClick={() => setShowRequestLanguageModal(true)}\n                      />\n                    </Localized>\n                    {showRequestLanguageModal && (\n                      <RequestLanguageModal\n                        onRequestClose={() =>\n                          setShowRequestLanguageModal(false)\n                        }\n                      />\n                    )}\n                  </>\n                )\n              }\n            />\n          </div>\n        </section>\n      ) : (\n        <RegisterSection marsSrc=\"/img/mars.svg\">\n          <Localized id=\"help-make-dataset\">\n            <h1 />\n          </Localized>\n          <Localized id=\"profile-not-required\">\n            <h2 />\n          </Localized>\n          <Localized id=\"sign-up-account\">\n            <LinkButton\n              rounded\n              href=\"/login\"\n              onClick={() => trackHome('click-benefits-register', locale)}\n            />\n          </Localized>\n        </RegisterSection>\n      )}\n    </div>\n  );\n}\n"],"sourceRoot":""}