<|start_filename|>addon/components/es-footer-help.js<|end_filename|>
/* eslint-disable prettier/prettier */
import Component from '@glimmer/component';

export default class EsFooterHelpComponent extends Component {

    get linkUrl() {
        return this.args.contributeLink || 'https://github.com/ember-learn/ember-website';
      }
}


<|start_filename|>addon/styles/helpers/unstyled.css<|end_filename|>
[class*='unstyled'],
.list-unstyled {
  list-style: none;
  padding: 0;
  margin: 0;
  border: 0;
}


<|start_filename|>addon/styles/flex.css<|end_filename|>
.flex-row {
  display: flex;
  align-items: center;
  flex-direction: row;
}

.justify-content-between {
  justify-content: space-between;
}


<|start_filename|>app/components/es-footer-contributions.js<|end_filename|>
export { default } from 'ember-styleguide/components/es-footer-contributions';


<|start_filename|>app/services/progress.js<|end_filename|>
export { default } from 'ember-styleguide/services/progress';


<|start_filename|>app/services/navbar.js<|end_filename|>
export { default } from 'ember-styleguide/services/navbar';


<|start_filename|>addon/styles/sidebar-container.css<|end_filename|>
:root {
  --sidebar-width: 16rem;
}

.sidebar-container {
  display: grid;
  grid-gap: 2rem;
  grid-template-columns: var(--sidebar-width) minmax(0, 1fr) var(--sidebar-width);
  margin: auto;
  max-width: var(--container-width);
  padding: var(--spacing-6) var(--grid-margin);
}

.sidebar-container > *:not(.es-sidebar):not(.es-sidebar-toggle) {
  grid-column: 1 / span 2;
}

.sidebar-container > .es-sidebar + .es-sidebar-toggle + * {
  grid-column: 2 / span 2;
}

@media (max-width: 768px) {
  .sidebar-container {
    display: block;
    padding: var(--spacing-4) var(--grid-margin);
  }
}


<|start_filename|>tests/integration/components/es-sidebar-test.js<|end_filename|>
import { module, test } from 'qunit';
import { setupRenderingTest } from 'ember-qunit';
import { render, click } from '@ember/test-helpers';
import { hbs } from 'ember-cli-htmlbars';

module('Integration | Component | es-sidebar', function (hooks) {
  setupRenderingTest(hooks);

  test('it renders correctly in desktop mode', async function (assert) {
    await render(hbs`<EsSidebar>Test</EsSidebar>`);

    assert.dom('.es-sidebar .es-sidebar-content').hasText('Test');
    assert.dom('.es-sidebar-toggle').exists();
    assert.dom('.es-sidebar-toggle').isNotVisible();
    assert.dom('.es-sidebar-close').exists();
    assert.dom('.es-sidebar-close').isNotVisible();
  });

  test('it opens/closes', async function (assert) {
    await render(hbs`<EsSidebar>Test</EsSidebar>`);

    assert.dom('.es-sidebar').hasAttribute('aria-expanded', 'false');

    await click('.es-sidebar-toggle');
    assert.dom('.es-sidebar').hasAttribute('aria-expanded', 'true');

    await click('.es-sidebar-close');
    assert.dom('.es-sidebar').hasAttribute('aria-expanded', 'false');
  });

  test('it has the correct styles when in a .sidebar-container', async function (assert) {
    await render(hbs`
      <div class="sidebar-container">
        <EsSidebar>Test</EsSidebar>
      </div>
    `);

    assert.dom('.sidebar-container .es-sidebar').hasStyle({
      width: '256px',
    });

    await render(hbs`
      <div class="sidebar-container">
        <div data-test-content-left>Content left</div>
        <EsSidebar>Test</EsSidebar>
      </div>
    `);

    assert.dom('[data-test-content-left]').hasStyle({
      width: '684px',
    });
    assert.dom('.sidebar-container .es-sidebar').hasStyle({
      width: '256px',
      margin: '0px',
    });

    await render(hbs`
      <div class="sidebar-container">
        <EsSidebar>Test</EsSidebar>
        <div data-test-content-right>Content right</div>
      </div>
    `);

    assert.dom('.sidebar-container .es-sidebar').hasStyle({
      width: '256px',
      margin: '0px',
    });
    assert.dom('[data-test-content-right]').hasStyle({
      width: '684px',
    });
  });
});


<|start_filename|>addon/components/es-note.js<|end_filename|>
/* eslint-disable prettier/prettier */
import Component from '@glimmer/component';

const Mascots = {
  tomster: { image: '/images/mascots/tomster.png', name: 'Tomster' },
  zoey: { image: '/images/mascots/zoey.png', name: 'Zoey' },
}

function randomMascot() {
  let mascotKeys = Object.keys(Mascots);

  let randomIndex = Math.floor(Math.random() * Math.floor(mascotKeys.length));

  return Mascots[mascotKeys[randomIndex]];
}

export default class EsNoteComponent extends Component {
  constructor() {
    super(...arguments);

    if (this.args.mascot) {
      this.mascot = Mascots[this.args.mascot];
    } else {
      this.mascot = randomMascot();
    }
  }
}


<|start_filename|>addon/styles/helpers/padding.css<|end_filename|>
.p-0 {
  padding: 0;
}

.p-1 {
  padding: var(--spacing-1);
}

.p-2 {
  padding: var(--spacing-2);
}

.p-3 {
  padding: var(--spacing-3);
}

.p-4 {
  padding: var(--spacing-4);
}

.p-5 {
  padding: var(--spacing-5);
}

.p-6 {
  padding: var(--spacing-6);
}

.px-0 {
  padding-right: 0;
  padding-left: 0;
}

.px-1 {
  padding-right: var(--spacing-1);
  padding-left: var(--spacing-1);
}

.px-2 {
  padding-right: var(--spacing-2);
  padding-left: var(--spacing-2);
}

.px-3 {
  padding-right: var(--spacing-3);
  padding-left: var(--spacing-3);
}

.px-4 {
  padding-right: var(--spacing-4);
  padding-left: var(--spacing-4);
}

.px-5 {
  padding-right: var(--spacing-5);
  padding-left: var(--spacing-5);
}

.px-6 {
  padding-right: var(--spacing-6);
  padding-left: var(--spacing-6);
}

