├── .editorconfig
├── .ember-cli
├── .eslintignore
├── .eslintrc.js
├── .gitignore
├── .npmignore
├── .npmrc
├── .svgo-dist.yml
├── .svgo-source.yml
├── .template-lintrc.js
├── .watchmanconfig
├── CNAME
├── CONTRIBUTING.md
├── Jenkinsfile-auto-deploy
├── Jenkinsfile-auto-deploy-marker
├── Jenkinsfile-pr-checks
├── LICENSE.md
├── README.md
├── app
├── components
│ ├── avatar-badge.js
│ ├── avatar-stack.js
│ ├── banner-notification.js
│ ├── banner-notifications.js
│ ├── community-bar.js
│ ├── community-bar
│ │ ├── local-navigation-dropdown.js
│ │ ├── local-navigation-level-2.js
│ │ ├── local-navigation-level-3.js
│ │ └── local-navigation.js
│ ├── community-header.js
│ ├── community-header
│ │ └── local-navigation-dropdown-level-2.js
│ ├── dialog.js
│ ├── dropdown.js
│ ├── global-footer-wikia-org.js
│ ├── global-footer.js
│ ├── global-navigation.js
│ ├── global-navigation
│ │ ├── anon.js
│ │ ├── content-recommendation-card.js
│ │ ├── content-recommendations.js
│ │ ├── link-logout.js
│ │ ├── search-modal.js
│ │ ├── search.js
│ │ ├── sponsored-content-card.js
│ │ └── user-modal.js
│ ├── icon.js
│ ├── on-site-notifications
│ │ ├── notification-card.js
│ │ ├── notifications-dropdown.js
│ │ ├── notifications-list.js
│ │ └── notifications.js
│ ├── spinner.js
│ ├── tab.js
│ ├── tabs.js
│ ├── textarea.js
│ └── tracking-pixel.js
├── helpers
│ ├── classnames.js
│ ├── optional.js
│ └── wrap-me.js
├── models
│ └── wds-on-site-notifications
│ │ ├── wds-on-site-notification.js
│ │ └── wds-on-site-notifications.js
├── services
│ ├── wds-banner-notifications.js
│ └── wds-on-site-notifications.js
├── templates
│ └── components
│ │ ├── avatar-badge.hbs
│ │ ├── avatar-image.hbs
│ │ ├── avatar-stack.hbs
│ │ ├── avatar.hbs
│ │ ├── banner-notification.hbs
│ │ ├── banner-notifications.hbs
│ │ ├── button.hbs
│ │ ├── community-bar.hbs
│ │ ├── community-bar
│ │ ├── local-navigation-dropdown.hbs
│ │ ├── local-navigation-level-2.hbs
│ │ ├── local-navigation-level-3.hbs
│ │ └── local-navigation.hbs
│ │ ├── community-header.hbs
│ │ ├── community-header
│ │ ├── local-navigation-dropdown-level-2.hbs
│ │ ├── local-navigation-dropdown.hbs
│ │ ├── local-navigation.hbs
│ │ ├── nav-item-with-icon.hbs
│ │ └── nav-item.hbs
│ │ ├── dialog.hbs
│ │ ├── dropdown-content.hbs
│ │ ├── dropdown-icon.hbs
│ │ ├── dropdown-toggle.hbs
│ │ ├── dropdown.hbs
│ │ ├── global-footer-fandom.hbs
│ │ ├── global-footer-wikia-org.hbs
│ │ ├── global-footer.hbs
│ │ ├── global-footer
│ │ ├── bottom-bar.hbs
│ │ ├── image.hbs
│ │ ├── link-branded.hbs
│ │ ├── link-image.hbs
│ │ ├── link-text.hbs
│ │ └── section.hbs
│ │ ├── global-navigation.hbs
│ │ ├── global-navigation
│ │ ├── anon.hbs
│ │ ├── content-recommendation-card.hbs
│ │ ├── content-recommendations.hbs
│ │ ├── link-button.hbs
│ │ ├── link-group.hbs
│ │ ├── link-logout.hbs
│ │ ├── link-text.hbs
│ │ ├── main-navigation.hbs
│ │ ├── search-modal.hbs
│ │ ├── search.hbs
│ │ ├── sponsored-content-card.hbs
│ │ ├── user-modal.hbs
│ │ └── user.hbs
│ │ ├── icon.hbs
│ │ ├── label.hbs
│ │ ├── list.hbs
│ │ ├── on-site-notifications
│ │ ├── notification-card.hbs
│ │ ├── notifications-dropdown.hbs
│ │ ├── notifications-list.hbs
│ │ └── notifications.hbs
│ │ ├── spinner.hbs
│ │ ├── tabs.hbs
│ │ ├── textarea.hbs
│ │ ├── toggle.hbs
│ │ └── tracking-pixel.hbs
└── utils
│ ├── local-storage-connector.js
│ ├── notification-types.js
│ ├── thumbnail.js
│ ├── viewport-size.js
│ └── wds-track.js
├── config
├── deploy.js
├── environment.js
└── optional-features.json
├── crowdin.conf
├── ember-cli-build.js
├── i18n
├── de
│ └── design-system.json
├── en
│ └── design-system.json
├── es
│ └── design-system.json
├── fi
│ └── design-system.json
├── fr
│ └── design-system.json
├── id
│ └── design-system.json
├── it
│ └── design-system.json
├── ja
│ └── design-system.json
├── ko
│ └── design-system.json
├── nl
│ └── design-system.json
├── pl
│ └── design-system.json
├── pt
│ └── design-system.json
├── ru
│ └── design-system.json
├── vi
│ └── design-system.json
├── zh-hant
│ └── design-system.json
└── zh
│ └── design-system.json
├── index.js
├── jsconfig.json
├── package.json
├── scripts
├── create-svg-sprite.js
├── release-test.sh
├── release.sh
└── set-artifactory-token.sh
├── style-guide
├── assets
│ ├── wds-avatar-badges-admin.svg
│ ├── wds-avatar-badges-content-moderator.svg
│ ├── wds-avatar-badges-discussion-moderator.svg
│ ├── wds-avatar-badges-global-discussions-moderator.svg
│ ├── wds-avatar-badges-helper.svg
│ ├── wds-avatar-badges-staff.svg
│ ├── wds-avatar-badges-vstf.svg
│ ├── wds-company-logo-fandom-heart.svg
│ ├── wds-company-logo-fandom-white.svg
│ ├── wds-company-logo-fandom.svg
│ ├── wds-company-logo-gamepedia-book.svg
│ ├── wds-company-logo-gamepedia.svg
│ ├── wds-company-logo-wikia-org-white.svg
│ ├── wds-company-logo-wikia-org.svg
│ ├── wds-company-logo-wikia.svg
│ ├── wds-company-store-appstore.svg
│ ├── wds-company-store-googleplay.svg
│ ├── wds-company-store-logo-ddb.svg
│ ├── wds-company-store-logo-fandom.svg
│ ├── wds-icons-activity-small.svg
│ ├── wds-icons-activity-tiny.svg
│ ├── wds-icons-activity.svg
│ ├── wds-icons-add-small.svg
│ ├── wds-icons-add-tiny.svg
│ ├── wds-icons-add.svg
│ ├── wds-icons-alert-small.svg
│ ├── wds-icons-alert-tiny.svg
│ ├── wds-icons-alert.svg
│ ├── wds-icons-arrow-small.svg
│ ├── wds-icons-arrow-tiny.svg
│ ├── wds-icons-arrow.svg
│ ├── wds-icons-avatar-small.svg
│ ├── wds-icons-avatar-tiny.svg
│ ├── wds-icons-avatar.svg
│ ├── wds-icons-bell-small.svg
│ ├── wds-icons-bell-tiny.svg
│ ├── wds-icons-bell.svg
│ ├── wds-icons-blocks-small.svg
│ ├── wds-icons-blocks-tiny.svg
│ ├── wds-icons-blocks.svg
│ ├── wds-icons-bold-active-small.svg
│ ├── wds-icons-bold-active-tiny.svg
│ ├── wds-icons-bold-active.svg
│ ├── wds-icons-bold-small.svg
│ ├── wds-icons-bold-tiny.svg
│ ├── wds-icons-bold.svg
│ ├── wds-icons-book-small.svg
│ ├── wds-icons-book-tiny.svg
│ ├── wds-icons-book.svg
│ ├── wds-icons-bookmark-small.svg
│ ├── wds-icons-bookmark-tiny.svg
│ ├── wds-icons-bookmark.svg
│ ├── wds-icons-bubble-small.svg
│ ├── wds-icons-bubble-tiny.svg
│ ├── wds-icons-bubble.svg
│ ├── wds-icons-bullet-list-small.svg
│ ├── wds-icons-bullet-list-tiny.svg
│ ├── wds-icons-bullet-list.svg
│ ├── wds-icons-calendar-small.svg
│ ├── wds-icons-calendar-tiny.svg
│ ├── wds-icons-calendar.svg
│ ├── wds-icons-camera-small.svg
│ ├── wds-icons-camera-tiny.svg
│ ├── wds-icons-camera.svg
│ ├── wds-icons-checkbox-empty-small.svg
│ ├── wds-icons-checkbox-empty-tiny.svg
│ ├── wds-icons-checkbox-empty.svg
│ ├── wds-icons-checkbox-small.svg
│ ├── wds-icons-checkbox-tiny.svg
│ ├── wds-icons-checkbox.svg
│ ├── wds-icons-checkmark-small.svg
│ ├── wds-icons-checkmark-tiny.svg
│ ├── wds-icons-checkmark.svg
│ ├── wds-icons-clipboard-small.svg
│ ├── wds-icons-clipboard-tiny.svg
│ ├── wds-icons-clipboard.svg
│ ├── wds-icons-clock-small.svg
│ ├── wds-icons-clock-tiny.svg
│ ├── wds-icons-clock.svg
│ ├── wds-icons-close-small.svg
│ ├── wds-icons-close-tiny.svg
│ ├── wds-icons-close.svg
│ ├── wds-icons-comment-small.svg
│ ├── wds-icons-comment-tiny.svg
│ ├── wds-icons-comment.svg
│ ├── wds-icons-controls-small.svg
│ ├── wds-icons-controls-tiny.svg
│ ├── wds-icons-controls.svg
│ ├── wds-icons-cross-small.svg
│ ├── wds-icons-cross-tiny.svg
│ ├── wds-icons-cross.svg
│ ├── wds-icons-dashboard-small.svg
│ ├── wds-icons-dashboard-tiny.svg
│ ├── wds-icons-dashboard.svg
│ ├── wds-icons-discord.svg
│ ├── wds-icons-download-small.svg
│ ├── wds-icons-download-tiny.svg
│ ├── wds-icons-download.svg
│ ├── wds-icons-dropdown-small.svg
│ ├── wds-icons-dropdown-tiny.svg
│ ├── wds-icons-dropdown.svg
│ ├── wds-icons-envelope-small.svg
│ ├── wds-icons-envelope-tiny.svg
│ ├── wds-icons-envelope.svg
│ ├── wds-icons-error-small.svg
│ ├── wds-icons-error-tiny.svg
│ ├── wds-icons-error.svg
│ ├── wds-icons-external-small.svg
│ ├── wds-icons-external-tiny.svg
│ ├── wds-icons-external.svg
│ ├── wds-icons-eye-crossed-small.svg
│ ├── wds-icons-eye-crossed-tiny.svg
│ ├── wds-icons-eye-crossed.svg
│ ├── wds-icons-eye-small.svg
│ ├── wds-icons-eye-tiny.svg
│ ├── wds-icons-eye.svg
│ ├── wds-icons-facebook-small.svg
│ ├── wds-icons-facebook-tiny.svg
│ ├── wds-icons-facebook.svg
│ ├── wds-icons-fandom-small.svg
│ ├── wds-icons-fandom-tiny.svg
│ ├── wds-icons-fandom.svg
│ ├── wds-icons-flag-small.svg
│ ├── wds-icons-flag-tiny.svg
│ ├── wds-icons-flag.svg
│ ├── wds-icons-footnote-small.svg
│ ├── wds-icons-footnote-tiny.svg
│ ├── wds-icons-footnote.svg
│ ├── wds-icons-gear-small.svg
│ ├── wds-icons-gear-tiny.svg
│ ├── wds-icons-gear.svg
│ ├── wds-icons-googleplus.svg
│ ├── wds-icons-grid-small.svg
│ ├── wds-icons-grid-tiny.svg
│ ├── wds-icons-grid.svg
│ ├── wds-icons-gripper-small.svg
│ ├── wds-icons-gripper-tiny.svg
│ ├── wds-icons-gripper.svg
│ ├── wds-icons-h2-small.svg
│ ├── wds-icons-h2-tiny.svg
│ ├── wds-icons-h2.svg
│ ├── wds-icons-h3-small.svg
│ ├── wds-icons-h3-tiny.svg
│ ├── wds-icons-h3.svg
│ ├── wds-icons-heart-filled-small.svg
│ ├── wds-icons-heart-filled-tiny.svg
│ ├── wds-icons-heart-filled.svg
│ ├── wds-icons-heart-small.svg
│ ├── wds-icons-heart-tiny.svg
│ ├── wds-icons-heart.svg
│ ├── wds-icons-home-small.svg
│ ├── wds-icons-home-tiny.svg
│ ├── wds-icons-home.svg
│ ├── wds-icons-image-small.svg
│ ├── wds-icons-image-tiny.svg
│ ├── wds-icons-image.svg
│ ├── wds-icons-images-small.svg
│ ├── wds-icons-images-tiny.svg
│ ├── wds-icons-images.svg
│ ├── wds-icons-indent-left-small.svg
│ ├── wds-icons-indent-left-tiny.svg
│ ├── wds-icons-indent-left.svg
│ ├── wds-icons-indent-right-small.svg
│ ├── wds-icons-indent-right-tiny.svg
│ ├── wds-icons-indent-right.svg
│ ├── wds-icons-info-small.svg
│ ├── wds-icons-info-tiny.svg
│ ├── wds-icons-info.svg
│ ├── wds-icons-instagram.svg
│ ├── wds-icons-italics-small.svg
│ ├── wds-icons-italics-tiny.svg
│ ├── wds-icons-italics.svg
│ ├── wds-icons-left-align-small.svg
│ ├── wds-icons-left-align-tiny.svg
│ ├── wds-icons-left-align.svg
│ ├── wds-icons-line.svg
│ ├── wds-icons-link-small.svg
│ ├── wds-icons-link-tiny.svg
│ ├── wds-icons-link.svg
│ ├── wds-icons-linkedin.svg
│ ├── wds-icons-loading.svg
│ ├── wds-icons-lock-small.svg
│ ├── wds-icons-lock-tiny.svg
│ ├── wds-icons-lock.svg
│ ├── wds-icons-magnifying-glass-small.svg
│ ├── wds-icons-magnifying-glass-tiny.svg
│ ├── wds-icons-magnifying-glass.svg
│ ├── wds-icons-map-small.svg
│ ├── wds-icons-map-tiny.svg
│ ├── wds-icons-map.svg
│ ├── wds-icons-meneame.svg
│ ├── wds-icons-mention-small.svg
│ ├── wds-icons-mention-tiny.svg
│ ├── wds-icons-mention.svg
│ ├── wds-icons-menu-control-small.svg
│ ├── wds-icons-menu-control-tiny.svg
│ ├── wds-icons-menu-control.svg
│ ├── wds-icons-menu-small.svg
│ ├── wds-icons-menu-tiny.svg
│ ├── wds-icons-menu.svg
│ ├── wds-icons-message-small.svg
│ ├── wds-icons-message-tiny.svg
│ ├── wds-icons-message.svg
│ ├── wds-icons-more-small.svg
│ ├── wds-icons-more-tiny.svg
│ ├── wds-icons-more.svg
│ ├── wds-icons-move-small.svg
│ ├── wds-icons-move-tiny.svg
│ ├── wds-icons-move.svg
│ ├── wds-icons-nk.svg
│ ├── wds-icons-numbered-list-small.svg
│ ├── wds-icons-numbered-list-tiny.svg
│ ├── wds-icons-numbered-list.svg
│ ├── wds-icons-odnoklassniki.svg
│ ├── wds-icons-page-list-small.svg
│ ├── wds-icons-page-list-tiny.svg
│ ├── wds-icons-page-list.svg
│ ├── wds-icons-page-small.svg
│ ├── wds-icons-page-tiny.svg
│ ├── wds-icons-page.svg
│ ├── wds-icons-pages-small.svg
│ ├── wds-icons-pages-tiny.svg
│ ├── wds-icons-pages.svg
│ ├── wds-icons-paragraph-small.svg
│ ├── wds-icons-paragraph-tiny.svg
│ ├── wds-icons-paragraph.svg
│ ├── wds-icons-pause-small.svg
│ ├── wds-icons-pause-tiny.svg
│ ├── wds-icons-pause.svg
│ ├── wds-icons-pencil-small.svg
│ ├── wds-icons-pencil-tiny.svg
│ ├── wds-icons-pencil.svg
│ ├── wds-icons-pin-small.svg
│ ├── wds-icons-pin-tiny.svg
│ ├── wds-icons-pin.svg
│ ├── wds-icons-play-small.svg
│ ├── wds-icons-play-tiny.svg
│ ├── wds-icons-play.svg
│ ├── wds-icons-poll-small.svg
│ ├── wds-icons-poll-tiny.svg
│ ├── wds-icons-poll.svg
│ ├── wds-icons-preformat-small.svg
│ ├── wds-icons-preformat-tiny.svg
│ ├── wds-icons-preformat.svg
│ ├── wds-icons-question-small.svg
│ ├── wds-icons-question-tiny.svg
│ ├── wds-icons-question.svg
│ ├── wds-icons-quiz-small.svg
│ ├── wds-icons-quiz-tiny.svg
│ ├── wds-icons-quiz.svg
│ ├── wds-icons-quote-small.svg
│ ├── wds-icons-quote-tiny.svg
│ ├── wds-icons-quote.svg
│ ├── wds-icons-qzone.svg
│ ├── wds-icons-radio-active-small.svg
│ ├── wds-icons-radio-active-tiny.svg
│ ├── wds-icons-radio-active.svg
│ ├── wds-icons-radio-empty-small.svg
│ ├── wds-icons-radio-empty-tiny.svg
│ ├── wds-icons-radio-empty.svg
│ ├── wds-icons-reddit-small.svg
│ ├── wds-icons-reddit-tiny.svg
│ ├── wds-icons-reddit.svg
│ ├── wds-icons-refresh-small.svg
│ ├── wds-icons-refresh-tiny.svg
│ ├── wds-icons-refresh.svg
│ ├── wds-icons-reply-small.svg
│ ├── wds-icons-reply-tiny.svg
│ ├── wds-icons-reply.svg
│ ├── wds-icons-share-small.svg
│ ├── wds-icons-share-tiny.svg
│ ├── wds-icons-share.svg
│ ├── wds-icons-sitemap-small.svg
│ ├── wds-icons-sitemap-tiny.svg
│ ├── wds-icons-sitemap.svg
│ ├── wds-icons-sound-off-small.svg
│ ├── wds-icons-sound-off-tiny.svg
│ ├── wds-icons-sound-off.svg
│ ├── wds-icons-sound-small.svg
│ ├── wds-icons-sound-tiny.svg
│ ├── wds-icons-sound.svg
│ ├── wds-icons-star-small.svg
│ ├── wds-icons-star-tiny.svg
│ ├── wds-icons-star.svg
│ ├── wds-icons-tag-small.svg
│ ├── wds-icons-tag-tiny.svg
│ ├── wds-icons-tag.svg
│ ├── wds-icons-text-small.svg
│ ├── wds-icons-text-tiny.svg
│ ├── wds-icons-text.svg
│ ├── wds-icons-toc-small.svg
│ ├── wds-icons-toc-tiny.svg
│ ├── wds-icons-toc.svg
│ ├── wds-icons-trash-open-small.svg
│ ├── wds-icons-trash-open-tiny.svg
│ ├── wds-icons-trash-open.svg
│ ├── wds-icons-trash-small.svg
│ ├── wds-icons-trash-tiny.svg
│ ├── wds-icons-trash.svg
│ ├── wds-icons-tumblr.svg
│ ├── wds-icons-twitter-small.svg
│ ├── wds-icons-twitter-tiny.svg
│ ├── wds-icons-twitter.svg
│ ├── wds-icons-unlock-small.svg
│ ├── wds-icons-unlock-tiny.svg
│ ├── wds-icons-unlock.svg
│ ├── wds-icons-upvote-small.svg
│ ├── wds-icons-upvote-tiny.svg
│ ├── wds-icons-upvote.svg
│ ├── wds-icons-user-small.svg
│ ├── wds-icons-user-tiny.svg
│ ├── wds-icons-user.svg
│ ├── wds-icons-users-small.svg
│ ├── wds-icons-users-tiny.svg
│ ├── wds-icons-users.svg
│ ├── wds-icons-video-small.svg
│ ├── wds-icons-video-tiny.svg
│ ├── wds-icons-video.svg
│ ├── wds-icons-vkontakte.svg
│ ├── wds-icons-watch-small.svg
│ ├── wds-icons-watch-tiny.svg
│ ├── wds-icons-watch.svg
│ ├── wds-icons-weibo.svg
│ ├── wds-icons-wykop.svg
│ ├── wds-icons-youtube.svg
│ ├── wds-icons-zoom-in-small.svg
│ ├── wds-icons-zoom-in-tiny.svg
│ ├── wds-icons-zoom-in.svg
│ ├── wds-icons-zoom-out-small.svg
│ ├── wds-icons-zoom-out-tiny.svg
│ ├── wds-icons-zoom-out.svg
│ └── wds-player-icon-play.svg
└── styles
│ ├── index.scss
│ ├── wds-components
│ ├── _avatar-stack.scss
│ ├── _avatar.scss
│ ├── _banner-notification.scss
│ ├── _button-groups.scss
│ ├── _buttons.scss
│ ├── _community-bar.scss
│ ├── _community-header.scss
│ ├── _dialogs.scss
│ ├── _dropdowns.scss
│ ├── _floating-buttons.scss
│ ├── _global-footer-wikia-org.scss
│ ├── _global-footer.scss
│ ├── _global-navigation-search.scss
│ ├── _global-navigation-wikia-org.scss
│ ├── _global-navigation.scss
│ ├── _icons.scss
│ ├── _inputs.scss
│ ├── _is-disabled.scss
│ ├── _is-hidden.scss
│ ├── _links.scss
│ ├── _lists.scss
│ ├── _menu-chevron.scss
│ ├── _no-scroll.scss
│ ├── _on-site-notifications.scss
│ ├── _pills.scss
│ ├── _player.scss
│ ├── _search-modal.scss
│ ├── _sign-out.scss
│ ├── _spinner.scss
│ ├── _tabs.scss
│ ├── _toggles.scss
│ ├── buttons
│ │ ├── _common.scss
│ │ └── _social.scss
│ ├── global-navigation
│ │ ├── _content-recommendations.scss
│ │ └── _user-modal.scss
│ ├── index.scss
│ └── inputs
│ │ ├── _input.scss
│ │ └── _textarea.scss
│ ├── wds-functions
│ ├── _active-color.scss
│ ├── _brightness.scss
│ ├── _community-header-text-color.scss
│ ├── _sqrt.scss
│ ├── _wds-grid-columns-width.scss
│ └── index.scss
│ ├── wds-mixins
│ ├── _button-group-theming.scss
│ ├── _button-theming.scss
│ ├── _community-header-gradient.scss
│ ├── _community-header-theming.scss
│ ├── _dialog-theming.scss
│ ├── _dropdown-theming.scss
│ ├── _ellipsis.scss
│ ├── _is-disabled.scss
│ ├── _is-right-aligned.scss
│ ├── _link-theming.scss
│ ├── _pill-theming.scss
│ ├── _scrollable-list.scss
│ ├── _square.scss
│ ├── _tabs-theming.scss
│ ├── _toggle-theming.scss
│ ├── _wds-avatar.scss
│ ├── _wds-box-underline.scss
│ ├── _wds-content-well.scss
│ ├── _wds-dropdown-linked-list.scss
│ ├── _wds-grid.scss
│ ├── _wds-hide-on-breakpoint.scss
│ ├── _wds-midlight.scss
│ ├── _wds-player-icon-play.scss
│ ├── _wikia-org-theming.scss
│ └── index.scss
│ ├── wds-typography
│ ├── classes
│ │ ├── _font-weight-scale.scss
│ │ ├── _line-height-scale.scss
│ │ ├── _text-style.scss
│ │ ├── _typescale.scss
│ │ └── index.scss
│ └── index.scss
│ └── wds-variables
│ ├── _breakpoints.scss
│ ├── _colors.scss
│ ├── _icons.scss
│ ├── _player.scss
│ ├── _typography.scss
│ ├── _wds-breakpoints.scss
│ ├── _wds-grid.scss
│ ├── _z-index-scale.scss
│ └── index.scss
├── testem.js
├── tests
├── dummy
│ ├── app
│ │ ├── app.js
│ │ ├── components
│ │ │ ├── asset-box.js
│ │ │ ├── code-sample.js
│ │ │ ├── color-box.js
│ │ │ ├── demo.js
│ │ │ ├── font-weight-line.js
│ │ │ └── main-navigation.js
│ │ ├── controllers
│ │ │ ├── application.js
│ │ │ ├── base-styles
│ │ │ │ └── breakpoints.js
│ │ │ ├── identity
│ │ │ │ ├── community-bar
│ │ │ │ │ └── standalone.js
│ │ │ │ ├── community-header.js
│ │ │ │ ├── community-header
│ │ │ │ │ └── standalone.js
│ │ │ │ ├── global-navigation.js
│ │ │ │ └── global-navigation
│ │ │ │ │ └── standalone.js
│ │ │ └── route-components
│ │ │ │ ├── avatars.js
│ │ │ │ ├── banner-notifications.js
│ │ │ │ ├── dialogs.js
│ │ │ │ └── inputs.js
│ │ ├── helpers
│ │ │ ├── equal.js
│ │ │ ├── i18n.js
│ │ │ ├── numeral.js
│ │ │ └── svg.js
│ │ ├── index.html
│ │ ├── initializers
│ │ │ ├── highlight.js
│ │ │ └── load-svg.js
│ │ ├── models
│ │ │ ├── community-header.json
│ │ │ ├── global-footer.json
│ │ │ └── global-navigation.json
│ │ ├── resolver.js
│ │ ├── router.js
│ │ ├── routes
│ │ │ ├── application.js
│ │ │ ├── identity
│ │ │ │ ├── browser-theming.js
│ │ │ │ ├── community-bar.js
│ │ │ │ ├── community-bar
│ │ │ │ │ └── standalone.js
│ │ │ │ ├── community-header.js
│ │ │ │ ├── community-header
│ │ │ │ │ └── standalone.js
│ │ │ │ ├── global-footer.js
│ │ │ │ ├── global-footer
│ │ │ │ │ └── standalone.js
│ │ │ │ ├── global-navigation.js
│ │ │ │ └── global-navigation
│ │ │ │ │ └── standalone.js
│ │ │ └── index.js
│ │ ├── services
│ │ │ ├── current-user.js
│ │ │ ├── fastboot.js
│ │ │ ├── fetch.js
│ │ │ ├── i18n.js
│ │ │ ├── logger.js
│ │ │ └── wiki-urls.js
│ │ ├── styles
│ │ │ ├── app.scss
│ │ │ ├── base-styles
│ │ │ │ ├── _assets.scss
│ │ │ │ ├── _breakpoints.scss
│ │ │ │ ├── _colors.scss
│ │ │ │ ├── _typography.scss
│ │ │ │ ├── _variables-table.scss
│ │ │ │ └── index.scss
│ │ │ ├── components
│ │ │ │ ├── _asset-box.scss
│ │ │ │ ├── _color-box.scss
│ │ │ │ ├── _component-demo.scss
│ │ │ │ ├── _icon-box.scss
│ │ │ │ ├── _main-navigation.scss
│ │ │ │ ├── _typescale-line.scss
│ │ │ │ └── index.scss
│ │ │ ├── identity
│ │ │ │ ├── _browser-theming.scss
│ │ │ │ ├── _community-header.scss
│ │ │ │ ├── _global-navigation.scss
│ │ │ │ └── index.scss
│ │ │ ├── route-components
│ │ │ │ ├── _avatars.scss
│ │ │ │ ├── _buttons.scss
│ │ │ │ ├── _dropdowns.scss
│ │ │ │ ├── _floating-buttons.scss
│ │ │ │ └── index.scss
│ │ │ └── wds.scss
│ │ ├── templates
│ │ │ ├── application.hbs
│ │ │ ├── base-styles
│ │ │ │ ├── breakpoints.hbs
│ │ │ │ ├── colors.hbs
│ │ │ │ ├── typography.hbs
│ │ │ │ ├── wds-breakpoints.hbs
│ │ │ │ ├── wds-grid.hbs
│ │ │ │ └── z-index.hbs
│ │ │ ├── components
│ │ │ │ ├── asset-box.hbs
│ │ │ │ ├── color-box.hbs
│ │ │ │ ├── community-header-wiki-content.hbs
│ │ │ │ ├── demo.hbs
│ │ │ │ ├── font-weight-line.hbs
│ │ │ │ ├── icon-box.hbs
│ │ │ │ ├── main-navigation.hbs
│ │ │ │ ├── text-style-line.hbs
│ │ │ │ └── typescale-line.hbs
│ │ │ ├── identity
│ │ │ │ ├── api.hbs
│ │ │ │ ├── assets.hbs
│ │ │ │ ├── browser-theming.hbs
│ │ │ │ ├── community-bar.hbs
│ │ │ │ ├── community-bar
│ │ │ │ │ └── standalone.hbs
│ │ │ │ ├── community-header.hbs
│ │ │ │ ├── community-header
│ │ │ │ │ └── standalone.hbs
│ │ │ │ ├── global-footer.hbs
│ │ │ │ ├── global-footer
│ │ │ │ │ └── standalone.hbs
│ │ │ │ ├── global-navigation.hbs
│ │ │ │ └── global-navigation
│ │ │ │ │ └── standalone.hbs
│ │ │ ├── overview
│ │ │ │ ├── contributing.hbs
│ │ │ │ ├── ember-addon.hbs
│ │ │ │ ├── getting-started.hbs
│ │ │ │ ├── installation.hbs
│ │ │ │ ├── quick-start.hbs
│ │ │ │ └── svg-assets.hbs
│ │ │ └── route-components
│ │ │ │ ├── assets.hbs
│ │ │ │ ├── avatars.hbs
│ │ │ │ ├── banner-notifications.hbs
│ │ │ │ ├── buttons.hbs
│ │ │ │ ├── dialogs.hbs
│ │ │ │ ├── dropdowns.hbs
│ │ │ │ ├── floating-buttons.hbs
│ │ │ │ ├── inputs.hbs
│ │ │ │ ├── lists.hbs
│ │ │ │ ├── pills.hbs
│ │ │ │ ├── progress-indicators.hbs
│ │ │ │ ├── tabs.hbs
│ │ │ │ └── toggles.hbs
│ │ └── utils
│ │ │ ├── beautify.js
│ │ │ ├── string.js
│ │ │ └── url.js
│ ├── config
│ │ ├── coverage.js
│ │ ├── environment.js
│ │ ├── optional-features.json
│ │ └── targets.js
│ ├── mirage
│ │ ├── config.js
│ │ ├── scenarios
│ │ │ └── default.js
│ │ └── serializers
│ │ │ └── application.js
│ └── public
│ │ ├── 404.html
│ │ ├── favicon.ico
│ │ ├── images
│ │ ├── FANDOM-Avatar.jpg
│ │ ├── FANDOM-background.svg
│ │ ├── breakpoints.png
│ │ ├── theme-color.png
│ │ ├── wds-community-bar-desktop.png
│ │ ├── wds-community-bar-mobile.png
│ │ ├── wds-community-bar-tablet.png
│ │ ├── wds-community-header-desktop.png
│ │ ├── wds-community-header-mobile.png
│ │ ├── wds-community-header-tablet.png
│ │ ├── wds-global-footer-desktop.png
│ │ ├── wds-global-footer-mobile.png
│ │ ├── wds-global-footer-tablet.png
│ │ ├── wds-global-navigation-desktop.png
│ │ ├── wds-global-navigation-mobile.png
│ │ └── wds-global-navigation-tablet.png
│ │ ├── mocks
│ │ └── searchSuggestions.json
│ │ └── robots.txt
├── index.html
├── integration
│ ├── components
│ │ ├── avatar-stack-test.js
│ │ ├── avatar-test.js
│ │ ├── banner-notification-test.js
│ │ ├── banner-notifications-test.js
│ │ ├── button-test.js
│ │ ├── community-bar
│ │ │ ├── local-navigation-dropdown-test.js
│ │ │ ├── local-navigation-level-2-test.js
│ │ │ ├── local-navigation-level-3-test.js
│ │ │ └── local-navigation-test.js
│ │ ├── community-header
│ │ │ ├── local-navigation-dropdown-level-2-test.js
│ │ │ ├── local-navigation-test.js
│ │ │ └── nav-item-test.js
│ │ ├── dialog-test.js
│ │ ├── dropdown-test.js
│ │ ├── global-footer-test.js
│ │ ├── global-navigation-test.js
│ │ ├── global-navigation
│ │ │ ├── anon-test.js
│ │ │ ├── content-recommendation-card-test.js
│ │ │ ├── content-recommendations-test.js
│ │ │ ├── link-logout-test.js
│ │ │ ├── main-navigation-test.js
│ │ │ ├── search-modal-test.js
│ │ │ ├── search-test.js
│ │ │ └── user-modal-test.js
│ │ ├── icon-test.js
│ │ ├── list-test.js
│ │ ├── local-navigation-test.js
│ │ ├── on-site-notifications
│ │ │ ├── notification-card-test.js
│ │ │ ├── notifications-dropdown-test.js
│ │ │ ├── notifications-list-test.js
│ │ │ └── notifications-test.js
│ │ ├── spinner-test.js
│ │ ├── tabs-test.js
│ │ ├── textarea-test.js
│ │ └── toggle-test.js
│ └── helpers
│ │ ├── classnames-test.js
│ │ ├── optional-test.js
│ │ └── wrap-me-test.js
├── mocks
│ └── search-model.js
├── pages
│ ├── components
│ │ ├── avatar-stack.js
│ │ ├── avatar.js
│ │ ├── banner-notification.js
│ │ ├── banner-notifications.js
│ │ ├── dropdown.js
│ │ └── global-footer.js
│ └── helpers
│ │ └── attr.js
├── test-helper.js
└── unit
│ ├── models
│ └── wds-on-site-notifications
│ │ ├── wds-on-site-notification-test.js
│ │ └── wds-on-site-notifications-test.js
│ ├── services
│ ├── wds-banner-notifications-test.js
│ └── wds-on-site-notifications-test.js
│ └── utils
│ ├── local-storage-connector-test.js
│ ├── notification-types-test.js
│ ├── thumbnail-test.js
│ └── wds-track-test.js
├── vendor
├── inline-scripts
│ └── tracking-queue-stub.js
└── polyfills.js
└── yarn.lock
/.editorconfig:
--------------------------------------------------------------------------------
1 | # editorconfig.org
2 | root = true
3 |
4 | [*]
5 | indent_style = tab
6 | indent_size = 4
7 | end_of_line = lf
8 | charset = utf-8
9 | trim_trailing_whitespace = true
10 | insert_final_newline = true
11 |
12 | [*.json]
13 | indent_style = space
14 | indent_size = 2
15 |
16 | [*.hbs]
17 | indent_style = space
18 | indent_size = 2
19 |
20 | [Jenkinsfile]
21 | indent_style = space
22 | indent_size = 2
23 |
--------------------------------------------------------------------------------
/.ember-cli:
--------------------------------------------------------------------------------
1 | {
2 | /**
3 | Ember CLI sends analytics information by default. The data is completely
4 | anonymous, but there are times when you might want to disable this behavior.
5 |
6 | Setting `disableAnalytics` to true will prevent any data from being sent.
7 | */
8 | "disableAnalytics": true,
9 | "output-path": "docs-dev"
10 | }
11 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | # unconventional js
2 | /blueprints/*/files/
3 | /vendor/
4 |
5 | # compiled output
6 | /dist/
7 | /tmp/
8 | /docs/
9 | /docs-dev/
10 | /test-dist/
11 |
12 | # dependencies
13 | /bower_components/
14 | /node_modules/
15 |
16 | # misc
17 | /coverage/
18 | !.*
19 |
20 | # ember-try
21 | /.node_modules.ember-try/
22 | /bower.json.ember-try
23 | /package.json.ember-try
24 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/ignore-files/ for more about ignoring files.
2 |
3 | # compiled output
4 | /tmp/
5 | /docs-dev/
6 | /test-dist/
7 | /dist/
8 | /docs/
9 |
10 | # dependencies
11 | /bower_components/
12 | /node_modules/
13 |
14 | # misc
15 | /.sass-cache
16 | /connect.lock
17 | /coverage/
18 | /libpeerconnection.log
19 | /npm-debug.log*
20 | /testem.log
21 | /yarn-error.log
22 |
23 | # ember-try
24 | /.node_modules.ember-try/
25 | /bower.json.ember-try
26 | /package.json.ember-try
27 |
28 | # other
29 | .idea/
30 | /design-system.iml
31 | *.DS_Store
32 | *._.DS_Store
33 | debug.log
34 | .vscode
35 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | # compiled output
2 | /tmp/
3 |
4 | # dependencies
5 | /bower_components/
6 |
7 | # misc
8 | /.bowerrc
9 | /.editorconfig
10 | /.ember-cli
11 | /.eslintignore
12 | /.eslintrc.js
13 | /.gitignore
14 | /.template-lintrc.js
15 | /.travis.yml
16 | /.watchmanconfig
17 | /bower.json
18 | /config/ember-try.js
19 | /ember-cli-build.js
20 | /testem.js
21 | /tests/
22 | /yarn.lock
23 | .gitkeep
24 |
25 | # ember-try
26 | /.node_modules.ember-try/
27 | /bower.json.ember-try
28 | /package.json.ember-try
29 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | save-exact=true
2 | tag-version-prefix=""
3 | @fandom:registry=https://artifactory.wikia-inc.com/artifactory/api/npm/wikia-npm/
4 | //artifactory.wikia-inc.com/artifactory/api/npm/wikia-npm/:_authToken=${ARTIFACTORY_NPM_TOKEN}
5 |
--------------------------------------------------------------------------------
/.svgo-dist.yml:
--------------------------------------------------------------------------------
1 | full: true
2 | plugins:
3 | - cleanupAttrs
4 | js2svg:
5 | pretty: false
6 |
--------------------------------------------------------------------------------
/.template-lintrc.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | module.exports = {
4 | extends: 'recommended',
5 |
6 | rules: {
7 | 'img-alt-attributes': false,
8 | 'no-invalid-interactive': false,
9 | 'no-triple-curlies': false,
10 | 'simple-unless': false
11 | }
12 | };
13 |
--------------------------------------------------------------------------------
/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {
2 | "ignore_dirs": ["tmp", "dist" ,"docs", "docs-dev"]
3 | }
4 |
--------------------------------------------------------------------------------
/CNAME:
--------------------------------------------------------------------------------
1 | fandomdesignsystem.com
--------------------------------------------------------------------------------
/app/components/banner-notification.js:
--------------------------------------------------------------------------------
1 | import Component from '@ember/component';
2 | import { computed } from '@ember/object';
3 |
4 | const iconMap = {
5 | alert: 'error',
6 | warning: 'alert',
7 | success: 'checkmark',
8 | message: 'flag'
9 | };
10 |
11 | export default Component.extend({
12 | classNames: 'wds-banner-notification',
13 | classNameBindings: ['typeClassName'],
14 |
15 | type: 'message',
16 |
17 | icon: computed('type', function () {
18 | return iconMap[this.type];
19 | }),
20 |
21 | typeClassName: computed('type', function () {
22 | return 'wds-' + this.type;
23 | })
24 | });
25 |
--------------------------------------------------------------------------------
/app/components/community-bar/local-navigation-level-2.js:
--------------------------------------------------------------------------------
1 | import Component from '@ember/component';
2 | import { computed } from '@ember/object';
3 |
4 | export default Component.extend({
5 | classNames: ['wds-community-bar__level-2'],
6 | classNameBindings: ['isActive:wds-is-active'],
7 |
8 | isActive: computed('firstLevelIndex', 'firstLevelIndexSelected', 'secondLevelIndexSelected', function () {
9 | return this.firstLevelIndex === this.firstLevelIndexSelected && this.secondLevelIndexSelected === null;
10 | })
11 | });
12 |
--------------------------------------------------------------------------------
/app/components/community-bar/local-navigation-level-3.js:
--------------------------------------------------------------------------------
1 | import Component from '@ember/component';
2 | import { computed } from '@ember/object';
3 |
4 | export default Component.extend({
5 | classNames: ['wds-community-bar__level-3'],
6 | classNameBindings: ['isActive:wds-is-active'],
7 |
8 | isActive: computed('firstLevelIndex', 'firstLevelIndexSelected', 'secondLevelIndex', 'secondLevelIndexSelected', function () {
9 | return this.firstLevelIndex === this.firstLevelIndexSelected && this.secondLevelIndex === this.secondLevelIndexSelected;
10 | })
11 | });
12 |
--------------------------------------------------------------------------------
/app/components/community-bar/local-navigation.js:
--------------------------------------------------------------------------------
1 | import Component from '@ember/component';
2 | import { computed } from '@ember/object';
3 |
4 | export default Component.extend({
5 | tagName: '',
6 |
7 | firstLevelClasses: computed('firstLevelIndexSelected', function () {
8 | const classList = ['wds-community-bar__level-1'];
9 |
10 | if (this.firstLevelIndexSelected !== null) {
11 | classList.push('wds-is-hidden');
12 | }
13 |
14 | return classList.join(' ');
15 | }),
16 | });
17 |
--------------------------------------------------------------------------------
/app/components/community-header/local-navigation-dropdown-level-2.js:
--------------------------------------------------------------------------------
1 | import Component from '@ember/component';
2 | import { computed } from '@ember/object';
3 | import { or } from '@ember/object/computed';
4 |
5 | export default Component.extend({
6 | tagName: '',
7 |
8 | defaultHref: '#',
9 |
10 | stickedClassName: computed('model', 'currentIndex', function () {
11 | return (this.get('model.items.length') < this.currentIndex + 1) ? 'wds-is-sticked-to-parent' : '';
12 | }),
13 |
14 | href: or('model.href', 'defaultHref')
15 | });
16 |
--------------------------------------------------------------------------------
/app/components/dialog.js:
--------------------------------------------------------------------------------
1 | import Component from '@ember/component';
2 |
3 | export default Component.extend({
4 | tagName: '',
5 |
6 | cancelText: 'Cancel',
7 | okText: 'OK',
8 |
9 | actions: {
10 | /**
11 | * This action is here just to prevent {{action onCancel 'curtain'}} being triggered
12 | * when wds-dialog__wrapper or its content are clicked
13 | */
14 | cancelBubble() {}
15 | }
16 | });
17 |
--------------------------------------------------------------------------------
/app/components/global-footer-wikia-org.js:
--------------------------------------------------------------------------------
1 | import Component from '@ember/component';
2 |
3 | export default Component.extend({
4 | tagName: 'footer',
5 | classNames: 'wds-global-footer-wikia-org',
6 | });
7 |
--------------------------------------------------------------------------------
/app/components/global-navigation/search-modal.js:
--------------------------------------------------------------------------------
1 | import Component from '@ember/component';
2 | import { assert } from '@ember/debug';
3 |
4 | export default Component.extend({
5 |
6 | tagName: '',
7 |
8 | init() {
9 | this._super(...arguments);
10 |
11 | assert('Required property `model` is not set', this.model);
12 | assert('Required function `onSearchToggleClicked` is not set', this.onSearchToggleClicked);
13 | assert('Required function `openModal` is not set', this.openModal);
14 | },
15 |
16 | });
17 |
--------------------------------------------------------------------------------
/app/components/tab.js:
--------------------------------------------------------------------------------
1 | import Component from '@ember/component';
2 | import { computed } from '@ember/object';
3 |
4 | export default Component.extend({
5 | tagName: 'li',
6 | attributeBindings: [
7 | 'data-tracking-label',
8 | ],
9 | classNames: 'wds-tabs__tab',
10 | classNameBindings: ['isSelected:wds-is-current', 'disabled:wds-is-disabled'],
11 |
12 | isSelected: computed('selected', 'value', function () {
13 | return this.value !== undefined && this.selected === this.value;
14 | }),
15 |
16 | click() {
17 | this.onSelect(this);
18 | }
19 | });
20 |
--------------------------------------------------------------------------------
/app/components/tabs.js:
--------------------------------------------------------------------------------
1 | import Component from '@ember/component';
2 |
3 | export default Component.extend({
4 | tagName: 'ul',
5 | classNames: 'wds-tabs',
6 |
7 | selected: 0,
8 |
9 | onChange() {},
10 |
11 | actions: {
12 | onChange(tab) {
13 | this.set('selected', tab.value);
14 |
15 | this.onChange(...arguments);
16 | }
17 | }
18 | });
19 |
--------------------------------------------------------------------------------
/app/components/textarea.js:
--------------------------------------------------------------------------------
1 | import Component from '@ember/component';
2 | import { computed } from '@ember/object';
3 |
4 | export default Component.extend({
5 | classNames: 'wds-textarea',
6 | classNameBindings: [
7 | 'hasError:wds-has-error',
8 | 'hasLengthHint:wds-has-length-hint'
9 | ],
10 | disabled: false,
11 |
12 | length: computed('value', function () {
13 | return this.value ? this.value.length : 0;
14 | }),
15 |
16 | lengthHint: computed('maxlength', 'length', function () {
17 | return this.maxlength - this.length;
18 | })
19 |
20 | });
21 |
--------------------------------------------------------------------------------
/app/components/tracking-pixel.js:
--------------------------------------------------------------------------------
1 | import Component from '@ember/component';
2 |
3 | export default Component.extend({
4 | tagName: 'div',
5 | classNames: ['wds-is-hidden'],
6 | });
7 |
--------------------------------------------------------------------------------
/app/helpers/classnames.js:
--------------------------------------------------------------------------------
1 | import { helper } from '@ember/component/helper';
2 |
3 | export function classnames(classList) {
4 | return classList.filter(Boolean).join(' ');
5 | }
6 |
7 | export default helper(classnames);
8 |
--------------------------------------------------------------------------------
/app/helpers/optional.js:
--------------------------------------------------------------------------------
1 | import { helper } from '@ember/component/helper';
2 |
3 | export function optional([action]) {
4 | if (typeof action === 'function') {
5 | return action;
6 | }
7 |
8 | return (i) => i;
9 | }
10 |
11 | export default helper(optional);
12 |
--------------------------------------------------------------------------------
/app/services/wds-banner-notifications.js:
--------------------------------------------------------------------------------
1 | import { later } from '@ember/runloop';
2 | import Service from '@ember/service';
3 |
4 | export default Service.extend({
5 | counter: 0,
6 | hideAfterMs: 10000,
7 |
8 | init() {
9 | this._super(...arguments);
10 | this.model = [];
11 | },
12 |
13 | addNotification(notification) {
14 | notification.id = this.incrementProperty('counter');
15 | this.model.pushObject(notification);
16 |
17 | if (!notification.disableAutoHide) {
18 | later(this, () => {
19 | this.model.removeObject(notification);
20 | }, this.hideAfterMs);
21 | }
22 | }
23 | });
24 |
--------------------------------------------------------------------------------
/app/templates/components/avatar-badge.hbs:
--------------------------------------------------------------------------------
1 | {{svg badgeAssetName}}
2 |
--------------------------------------------------------------------------------
/app/templates/components/avatar-image.hbs:
--------------------------------------------------------------------------------
1 | {{#if @src}}
2 |
3 | {{else}}
4 | {{svg "wds-icons-avatar" class="wds-avatar__image"}}
5 | {{/if}}
6 |
--------------------------------------------------------------------------------
/app/templates/components/avatar-stack.hbs:
--------------------------------------------------------------------------------
1 | {{#each displayableAvatars as |avatar|}}
2 |
8 |
9 | {{/each}}
10 | {{#if overflow}}
11 |
+{{overflow}}
12 | {{/if}}
13 |
--------------------------------------------------------------------------------
/app/templates/components/avatar.hbs:
--------------------------------------------------------------------------------
1 |
6 | {{#if @link}}
7 |
8 |
9 |
10 | {{else}}
11 |
12 | {{/if}}
13 |
14 | {{#if @badge}}
15 |
16 | {{/if}}
17 |
18 |
--------------------------------------------------------------------------------
/app/templates/components/banner-notification.hbs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {{yield}}
6 |
7 |
13 |
--------------------------------------------------------------------------------
/app/templates/components/banner-notifications.hbs:
--------------------------------------------------------------------------------
1 | {{#each model as |notification|}}
2 |
6 | {{#if notification.text}}
7 | {{notification.text}}
8 | {{else if notification.alreadySafeHtml}}
9 | {{{notification.alreadySafeHtml}}}
10 | {{/if}}
11 |
12 | {{/each}}
13 |
--------------------------------------------------------------------------------
/app/templates/components/community-header/nav-item-with-icon.hbs:
--------------------------------------------------------------------------------
1 | {{#if @item.image-data}}
2 | {{svg @item.image-data.name class="wds-icon wds-icon-tiny"}}
3 | {{/if}}
4 | {{community-header/nav-item item=@item}}
5 |
--------------------------------------------------------------------------------
/app/templates/components/community-header/nav-item.hbs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/app/templates/components/dropdown-content.hbs:
--------------------------------------------------------------------------------
1 |
11 | {{yield}}
12 |
13 |
--------------------------------------------------------------------------------
/app/templates/components/dropdown-icon.hbs:
--------------------------------------------------------------------------------
1 | {{#if @isLevel2}}
2 | {{svg
3 | "wds-icons-menu-control-tiny"
4 | class="wds-icon wds-icon-tiny wds-dropdown-chevron"
5 | }}
6 | {{else}}
7 | {{svg
8 | "wds-icons-dropdown-tiny"
9 | class="wds-icon wds-icon-tiny wds-dropdown__toggle-chevron"
10 | }}
11 | {{/if}}
12 |
--------------------------------------------------------------------------------
/app/templates/components/dropdown.hbs:
--------------------------------------------------------------------------------
1 | {{yield
2 | (hash
3 | toggle=(component
4 | "dropdown-toggle" onClick=(action "onClick") isLevel2=isLevel2
5 | )
6 | content=(component "dropdown-content" isLevel2=isLevel2)
7 | )
8 | }}
9 |
--------------------------------------------------------------------------------
/app/templates/components/global-footer-wikia-org.hbs:
--------------------------------------------------------------------------------
1 | {{#if @model.logo}}
2 |
5 | {{/if}}
6 |
15 |
--------------------------------------------------------------------------------
/app/templates/components/global-footer.hbs:
--------------------------------------------------------------------------------
1 | {{#if isWikiaOrg}}
2 | {{global-footer-wikia-org
3 | model=data
4 | track=track
5 | }}
6 | {{else}}
7 | {{global-footer-fandom
8 | model=data
9 | track=track
10 | }}
11 | {{/if}}
12 |
--------------------------------------------------------------------------------
/app/templates/components/global-footer/bottom-bar.hbs:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/app/templates/components/global-footer/image.hbs:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/app/templates/components/global-footer/link-branded.hbs:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/app/templates/components/global-footer/link-image.hbs:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/app/templates/components/global-footer/link-text.hbs:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/app/templates/components/global-navigation/content-recommendation-card.hbs:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 | {{model.title}}
10 |
11 |
12 | 16m
13 |
14 |
15 |
--------------------------------------------------------------------------------
/app/templates/components/global-navigation/content-recommendations.hbs:
--------------------------------------------------------------------------------
1 |
2 | {{#if sponsoredItem}}
3 | {{global-navigation/sponsored-content-card
4 | model=sponsoredItem
5 | track=(action track)
6 | }}
7 | {{/if}}
8 | {{#each displayedItems as |item|}}
9 | {{global-navigation/content-recommendation-card
10 | model=item
11 | track=(action track)
12 | }}
13 | {{/each}}
14 |
--------------------------------------------------------------------------------
/app/templates/components/global-navigation/link-button.hbs:
--------------------------------------------------------------------------------
1 |
7 | {{i18n @model.title.key ns="design-system"}}
8 |
9 |
--------------------------------------------------------------------------------
/app/templates/components/global-navigation/link-logout.hbs:
--------------------------------------------------------------------------------
1 | {{! Logout is a POST, so we render a button inside a form here }}
2 |
17 |
--------------------------------------------------------------------------------
/app/templates/components/global-navigation/link-text.hbs:
--------------------------------------------------------------------------------
1 |
6 | {{i18n @model.title.key ns="design-system"}}
7 |
8 |
--------------------------------------------------------------------------------
/app/templates/components/global-navigation/main-navigation.hbs:
--------------------------------------------------------------------------------
1 |
2 | {{#each @model as |item|}}
3 | {{!
4 | Componenets that can be rendere here are:
5 | - link-text
6 | - link-group
7 | }}
8 | {{component
9 | (concat "global-navigation/" item.type)
10 | model=item
11 | standaloneLink=true
12 | }}
13 | {{/each}}
14 |
15 |
--------------------------------------------------------------------------------
/app/templates/components/global-navigation/user-modal.hbs:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 | {{user.username}}
9 |
10 |
11 |
12 | {{on-site-notifications/notifications header=header track=track}}
13 |
14 | {{global-navigation/link-logout
15 | model=signOutModel
16 | class="wds-user-modal__sign-out-container"
17 | }}
18 |
--------------------------------------------------------------------------------
/app/templates/components/icon.hbs:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/app/templates/components/label.hbs:
--------------------------------------------------------------------------------
1 | {{#if (equal @label.type "translatable-text")}}
2 | {{i18n @label.key ns="design-system"}}
3 | {{else}}
4 | {{@label.value}}
5 | {{/if}}
6 |
--------------------------------------------------------------------------------
/app/templates/components/list.hbs:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/app/templates/components/on-site-notifications/notifications-list.hbs:
--------------------------------------------------------------------------------
1 | {{#each notificationsList as |notification|}}
2 | {{on-site-notifications/notification-card
3 | model=notification
4 | track=track
5 | }}
6 | {{/each}}
7 | {{#if isLoadingNewResults}}
8 |
9 |
16 |
17 | {{/if}}
18 |
--------------------------------------------------------------------------------
/app/templates/components/spinner.hbs:
--------------------------------------------------------------------------------
1 |
9 |
10 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/templates/components/tabs.hbs:
--------------------------------------------------------------------------------
1 | {{yield
2 | (hash
3 | tab=(component "tab" selected=selected onSelect=(action "onChange"))
4 | )
5 | }}
6 |
--------------------------------------------------------------------------------
/app/templates/components/textarea.hbs:
--------------------------------------------------------------------------------
1 |
2 | {{textarea
3 | autoresize=true
4 | class="wds-textarea__field"
5 | placeholder=@placeholder
6 | maxlength=@maxlength
7 | disabled=@disabled
8 | rows=1
9 | value=@value
10 | input=@input
11 | focus-out=@focus-out
12 | focus-in=@focus-in
13 | }}
14 | {{#if hasLengthHint}}
15 | {{lengthHint}}
16 | {{/if}}
17 |
18 | {{#if hint}}
19 |
20 | {{hint}}
21 |
22 | {{/if}}
23 |
--------------------------------------------------------------------------------
/app/templates/components/toggle.hbs:
--------------------------------------------------------------------------------
1 |
8 | {{yield}}
9 |
--------------------------------------------------------------------------------
/app/templates/components/tracking-pixel.hbs:
--------------------------------------------------------------------------------
1 | {{#if (equal pixelType "url")}}
2 |
3 | {{else}}
4 | {{{pixelContent}}}
5 | {{/if}}
6 |
--------------------------------------------------------------------------------
/app/utils/viewport-size.js:
--------------------------------------------------------------------------------
1 | export default function getViewportSize() {
2 | return {
3 | width: Math.max(document.documentElement.clientWidth, window.innerWidth || 0),
4 | height: Math.max(document.documentElement.clientHeight, window.innerHeight || 0),
5 | };
6 | }
7 |
--------------------------------------------------------------------------------
/app/utils/wds-track.js:
--------------------------------------------------------------------------------
1 | export default function (event, element, trackFunction, action, category) {
2 | const elementToTrack = event.target.closest('[data-tracking-label]');
3 |
4 | if (elementToTrack && element.contains(elementToTrack)) {
5 | trackFunction({
6 | category: elementToTrack.getAttribute('data-tracking-category') || category,
7 | label: elementToTrack.getAttribute('data-tracking-label'),
8 | action
9 | });
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/config/environment.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | module.exports = function () {
4 | return {}
5 | };
6 |
--------------------------------------------------------------------------------
/config/optional-features.json:
--------------------------------------------------------------------------------
1 | {
2 | "application-template-wrapper": false,
3 | "jquery-integration": false,
4 | "template-only-glimmer-components": true
5 | }
6 |
--------------------------------------------------------------------------------
/crowdin.conf:
--------------------------------------------------------------------------------
1 | [crowdin.project]
2 | projectid = "design-system"
3 | product_person = "stanley"
4 | repo.branch = "master"
5 | source.base = "i18n"
6 | source.file = "${source.base}/en/design-system.json"
7 | export.base = "${source.base}"
8 | export.pattern = "${export.base}/%mediawiki_language_code%/"
9 | export.pt-BR = "${export.base}/pt/"
10 | export.zh-cn = "${export.base}/zh/"
11 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | module.exports = {
4 | name: require('./package').name,
5 |
6 | included(app) {
7 | this._super.included.apply(this, arguments);
8 |
9 | app.import('vendor/polyfills.js', { prepend: true });
10 | }
11 | };
12 |
--------------------------------------------------------------------------------
/jsconfig.json:
--------------------------------------------------------------------------------
1 | {"compilerOptions":{"target":"es6","experimentalDecorators":true},"exclude":["node_modules","bower_components","tmp","vendor",".git","dist"]}
--------------------------------------------------------------------------------
/scripts/release-test.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | VERSION_TAG="test"
4 |
5 | if [[ ! -z "$1" ]]; then
6 | VERSION_TAG=$1
7 | fi
8 |
9 | yarn version --no-git-tag-version --prerelease --preid $VERSION_TAG
10 | yarn publish
11 |
--------------------------------------------------------------------------------
/scripts/release.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | if ! [[ "$1" =~ ^(patch|minor|major)$ ]]; then
4 | echo "Valid parameters are: patch, minor or major"
5 | exit 1
6 | fi
7 |
8 | STRATEGY="--$1"
9 |
10 | yarn version $STRATEGY
11 | yarn publish
12 | git push origin master
13 | git push origin --tags
14 |
15 |
--------------------------------------------------------------------------------
/scripts/set-artifactory-token.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Look inside global .npmrc
4 | if [[ -f "$HOME/.npmrc" ]]; then
5 | AUTH_TOKEN=$(egrep '//artifactory.wikia-inc.com/artifactory/api/npm/wikia-npm/:_authToken=.+' "$HOME/.npmrc" | sed -E "s/^.+authToken=(.+)/\\1/")
6 | echo "Found token in $HOME/.npmrc"
7 | export ARTIFACTORY_NPM_TOKEN="$AUTH_TOKEN"
8 | else
9 | echo "There's no token available at $HOME/.npmrc. Setting placeholder value"
10 | export ARTIFACTORY_NPM_TOKEN="placeholder"
11 | fi
12 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-activity-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-activity.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-add-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-add-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-add.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-alert-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-alert.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-arrow-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-arrow-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-arrow.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-bell-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-bell-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-bell.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-blocks-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-blocks-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-bold-active-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-bold-active.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-bold-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-bold-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-bold.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-bookmark-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-bookmark-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-bookmark.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-bubble-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-bubble-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-bubble.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-calendar-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-camera-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-camera-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-camera.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-checkbox-empty-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-checkbox-empty-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-checkbox-empty.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-checkbox-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-checkbox-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-checkbox.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-checkmark-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-checkmark-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-checkmark.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-clipboard-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-clipboard-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-clipboard.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-clock-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-clock-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-clock.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-close-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-close-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-close.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-controls-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-controls-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-controls.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-cross-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-cross-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-cross.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-dashboard-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-dashboard-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-dashboard.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-download-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-download-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-download.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-dropdown.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-envelope-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-envelope-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-envelope.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-external-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-external-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-external.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-eye.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-facebook-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-facebook-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-facebook.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-flag-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-flag.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-googleplus.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-grid-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-grid-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-grid.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-gripper-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-gripper-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-gripper.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-h2-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-h2-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-h2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-h3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-heart-filled-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-heart-filled-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-heart-filled.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-home-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-home-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-home.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-image.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-images-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-images-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-images.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-indent-left-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-indent-left-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-indent-left.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-indent-right-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-indent-right-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-indent-right.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-italics-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-italics-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-italics.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-left-align-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-left-align-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-left-align.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-linkedin.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-loading.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-lock-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-lock-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-lock.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-magnifying-glass-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-magnifying-glass-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-magnifying-glass.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-menu-control-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-menu-control-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-menu-control.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-menu-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-menu-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-menu.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-message-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-message-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-message.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-more-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-more.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-move-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-move-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-move.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-numbered-list-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-page-list-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-page-list-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-page-list.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-page-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-page-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-page.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-pages-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-pages-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-pages.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-paragraph-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-paragraph-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-paragraph.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-pause-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-pause-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-pause.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-pencil-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-pencil-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-pencil.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-pin-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-pin-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-pin.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-play-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-play-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-play.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-poll-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-poll-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-poll.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-question-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-quote-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-radio-active-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-radio-active-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-radio-active.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-radio-empty-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-radio-empty-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-radio-empty.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-refresh-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-refresh.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-reply-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-reply-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-reply.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-sitemap-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-sitemap.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-sound-off-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-sound-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-tag-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-tag-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-tag.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-text-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-text-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-text.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-trash-open-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-trash-open-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-trash-open.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-trash-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-trash-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-trash.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-tumblr.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-unlock-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-unlock-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-unlock.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-upvote-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-upvote-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-upvote.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-user-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-user-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-user.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-users-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-users.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-video-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-video-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-video.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-watch-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-watch-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-watch.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-youtube.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-zoom-in-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-zoom-in-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-zoom-in.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-zoom-out-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-zoom-out-tiny.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/assets/wds-icons-zoom-out.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/style-guide/styles/index.scss:
--------------------------------------------------------------------------------
1 | @import 'wds-functions/index';
2 | @import 'wds-mixins/index';
3 | @import 'wds-variables/index';
4 | @import 'wds-typography/index';
5 | @import 'wds-components/index';
6 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-components/_avatar-stack.scss:
--------------------------------------------------------------------------------
1 | .wds-avatar-stack {
2 | align-items: center;
3 | display: flex;
4 | margin: 8px 18px 6px 40px;
5 |
6 | &__overflow {
7 | border: 0;
8 | font-size: $wds-typescale-size-minus-2;
9 | padding-left: 6px;
10 | width: auto;
11 | }
12 |
13 | @for $i from 1 to 7 {
14 | .wds-avatar:nth-child(#{$i}) {
15 | position: relative;
16 | z-index: 7 - $i;
17 |
18 | @if $i > 1 {
19 | margin-left: -10px;
20 | }
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-components/_avatar.scss:
--------------------------------------------------------------------------------
1 | .wds-avatar {
2 | display: inline-block;
3 | position: relative;
4 |
5 | a {
6 | height: 100%;
7 | width: 100%;
8 | }
9 | }
10 |
11 | .wds-avatar__image {
12 | @include square(100%);
13 |
14 | display: inline-block;
15 | border-radius: 50%;
16 | box-sizing: border-box;
17 | }
18 |
19 | .wds-avatar__badge {
20 | line-height: 0;
21 | position: absolute;
22 |
23 | svg {
24 | @include square(100%);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-components/_buttons.scss:
--------------------------------------------------------------------------------
1 | @import 'buttons/common';
2 | @import 'buttons/social';
3 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-components/_icons.scss:
--------------------------------------------------------------------------------
1 | .wds-icon {
2 | fill: currentColor;
3 | @include square($wds-icon-size);
4 |
5 | &-small {
6 | @include square($wds-icon-small-size);
7 | }
8 |
9 | &-tiny {
10 | @include square($wds-icon-tiny-size);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-components/_inputs.scss:
--------------------------------------------------------------------------------
1 | @import "inputs/input";
2 | @import "inputs/textarea";
3 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-components/_is-disabled.scss:
--------------------------------------------------------------------------------
1 | .wds-is-disabled {
2 | @include is-disabled();
3 | }
4 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-components/_is-hidden.scss:
--------------------------------------------------------------------------------
1 | .wds-is-hidden {
2 | display: none !important;
3 | }
4 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-components/_links.scss:
--------------------------------------------------------------------------------
1 | @import '../wds-mixins/link-theming';
2 |
3 | .wds-link {
4 | @include link-theming($wds-fandom-color-link, $wds-fandom-color-link-hover);
5 | }
6 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-components/_menu-chevron.scss:
--------------------------------------------------------------------------------
1 | .wds-menu-chevron {
2 | float: right;
3 | margin-top: 5px;
4 | transform: rotate(-90deg);
5 | fill: $wds-color-blue-gray;
6 | }
7 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-components/_no-scroll.scss:
--------------------------------------------------------------------------------
1 | // makes element not scrollable
2 | .wds-no-scroll {
3 | height: 100%;
4 | overflow: hidden;
5 | }
6 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-components/_player.scss:
--------------------------------------------------------------------------------
1 | $sizes: (
2 | tiny: $wds-player-icon-play-tiny,
3 | small: $wds-player-icon-play-small,
4 | medium: $wds-player-icon-play-medium,
5 | large: $wds-player-icon-play-large,
6 | xl: $wds-player-icon-play-xl,
7 | xxl: $wds-player-icon-play-xxl
8 | );
9 |
10 | @each $name, $size in $sizes {
11 | .wds-player-icon-play-#{$name} {
12 | @include wds-player-icon-play($size);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-functions/_active-color.scss:
--------------------------------------------------------------------------------
1 | @import 'brightness';
2 |
3 | @function active-color($color) {
4 | @if type_of($color) != color {
5 | @return $color;
6 | }
7 |
8 | $active-color: lighten($color, 20%);
9 |
10 | @if brightness($color) > 128 {
11 | $active-color: darken($color, 20%);
12 | }
13 |
14 | @return $active-color;
15 | }
16 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-functions/_brightness.scss:
--------------------------------------------------------------------------------
1 | @import 'sqrt';
2 |
3 | /**
4 | * Implementation taken from http://alienryderflex.com/hsp.html
5 | */
6 | @function brightness($color) {
7 | @return floor(sqrt(
8 | .299 * (red($color) * red($color))
9 | + .587 * (green($color) * green($color))
10 | + .114 * (blue($color) * blue($color))
11 | ));
12 | }
13 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-functions/_community-header-text-color.scss:
--------------------------------------------------------------------------------
1 | @function community-header-text-color($header-background-color) {
2 | $text-color: $wds-color-white;
3 | @if brightness($header-background-color) > 128 {
4 | $text-color: $wds-color-black;
5 | }
6 | @return $text-color;
7 | }
8 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-functions/_sqrt.scss:
--------------------------------------------------------------------------------
1 | /**
2 | * Implemenation taken from http://www.antimath.info/css/sass-sqrt-function/
3 | */
4 | @function sqrt($r) {
5 | $x0: 1;
6 | $x1: $x0;
7 |
8 | @for $i from 1 through 10 {
9 | $x1: $x0 - ($x0 * $x0 - abs($r)) / (2 * $x0);
10 | $x0: $x1;
11 | }
12 |
13 | @return $x1;
14 | }
15 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-functions/index.scss:
--------------------------------------------------------------------------------
1 | @import 'brightness';
2 | @import 'community-header-text-color';
3 | @import 'wds-grid-columns-width';
4 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-mixins/_button-group-theming.scss:
--------------------------------------------------------------------------------
1 | @mixin button-group-theming($color-border) {
2 | > .wds-button {
3 | &:not(.wds-is-secondary) {
4 | &:not(:last-child) {
5 | border-right-color: $color-border;
6 | }
7 |
8 | &:not(:first-child) {
9 | border-left-color: $color-border;
10 | }
11 | }
12 | }
13 |
14 | > .wds-dropdown {
15 | &:not(:last-child) {
16 | .wds-button {
17 | border-right-color: $color-border;
18 | }
19 | }
20 |
21 | &:not(:first-child) {
22 | .wds-button {
23 | border-left-color: $color-border;
24 | }
25 | }
26 | }
27 | }
--------------------------------------------------------------------------------
/style-guide/styles/wds-mixins/_community-header-gradient.scss:
--------------------------------------------------------------------------------
1 | @mixin community-header-gradient(
2 | $header-background-color, $start-position, $end-position
3 | ) {
4 | background: linear-gradient(to right, rgba($header-background-color, .5), rgba($header-background-color, .5)),
5 | linear-gradient(to left, rgba($header-background-color, 0) $start-position, $header-background-color $end-position);
6 | }
7 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-mixins/_dialog-theming.scss:
--------------------------------------------------------------------------------
1 | @import'../wds-functions/index';
2 |
3 | @mixin dialog-theming($background-color, $border-color, $overlay-color) {
4 | $text-color: $wds-fandom-color-black;
5 |
6 | @if brightness($background-color) < 128 {
7 | $text-color: $wds-color-white;
8 | }
9 |
10 |
11 | &__curtain {
12 | background-color: $overlay-color;
13 | }
14 |
15 | &__wrapper {
16 | background: $background-color;
17 | color: $text-color;
18 | }
19 |
20 | &__actions {
21 | border-top-color: $border-color;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-mixins/_ellipsis.scss:
--------------------------------------------------------------------------------
1 | @mixin ellipsis {
2 | overflow: hidden;
3 | text-overflow: ellipsis;
4 | white-space: nowrap;
5 | }
6 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-mixins/_is-disabled.scss:
--------------------------------------------------------------------------------
1 | @mixin is-disabled() {
2 | cursor: default;
3 | opacity: .5;
4 | pointer-events: none;
5 | }
6 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-mixins/_is-right-aligned.scss:
--------------------------------------------------------------------------------
1 | @mixin is-right-aligned() {
2 | left: auto;
3 | right: 0;
4 | transform: none;
5 | }
6 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-mixins/_link-theming.scss:
--------------------------------------------------------------------------------
1 | @import '../wds-functions/active-color';
2 | @import '../wds-variables/index';
3 |
4 | @mixin link-theming($link-color, $link-active-color: null) {
5 | color: $link-color;
6 | transition: color $wds-button-transition-duration;
7 |
8 | &:hover, &:focus, &:active {
9 | @if $link-active-color {
10 | color: $link-active-color;
11 | }
12 | @else {
13 | color: active-color($link-color);
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-mixins/_pill-theming.scss:
--------------------------------------------------------------------------------
1 | @mixin pill-theming($text-color, $border-color, $active-color) {
2 | background-color: rgba($text-color, 0.05);
3 | border-color: $border-color;
4 |
5 | .wds-pill__label {
6 | color: $text-color;
7 | }
8 |
9 | &.wds-is-active {
10 | background-color: rgba($active-color, 0.15);
11 | border-color: $active-color;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-mixins/_square.scss:
--------------------------------------------------------------------------------
1 | @mixin square($size) {
2 | height: $size;
3 | // min-width prevents icons from squeezing
4 | min-width: $size;
5 | width: $size;
6 | }
7 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-mixins/_tabs-theming.scss:
--------------------------------------------------------------------------------
1 | @import '../wds-functions/active-color';
2 | @import 'wds-box-underline';
3 |
4 | @mixin tabs-theming($tab-color, $tab-active-color: null) {
5 | $tab-hover-color: active-color($tab-color);
6 |
7 | @if $tab-active-color {
8 | $tab-hover-color: $tab-active-color;
9 | }
10 |
11 | .wds-tabs__tab {
12 | &-label {
13 | color: $tab-color;
14 | }
15 |
16 | &.wds-is-current {
17 | @include wds-box-underline($tab-hover-color);
18 | }
19 |
20 | &.wds-is-current,
21 | &:hover {
22 | .wds-tabs__tab-label {
23 | color: $tab-hover-color;
24 | }
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-mixins/_toggle-theming.scss:
--------------------------------------------------------------------------------
1 | @mixin toggle-theming($off-color, $on-color, $background-color) {
2 | &__label {
3 | &::before {
4 | background-color: mix($background-color, $off-color, 50%);
5 | }
6 |
7 | &::after {
8 | background-color: $wds-color-white;
9 | box-shadow: 0 3px 1px -2px rgba(0, 0, 0, .14), 0 2px 2px 0 rgba(0, 0, 0, .098), 0 1px 5px 0 rgba(0, 0, 0, .084);
10 | }
11 | }
12 |
13 | &__input:checked + .wds-toggle__label {
14 | &::before {
15 | background-color: mix($background-color, $on-color, 50%);
16 | }
17 |
18 | &::after {
19 | background-color: $on-color;
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-mixins/_wds-box-underline.scss:
--------------------------------------------------------------------------------
1 | @mixin wds-box-underline($color) {
2 | box-shadow: inset 0 -2px 0 0 $color;
3 | }
4 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-mixins/_wds-dropdown-linked-list.scss:
--------------------------------------------------------------------------------
1 | @mixin wds-dropdown-linked-list-item-hover {
2 | background-color: fade_out($wds-fandom-color-link, 0.9);
3 | color: $wds-fandom-color-link;
4 | }
5 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-mixins/_wds-grid.scss:
--------------------------------------------------------------------------------
1 | @mixin wds-grid-mixin {
2 | display: grid;
3 | grid-gap: $wds-grid-gap;
4 | grid-template-columns: repeat($wds-grid-columns, 1fr);
5 | }
6 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-mixins/_wds-midlight.scss:
--------------------------------------------------------------------------------
1 | @mixin wds-midlight($background-color) {
2 | background-image: linear-gradient(to top, $background-color 54%, transparent 54%, transparent 100%);
3 | box-decoration-break: clone;
4 | display: inline;
5 | padding-left: 3px;
6 | padding-right: 3px;
7 | }
8 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-mixins/_wds-player-icon-play.scss:
--------------------------------------------------------------------------------
1 | @mixin wds-player-icon-play($circle-size) {
2 | // since play icon contains shadow around icon and designers provide sizes of icon without shadow, we need to
3 | // calculate exact size of icon box
4 | @include square($circle-size * 1.2);
5 | }
6 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-typography/classes/_font-weight-scale.scss:
--------------------------------------------------------------------------------
1 | .wds-font-weight-light {
2 | font-weight: $wds-font-weight-light;
3 | }
4 |
5 | .wds-font-weight-normal {
6 | font-weight: $wds-font-weight-normal;
7 | }
8 |
9 | .wds-font-weight-medium {
10 | font-weight: $wds-font-weight-medium;
11 | }
12 |
13 | .wds-font-weight-bold {
14 | font-weight: $wds-font-weight-bold;
15 | }
16 |
17 | .wds-font-weight-black {
18 | font-weight: $wds-font-weight-black;
19 | }
20 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-typography/classes/_line-height-scale.scss:
--------------------------------------------------------------------------------
1 | .wds-leading-none {
2 | line-height: $wds-line-height-none;
3 | }
4 |
5 | .wds-leading-tight {
6 | line-height: $wds-line-height-tight;
7 | }
8 |
9 | .wds-leading-normal {
10 | line-height: $wds-line-height-normal;
11 | }
12 |
13 | .wds-leading-loose {
14 | line-height: $wds-line-height-loose;
15 | }
16 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-typography/classes/index.scss:
--------------------------------------------------------------------------------
1 | @import 'font-weight-scale';
2 | @import 'text-style';
3 | @import 'typescale';
4 | @import 'line-height-scale';
5 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-typography/index.scss:
--------------------------------------------------------------------------------
1 | @import 'classes/index';
2 |
3 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-variables/_icons.scss:
--------------------------------------------------------------------------------
1 | $wds-icon-size: 24px;
2 | $wds-icon-small-size: 18px;
3 | $wds-icon-tiny-size: 12px;
4 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-variables/_player.scss:
--------------------------------------------------------------------------------
1 | $wds-player-icon-play-tiny: 30px;
2 | $wds-player-icon-play-small: 42px;
3 | $wds-player-icon-play-medium: 60px;
4 | $wds-player-icon-play-large: 90px;
5 | $wds-player-icon-play-xl: 120px;
6 | $wds-player-icon-play-xxl: 150px;
7 |
--------------------------------------------------------------------------------
/style-guide/styles/wds-variables/_wds-grid.scss:
--------------------------------------------------------------------------------
1 | $wds-grid-gap: 10px;
2 | $wds-grid-columns: 12;
3 |
4 | // how much width is taken by gaps
5 | $wds-grid-gap-space: $wds-grid-gap * ($wds-grid-columns - 1);
6 |
--------------------------------------------------------------------------------
/tests/dummy/app/app.js:
--------------------------------------------------------------------------------
1 | import Application from '@ember/application';
2 | import Resolver from './resolver';
3 | import loadInitializers from 'ember-load-initializers';
4 | import config from './config/environment';
5 |
6 | const App = Application.extend({
7 | modulePrefix: config.modulePrefix,
8 | podModulePrefix: config.podModulePrefix,
9 | Resolver
10 | });
11 |
12 | loadInitializers(App, config.modulePrefix);
13 |
14 | export default App;
15 |
--------------------------------------------------------------------------------
/tests/dummy/app/components/asset-box.js:
--------------------------------------------------------------------------------
1 | import Component from '@ember/component';
2 |
3 | export default Component.extend({
4 | classNames: ['asset-box'],
5 | // default SVG size
6 | height: 150,
7 | width: 150
8 | });
9 |
--------------------------------------------------------------------------------
/tests/dummy/app/components/code-sample.js:
--------------------------------------------------------------------------------
1 | import Component from '@ember/component';
2 | import hljs from 'npm:highlight.js/lib/highlight.js';
3 |
4 | export default Component.extend({
5 | classNameBindings: ['language'],
6 | language: 'html',
7 | tagName: 'pre',
8 |
9 | didInsertElement() {
10 | hljs.highlightBlock(this.element);
11 | }
12 | });
13 |
--------------------------------------------------------------------------------
/tests/dummy/app/components/color-box.js:
--------------------------------------------------------------------------------
1 | import Component from '@ember/component';
2 | import { computed } from '@ember/object';
3 | import { htmlSafe } from '@ember/string';
4 |
5 | export default Component.extend({
6 | classNames: 'color-box',
7 | safeStyle: computed('hex', function () {
8 | return htmlSafe(`background-color: ${this.hex}`);
9 | })
10 | });
11 |
--------------------------------------------------------------------------------
/tests/dummy/app/components/font-weight-line.js:
--------------------------------------------------------------------------------
1 | import Component from '@ember/component';
2 |
3 | export default Component.extend({
4 | tagName: ''
5 | });
6 |
--------------------------------------------------------------------------------
/tests/dummy/app/controllers/base-styles/breakpoints.js:
--------------------------------------------------------------------------------
1 | import Controller from '@ember/controller';
2 | import ENV from '../../config/environment';
3 |
4 | export default Controller.extend({
5 | rootURL: ENV.rootURL
6 | });
7 |
--------------------------------------------------------------------------------
/tests/dummy/app/controllers/identity/community-header.js:
--------------------------------------------------------------------------------
1 | import Controller from '@ember/controller';
2 |
3 | export default Controller.extend({
4 | track(label) {
5 | // eslint-disable-next-line no-console
6 | console.info('tracking', { label })
7 | }
8 | });
9 |
--------------------------------------------------------------------------------
/tests/dummy/app/controllers/identity/community-header/standalone.js:
--------------------------------------------------------------------------------
1 | import Controller from '@ember/controller';
2 |
3 | export default Controller.extend({
4 | track(label) {
5 | // eslint-disable-next-line no-console
6 | console.info('tracking', { label })
7 | }
8 | });
9 |
--------------------------------------------------------------------------------
/tests/dummy/app/controllers/route-components/banner-notifications.js:
--------------------------------------------------------------------------------
1 | import Controller from '@ember/controller';
2 |
3 | export default Controller.extend({
4 | actions: {
5 | onClose() {
6 | alert('You closed a banner notification');
7 | }
8 | }
9 | });
10 |
--------------------------------------------------------------------------------
/tests/dummy/app/controllers/route-components/dialogs.js:
--------------------------------------------------------------------------------
1 | /* eslint no-console:0 */
2 | import Controller from '@ember/controller';
3 |
4 | export default Controller.extend({
5 | actions: {
6 | onOk(dialogToggleName) {
7 | console.log('onOK')
8 | this.set(dialogToggleName, false);
9 | },
10 | onCancel(dialogToggleName) {
11 | console.log('onCancel')
12 | this.set(dialogToggleName, false);
13 | }
14 | }
15 | });
16 |
--------------------------------------------------------------------------------
/tests/dummy/app/controllers/route-components/inputs.js:
--------------------------------------------------------------------------------
1 | import Controller from '@ember/controller';
2 |
3 | export default Controller.extend({
4 | initialValue: 'initial value',
5 |
6 | actions: {
7 | input() {
8 | // eslint-disable-next-line no-console
9 | console.log('input');
10 | },
11 |
12 | focusOut() {
13 | // eslint-disable-next-line no-console
14 | console.log('focusOut');
15 | },
16 |
17 | focusIn() {
18 | // eslint-disable-next-line no-console
19 | console.log('focusIn');
20 | }
21 | }
22 | });
23 |
--------------------------------------------------------------------------------
/tests/dummy/app/helpers/equal.js:
--------------------------------------------------------------------------------
1 | import { helper as buildHelper } from '@ember/component/helper';
2 |
3 | /**
4 | * Check if two arguments are equals
5 | *
6 | * @param {Array} params
7 | * @returns {string}
8 | */
9 | export default buildHelper((params) => {
10 | return params[0] === params[1];
11 | });
12 |
--------------------------------------------------------------------------------
/tests/dummy/app/helpers/numeral.js:
--------------------------------------------------------------------------------
1 | import { helper as buildHelper } from '@ember/component/helper';
2 | import numeral from 'numeral';
3 |
4 | /**
5 | * @param {Array} params
6 | * @returns {string}
7 | */
8 | export default buildHelper(([numberToFormat, format]) => {
9 | return numeral(numberToFormat).format(format);
10 | });
11 |
--------------------------------------------------------------------------------
/tests/dummy/app/resolver.js:
--------------------------------------------------------------------------------
1 | import Resolver from 'ember-resolver';
2 |
3 | export default Resolver;
4 |
--------------------------------------------------------------------------------
/tests/dummy/app/routes/identity/browser-theming.js:
--------------------------------------------------------------------------------
1 | import Route from '@ember/routing/route';
2 |
3 | export default Route.extend({
4 | model() {
5 | return {};
6 | }
7 | });
8 |
--------------------------------------------------------------------------------
/tests/dummy/app/routes/identity/community-bar.js:
--------------------------------------------------------------------------------
1 | import Route from '@ember/routing/route';
2 | import model from '../../models/community-header';
3 |
4 | export default Route.extend({
5 | model() {
6 | return model.anon;
7 | }
8 | });
9 |
--------------------------------------------------------------------------------
/tests/dummy/app/routes/identity/community-bar/standalone.js:
--------------------------------------------------------------------------------
1 | import Route from '@ember/routing/route';
2 | import communityHeaderModel from '../../../models/community-header';
3 | import globalNavigationModel from '../../../models/global-navigation';
4 |
5 | export default Route.extend({
6 | model() {
7 | return {
8 | communityBar: communityHeaderModel.anon,
9 | globalNavigation: globalNavigationModel['logged-in-default']
10 | };
11 | },
12 |
13 | setupController() {
14 | this._super(...arguments);
15 | this.controllerFor('application').set('standalone', true);
16 | this.controllerFor('identity.community-bar').set('standalone', true);
17 | }
18 | });
19 |
--------------------------------------------------------------------------------
/tests/dummy/app/routes/identity/community-header.js:
--------------------------------------------------------------------------------
1 | import Route from '@ember/routing/route';
2 | import model from '../../models/community-header';
3 |
4 | export default Route.extend({
5 | model() {
6 | return model;
7 | }
8 | });
9 |
--------------------------------------------------------------------------------
/tests/dummy/app/routes/identity/community-header/standalone.js:
--------------------------------------------------------------------------------
1 | import Route from '@ember/routing/route';
2 | import model from '../../../models/community-header';
3 |
4 | export default Route.extend({
5 | model(params) {
6 | return model[params['variant_name']];
7 | },
8 |
9 | setupController() {
10 | this._super(...arguments);
11 | this.controllerFor('application').set('standalone', true);
12 | this.controllerFor('identity.community-header').set('standalone', true);
13 | }
14 | });
15 |
--------------------------------------------------------------------------------
/tests/dummy/app/routes/identity/global-footer.js:
--------------------------------------------------------------------------------
1 | import Route from '@ember/routing/route';
2 | import model from '../../models/global-footer';
3 |
4 | export default Route.extend({
5 | model() {
6 | return model;
7 | }
8 | });
9 |
--------------------------------------------------------------------------------
/tests/dummy/app/routes/identity/global-footer/standalone.js:
--------------------------------------------------------------------------------
1 | import Route from '@ember/routing/route';
2 | import model from '../../../models/global-footer';
3 |
4 | export default Route.extend({
5 | model(params) {
6 | return model[params['variant_name']];
7 | },
8 |
9 | setupController() {
10 | this._super(...arguments);
11 | this.controllerFor('application').set('standalone', true);
12 | this.controllerFor('identity.global-footer').set('standalone', true);
13 | }
14 | });
15 |
--------------------------------------------------------------------------------
/tests/dummy/app/routes/identity/global-navigation.js:
--------------------------------------------------------------------------------
1 | import Route from '@ember/routing/route';
2 | import model from '../../models/global-navigation';
3 |
4 | export default Route.extend({
5 | model() {
6 | return model;
7 | }
8 | });
9 |
--------------------------------------------------------------------------------
/tests/dummy/app/routes/identity/global-navigation/standalone.js:
--------------------------------------------------------------------------------
1 | import Route from '@ember/routing/route';
2 | import model from '../../../models/global-navigation';
3 |
4 | export default Route.extend({
5 | model(params) {
6 | return model[params['variant_name']];
7 | },
8 |
9 | setupController() {
10 | this._super(...arguments);
11 | this.controllerFor('application').set('standalone', true);
12 | this.controllerFor('identity.global-navigation').set('standalone', true);
13 | }
14 | });
15 |
--------------------------------------------------------------------------------
/tests/dummy/app/routes/index.js:
--------------------------------------------------------------------------------
1 | import Route from '@ember/routing/route';
2 |
3 | export default Route.extend({
4 | redirect() {
5 | this.transitionTo('overview.getting-started');
6 | }
7 | });
8 |
--------------------------------------------------------------------------------
/tests/dummy/app/services/current-user.js:
--------------------------------------------------------------------------------
1 | import Service from '@ember/service';
2 |
3 | export default Service.extend({
4 | isAuthenticated: false,
5 | language: 'en',
6 | userId: null,
7 | });
8 |
--------------------------------------------------------------------------------
/tests/dummy/app/services/fastboot.js:
--------------------------------------------------------------------------------
1 | import Service from '@ember/service';
2 |
3 | export default Service.extend({
4 | isFastBoot: false
5 | });
6 |
--------------------------------------------------------------------------------
/tests/dummy/app/services/fetch.js:
--------------------------------------------------------------------------------
1 | import fetch from '@wikia/ember-fandom/services/fetch';
2 |
3 | export default fetch.extend({
4 | init() {
5 | this.set('config', {
6 | servicesExternalHost: 'https://services.wikia.com'
7 | });
8 | this._super(...arguments);
9 | }
10 | });
11 |
--------------------------------------------------------------------------------
/tests/dummy/app/services/logger.js:
--------------------------------------------------------------------------------
1 | import Service from '@ember/service';
2 |
3 | export default Service.extend({
4 | error(name, data) {
5 | /* eslint-disable no-console */
6 | console.error(name, data);
7 | /* eslint-enable no-console */
8 | },
9 |
10 | warn(name, data) {
11 | /* eslint-disable no-console */
12 | console.warn(name, data);
13 | /* eslint-enable no-console */
14 | }
15 | });
16 |
--------------------------------------------------------------------------------
/tests/dummy/app/services/wiki-urls.js:
--------------------------------------------------------------------------------
1 | import wikiUrls from '@wikia/ember-fandom/services/wiki-urls';
2 |
3 | export default wikiUrls.extend({
4 | init() {
5 | this.set('config', {
6 | baseDomain: 'wikia.com'
7 | });
8 | this._super(...arguments);
9 | }
10 | });
11 |
--------------------------------------------------------------------------------
/tests/dummy/app/styles/base-styles/_assets.scss:
--------------------------------------------------------------------------------
1 | .assets-wrapper {
2 | display: flex;
3 | flex-wrap: wrap;
4 | justify-content: center;
5 | margin: 30px 0 -50px;
6 | text-align: center;
7 |
8 | &__align-items-left {
9 | justify-content: flex-start;
10 | text-align: left;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/tests/dummy/app/styles/base-styles/_breakpoints.scss:
--------------------------------------------------------------------------------
1 | .breakpoints-visualisation {
2 | margin-top: 30px;
3 | }
4 |
--------------------------------------------------------------------------------
/tests/dummy/app/styles/base-styles/_colors.scss:
--------------------------------------------------------------------------------
1 | .colors-wrapper {
2 | display: flex;
3 | flex-wrap: wrap;
4 | justify-content: center;
5 | margin-top: -20px;
6 | }
7 |
--------------------------------------------------------------------------------
/tests/dummy/app/styles/base-styles/_variables-table.scss:
--------------------------------------------------------------------------------
1 | .variables-table {
2 | border-collapse: collapse;
3 | border-spacing: 0;
4 | font-size: $wds-typescale-size-minus-1;
5 |
6 | &:not(.is-fluid) {
7 | width: 574px;
8 | }
9 |
10 | td {
11 | border: 1px solid $wds-color-off-white;
12 | padding: 14px 8px;
13 | vertical-align: top;
14 | }
15 |
16 | .format-code {
17 | font-size: $wds-typescale-size-minus-2;
18 | }
19 |
20 | &__header {
21 | background-color: $wds-color-off-white;
22 |
23 | th {
24 | border: 1px solid $wds-color-off-white;
25 | padding: 18px 8px;
26 | text-align: left;
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/tests/dummy/app/styles/base-styles/index.scss:
--------------------------------------------------------------------------------
1 | @import 'assets';
2 | @import 'breakpoints';
3 | @import 'colors';
4 | @import 'typography';
5 | @import 'variables-table';
6 |
--------------------------------------------------------------------------------
/tests/dummy/app/styles/components/_color-box.scss:
--------------------------------------------------------------------------------
1 | .color-box {
2 | color: $wds-color-dark-blue-gray;
3 | font-size: $wds-typescale-size-minus-2;
4 | line-height: $wds-line-height;
5 | margin: 30px 6px 0;
6 | text-align: center;
7 | width: 120px;
8 |
9 | &.is-bordered {
10 | .color-box__box {
11 | border: 1px solid $wds-color-faint-gray;
12 | }
13 | }
14 |
15 | &__box {
16 | @include square(60px);
17 |
18 | box-sizing: border-box;
19 | margin: 0 auto 10px;
20 | }
21 |
22 | &__name {
23 | font-weight: 700;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/tests/dummy/app/styles/components/_icon-box.scss:
--------------------------------------------------------------------------------
1 | .icon-box {
2 | color: $wds-color-dark-blue;
3 | font-size: $wds-typescale-size-minus-1;
4 | margin-bottom: 50px;
5 | text-align: center;
6 | width: 100px;
7 |
8 | &:hover .wds-icon {
9 | color: $wds-color-dark-blue;
10 | }
11 |
12 | &__icon {
13 | border-bottom: solid 1px $wds-fandom-color-mid-light-gray;
14 | height: 24px;
15 | margin: 0 25px 10px;
16 | padding-bottom: 17px;
17 | }
18 |
19 | .wds-icon {
20 | color: $wds-fandom-color-middle-gray;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/tests/dummy/app/styles/components/_typescale-line.scss:
--------------------------------------------------------------------------------
1 | .typescale-line {
2 | display: flex;
3 |
4 | &__left {
5 | border-right: 1px solid $wds-color-off-white;
6 | flex: 1 auto;
7 | line-height: $wds-line-height;
8 | padding: 10px 20px;
9 | }
10 |
11 | &__right {
12 | align-self: flex-end;
13 | color: $wds-color-dark-blue-gray;
14 | flex-shrink: 0;
15 | font-size: $wds-typescale-size-minus-2;
16 | padding: 10px 20px;
17 | width: 250px;
18 | }
19 |
20 | &__code {
21 | margin-left: 10px;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/tests/dummy/app/styles/components/index.scss:
--------------------------------------------------------------------------------
1 | @import 'asset-box';
2 | @import 'color-box';
3 | @import 'component-demo';
4 | @import 'icon-box';
5 | @import 'main-navigation';
6 | @import 'typescale-line';
7 |
--------------------------------------------------------------------------------
/tests/dummy/app/styles/identity/_browser-theming.scss:
--------------------------------------------------------------------------------
1 | .asset-theme-color {
2 | max-width: 320px;
3 | }
4 |
--------------------------------------------------------------------------------
/tests/dummy/app/styles/identity/_global-navigation.scss:
--------------------------------------------------------------------------------
1 | .wds-global-navigation {
2 | &__search-suggestions .wds-is-selected a {
3 | color: $wds-color-link;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/tests/dummy/app/styles/identity/index.scss:
--------------------------------------------------------------------------------
1 | @import 'browser-theming';
2 | @import 'community-header';
3 | @import 'global-navigation';
4 |
--------------------------------------------------------------------------------
/tests/dummy/app/styles/route-components/_dropdowns.scss:
--------------------------------------------------------------------------------
1 | .push-dropdown-down {
2 | padding-bottom: 4px;
3 | }
4 |
5 | .dropdown-margin-right {
6 | margin-right: 24px;
7 | }
8 |
9 | .dropdowns-theming {
10 | $color-page: #0E182B;
11 | $color-page-border: #3E4757;
12 | $color-text: #D5D4D4;
13 | $color-links: #71D1EF;
14 | @include dropdown-theming($color-page, $color-text, $color-links, $color-page-border);
15 | }
16 |
--------------------------------------------------------------------------------
/tests/dummy/app/styles/route-components/_floating-buttons.scss:
--------------------------------------------------------------------------------
1 | .fake-image {
2 | background-image: url('/images/FANDOM-background.svg');
3 | background-position: 50%;
4 | background-repeat: no-repeat;
5 | background-size: cover;
6 | height: 160px;
7 | position: relative;
8 | width: 320px;
9 | }
10 |
11 | .action-on-top-of-fake-image {
12 | position: absolute;
13 | top: 10px;
14 | left: 10px;
15 | }
16 |
--------------------------------------------------------------------------------
/tests/dummy/app/styles/route-components/index.scss:
--------------------------------------------------------------------------------
1 | @import 'avatars';
2 | @import 'buttons';
3 | @import 'dropdowns';
4 | @import 'floating-buttons';
5 |
--------------------------------------------------------------------------------
/tests/dummy/app/styles/wds.scss:
--------------------------------------------------------------------------------
1 | @import 'index';
2 |
--------------------------------------------------------------------------------
/tests/dummy/app/templates/application.hbs:
--------------------------------------------------------------------------------
1 | {{#if standalone}}
2 | {{outlet}}
3 | {{else}}
4 |
5 |
6 |
7 |
8 | {{outlet}}
9 |
10 |
11 | {{/if}}
12 |
--------------------------------------------------------------------------------
/tests/dummy/app/templates/components/asset-box.hbs:
--------------------------------------------------------------------------------
1 |
2 | {{svg
3 | (concat "wds-" @group "-" @name)
4 | height=this.height
5 | width=this.width
6 | }}
7 |
8 | {{@name}}
9 |
--------------------------------------------------------------------------------
/tests/dummy/app/templates/components/color-box.hbs:
--------------------------------------------------------------------------------
1 | {{! template-lint-configure-tree no-inline-styles false }}
2 |
3 | {{@name}}
4 | {{@hex}}
5 | {{@variable}}
6 |
--------------------------------------------------------------------------------
/tests/dummy/app/templates/components/font-weight-line.hbs:
--------------------------------------------------------------------------------
1 |
2 |
This is a headline.
3 |
4 |
Font weight: {{@fontWeight}}px .wds-{{@fontWeightName}}
5 |
6 |
7 |
--------------------------------------------------------------------------------
/tests/dummy/app/templates/components/icon-box.hbs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
{{concat @name (if @size (concat "-" @size))}}
4 |
5 |
--------------------------------------------------------------------------------
/tests/dummy/app/templates/components/text-style-line.hbs:
--------------------------------------------------------------------------------
1 |
2 |
{{@text}}
3 |
4 | .wds-{{@textStyle}}
5 |
6 |
7 |
--------------------------------------------------------------------------------
/tests/dummy/app/templates/components/typescale-line.hbs:
--------------------------------------------------------------------------------
1 |
2 |
5 | This is a headline.
6 |
7 |
8 |
Font size: {{@fontSize}}px .wds-{{@typescaleName}}
9 |
Line height: {{@lineHeight}} .wds-{{@lineHeightName}}
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/dummy/app/templates/identity/browser-theming.hbs:
--------------------------------------------------------------------------------
1 | Browser Theming
2 |
3 |
4 | Since version 39 Google Chrome supports theme-color meta tag. It is meant to add basic browser theming by changing the color of address bar.
5 |
6 |
7 | This color should match the color of Global Navigation bar. Pasting <meta name="theme-color" content="#002a32">
8 | within <head></head>
will result in such mobile Chrome experience:
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/tests/dummy/app/templates/identity/global-footer/standalone.hbs:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/tests/dummy/app/templates/identity/global-navigation/standalone.hbs:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/tests/dummy/app/templates/overview/ember-addon.hbs:
--------------------------------------------------------------------------------
1 | Ember addon
2 |
3 |
4 | Once installed by NPM, Fandom Design System can also work as a functional addon to the
5 | Ember.js framework.
6 |
7 |
8 |
9 | Using a component from Fandom Design System in your Ember.js application
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/tests/dummy/config/coverage.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | reporters: ['cobertura', 'lcov'],
3 | useBabelInstrumenter: true,
4 | };
5 |
--------------------------------------------------------------------------------
/tests/dummy/config/optional-features.json:
--------------------------------------------------------------------------------
1 | {
2 | "application-template-wrapper": false,
3 | "jquery-integration": false,
4 | "template-only-glimmer-components": true
5 | }
6 |
--------------------------------------------------------------------------------
/tests/dummy/config/targets.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const browsers = [
4 | 'last 5 versions'
5 | ];
6 |
7 | module.exports = {
8 | browsers
9 | };
10 |
--------------------------------------------------------------------------------
/tests/dummy/mirage/scenarios/default.js:
--------------------------------------------------------------------------------
1 | export default function(/* server */) {
2 |
3 | /*
4 | Seed your development database using your factories.
5 | This data will not be loaded in your tests.
6 | */
7 |
8 | // server.createList('post', 10);
9 | }
10 |
--------------------------------------------------------------------------------
/tests/dummy/mirage/serializers/application.js:
--------------------------------------------------------------------------------
1 | import { JSONAPISerializer } from 'ember-cli-mirage';
2 |
3 | export default JSONAPISerializer.extend({
4 | });
5 |
--------------------------------------------------------------------------------
/tests/dummy/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikia/design-system/54806768b099d79d60d3342fd06e6999deeef7ca/tests/dummy/public/favicon.ico
--------------------------------------------------------------------------------
/tests/dummy/public/images/FANDOM-Avatar.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikia/design-system/54806768b099d79d60d3342fd06e6999deeef7ca/tests/dummy/public/images/FANDOM-Avatar.jpg
--------------------------------------------------------------------------------
/tests/dummy/public/images/breakpoints.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikia/design-system/54806768b099d79d60d3342fd06e6999deeef7ca/tests/dummy/public/images/breakpoints.png
--------------------------------------------------------------------------------
/tests/dummy/public/images/theme-color.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikia/design-system/54806768b099d79d60d3342fd06e6999deeef7ca/tests/dummy/public/images/theme-color.png
--------------------------------------------------------------------------------
/tests/dummy/public/images/wds-community-bar-desktop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikia/design-system/54806768b099d79d60d3342fd06e6999deeef7ca/tests/dummy/public/images/wds-community-bar-desktop.png
--------------------------------------------------------------------------------
/tests/dummy/public/images/wds-community-bar-mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikia/design-system/54806768b099d79d60d3342fd06e6999deeef7ca/tests/dummy/public/images/wds-community-bar-mobile.png
--------------------------------------------------------------------------------
/tests/dummy/public/images/wds-community-bar-tablet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikia/design-system/54806768b099d79d60d3342fd06e6999deeef7ca/tests/dummy/public/images/wds-community-bar-tablet.png
--------------------------------------------------------------------------------
/tests/dummy/public/images/wds-community-header-desktop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikia/design-system/54806768b099d79d60d3342fd06e6999deeef7ca/tests/dummy/public/images/wds-community-header-desktop.png
--------------------------------------------------------------------------------
/tests/dummy/public/images/wds-community-header-mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikia/design-system/54806768b099d79d60d3342fd06e6999deeef7ca/tests/dummy/public/images/wds-community-header-mobile.png
--------------------------------------------------------------------------------
/tests/dummy/public/images/wds-community-header-tablet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikia/design-system/54806768b099d79d60d3342fd06e6999deeef7ca/tests/dummy/public/images/wds-community-header-tablet.png
--------------------------------------------------------------------------------
/tests/dummy/public/images/wds-global-footer-desktop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikia/design-system/54806768b099d79d60d3342fd06e6999deeef7ca/tests/dummy/public/images/wds-global-footer-desktop.png
--------------------------------------------------------------------------------
/tests/dummy/public/images/wds-global-footer-mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikia/design-system/54806768b099d79d60d3342fd06e6999deeef7ca/tests/dummy/public/images/wds-global-footer-mobile.png
--------------------------------------------------------------------------------
/tests/dummy/public/images/wds-global-footer-tablet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikia/design-system/54806768b099d79d60d3342fd06e6999deeef7ca/tests/dummy/public/images/wds-global-footer-tablet.png
--------------------------------------------------------------------------------
/tests/dummy/public/images/wds-global-navigation-desktop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikia/design-system/54806768b099d79d60d3342fd06e6999deeef7ca/tests/dummy/public/images/wds-global-navigation-desktop.png
--------------------------------------------------------------------------------
/tests/dummy/public/images/wds-global-navigation-mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikia/design-system/54806768b099d79d60d3342fd06e6999deeef7ca/tests/dummy/public/images/wds-global-navigation-mobile.png
--------------------------------------------------------------------------------
/tests/dummy/public/images/wds-global-navigation-tablet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikia/design-system/54806768b099d79d60d3342fd06e6999deeef7ca/tests/dummy/public/images/wds-global-navigation-tablet.png
--------------------------------------------------------------------------------
/tests/dummy/public/mocks/searchSuggestions.json:
--------------------------------------------------------------------------------
1 | {
2 | "suggestions": [
3 | "A phrase",
4 | "Another phrase",
5 | "Phrase number three!"
6 | ]
7 | }
8 |
--------------------------------------------------------------------------------
/tests/dummy/public/robots.txt:
--------------------------------------------------------------------------------
1 | # http://www.robotstxt.org
2 | User-agent: *
3 | Disallow:
4 |
--------------------------------------------------------------------------------
/tests/integration/components/community-bar/local-navigation-level-2-test.js:
--------------------------------------------------------------------------------
1 | import { module, skip } from 'qunit';
2 | import { setupRenderingTest } from 'ember-qunit';
3 | import { render } from '@ember/test-helpers';
4 | import hbs from 'htmlbars-inline-precompile';
5 |
6 | module(
7 | 'Integration | Component | community-bar/local-navigation-level-2',
8 | function(hooks) {
9 | setupRenderingTest(hooks);
10 |
11 | skip('it renders', async function() {
12 | await render(hbs`{{community-bar/local-navigation-level-2}}`);
13 | });
14 | },
15 | );
16 |
--------------------------------------------------------------------------------
/tests/integration/components/community-bar/local-navigation-level-3-test.js:
--------------------------------------------------------------------------------
1 | import { module, skip } from 'qunit';
2 | import { setupRenderingTest } from 'ember-qunit';
3 | import { render } from '@ember/test-helpers';
4 | import hbs from 'htmlbars-inline-precompile';
5 |
6 | module(
7 | 'Integration | Component | community-bar/local-navigation-level-3',
8 | function(hooks) {
9 | setupRenderingTest(hooks);
10 |
11 | skip('it renders', async function() {
12 | await render(hbs`{{community-bar/local-navigation-level-3}}`);
13 | });
14 | },
15 | );
16 |
--------------------------------------------------------------------------------
/tests/integration/components/community-bar/local-navigation-test.js:
--------------------------------------------------------------------------------
1 | import { module, skip } from 'qunit';
2 | import { setupRenderingTest } from 'ember-qunit';
3 | import { render } from '@ember/test-helpers';
4 | import hbs from 'htmlbars-inline-precompile';
5 |
6 | module('Integration | Component | community-bar/local-navigation', function(
7 | hooks,
8 | ) {
9 | setupRenderingTest(hooks);
10 |
11 | skip('it renders', async function() {
12 | await render(hbs`{{community-bar/local-navigation}}`);
13 | });
14 | });
15 |
--------------------------------------------------------------------------------
/tests/integration/components/community-header/local-navigation-dropdown-level-2-test.js:
--------------------------------------------------------------------------------
1 | import { module, skip } from 'qunit';
2 | import { setupRenderingTest } from 'ember-qunit';
3 | import { render } from '@ember/test-helpers';
4 | import hbs from 'htmlbars-inline-precompile';
5 |
6 | module(
7 | 'Integration | Component | community-header/local-navigation-dropdown-level-2',
8 | function(hooks) {
9 | setupRenderingTest(hooks);
10 |
11 | skip('it renders', async function() {
12 | await render(
13 | hbs`{{community-header/local-navigation-dropdown-level-2}}`,
14 | );
15 | });
16 | },
17 | );
18 |
--------------------------------------------------------------------------------
/tests/integration/components/global-navigation/anon-test.js:
--------------------------------------------------------------------------------
1 | import { module, skip } from 'qunit';
2 | import { setupRenderingTest } from 'ember-qunit';
3 | import { render } from '@ember/test-helpers';
4 | import hbs from 'htmlbars-inline-precompile';
5 |
6 | module('Integration | Component | global-navigation/anon', function(hooks) {
7 | setupRenderingTest(hooks);
8 |
9 | skip('it renders', async function() {
10 | await render(hbs`{{global-navigation/anon}}`);
11 | });
12 | });
13 |
--------------------------------------------------------------------------------
/tests/integration/components/global-navigation/content-recommendation-card-test.js:
--------------------------------------------------------------------------------
1 | import { module, skip } from 'qunit';
2 | import { setupRenderingTest } from 'ember-qunit';
3 | import { render } from '@ember/test-helpers';
4 | import hbs from 'htmlbars-inline-precompile';
5 |
6 | module(
7 | 'Integration | Component | global-navigation/content-recommendation-card',
8 | function(hooks) {
9 | setupRenderingTest(hooks);
10 |
11 | skip('it renders', async function() {
12 | await render(
13 | hbs`{{global-navigation/content-recommendation-card}}`,
14 | );
15 | });
16 | },
17 | );
18 |
--------------------------------------------------------------------------------
/tests/integration/components/global-navigation/content-recommendations-test.js:
--------------------------------------------------------------------------------
1 | import { module, skip } from 'qunit';
2 | import { setupRenderingTest } from 'ember-qunit';
3 | import { render } from '@ember/test-helpers';
4 | import hbs from 'htmlbars-inline-precompile';
5 |
6 | module(
7 | 'Integration | Component | global-navigation/content-recommendations',
8 | function(hooks) {
9 | setupRenderingTest(hooks);
10 |
11 | skip('it renders', async function() {
12 | await render(hbs`{{global-navigation/content-recommendations}}`);
13 | });
14 | },
15 | );
16 |
--------------------------------------------------------------------------------
/tests/integration/components/global-navigation/link-logout-test.js:
--------------------------------------------------------------------------------
1 | import { module, skip } from 'qunit';
2 | import { setupRenderingTest } from 'ember-qunit';
3 | import { render } from '@ember/test-helpers';
4 | import hbs from 'htmlbars-inline-precompile';
5 |
6 | module('Integration | Component | global-navigation/link-logout', function(
7 | hooks,
8 | ) {
9 | setupRenderingTest(hooks);
10 |
11 | skip('it renders', async function() {
12 | await render(hbs`{{global-navigation/link-logout}}`);
13 | });
14 | });
15 |
--------------------------------------------------------------------------------
/tests/integration/components/global-navigation/search-modal-test.js:
--------------------------------------------------------------------------------
1 | import { module, skip } from 'qunit';
2 | import { setupRenderingTest } from 'ember-qunit';
3 | import { render } from '@ember/test-helpers';
4 | import hbs from 'htmlbars-inline-precompile';
5 |
6 | module('Integration | Component | global-navigation/search-modal', function(
7 | hooks,
8 | ) {
9 | setupRenderingTest(hooks);
10 |
11 | skip('it renders', async function() {
12 | await render(hbs`{{global-navigation/search-modal}}`);
13 |
14 | });
15 | });
16 |
--------------------------------------------------------------------------------
/tests/integration/components/global-navigation/user-modal-test.js:
--------------------------------------------------------------------------------
1 | import { module, skip } from 'qunit';
2 | import { setupRenderingTest } from 'ember-qunit';
3 | import { render } from '@ember/test-helpers';
4 | import hbs from 'htmlbars-inline-precompile';
5 |
6 | module('Integration | Component | global-navigation/user-modal', function(
7 | hooks,
8 | ) {
9 | setupRenderingTest(hooks);
10 |
11 | skip('it renders', async function() {
12 | await render(hbs`{{global-navigation/user-modal}}`);
13 | });
14 | });
15 |
--------------------------------------------------------------------------------
/tests/integration/components/local-navigation-test.js:
--------------------------------------------------------------------------------
1 | import { module, skip } from 'qunit';
2 | import { setupRenderingTest } from 'ember-qunit';
3 | import { render } from '@ember/test-helpers';
4 | import hbs from 'htmlbars-inline-precompile';
5 |
6 | module('Integration | Component | local-navigation', function(hooks) {
7 | setupRenderingTest(hooks);
8 |
9 | skip('it renders', async function() {
10 | await render(hbs` `);
11 | });
12 | });
13 |
--------------------------------------------------------------------------------
/tests/integration/components/on-site-notifications/notifications-dropdown-test.js:
--------------------------------------------------------------------------------
1 | import { module, skip } from 'qunit';
2 | import { setupRenderingTest } from 'ember-qunit';
3 | import { render } from '@ember/test-helpers';
4 | import hbs from 'htmlbars-inline-precompile';
5 |
6 | module(
7 | 'Integration | Component | on-site-notifications/notifications-dropdown',
8 | function(hooks) {
9 | setupRenderingTest(hooks);
10 |
11 | skip('it renders', async function() {
12 | await render(hbs`{{on-site-notifications/notifications-dropdown}}`);
13 | });
14 | },
15 | );
16 |
--------------------------------------------------------------------------------
/tests/integration/components/on-site-notifications/notifications-test.js:
--------------------------------------------------------------------------------
1 | import { module, skip } from 'qunit';
2 | import { setupRenderingTest } from 'ember-qunit';
3 | import { render } from '@ember/test-helpers';
4 | import hbs from 'htmlbars-inline-precompile';
5 |
6 | module(
7 | 'Integration | Component | on-site-notifications/notifications',
8 | function(hooks) {
9 | setupRenderingTest(hooks);
10 |
11 | skip('it renders', async function() {
12 | await render(hbs`{{on-site-notifications/notifications}}`);
13 | });
14 | },
15 | );
16 |
--------------------------------------------------------------------------------
/tests/pages/components/avatar-stack.js:
--------------------------------------------------------------------------------
1 | import { collection } from 'ember-cli-page-object';
2 | import attr from '../helpers/attr';
3 | import avatar from './avatar';
4 |
5 | export default {
6 | scope: 'div.wds-avatar-stack',
7 |
8 | attr,
9 |
10 | avatars: collection(avatar.scope, {
11 | item: avatar,
12 | }),
13 |
14 | overflow: {
15 | scope: '.wds-avatar-stack__overflow',
16 | },
17 | };
18 |
--------------------------------------------------------------------------------
/tests/pages/components/avatar.js:
--------------------------------------------------------------------------------
1 | import { attribute } from 'ember-cli-page-object';
2 |
3 | export default {
4 | scope: '.wds-avatar',
5 |
6 | title: attribute('title'),
7 |
8 | link: {
9 | scope: 'a',
10 | href: attribute('href'),
11 | },
12 |
13 | badge: {
14 | scope: '.wds-avatar__badge',
15 | name: attribute('xlink:href', 'svg use'),
16 | title: attribute('title')
17 | },
18 |
19 | image: {
20 | scope: 'img.wds-avatar__image',
21 | src: attribute('src'),
22 | alt: attribute('alt')
23 | },
24 |
25 | default: {
26 | avatar: {
27 | scope: 'svg.wds-avatar__image'
28 | },
29 | },
30 | };
31 |
--------------------------------------------------------------------------------
/tests/pages/components/banner-notifications.js:
--------------------------------------------------------------------------------
1 | import { collection } from 'ember-cli-page-object';
2 | import bannerNotification from './banner-notification';
3 |
4 | export default {
5 | scope: '.wds-banner-notification__container',
6 |
7 | notifications: collection(bannerNotification.scope, {
8 | icon: bannerNotification.icon,
9 | close: bannerNotification.close
10 | }),
11 | };
12 |
--------------------------------------------------------------------------------
/tests/pages/helpers/attr.js:
--------------------------------------------------------------------------------
1 | import { findElement } from 'ember-cli-page-object/extend';
2 |
3 | export default function attr(attribute) {
4 | return findElement(this).attr(attribute);
5 | }
6 |
--------------------------------------------------------------------------------
/tests/test-helper.js:
--------------------------------------------------------------------------------
1 | import Application from '../app';
2 | import config from '../config/environment';
3 | import { setApplication } from '@ember/test-helpers';
4 | import { start } from 'ember-qunit';
5 | import { useNativeEvents } from 'ember-cli-page-object/extend';
6 |
7 | useNativeEvents();
8 |
9 | setApplication(Application.create(config.APP));
10 |
11 | start();
12 |
--------------------------------------------------------------------------------
/tests/unit/models/wds-on-site-notifications/wds-on-site-notifications-test.js:
--------------------------------------------------------------------------------
1 | import { module, skip } from 'qunit';
2 | import { setupTest } from 'ember-qunit';
3 |
4 | module(
5 | 'Unit | Service | wds-on-site-notifications/wds-on-site-notifications',
6 | function(hooks) {
7 | setupTest(hooks);
8 |
9 | skip('it exists', function(assert) {
10 | assert.ok();
11 | });
12 | },
13 | );
14 |
--------------------------------------------------------------------------------
/tests/unit/services/wds-on-site-notifications-test.js:
--------------------------------------------------------------------------------
1 | import { module, test } from 'qunit';
2 | import { setupTest } from 'ember-qunit';
3 |
4 | module('Unit | Service | wds-on-site-notifications', function(hooks) {
5 | setupTest(hooks);
6 |
7 | // Replace this with your real tests.
8 | test('it exists', function(assert) {
9 | let service = this.owner.lookup('service:wds-on-site-notifications');
10 | assert.ok(service);
11 | });
12 | });
13 |
--------------------------------------------------------------------------------
/vendor/inline-scripts/tracking-queue-stub.js:
--------------------------------------------------------------------------------
1 | window.M = window.M || {};
2 |
3 | window.M.trackingQueue = window.M.trackingQueue || {
4 | push(callback) {
5 | callback(true);
6 | }
7 | };
8 |
--------------------------------------------------------------------------------
/vendor/polyfills.js:
--------------------------------------------------------------------------------
1 | if (window && window.Element) {
2 | if (!Element.prototype.matches) {
3 | Element.prototype.matches = Element.prototype.msMatchesSelector;
4 | }
5 |
6 |
7 | if (!Element.prototype.closest) {
8 | Element.prototype.closest = function (selector) {
9 | var element = this;
10 |
11 | if (!document.documentElement.contains(element)) {
12 | return null;
13 | }
14 | do {
15 | if (element.matches(selector)) {
16 | return element;
17 | }
18 | element = element.parentElement || element.parentNode;
19 | } while (element !== null && element.nodeType === 1);
20 |
21 | return null;
22 | };
23 | }
24 | }
25 |
--------------------------------------------------------------------------------