.py-0 {
  padding-top: 0;
  padding-bottom: 0;
}

.py-1 {
  padding-top: var(--spacing-1);
  padding-bottom: var(--spacing-1);
}

.py-2 {
  padding-top: var(--spacing-2);
  padding-bottom: var(--spacing-2);
}

.py-3 {
  padding-top: var(--spacing-3);
  padding-bottom: var(--spacing-3);
}

.py-4 {
  padding-top: var(--spacing-4);
  padding-bottom: var(--spacing-4);
}

.py-5 {
  padding-top: var(--spacing-5);
  padding-bottom: var(--spacing-5);
}

.py-6 {
  padding-top: var(--spacing-6);
  padding-bottom: var(--spacing-6);
}

.pt-0 {
  padding-top: 0;
}

.pt-1 {
  padding-top: var(--spacing-1);
}

.pt-2 {
  padding-top: var(--spacing-2);
}

.pt-3 {
  padding-top: var(--spacing-3);
}

.pt-4 {
  padding-top: var(--spacing-4);
}

.pt-5 {
  padding-top: var(--spacing-5);
}

.pt-6 {
  padding-top: var(--spacing-6);
}

.pr-0 {
  padding-right: 0;
}

.pr-1 {
  padding-right: var(--spacing-1);
}

.pr-2 {
  padding-right: var(--spacing-2);
}

.pr-3 {
  padding-right: var(--spacing-3);
}

.pr-4 {
  padding-right: var(--spacing-4);
}

.pr-5 {
  padding-right: var(--spacing-5);
}

.pr-6 {
  padding-right: var(--spacing-6);
}

.pb-0 {
  padding-bottom: 0;
}

.pb-1 {
  padding-bottom: var(--spacing-1);
}

.pb-2 {
  padding-bottom: var(--spacing-2);
}

.pb-3 {
  padding-bottom: var(--spacing-3);
}

.pb-4 {
  padding-bottom: var(--spacing-4);
}

.pb-5 {
  padding-bottom: var(--spacing-5);
}

.pb-6 {
  padding-bottom: var(--spacing-6);
}

.pl-0 {
  padding-left: 0;
}

.pl-1 {
  padding-left: var(--spacing-1);
}

.pl-2 {
  padding-left: var(--spacing-2);
}

.pl-3 {
  padding-left: var(--spacing-3);
}

.pl-4 {
  padding-left: var(--spacing-4);
}

.pl-5 {
  padding-left: var(--spacing-5);
}

.pl-6 {
  padding-left: var(--spacing-6);
}


<|start_filename|>addon/components/es-button.js<|end_filename|>
/* eslint-disable prettier/prettier */
import Component from '@glimmer/component';
import { action } from '@ember/object';

export default class EsButtonComponent extends Component {
  // default value
  _onClicked = () => {};
  _type = "button";

  constructor() {
    super(...arguments);


    if(!this.args.onClicked) {
      // eslint-disable-next-line no-console
      console.warn(new Error('Button created with no onClicked'));
    } else {
      this._onClicked = this.args.onClicked;
    }

    if(!this.args.type) {
      // eslint-disable-next-line no-console
      console.warn(new Error('Button created with no @type defined - defaulting to `type="button"`'));
    } else {
      this._type = this.args.type;
    }
  }

  @action
  buttonClicked() {
    this._onClicked();
  }
}


<|start_filename|>addon/styles/components/es-button.css<|end_filename|>
.es-button,
a.es-button,
a.es-button:link,
a.es-button:visited,
.es-button-secondary,
a.es-button-secondary,
a.es-button-secondary:link,
a.es-button-secondary:visited {
  background-color: var(--color-button-bg);
  color: var(--color-button-text);
  padding-left: var(--spacing-3);
  padding-right: var(--spacing-3);
  padding-top: var(--spacing-1);
  padding-bottom: var(--spacing-1);
  border: 0;
  border-radius: var(--radius);
  font-size: var(--font-size-md);
  line-height: var(--line-height-md);
  transition: background-color 0.2s, color 0.1s;
  box-shadow: 0 0 2px -1px var(--color-gray-800), 0 2px 9px -5px var(--color-gray-800);
}

.es-button:focus,
a.es-button:focus,
.es-button-secondary:focus,
a.es-button-secondary:focus {
  box-shadow: var(--focus), 0 0 2px -1px var(--color-gray-800), 0 2px 8px -4px var(--color-gray-800);
}

.es-button:hover,
.es-button:active,
a.es-button:hover,
a.es-button:active {
  background: var(--color-button-bg-hover);
}

a.es-button,
a.es-button-secondary {
  display: inline-block;
  text-decoration: none;
}

.es-button-secondary,
a.es-button-secondary,
a.es-button-secondary:link,
a.es-button-secondary:visited {
  background: var(--color-button-secondary-bg);
  color: var(--color-button-secondary-text);
}

.es-button-secondary:hover,
.es-button-secondary:active,
a.es-button-secondary:hover,
a.es-button-secondary:active {
  background: var(--color-button-secondary-bg-hover);
  color: var(--color-button-secondary-text-hover);
}


<|start_filename|>addon/styles/well.css<|end_filename|>
.well {
  display: flex;
  height: 100%;
  box-sizing: border-box;
  border-radius: var(--radius-lg);
  border: 2px solid var(--color-gray-200);
  overflow: hidden;
}

a.well:link,
a.well:visited,
.well {
  background: var(--color-white);
}

a.well:focus {
  border-color: var(--color-white);
}

a.well:hover {
  border-color: var(--color-gray-300);
}

.well img {
  display: block;
  margin: auto;
}

[class*="well-"] {
  position: relative;
  height: 0;
}

.well-1\/1 {
  height: 0;
  padding: 0 0 100%;
}

.well-4\/3 {
  height: 0;
  padding: 0 0 75%;
}

.well-16\/9 {
  height: 0;
  padding: 0 0 56.25%;
}

[class*="well-"] img {
  position: absolute;
  top: 50%;
  left: 50%;
  max-width: calc(100% - 2 * var(--spacing-3));
  max-height: calc(100% - 2 * var(--spacing-3));
  transform: translate(-50%, -50%);
}


<|start_filename|>addon/styles/helpers/rounded.css<|end_filename|>
.rounded,
.rounded-sm {
  border-radius: var(--radius);
}

.rounded-lg {
  border-radius: var(--radius-lg);
}


<|start_filename|>addon/styles/grid.css<|end_filename|>
/**
* A grid is an equally spaced matrix of items of a common type.
* e.q. a bunch of logos, mascots, cards, etc.
*/
.grid {
  --column-count: 1;

  display: grid;
  grid-template-columns: repeat(var(--column-count), 1fr);
  grid-gap: var(--grid-gap-md);
}

.grid > * {
  grid-column: span 1;
  align-items: stretch;
}

@media (max-width: 1007px) {
  .sm\:grid-2 {
    --column-count: 2;
  }

  .sm\:grid-3 {
    --column-count: 3;
  }

  .sm\:grid-4 {
    --column-count: 4;
  }
}

@media (min-width: 1008px) {
  .lg\:grid-2 {
    --column-count: 2;
  }

  .lg\:grid-3 {
    --column-count: 3;
  }

  .lg\:grid-4 {
    --column-count: 4;
  }

  .lg\:grid-5 {
    --column-count: 5;

    grid-gap: var(--grid-gap-sm);
  }
}


<|start_filename|>addon/components/es-footer-contributions.js<|end_filename|>
/* eslint-disable ember/no-empty-glimmer-component-classes, prettier/prettier */
import Component from '@glimmer/component';

export default class EsFooterContributionsComponent extends Component {
}


<|start_filename|>app/components/es-footer-statement.js<|end_filename|>
export { default } from 'ember-styleguide/components/es-footer-statement';


<|start_filename|>addon/styles/backgrounds.css<|end_filename|>
.bg-brand {
  background-color: var(--color-brand);
  color: var(--color-brand-text);

  & h1,
  & h2,
  & h3,
  & h4,
  & h5,
  & h6,
  & .medium,
  & .large,
  & .xlarge {
    color: var(--color-white);
  }
}

.bg-light {
  background-color: var(--color-gray-100);
  color: var(--color-gray-700);
}

.bg-light-muted {
  background-color: var(--color-gray-200);
  color: var(--color-gray-700);
}

.bg-dark {
  background-color: var(--color-gray-900);
  color: var(--color-gray-300);

  --color-link: var(--color-brand);
  --color-link-hover: var(--color-brand-hc-light);

  --color-card-bg: var(--color-gray-900);
  --color-card-border: var(--color-gray-700);
  --color-card-bg-hover: var(--color-gray-800);
  --color-card-icon: var(--color-gray-400);
  --color-card-icon-hover: var(--color-white);
  --color-card-text: var(--color-gray-400);
  --color-card-text-hover: var(---color-white);

  & h1,
  & h2,
  & h3,
  & h4,
  & h5,
  & h6,
  & .medium,
  & .large,
  & .xlarge,
  & a {
    color: var(--color-white);
  }

  & a {
    background-image: linear-gradient(
      var(--color-white-40),
      var(--color-white-40)
    );
  }
}

.bg-info {
  background: var(--color-info);
}

.bg-none,
.bg-none a,
.bg-none a:link,
.bg-none a:visited {
  background: none;
}

.text-light {
  color: var(--color-white);

  & h1,
  & h2,
  & h3,
  & h4,
  & h5,
  & h6,
  & .medium,
  & .large,
  & .xlarge {
    color: var(--color-white);
  }
}


<|start_filename|>app/components/es-footer-help.js<|end_filename|>
export { default } from 'ember-styleguide/components/es-footer-help';


<|start_filename|>tests/dummy/app/helpers/increment.js<|end_filename|>
/* eslint-disable prettier/prettier */
import { helper } from '@ember/component/helper';

export function inc(params/*, hash*/) {
  return parseInt(params[0] || '0', 10) + 1;
}

export default helper(inc);


<|start_filename|>addon/styles/layout.css<|end_filename|>
/**
* Layout provides a way to arrange children of different types
* in a designed and meaningful way.
* Each child that should not cover the full width needs
* at least a class that specifies how many columns it will span and may
* have an additional class that specifies the start column.
* Columns can be reordered by specifying a start column for two elements,
* making them start in switched places.
*
* The layout uses 6 columns on large and 4 columns on smaller screens.
*/

.layout {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-gap: var(--grid-gap-md) var(--grid-gap-lg);
  grid-auto-flow: row dense;
}

@media (max-width: 1007px) {
  .layout > * {
    grid-column-end: span 4;
  }

  .layout .sm\:col-1 {
    grid-column-end: span 1;
  }

  .layout .sm\:col-2 {
    grid-column-end: span 2;
  }

  .layout .sm\:col-3 {
    grid-column-end: span 3;
  }

  .layout .sm\:col-4 {
    grid-column-end: span 4;
  }

  .layout .sm\:start-1 {
    grid-column-start: 1;
  }

  .layout .sm\:start-2 {
    grid-column-start: 2;
  }

  .layout .sm\:start-3 {
    grid-column-start: 3;
  }

  .layout .sm\:start-4 {
    grid-column-start: 4;
  }
}

@media (min-width: 1008px) {
  .layout {
    grid-template-columns: repeat(6, 1fr);
  }

  .layout > * {
    grid-column-end: span 6;
  }

  .layout .lg\:col-1 {
    grid-column-end: span 1;
  }

  .layout .lg\:col-2 {
    grid-column-end: span 2;
  }

  .layout .lg\:col-3 {
    grid-column-end: span 3;
  }

  .layout .lg\:col-4 {
    grid-column-end: span 4;
  }

  .layout .lg\:col-5 {
    grid-column-end: span 5;
  }

  .layout .lg\:col-6 {
    grid-column-end: span 5;
  }

  .layout .lg\:start-1 {
    grid-column-start: 1;
  }

  .layout .lg\:start-2 {
    grid-column-start: 2;
  }

  .layout .lg\:start-3 {
    grid-column-start: 3;
  }

  .layout .lg\:start-4 {
    grid-column-start: 4;
  }

  .layout .lg\:start-5 {
    grid-column-start: 5;
  }

  .layout .lg\:start-6 {
    grid-column-start: 6;
  }
}


<|start_filename|>app/components/es-card-content.js<|end_filename|>
/* eslint-disable prettier/prettier */
export { default } from 'ember-styleguide/components/es-card-content';

<|start_filename|>app/components/es-header-navbar-link.js<|end_filename|>
export { default } from 'ember-styleguide/components/es-header-navbar-link';


<|start_filename|>addon/styles/helpers/flex.css<|end_filename|>
/* Flex boxes */

.flex-horizontal-between {
  display: flex;
  justify-content: space-between;
}


<|start_filename|>addon/styles/icon.css<|end_filename|>
.icon-wrapper {
  display: inline-block;
}

.circle {
  border-radius: 50%;
  padding: 1em;
}

.icon {
  width: 1.5em;
  vertical-align: middle;
}

.icon-left {
  margin-right: 0.5em;
}

.icon-right {
  margin-left: 0.5em;
}

<|start_filename|>tests/dummy/app/styles/app.css<|end_filename|>
.self-executing-code-block {
  margin-bottom: 2rem;
}

@media only percy {
  .hide-in-percy {
    visibility: hidden;
  }
}

.border-dashed {
  border: 1px dashed var(--color-gray-500);
}

.spacer-xsmall {
  height: var(--spacing-1);
}

.spacer-small {
  height: var(--spacing-2);
}

.spacer-medium {
  height: var(--spacing-3);
}

.spacer-large {
  height: var(--spacing-4);
}

.spacer-xlarge {
  height: var(--spacing-5);
}


<|start_filename|>addon/styles/global.css<|end_filename|>
:root {
  /* Vertical rhythm is based on multiples of 8. */

  --font-family-sans: "Inter var", "Inter web", -apple-system,
    BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif,
    Apple Color Emoji, Segoe UI Emoji;
  --font-family-mono: SFMono-Regular, Consolas, Liberation Mono, Menlo,
    monospace;

  --color-white: #fff;
  --color-gray-100: #f4f6f8;
  --color-gray-200: #ebeef2;
  --color-gray-300: #dce0e6;
  --color-gray-400: #bec4cc;
  --color-gray-500: #8f949f;
  --color-gray-600: #6a707a;
  --color-gray-700: #42474f;
  --color-gray-800: #2b2d34;
  --color-gray-900: #1c1e24;
  --color-black: #000;
  --color-white-40: rgba(255, 255, 255, 0.4);

  --color-brand: #e04e39;
  --color-brand-text: #ffd7d2;
  --color-brand-hc-light: #ff5c44;
  --color-brand-hc-dark: #cf2d20;
  --color-brand-40: rgba(224, 78, 57, 0.4);

  --color-blue-dark: #0076D6;
  --color-blue: #10AAFF;
  --color-blue-light: #DFFDFF;

  --color-green: #8BE998;
  --color-green-light: #C7F9DE;

  --color-yellow: #FFEC64;
  --color-yellow-light: #FFFAD6;

  --color-lilac: #7650F1;
  --color-lilac-light: #D5CBFF;

  --color-gray: #a2a3a8;
  --color-success: #d9f9e3;
  --color-danger: #ffd8e1;
  --color-warning: #fcffc9;
  --color-info: #e3eefc;

  --font-size-sm: 0.8125rem; /* 13px, use sparsly! */
  --font-size-base: 0.9375rem; /* p = 15px */
  --font-size-md: 0.9375rem; /* h3 = 15px */
  --font-size-lg: 1.1875rem; /* h2 = 19px */
  --font-size-xl: 1.5625rem; /* h1 = 25px */
  --font-size-hero-1: 1.8754rem; /* display 1 = 30px */
  --font-size-hero-2: 0.9375rem; /* display 2 = 15px */

  --line-height-xs: calc(16 / 13); /* 16px */
  --line-height-base: 1.6; /* 24px */
  --line-height-md: 1.6; /* 24px */
  --line-height-lg: calc(24 / 19); /* 24px */
  --line-height-xl: 2; /* 32px */
  --line-height-hero-1: calc(32 / 30); /* 32px */
  --line-height-hero-2: 1.6; /* 24px */

  --font-weight-1: 200;
  --font-weight-2: 400;
  --font-weight-3: 600;

  --spacing-1: 0.5rem; /* 8px */
  --spacing-2: 1rem; /* 16px */
  --spacing-3: 1.5rem; /* 24px */
  --spacing-4: 2.5rem; /* 40px */
  --spacing-5: 3.5rem; /* 56px */
  --spacing-6: 4rem; /* 64px */

  --container-width: 60.75rem;
  --grid-gap-sm: var(--spacing-2);
  --grid-gap-md: var(--spacing-3);
  --grid-gap-lg: var(--spacing-4);
  --grid-margin: 0.75rem;

  --radius: 0.3125rem;
  --radius-lg: 0.625rem;

  --color-button-text: var(--color-white);
  --color-button-bg: var(--color-brand);
  --color-button-bg-hover: var(--color-brand-hc-dark);
  --color-button-secondary-text: var(--color-brand-hc-dark);
  --color-button-secondary-bg: var(--color-white);
  --color-button-secondary-bg-hover: var(--color-brand);
  --color-button-secondary-text-hover: var(--color-white);

  --color-card-bg: var(--color-gray-100);
  --color-card-border: var(--color-gray-300);
  --color-card-bg-hover: var(--color-gray-200);
  --color-card-text: var(--color-gray-700);
  --color-card-text-hover: var(---color-gray-900);

  --color-link: var(--color-brand-hc-dark);
  --color-link-hover: var(--color-brand);

  --focus: 0 0 0px 3px rgba(25, 116, 220, 0.8);
}

@media (min-width: 1008px) {
  /* Vertical rhythm is based on multiples of 9. */

  :root {
    --font-size-sm: 0.875rem; /* 14px, use sparsly! */
    --font-size-base: 1rem; /* 16px */
    --font-size-md: 1.0625rem; /* 17px */
    --font-size-lg: 1.25rem; /* 20px */
    --font-size-xl: 2.25rem; /* 36px */
    --font-size-hero-1: 3rem; /* 48px */
    --font-size-hero-2: 1.125rem; /* 18px */

    --line-height-xs: calc(16 / 14); /* 16px */
    --line-height-base: 1.6875; /* 27px */
    --line-height-md: calc(27 / 17); /* 27px */
    --line-height-lg: 1.35; /* 27px */
    --line-height-xl: 1.25; /* 45px */
    --line-height-hero-1: 1.125; /* 54px */
    --line-height-hero-2: 1.5; /* 27px */

    --spacing-1: 0.5625rem; /* 9px */
    --spacing-2: 1.125rem; /* 18px */
    --spacing-3: 1.6875rem; /* 27px */
    --spacing-4: 2.25rem; /* 36px */
    --spacing-5: 3.375rem; /* 54px */
    --spacing-6: 4.5rem; /* 72px */

    --grid-gap-sm: var(--spacing-3); /* 27px */
    --grid-gap-md: 2.25rem; /* 36px */
    --grid-gap-lg: var(--spacing-4); /* 54px */
  }
}

body,
html {
  margin: 0;
  padding: 0;
  font-family: var(--font-family-sans);
  background: var(--color-white);
  color: var(--color-gray-700);
  border: 0;
}

em, i {
  font-family: "Inter web italic", var(--font-family-sans);
}

body {
  font-size: var(--font-size-base);
  line-height: var(--line-height-base);
}

a {
  color: var(--color-brand-hc-dark);
  text-decoration: underline;
}

main {
  background-color: var(--color-gray-100);
}

main a,
main a:link,
main a:visited {
  color: var(--color-link);
  text-decoration: none;
  background: no-repeat left bottom
    linear-gradient(var(--color-brand-40), var(--color-brand-40));
  background-size: 100% 0.1875rem;
}

main a:focus,
main a:hover,
main a:active,
main .active {
  color: var(--color-link-hover);
}

*:focus {
  outline: none;
  box-shadow: var(--focus);
}

p {
  margin: 0 0 1rem 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: var(--font-weight-3);
  margin: 0 0 2rem 0;
  color: var(--color-gray-900);
  font-size: inherit;
}

strong {
  font-weight: var(--font-weight-3);
}

figure,
figcaption {
  display: block;
  margin: 0;
  padding: 0;
}

figcaption {
  margin-top: var(--spacing-1);
  color: var(--color-gray-600);
}

pre,
code {
  font-family: var(--font-family-mono);
}

hr {
  background: var(--color-gray-300);
  border: 1px var(--color-gray-300);
  margin: var(--spacing-4) 0px;
  border-radius: 1px;
  height: 2px;
}

blockquote {
  position: relative;
  margin: var(--spacing-3) 0;
  padding: var(--spacing-2) var(--spacing-5);

  background: var(--color-gray-200);
  border-radius: var(--radius-lg);

  color: var(--color-gray-700);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-3);
}

blockquote:before {
  content: url('/images/quotes.svg');
  position: absolute;
  left: var(--spacing-2);
  top: var(--spacing-1);
}

img {
  max-width: 100%;
}

/*
@media (max-width: 1280px) and (min-width: 421px) {
  body,
  html {
  }
}

@media (max-width: 520px) {
  body,
  html {
  }
}
*/

/* move beyond this point */

.content-section {
  padding-top: 8rem;
  padding-bottom: 8rem;
  border: 1px solid #ccc;
}

code:not([class*="language-"]) {
  background-color: var(--color-gray-400);
  color: var(--color-black);
  border-radius: 3px;
  font-size: .9em;
  padding: .2em .5em;
  margin: 0 .1em;
}


<|start_filename|>addon/styles/typography.css<|end_filename|>
@font-face {
  font-family: "Inter web";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/Inter-Regular.woff2?v=3.15") format("woff2"),
    url("/fonts/Inter-Regular.woff?v=3.15") format("woff");
}

@font-face {
  font-family: "Inter web";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/fonts/Inter-SemiBold.woff2?v=3.15") format("woff2"),
    url("/fonts/Inter-SemiBold.woff?v=3.15") format("woff");
}

@font-face {
  font-family: "Inter web";
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url("/fonts/Inter-ExtraLight.woff2?v=3.15") format("woff2"),
    url("/fonts/Inter-ExtraLight.woff?v=3.15") format("woff");
}

@font-face {
  font-family: "Inter web italic";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/Inter-Italic.woff2?v=3.15") format("woff2"),
    url("/fonts/Inter-Italic.woff?v=3.15") format("woff");
}

@font-face {
  font-family: "Inter web italic";
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url("/fonts/Inter-SemiBoldItalic.woff2?v=3.15") format("woff2"),
    url("/fonts/Inter-SemiBoldItalic.woff?v=3.15") format("woff");
}

@font-face {
  font-family: "Inter var";
  font-weight: 100 900;
  font-display: swap;
  font-style: normal;
  src: url("/fonts/Inter-roman.var.woff2?v=3.15") format("woff2");
}

.sans {
  font-family: var(--font-family-sans);
}

.bold {
  font-weight: var(--font-weight-3);
}

.italic {
  font-style: italic;
}

p {
  margin: 0;
}

p + * {
  margin-top: var(--spacing-2);
}

.text-sm,
small {
  font-size: var(--font-size-sm);
  line-height: var(--line-height-sm);
}

.text-base,
p {
  font-size: var(--font-size-base);
  line-height: var(--line-height-base);
}

.text-md,
h3 {
  font-size: var(--font-size-md);
  line-height: var(--line-height-md);
  font-weight: var(--font-weight-3);
}

.text-lg,
h2 {
  font-size: var(--font-size-lg);
  line-height: var(--line-height-lg);
  font-weight: var(--font-weight-3);
}

.text-xl,
h1 {
  font-size: var(--font-size-xl);
  line-height: var(--line-height-xl);
  font-weight: var(--font-weight-2);
}

.text-hero-xl {
  font-size: var(--font-size-hero-1);
  line-height: var(--line-height-hero-1);
  font-weight: var(--font-weight-1);
}

.text-hero-base {
  font-size: var(--font-size-hero-2);
  line-height: var(--line-height-hero-2);
}

h1 {
  margin-bottom: var(--spacing-2);
}

h2,
h3,
h4,
h5 {
  margin-bottom: var(--spacing-1);
}

* + h1,
* + h2,
* + h3,
* + h4,
* + h5 {
  margin-top: var(--spacing-3);
}

.regular {
  font-weight: var(--font-weight-2);
}

.bold,
strong {
  font-weight: var(--font-weight-3);
}

.text-center {
  text-align: center;
}

.text-left {
  text-align: left;
}

.text-right {
  text-align: right;
}

.text-light {
  color: var(--color-gray-100);
}

.text-muted {
  color: var(--color-gray-600);
}

/* Legacy, to be removed */

.xsmall {
  font-size: var(--font-size-sm);
  line-height: var(--line-height-sm);
}

.small {
  font-size: var(--font-size-base);
  line-height: var(--line-height-base);
}

.medium {
  font-size: var(--font-size-md);
  line-height: var(--line-height-md);
  font-weight: var(--font-weight-3);
}

.large {
  font-size: var(--font-size-lg);
  line-height: var(--line-height-lg);
  font-weight: var(--font-weight-3);
}

.xlarge {
  font-size: var(--font-size-xl);
  line-height: var(--line-height-xl);
  font-weight: var(--font-weight-2);
}


<|start_filename|>addon/styles/helpers/index.css<|end_filename|>
@import 'helpers/unstyled.css';
@import 'helpers/embed.css';
@import 'helpers/flex.css';
@import 'helpers/margin.css';
@import 'helpers/padding.css';
@import 'helpers/rounded.css';

.img-fluid {
  width: 100%;
}

.max-width {
  max-width: 100%;
}

@media (max-width: 1007px) {
  .hide-on-mobile {
    display: none !important;
  }
}


<|start_filename|>addon/components/es-header.js<|end_filename|>
import Component from '@glimmer/component';
import { action, set } from '@ember/object';

import defaultLinks from '../constants/links';

const defautHomePage = 'https://www.emberjs.com';

export default class EsHeaderComponent extends Component {
  expanded = false;

  get navHome() {
    return this.args.home ?? defautHomePage;
  }

  get navLinks() {
    return this.args.links ?? defaultLinks;
  }

  @action
  onTogglerClick() {
    set(this, 'expanded', !this.expanded);
  }
}


<|start_filename|>addon/styles/helpers/embed.css<|end_filename|>
/**
 * Wrap YouTube and other iFrame based video embeds into this class.
 *
 * ```html
 * <div class="embed-video">
 *   <!-- code from YouTube -->
 *   <iframe
 *     width="640"
 *     height="360"
 *     src="https://www.youtube.com/embed/rY5D38RQoEg"
 *     frameborder="0"
 *     allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
 *     allowfullscreen
 *   ></iframe>
 *   <!-- /code from YouTube -->
 * </div>
 * ```
 */
.embed-video {
  position: relative;
  height: 0;
  padding: 0 0 56.25%; /* 16:9 */
}

.embed-video > iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}


<|start_filename|>addon/styles/container.css<|end_filename|>
.container {
  max-width: var(--container-width);
  margin-left: auto;
  margin-right: auto;
  padding: var(--spacing-6) var(--grid-margin);
  box-sizing: content-box;
}


<|start_filename|>addon/components/es-sidebar.js<|end_filename|>
import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';
import { action } from '@ember/object';
import { inject as service } from '@ember/service';

export default class EsSidebarComponent extends Component {
  @service router;

  @tracked isOpen = false;

  constructor() {
    super(...arguments);

    this.router.on('routeDidChange', this.close);
  }

  willDestroy() {
    this.router.off('routeDidChange', this.close);

    super.willDestroy(...arguments);
  }

  @action
  toggle() {
    this.isOpen = !this.isOpen;
  }

  @action
  close() {
    if (this.isOpen) {
      this.isOpen = false;
    }
  }
}


<|start_filename|>addon/styles/background-shapes.css<|end_filename|>
.bg-shape-boxes {
  background-image: url('/images/boxes-top.svg');
  background-repeat: no-repeat;
  background-position: top right;
}

.bg-shape-boxes-bottom {
  background-image: url('/images/boxes-bottom-light.svg');
  background-repeat: no-repeat;
  background-position: bottom right;
}

.dark .bg-shape-boxes-bottom {
  background-image: url('/images/boxes-bottom.svg');
}

.bg-shape-boxes-bottom + * {
  background-image: url('/images/boxes-bottom-continued.svg');
  background-repeat: no-repeat;
  background-position: top right;
}

.bg-shape-swipe-top {
  background: var(--color-brand) url('/images/swipe-top.svg') no-repeat bottom left;
  background-size: cover;
  /* this fixes a slight rendering issue in chrome */
  margin-bottom: -1px;
}

.bg-shape-swipe-bottom {
  background-image: url('/images/swipe-bottom.svg');
  background-repeat: no-repeat;
  background-position: bottom left;
}

@media (max-width: 1007px) {
  .bg-shape-boxes-bottom {
    background-size: 300px;
  }

  .bg-shape-boxes-bottom + * {
    background-size: 100px;
  }
}


<|start_filename|>addon/styles/components/es-note.css<|end_filename|>
.cta-note {
  background-color: var(--color-gray-200);
  border: 2px solid var(--color-gray-600);
  border-radius: var(--radius-lg);
  margin: auto;
  max-width: 90%;
}

.cta-note .cta-note-content {
  display: flex;
  justify-content: space-between;
}

.cta-note .cta-mascot {
  transform: rotate(15deg);
}


<|start_filename|>app/components/es-progress-bar.js<|end_filename|>
export { default } from 'ember-styleguide/components/es-progress-bar';


<|start_filename|>app/components/es-footer-info.js<|end_filename|>
export { default } from 'ember-styleguide/components/es-footer-info';


<|start_filename|>addon/styles/components/es-card.css<|end_filename|>
.card {
  align-items: flex-start;
  border: 2px solid var(--color-card-border);
  border-radius: var(--radius-lg);
  height: 100%;
  overflow: hidden;
  position: relative;
  background: var(--color-card-bg);
  color: var(--color-card-text);
}

.card__image {
  display: block;
  max-width: 100%;
  max-height: auto;
  border-bottom: 2px solid var(--color-card-border);
}

.card__icon {
  display: block;
  margin: var(--spacing-3) auto 0;
  width: 64px;
  height: auto;
  flex: 0 0 auto;
  color: var(--color-card-icon);
}

.card__content {
  flex: 1 1 100%;
  padding: var(--spacing-3);
}

.card[full-image] .card__image {
  max-width: 100%;
  max-height: inherit;
  margin: 0;
}

.card--link {
  display: flex;
  flex-flow: row nowrap;
}

.card--link:focus-within,
.card--link:hover {
  background-color: var(--color-card-bg-hover);
  border-color: var(--color-card-bg-hover);
  color: var(--color-card-text-hover);
}

.card--link a::after {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  content: '';
}

.card--link .card__icon {
  margin: var(--spacing-3) 0 var(--spacing-3) var(--spacing-3);
}

.card--link:focus-within .card__icon,
.card--link:hover .card__icon {
  color: var(--color-card-icon-hover);
}


<|start_filename|>addon/styles/components/es-header.css<|end_filename|>
.es-header {
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: var(--color-gray-900);
  padding: 0 var(--grid-margin);
}

.es-header a:link,
.es-header a:visited {
  background-image: none;
}

.es-header ul,
.es-header li {
  list-style: none;
}

.es-navbar {
  background-color: var(--color-gray-900);
  color: var(--color-gray-100);
  display: flex;
  flex-direction: column;
  font-size: inherit;
  max-width: var(--container-width);
  width: 100%;
  padding: 0.5rem 0;
}

.navbar-brand-wrapper {
  display: block;
  height: 2.5rem;
  margin: auto auto auto 0;
  border-radius: var(--radius-lg);
}

.navbar-brand {
  display: block;
  height: 100%;
  width: auto;
}

.navbar-list {
  display: none;
  margin: 0.5rem -0.5rem 0;
  padding: 0;
  font-weight: var(--font-weight-3);
  list-style: none;
}

.navbar-list > li > * {
  display: block;
  text-align: left;
  font-size: var(--font-size-base);
  font-weight: inherit;
  border-radius: var(--radius-lg);
  box-sizing: border-box;
  line-height: var(--line-height-base);
  color: var(--color-white);
}

.navbar-toggler {
  display: block;
  width: 3rem;
  height: 2rem;
  margin: -2.25rem -0.5rem 0.25rem auto;
  padding: 0;
  border: 0;
  background: transparent
    url("data:image/svg+xml,%3Csvg height='24' width='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19 18a1 1 0 0 1 0 2H1a1 1 0 0 1 0-2zm0-7a1 1 0 0 1 0 2H1a1 1 0 0 1 0-2zm0-7a1 1 0 0 1 0 2H1a1 1 0 1 1 0-2z' fill='%23fff' fill-rule='evenodd'/%3E%3C/svg%3E")
    center no-repeat;
  overflow: hidden;
  text-indent: -999rem;
  border-radius: var(--radius-lg);
}

.navbar-expanded .navbar-list,
.navbar-expanded .navbar-end {
  display: block;
}

.navbar-list-item {
  position: relative;
}

.navbar-list-item-link,
.navbar-list-item-dropdown-toggle,
.navbar-dropdown-list-item-link {
  width: 100%;
  padding: 0.5rem 1rem;
  box-sizing: border-box;
}

.navbar-list-item-link,
.navbar-list-item-link:link,
.navbar-list-item-link:visited {
  display: block;
  color: inherit;
  text-decoration: none;
  width: unset;
}

.navbar-list-item-link:hover {
  color: var(--color-brand-hc-light);
}

.navbar-list-item-dropdown-toggle {
  border: 0;
  display: block;
  padding-right: 2rem;
  text-decoration: none;
  white-space: nowrap;
  background: transparent
    url("data:image/svg+xml,%3Csvg width='8' height='8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.295 3.707C-.335 3.077.11 2 1.002 2h5.996c.891 0 1.337 1.077.707 1.707l-2.998 3a1 1 0 0 1-1.414 0l-2.998-3z' fill='%23A3A6AF' fill-rule='nonzero'/%3E%3C/svg%3E")
    right 1.25rem center no-repeat;
}

.navbar-list-item-dropdown-toggle:focus,
.navbar-list-item-dropdown-toggle:hover {
  background-image: url("data:image/svg+xml,%3Csvg width='8' height='8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.295 3.707C-.335 3.077.11 2 1.002 2h5.996c.891 0 1.337 1.077.707 1.707l-2.998 3a1 1 0 0 1-1.414 0l-2.998-3z' fill='%23FFF' fill-rule='nonzero'/%3E%3C/svg%3E");
}

.navbar-list-item-dropdown-toggle[aria-expanded="true"] {
  color: var(--color-brand-hc-light);
  background-image: url("data:image/svg+xml,%3Csvg width='8' height='8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.295 4.293C-.335 4.923.11 6 1.002 6h5.996c.891 0 1.337-1.077.707-1.707l-2.998-3a1 1 0 0 0-1.414 0l-2.998 3z' fill='%23E04E39' fill-rule='nonzero'/%3E%3C/svg%3E");
}

.navbar-dropdown-list {
  margin: 0;
  padding: 0;
  background: var(--color-gray-100);
  border-radius: var(--radius);
}

.navbar-dropdown-list :first-child :first-child {
  border-top-left-radius: var(--radius-lg);
  border-top-right-radius: var(--radius-lg);
}

.navbar-dropdown-list :last-child :last-child {
  border-bottom-left-radius: var(--radius-lg);
  border-bottom-right-radius: var(--radius-lg);
}

.separator {
  margin: 0;
  height: 0;
  list-style: none;
  border-bottom: 2px solid var(--color-gray-300);
}

.navbar-dropdown-list-item {
  display: block;
  white-space: nowrap;
}

.navbar-dropdown-list-item-link,
.navbar-dropdown-list-item-link:link,
.navbar-dropdown-list-item-link:visited {
  color: var(--color-brand);
  display: block;
  text-decoration: none;
}

.navbar-dropdown-list-item-link:hover,
.navbar-dropdown-list-item-link:focus {
  position: relative;
  background: var(--color-gray-300);
  color: var(--color-brand);
  z-index: 1;
}

.navbar-end {
  display: none;
}

@media (min-width: 1008px) {
  .es-navbar {
    display: flex;
    flex-direction: row;
    padding: 0;
  }

  .navbar-brand-wrapper {
    height: 2.8125rem;
    margin-right: var(--spacing-4);
  }

  .navbar-list,
  .navbar-expanded .navbar-list {
    display: flex;
    margin-top: 0;
  }

  .navbar-toggler {
    display: none;
  }

  .navbar-list-item {
    padding: var(--spacing-3) var(--spacing-3) var(--spacing-3) 0;
  }

  .navbar-list-item-link,
  .navbar-list-item-dropdown-toggle {
    padding: 0.3125rem 0 0.25rem;
  }

  .navbar-list-item-link {
    margin-right: -0.5rem;
    margin-left: -0.5rem;
    padding-right: 0.5rem;
    padding-left: 0.5rem;
  }

  .navbar-list-item-dropdown-toggle {
    width: auto;
    margin-left: -0.5rem;
    padding-right: 1rem;
    padding-left: 0.5rem;
    background-position: right 1px center;
  }

  .navbar-dropdown-list {
    box-shadow: 0 0 1px 0 rgba(73, 79, 95, 0.6),
      0 2px 10px -5px rgba(73, 79, 95, 0.55),
      0 3px 30px -15px rgba(73, 79, 95, 0.8),
      0 0 50px -5px rgba(73, 79, 95, 0.5);
    width: auto;
    min-width: 12rem;
    margin: 0;
    position: absolute;
    left: -0.5rem;
    z-index: 100;
  }

  .navbar-end {
    display: block;
    align-self: center;
  }
}


<|start_filename|>tests/integration/components/es-note-test.js<|end_filename|>
/* eslint-disable prettier/prettier */
import { find, render } from '@ember/test-helpers';
import { module, test } from 'qunit';
import { setupRenderingTest } from 'ember-qunit';
import hbs from 'htmlbars-inline-precompile';

module('Integration | Component | es note', function(hooks){
  setupRenderingTest(hooks);

  test('it renders', async function(assert) {
    await render(hbs`<EsNote @mascot="tomster" />`);

    assert.dom('[data-test-es-note-heading]').hasText('Tomster says...');

    await render(hbs`
      <EsNote>
        template block text
      </EsNote>
    `);

    assert.dom('.cta-note-message').hasText('template block text');
  });

  test('out of 2 mascots randomly selects each at least 1 in 15 renders', async function(assert) {
    const renderedNames = [];

    for (let i = 0; i < 15; i++) {
      let name;

      await render(hbs`<EsNote />`);
      name = find('[data-test-es-note-heading]').textContent.trim().split(' ')[0];

      renderedNames.push(name);
    }

    assert.ok(
      renderedNames.includes('Tomster'),
      'Tomster rendered'
    );

    assert.ok(
      renderedNames.includes('Zoey'),
      'Zoey rendered'
    );
  });
});


<|start_filename|>addon/styles/components/es-progress-bar.css<|end_filename|>
.progress-bar {
  position: fixed;
  left: 0;
  top: 0;
  height: 3px;
  box-shadow: 0 0 10px rgba(0, 13, 41, 0.6);
  background: var(--color-brand) !important;
}


<|start_filename|>addon/constants/links.js<|end_filename|>
export default [
  {
    name: 'Docs',
    type: 'dropdown',
    items: [
      {
        href: 'https://guides.emberjs.com/release/',
        name: 'Ember.js Guides',
        type: 'link',
      },
      {
        href: 'https://api.emberjs.com',
        name: 'API Reference',
        type: 'link',
      },
      {
        href: 'https://cli.emberjs.com',
        name: 'CLI Guides',
        type: 'link',
      },
      {
        type: 'divider',
      },
      {
        href: 'https://emberjs.com/learn',
        name: 'Learn Ember',
        type: 'link',
      },
    ],
  },
  {
    name: 'Releases',
    type: 'dropdown',
    items: [
      {
        href: 'https://emberjs.com/releases',
        name: 'Overview',
        type: 'link',
      },
      {
        href: 'https://emberjs.com/releases/lts',
        name: '→ LTS',
        type: 'link',
      },
      {
        href: 'https://emberjs.com/releases/release',
        name: '→ Stable',
        type: 'link',
      },
      {
        href: 'https://emberjs.com/releases/beta',
        name: '→ Beta',
        type: 'link',
      },
      {
        href: 'https://emberjs.com/releases/canary',
        name: '→ Canary',
        type: 'link',
      },
      {
        type: 'divider',
      },
      {
        href: 'https://emberjs.com/editions',
        name: 'Editions',
        type: 'link',
      },
      {
        href: 'https://deprecations.emberjs.com',
        name: 'Deprecations',
        type: 'link',
      },
    ],
  },
  {
    href: 'https://blog.emberjs.com',
    name: 'Blog',
    type: 'link',
  },
  {
    name: 'Community',
    type: 'dropdown',
    items: [
      {
        href: 'https://emberjs.com/community',
        name: 'The Ember Community',
        type: 'link',
      },
      {
        href: 'https://emberjs.com/guidelines',
        name: 'Guidelines',
        type: 'link',
      },
      {
        href: 'https://help-wanted.emberjs.com/',
        name: 'Help Wanted',
        type: 'link',
      },
      {
        type: 'divider',
      },
      {
        href: 'https://emberjs.com/community/meetups',
        name: 'Meetups',
        type: 'link',
      },
      {
        type: 'divider',
      },
      {
        href: 'http://emberconf.com/',
        name: 'Ember Conf',
        type: 'link',
      },
    ],
  },
  {
    name: 'About',
    type: 'dropdown',
    items: [
      {
        href: 'https://emberjs.com/team',
        name: 'The Team',
        type: 'link',
      },
      {
        type: 'divider',
      },
      {
        href: 'https://emberjs.com/logos',
        name: 'Branding',
        type: 'link',
      },
      {
        href: 'https://emberjs.com/mascots',
        name: 'Mascots',
        type: 'link',
      },
      {
        type: 'divider',
      },
      {
        href: 'https://emberjs.com/ember-users',
        name: 'Who Uses Ember',
        type: 'link',
      },
      {
        href: 'https://emberjs.com/sponsors',
        name: 'Sponsors',
        type: 'link',
      },
      {
        type: 'divider',
      },
      {
        href: 'https://emberjs.com/about/legal',
        name: 'Legal',
        type: 'link',
      },
      {
        href: 'https://emberjs.com/security',
        name: 'Security',
        type: 'link',
      },
    ],
  },
];
