diff --git a/app/app.js b/app/app.js
index d62175f0..b2d81277 100644
--- a/app/app.js
+++ b/app/app.js
@@ -4,6 +4,7 @@ import loadInitializers from 'ember-load-initializers';
import config from 'ember-api-docs/config/environment';
import { importSync, isDevelopingApp, macroCondition } from '@embroider/macros';
import 'ember-power-select/styles';
+import './assets/styles.css';
if (macroCondition(isDevelopingApp())) {
importSync('./deprecation-workflow');
diff --git a/app/assets/styles.css b/app/assets/styles.css
new file mode 100644
index 00000000..78312d99
--- /dev/null
+++ b/app/assets/styles.css
@@ -0,0 +1,355 @@
+/* stylelint-disable no-descending-specificity, selector-class-pattern */
+
+html {
+ scroll-padding-top: var(--spacing-3);
+}
+
+.article-title-wrapper {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.module-name {
+ display: inline-flex;
+ align-items: center;
+ flex-wrap: wrap;
+ gap: var(--spacing-1);
+ margin-bottom: 0;
+}
+
+.access {
+ color: #fff;
+ background-color: var(--color-gray-600);
+ padding: 0.25rem var(--spacing-1);
+ font-size: var(--font-size-md);
+ border-radius: var(--radius);
+ vertical-align: middle;
+}
+
+main a.edit-icon {
+ height: 1rem;
+ width: 16px;
+ display: inline-block;
+ background: none;
+}
+
+.sidebar-container {
+ --sidebar-width: min-content;
+}
+
+.es-sidebar-content .table-of-contents:first-child {
+ margin-block-start: 0;
+}
+
+.table-of-contents {
+ list-style-type: none;
+ padding-left: 0;
+ font-size: var(--font-size-base);
+ font-weight: var(--font-weight-3);
+}
+
+.sub-table-of-contents {
+ padding-left: var(--spacing-1);
+ font-size: var(--font-size-base);
+ font-weight: var(--font-weight-2);
+}
+
+.sub-table-of-contents .sub-table-of-contents {
+ padding-left: var(--spacing-3);
+ margin-bottom: 0;
+}
+
+.table-of-contents a:link {
+ background: none;
+}
+
+.sub-table-of-contents .toc-item a {
+ display: block;
+ padding: var(--spacing-1);
+ border-radius: var(--radius);
+ line-height: var(--line-height-xs);
+ color: var(--color-gray-700);
+ border-left: 0 solid transparent;
+ transition: border-width 0.3s;
+}
+
+.sub-table-of-contents .toc-item a:hover {
+ border-left: 4px solid var(--color-gray-400);
+ border-radius: 0;
+}
+
+.sub-table-of-contents .toc-item.selected > a,
+.sub-table-of-contents .toc-item > a.active {
+ border-left: 4px solid var(--color-brand-hc-dark);
+ border-radius: 0;
+}
+
+.table-of-contents li {
+ margin: 3px 0;
+ list-style-type: none;
+ color: var(--color-gray-600);
+}
+
+li.toc-heading {
+ margin-top: var(--spacing-4);
+ color: var(--color-gray-600);
+}
+
+li.toc-heading:first-child {
+ margin-top: 0;
+}
+
+.toc-private-toggle {
+ display: block;
+ margin-top: var(--spacing-2);
+}
+
+.class-field-description--header {
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ column-gap: var(--spacing-1);
+}
+
+a.class-field-description--link {
+ margin-left: 0;
+ vertical-align: middle;
+ background: none;
+ cursor: pointer;
+}
+
+a.class-field-description--link svg {
+ height: 18px;
+ fill: var(--color-gray-600);
+ transform: rotate(45deg);
+ vertical-align: middle;
+}
+
+a.class-field-description--link:hover svg {
+ fill: var(--color-brand);
+}
+
+.parameter,
+.return {
+ display: flex;
+ gap: var(--spacing-1);
+}
+
+.parameter dt,
+.return dt {
+ font-weight: bold;
+}
+
+dd {
+ margin: 0;
+}
+
+.class-field-description .args {
+ font-weight: var(--font-weight-2);
+}
+
+.parameter-type,
+.class-field-description .return-type,
+.return .return-type {
+ font-style: italic;
+ color: var(--color-gray-600);
+}
+
+.on-this-page-wrapper .access-checkbox-list {
+ display: flex;
+ flex-direction: column;
+}
+
+.on-this-page-wrapper .api-index-filter {
+ margin-top: var(--spacing-2);
+}
+
+.on-this-page-wrapper ul {
+ margin-top: 0;
+}
+
+section.method,
+section.property,
+section.event {
+ margin-bottom: var(--spacing-3);
+}
+
+.whoops {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ padding: var(--spacing-6);
+}
+
+.whoops img {
+ width: 240px;
+ margin: var(--spacing-2);
+}
+
+.search-wrapper {
+ position: relative;
+}
+
+.search-results {
+ position: absolute;
+ right: 0;
+ top: 100%;
+ width: 25vw;
+ min-width: 500px;
+ background-color: white;
+ color: black;
+ border-radius: 8px;
+ margin-top: 10px;
+ border: 2px solid var(--color-card-border);
+ overflow-x: auto;
+ max-height: 70dvh;
+ z-index: 1;
+}
+
+@media (width <= 500px) {
+ .search-results {
+ width: 95dvw;
+ min-width: auto;
+ max-height: initial;
+ }
+}
+
+.search-results--instructions,
+.search-results--no-results,
+.search-results--searching,
+.search-results--group-header,
+.search-results--result {
+ padding: 8px 16px;
+}
+
+.search-results--result {
+ display: flex;
+ border-bottom: 1px solid var(--color-card-border);
+ gap: 10px;
+ font-size: 14px;
+}
+
+.search-results--subcategory-column {
+ font-weight: bold;
+ max-width: 33%;
+ flex-basis: 33%;
+ overflow-wrap: break-word;
+}
+
+.search-results--content {
+ flex: 1 0 0;
+}
+
+.search-results--no-results {
+ color: var(--color-gray-600);
+}
+
+.search-results--group-header {
+ background-color: var(--color-info);
+}
+
+.visually-hidden,
+.screen-reader-text {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ white-space: nowrap;
+ border: 0;
+}
+
+/* Ember data uses styled elements in markdown blocks that conflict with the
+ default styles for blockquotes (because of ::before block that has an
+ absolutely positioned quote mark).
+ */
+blockquote[style]::before {
+ all: initial;
+}
+
+/* Styles for tables (from markdown)
+ Should probably be upstreamed to ember-styleguide
+ */
+table {
+ text-align: left;
+ border-collapse: collapse;
+}
+
+table tr {
+ border-bottom: 1px solid var(--color-gray-300);
+}
+
+table th,
+table td {
+ padding: var(--spacing-1);
+}
+
+/* Taken from guidemaker for search
+ Should probably move to ember-styleguide
+ */
+
+.es-navbar {
+ max-width: 100%;
+}
+
+.search-input {
+ border-radius: 18px;
+ border: 2px solid var(--color-card-border);
+ line-height: 30px;
+ padding-left: 8px;
+ width: 100%;
+}
+
+.powered-by-algolia {
+ display: flex;
+ justify-content: end;
+ margin: 8px;
+}
+
+.powered-by-algolia a {
+ display: flex;
+}
+
+@media (width >= 1008px) {
+ .navbar-list {
+ flex-grow: 1;
+ }
+}
+
+/* End taken from guidemaker for search */
+
+@media (width >= 845px) {
+ .es-header {
+ padding: 0 var(--spacing-4);
+ justify-content: start;
+ }
+
+ .es-sidebar {
+ padding: var(--spacing-4);
+ background-color: var(--color-gray-200);
+ }
+
+ .content {
+ margin-top: var(--spacing-4);
+ }
+}
+
+@media (width <= 450px) {
+ .whoops {
+ flex-direction: column;
+ padding: var(--spacing-3);
+ }
+
+ .whoops img {
+ width: 80%;
+ margin: var(--spacing-4);
+ }
+
+ .whoops__message {
+ margin: var(--spacing-2);
+ text-align: center;
+ }
+}
diff --git a/app/components/table-of-contents.hbs b/app/components/table-of-contents.hbs
index d8a8c5f0..22a2f92b 100644
--- a/app/components/table-of-contents.hbs
+++ b/app/components/table-of-contents.hbs
@@ -1,5 +1,5 @@
diff --git a/app/router.js b/app/router.js
index 65d68d84..4e91dd14 100644
--- a/app/router.js
+++ b/app/router.js
@@ -1,6 +1,9 @@
import EmberRouter from '@ember/routing/router';
import config from 'ember-api-docs/config/environment';
+import { withHashSupport } from 'ember-api-docs/utils/url-hash-polyfill';
+// The following adds support for URL hash routing for those URLs not rendered with fastboot
+@withHashSupport
class AppRouter extends EmberRouter {
location = config.locationType;
rootURL = config.routerRootURL;
diff --git a/app/routes/application.js b/app/routes/application.js
index a72af054..e667bd76 100644
--- a/app/routes/application.js
+++ b/app/routes/application.js
@@ -2,6 +2,7 @@ import { inject as service } from '@ember/service';
import Route from '@ember/routing/route';
import { set } from '@ember/object';
import ENV from 'ember-api-docs/config/environment';
+import { isDestroying, isDestroyed } from '@ember/destroyable';
export default class ApplicationRoute extends Route {
@service
@@ -19,10 +20,25 @@ export default class ApplicationRoute extends Route {
@service
metrics;
+ @service
+ routerScroll;
+
constructor() {
super(...arguments);
if (!this.fastboot.isFastBoot) {
this.router.on('routeDidChange', this.trackPage);
+
+ /* Hax from https://github.com/DockYard/ember-router-scroll/issues/263
+ to handle router scroll behavior when the page was initially served
+ with fastboot
+ */
+ this.routerScroll.set('preserveScrollPosition', true);
+
+ setTimeout(() => {
+ if (!isDestroying(this) && !isDestroyed(this)) {
+ this.routerScroll.set('preserveScrollPosition', false);
+ }
+ }, 1000);
}
}
diff --git a/app/styles/app.css b/app/styles/app.css
index 78312d99..16a8af96 100644
--- a/app/styles/app.css
+++ b/app/styles/app.css
@@ -1,355 +1,3 @@
-/* stylelint-disable no-descending-specificity, selector-class-pattern */
+/* Empty for build pipeline */
-html {
- scroll-padding-top: var(--spacing-3);
-}
-
-.article-title-wrapper {
- display: flex;
- justify-content: space-between;
- align-items: center;
-}
-
-.module-name {
- display: inline-flex;
- align-items: center;
- flex-wrap: wrap;
- gap: var(--spacing-1);
- margin-bottom: 0;
-}
-
-.access {
- color: #fff;
- background-color: var(--color-gray-600);
- padding: 0.25rem var(--spacing-1);
- font-size: var(--font-size-md);
- border-radius: var(--radius);
- vertical-align: middle;
-}
-
-main a.edit-icon {
- height: 1rem;
- width: 16px;
- display: inline-block;
- background: none;
-}
-
-.sidebar-container {
- --sidebar-width: min-content;
-}
-
-.es-sidebar-content .table-of-contents:first-child {
- margin-block-start: 0;
-}
-
-.table-of-contents {
- list-style-type: none;
- padding-left: 0;
- font-size: var(--font-size-base);
- font-weight: var(--font-weight-3);
-}
-
-.sub-table-of-contents {
- padding-left: var(--spacing-1);
- font-size: var(--font-size-base);
- font-weight: var(--font-weight-2);
-}
-
-.sub-table-of-contents .sub-table-of-contents {
- padding-left: var(--spacing-3);
- margin-bottom: 0;
-}
-
-.table-of-contents a:link {
- background: none;
-}
-
-.sub-table-of-contents .toc-item a {
- display: block;
- padding: var(--spacing-1);
- border-radius: var(--radius);
- line-height: var(--line-height-xs);
- color: var(--color-gray-700);
- border-left: 0 solid transparent;
- transition: border-width 0.3s;
-}
-
-.sub-table-of-contents .toc-item a:hover {
- border-left: 4px solid var(--color-gray-400);
- border-radius: 0;
-}
-
-.sub-table-of-contents .toc-item.selected > a,
-.sub-table-of-contents .toc-item > a.active {
- border-left: 4px solid var(--color-brand-hc-dark);
- border-radius: 0;
-}
-
-.table-of-contents li {
- margin: 3px 0;
- list-style-type: none;
- color: var(--color-gray-600);
-}
-
-li.toc-heading {
- margin-top: var(--spacing-4);
- color: var(--color-gray-600);
-}
-
-li.toc-heading:first-child {
- margin-top: 0;
-}
-
-.toc-private-toggle {
- display: block;
- margin-top: var(--spacing-2);
-}
-
-.class-field-description--header {
- display: flex;
- align-items: center;
- flex-wrap: wrap;
- column-gap: var(--spacing-1);
-}
-
-a.class-field-description--link {
- margin-left: 0;
- vertical-align: middle;
- background: none;
- cursor: pointer;
-}
-
-a.class-field-description--link svg {
- height: 18px;
- fill: var(--color-gray-600);
- transform: rotate(45deg);
- vertical-align: middle;
-}
-
-a.class-field-description--link:hover svg {
- fill: var(--color-brand);
-}
-
-.parameter,
-.return {
- display: flex;
- gap: var(--spacing-1);
-}
-
-.parameter dt,
-.return dt {
- font-weight: bold;
-}
-
-dd {
- margin: 0;
-}
-
-.class-field-description .args {
- font-weight: var(--font-weight-2);
-}
-
-.parameter-type,
-.class-field-description .return-type,
-.return .return-type {
- font-style: italic;
- color: var(--color-gray-600);
-}
-
-.on-this-page-wrapper .access-checkbox-list {
- display: flex;
- flex-direction: column;
-}
-
-.on-this-page-wrapper .api-index-filter {
- margin-top: var(--spacing-2);
-}
-
-.on-this-page-wrapper ul {
- margin-top: 0;
-}
-
-section.method,
-section.property,
-section.event {
- margin-bottom: var(--spacing-3);
-}
-
-.whoops {
- display: flex;
- justify-content: center;
- align-items: center;
- padding: var(--spacing-6);
-}
-
-.whoops img {
- width: 240px;
- margin: var(--spacing-2);
-}
-
-.search-wrapper {
- position: relative;
-}
-
-.search-results {
- position: absolute;
- right: 0;
- top: 100%;
- width: 25vw;
- min-width: 500px;
- background-color: white;
- color: black;
- border-radius: 8px;
- margin-top: 10px;
- border: 2px solid var(--color-card-border);
- overflow-x: auto;
- max-height: 70dvh;
- z-index: 1;
-}
-
-@media (width <= 500px) {
- .search-results {
- width: 95dvw;
- min-width: auto;
- max-height: initial;
- }
-}
-
-.search-results--instructions,
-.search-results--no-results,
-.search-results--searching,
-.search-results--group-header,
-.search-results--result {
- padding: 8px 16px;
-}
-
-.search-results--result {
- display: flex;
- border-bottom: 1px solid var(--color-card-border);
- gap: 10px;
- font-size: 14px;
-}
-
-.search-results--subcategory-column {
- font-weight: bold;
- max-width: 33%;
- flex-basis: 33%;
- overflow-wrap: break-word;
-}
-
-.search-results--content {
- flex: 1 0 0;
-}
-
-.search-results--no-results {
- color: var(--color-gray-600);
-}
-
-.search-results--group-header {
- background-color: var(--color-info);
-}
-
-.visually-hidden,
-.screen-reader-text {
- position: absolute;
- width: 1px;
- height: 1px;
- padding: 0;
- margin: -1px;
- overflow: hidden;
- clip: rect(0, 0, 0, 0);
- white-space: nowrap;
- border: 0;
-}
-
-/* Ember data uses styled elements in markdown blocks that conflict with the
- default styles for blockquotes (because of ::before block that has an
- absolutely positioned quote mark).
- */
-blockquote[style]::before {
- all: initial;
-}
-
-/* Styles for tables (from markdown)
- Should probably be upstreamed to ember-styleguide
- */
-table {
- text-align: left;
- border-collapse: collapse;
-}
-
-table tr {
- border-bottom: 1px solid var(--color-gray-300);
-}
-
-table th,
-table td {
- padding: var(--spacing-1);
-}
-
-/* Taken from guidemaker for search
- Should probably move to ember-styleguide
- */
-
-.es-navbar {
- max-width: 100%;
-}
-
-.search-input {
- border-radius: 18px;
- border: 2px solid var(--color-card-border);
- line-height: 30px;
- padding-left: 8px;
- width: 100%;
-}
-
-.powered-by-algolia {
- display: flex;
- justify-content: end;
- margin: 8px;
-}
-
-.powered-by-algolia a {
- display: flex;
-}
-
-@media (width >= 1008px) {
- .navbar-list {
- flex-grow: 1;
- }
-}
-
-/* End taken from guidemaker for search */
-
-@media (width >= 845px) {
- .es-header {
- padding: 0 var(--spacing-4);
- justify-content: start;
- }
-
- .es-sidebar {
- padding: var(--spacing-4);
- background-color: var(--color-gray-200);
- }
-
- .content {
- margin-top: var(--spacing-4);
- }
-}
-
-@media (width <= 450px) {
- .whoops {
- flex-direction: column;
- padding: var(--spacing-3);
- }
-
- .whoops img {
- width: 80%;
- margin: var(--spacing-4);
- }
-
- .whoops__message {
- margin: var(--spacing-2);
- text-align: center;
- }
-}
+/* https://github.com/embroider-build/embroider/issues/1358 */
diff --git a/app/utils/url-hash-polyfill.js b/app/utils/url-hash-polyfill.js
new file mode 100644
index 00000000..7e7c1b7c
--- /dev/null
+++ b/app/utils/url-hash-polyfill.js
@@ -0,0 +1,196 @@
+import { getOwner } from '@ember/owner';
+import { warn } from '@ember/debug';
+import {
+ isDestroyed,
+ isDestroying,
+ registerDestructor,
+} from '@ember/destroyable';
+import { schedule } from '@ember/runloop';
+import { waitForPromise } from '@ember/test-waiters';
+
+/* Taken from ember-url-hash-polyfill (https://github.com/CrowdStrike/ember-url-hash-polyfill/)
+ and modified to not run in Fastboot. The original addon is not maintained.
+ There is a PR to add it to ember-primitives https://github.com/universal-ember/ember-primitives/pull/529
+*/
+
+export function withHashSupport(AppRouter) {
+ return class RouterWithHashSupport extends AppRouter {
+ constructor(...args) {
+ super(...args);
+
+ setupHashSupport(this);
+ }
+ };
+}
+
+export function scrollToHash(hash) {
+ let selector = `[name="${hash}"]`;
+ let element =
+ document.getElementById(hash) || document.querySelector(selector);
+
+ if (!element) {
+ warn(
+ `Tried to scroll to element with id or name "${hash}", but it was not found`,
+ {
+ id: 'no-hash-target',
+ },
+ );
+
+ return;
+ }
+
+ /**
+ * NOTE: the ember router does not support hashes in the URL
+ * https://github.com/emberjs/rfcs/issues/709
+ *
+ * this means that when testing hash changes in the URL,
+ * we have to assert against the window.location, rather than
+ * the self-container currentURL helper
+ *
+ * NOTE: other ways of changing the URL, but without the smoothness:
+ * - window[.top].location.replace
+ */
+
+ element.scrollIntoView({ behavior: 'smooth' });
+
+ if (hash !== window.location.hash) {
+ let withoutHash = location.href.split('#')[0];
+ let nextUrl = `${withoutHash}#${hash}`;
+ // most browsers ignore the title param of pushState
+ let titleWithoutHash = document.title.split(' | #')[0];
+ let nextTitle = `${titleWithoutHash} | #${hash}`;
+
+ history.pushState({}, nextTitle, nextUrl);
+ document.title = nextTitle;
+ }
+}
+
+function isLoadingRoute(routeName) {
+ return routeName.endsWith('_loading') || routeName.endsWith('.loading');
+}
+
+async function setupHashSupport(router) {
+ let initialURL;
+ let owner = getOwner(router);
+
+ if (owner.lookup('service:fastboot').isFastBoot) {
+ return;
+ }
+
+ await new Promise((resolve) => {
+ let interval = setInterval(() => {
+ let { currentURL, currentRouteName } = router; /* Private API */
+
+ if (currentURL && !isLoadingRoute(currentRouteName)) {
+ clearInterval(interval);
+ initialURL = currentURL;
+ resolve(null);
+ }
+ }, 100);
+ });
+
+ if (isDestroyed(owner) || isDestroying(owner)) {
+ return;
+ }
+
+ /**
+ * This handles the initial Page Load, which is not imperceptible through
+ * route{Did,Will}Change
+ *
+ */
+ requestAnimationFrame(() => {
+ eventuallyTryScrollingTo(owner, initialURL);
+ });
+
+ let routerService = owner.lookup('service:router');
+
+ function handleHashIntent(transition) {
+ let { url } = transition.intent || {};
+
+ if (!url) {
+ return;
+ }
+
+ eventuallyTryScrollingTo(owner, url);
+ }
+
+ routerService.on('routeDidChange', handleHashIntent);
+
+ registerDestructor(router, () => {
+ routerService.off('routeDidChange', handleHashIntent);
+ });
+}
+
+const CACHE = new WeakMap();
+
+async function eventuallyTryScrollingTo(owner, url) {
+ // Prevent quick / rapid transitions from continuing to observer beyond their URL-scope
+ CACHE.get(owner)?.disconnect();
+
+ if (!url) return;
+
+ let [, hash] = url.split('#');
+
+ if (!hash) return;
+
+ await waitForPromise(uiSettled(owner));
+
+ if (isDestroyed(owner) || isDestroying(owner)) {
+ return;
+ }
+
+ scrollToHash(hash);
+}
+
+const TIME_SINCE_LAST_MUTATION = 500; // ms
+const MAX_TIMEOUT = 2000; // ms
+
+// exported for testing
+async function uiSettled(owner) {
+ let timeStarted = new Date().getTime();
+ let lastMutationAt = Infinity;
+ let totalTimeWaited = 0;
+
+ let observer = new MutationObserver(() => {
+ lastMutationAt = new Date().getTime();
+ });
+
+ CACHE.set(owner, observer);
+
+ observer.observe(document.body, { childList: true, subtree: true });
+
+ /**
+ * Wait for DOM mutations to stop until MAX_TIMEOUT
+ */
+ await new Promise((resolve) => {
+ let frame;
+
+ function requestTimeCheck() {
+ if (frame) cancelAnimationFrame(frame);
+
+ if (isDestroyed(owner) || isDestroying(owner)) {
+ return;
+ }
+
+ frame = requestAnimationFrame(() => {
+ totalTimeWaited = new Date().getTime() - timeStarted;
+
+ let timeSinceLastMutation = new Date().getTime() - lastMutationAt;
+
+ if (totalTimeWaited >= MAX_TIMEOUT) {
+ return resolve(totalTimeWaited);
+ }
+
+ if (timeSinceLastMutation >= TIME_SINCE_LAST_MUTATION) {
+ return resolve(totalTimeWaited);
+ }
+
+ // eslint-disable-next-line ember/no-runloop
+ schedule('afterRender', requestTimeCheck);
+ });
+ }
+
+ // eslint-disable-next-line ember/no-runloop
+ schedule('afterRender', requestTimeCheck);
+ });
+}
diff --git a/package.json b/package.json
index 7cf7b171..689472ed 100644
--- a/package.json
+++ b/package.json
@@ -100,7 +100,7 @@
"ember-qunit": "^6.2.0",
"ember-resolver": "^10.0.0",
"ember-rfc176-data": "^0.3.17",
- "ember-router-scroll": "^4.1.2",
+ "@nullvoxpopuli/ember-router-scroll": "^0.0.2",
"ember-showdown-shiki": "^1.2.1",
"ember-sinon": "^4.1.1",
"ember-source": "~4.12.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 058f223d..93bab008 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -44,6 +44,9 @@ importers:
'@glimmer/tracking':
specifier: ^1.1.2
version: 1.1.2
+ '@nullvoxpopuli/ember-router-scroll':
+ specifier: ^0.0.2
+ version: 0.0.2(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2))
'@percy/cli':
specifier: ^1.28.7
version: 1.31.1(typescript@4.9.5)
@@ -218,9 +221,6 @@ importers:
ember-rfc176-data:
specifier: ^0.3.17
version: 0.3.18
- ember-router-scroll:
- specifier: ^4.1.2
- version: 4.1.2(@babel/core@7.28.3)
ember-showdown-shiki:
specifier: ^1.2.1
version: 1.2.1(@babel/core@7.28.3)(showdown@2.1.0)
@@ -1165,6 +1165,9 @@ packages:
resolution: {integrity: sha512-bb9h95ktG2wKY9+ja1sdsFBdOms2lB19VWs8wmNpzgHv1NCetonBoV5jHBV4DHt0uS1tg9z66cZqhUVlYs96KQ==}
engines: {node: 10.* || 12.* || >= 14.*}
+ '@ember/test-waiters@4.1.1':
+ resolution: {integrity: sha512-HbK70JYCDJcGI0CrwcbjeL2QHAn0HLwa3oGep7mr6l/yO95U7JYA8VN+/9VTsWJTmKueLtWayUqEmGS3a3mVOg==}
+
'@embroider/addon-shim@1.10.0':
resolution: {integrity: sha512-gcJuHiXgnrzaU8NyU+2bMbtS6PNOr5v5B8OXBqaBvTCsMpXLvKo8OBOQFCoUN0rPX2J6VaFqrbi/371sMvzZug==}
engines: {node: 12.* || 14.* || >= 16}
@@ -1372,6 +1375,11 @@ packages:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
+ '@nullvoxpopuli/ember-router-scroll@0.0.2':
+ resolution: {integrity: sha512-eGtauxTSoc1CKnFOJSch+Fjgk+UpB6GVdgshin8xDVUCOtGhd1WcxgYkVf3D7zT+BtYJFW1Bciwo0WrLXVOXcw==}
+ peerDependencies:
+ ember-source: '>= 4.12.0'
+
'@percy/cli-app@1.31.1':
resolution: {integrity: sha512-Z/15B6SmorHNTZWtVkxFYKpW9v5Guz+gOWV3tgzW7c062JpiXdQOhhFoH30e8hUP1bK3NCHLnD4Vt++SE9ORZQ==}
engines: {node: '>=14'}
@@ -1549,96 +1557,51 @@ packages:
'@types/ember-resolver@5.0.13':
resolution: {integrity: sha512-pO964cAPhAaFJoS28M8+b5MzAhQ/tVuNM4GDUIAexheQat36axG2WTG8LQ5ea07MSFPesrRFk2T3z88pfvdYKA==}
- '@types/ember@3.16.14':
- resolution: {integrity: sha512-m3fM87W1J75ri9Uu79hzKimiAhxdAF3dZyzmwGrf4OPPQp3yt2L9uHAkwmMIxstk4F1rBWG/SHJOnvlqif23Rw==}
-
'@types/ember@4.0.11':
resolution: {integrity: sha512-v7VIex0YILK8fP87LkIfzeeYKNnu74+xwf6U56v6MUDDGfSs9q/6NCxiUfwkxD+z5nQiUcwvfKVokX8qzZFRLw==}
- '@types/ember__application@3.16.10':
- resolution: {integrity: sha512-KWmS3neq1ktBn59XSUxILQPyf8jKEzIYlyFi6b4xRBQd3l+sdIOUbp2+THiXgkAS9Zx9goZAcaMjP5UF78FQJA==}
-
'@types/ember__application@4.0.11':
resolution: {integrity: sha512-U1S7XW0V70nTWbFckWoraJbYGBJK69muP/CsPFLeAuUYHfkkDiwh1SfqgAUN9aHtrEJM5SuSYVYp2YsTI2yLuA==}
- '@types/ember__array@3.16.11':
- resolution: {integrity: sha512-Izdn9iHa/9Iqn3fNf3GzQYXws6cfSvpmb0IgQE29EVhm99hzexa5ngvcTpU+6717TVuf+XJ+eIwjrrnNPcZ6Gg==}
-
'@types/ember__array@4.0.10':
resolution: {integrity: sha512-UrhDbopLI3jB0MqV14y8yji2IuPNmeDrtT1PRYJL4CThLHrRkfeYyFvxqvrxWxn0wXKjbbjfH1gOe7BU57QrLQ==}
- '@types/ember__component@3.16.14':
- resolution: {integrity: sha512-1xLPlder9ez16ajMk0+HWDsZ85I4y9K0uLOglNtfxuUOQi5Jb7jakwyj49dN5P62suwjtDEfhsvToZORT5pOtw==}
-
'@types/ember__component@4.0.22':
resolution: {integrity: sha512-m72EtmBN/RxOChXqRsyOg4RR5+AiB4LQ8s1CEKNYAfvANt18m4hjqxtA7QZYLTq2ZjEVJGpdMsrdDuONWjwRSQ==}
- '@types/ember__controller@3.16.14':
- resolution: {integrity: sha512-VDb3B1Yc6mPMafYKW/CsQubGRLp6UTgBMXzfdHIKMQbtyUcfXvnvJWZ2aWtfCZBNTgwb14zvzVQti2GYgQFjGg==}
-
'@types/ember__controller@4.0.12':
resolution: {integrity: sha512-80rdnSC0UJBqoUX5/vkQcM2xkRdTPTvY0dPXEfY5cC5OZITbcSeRo5qa7ZGhgNBfH6XYyh55Lo/b811LwU3N9w==}
- '@types/ember__debug@3.16.12':
- resolution: {integrity: sha512-+k+9qNmTaLw6xQCvcZm1DrQ6D2n9uob/8RVAK6jxFkxyPNbdt66z3fn7V/NHIURcBVhGVgf1qr5x62bHW0PIdg==}
-
'@types/ember__debug@4.0.8':
resolution: {integrity: sha512-9wF7STmDHDsUxSjyCq2lpMq/03QOPkBQMGJnV8yOBnVZxB6f+FJH/kxaCprdMkUe7iwAPNEC2zrFFx1tzH75Kg==}
- '@types/ember__engine@3.16.9':
- resolution: {integrity: sha512-Dab779R+nuGoprrOV1qzomUSEGM9eqXxFB1q5ArK00IDf+B6qkws2rJg6pB7PBSdiBhnhAq8tAJ/WNy4eC/jwQ==}
-
'@types/ember__engine@4.0.11':
resolution: {integrity: sha512-ryR4Q1Xm3kQ3Ap58w10CxV3+vb3hs1cJqi7UZ5IlSdLRql7AbpS6hIjxSQ3EQ4zadeeJ6/D8JJcSwqR7eX3PFA==}
- '@types/ember__error@3.16.6':
- resolution: {integrity: sha512-I40H4hr+Ma/CNF2xCFvSMMb/qn72p+SlM3GR/97EW+3LSy9iLu44e6eZZhAO6BgqmqEArqMNI6wSjps3FfDKiA==}
-
'@types/ember__error@4.0.6':
resolution: {integrity: sha512-vYrLaGGjHkN14K89Vm8yqB2mkpJQefE5w7QJkkgYyV+smzns1vKlPbvuFevRtoeYNn4u4yY0JyF7HceNkm3H0Q==}
- '@types/ember__object@3.12.13':
- resolution: {integrity: sha512-xK8KeVG3lsQGIhZGcOW+MpNaDYRygICr4gkZ6RkWqWb98pGmajsvGJcMia1WFa/K4eyEG6dFsDVaKED1No8wow==}
-
'@types/ember__object@4.0.12':
resolution: {integrity: sha512-ZEpikPjZ02m1QCBiTPTayMJwVwF4UBlHlGDoScRB3IP/SUS1O5mmn1/CnSQDxzzF3ctfmhNuTZzVBBc1Y8OC1A==}
'@types/ember__owner@4.0.9':
resolution: {integrity: sha512-iyBda4aUIjBmeiKTKmPow/EJO7xWn8m85CnQTOCqQzTWJyJpgfObbXSHahOHXOfMm279Oa5NlbmS/EontB+XiQ==}
- '@types/ember__polyfills@3.12.7':
- resolution: {integrity: sha512-aSNyzBkQU3CQKYVed0AIGivS4BUxp1+EDZTlJCguDgtMDAgAJSIHibLnz37iXUET5COCzyyFfgi1WsQpsupGcA==}
-
'@types/ember__polyfills@4.0.6':
resolution: {integrity: sha512-hbds3Qv+oVm/QKIaY1E6atvrCoJTH/MPSl4swOhX6P0RiMB2fOfFCrFSD1mP1KrU1LqpHJ2Rzs7XLe53SWVzgw==}
- '@types/ember__routing@3.16.23':
- resolution: {integrity: sha512-hztI4bZcPQjU3E8Tt7gWEOEQhNmT6HLmGn2YzzlQ3gFkGYdcSnj+h+Gh3pVI+AB/sB9i9jD088pLr48weKzd3g==}
-
'@types/ember__routing@4.0.22':
resolution: {integrity: sha512-qLk9Vd2GMxdlGmX9xbzg4Farths+AQGzYDH901Wo2Nsre+Cwv1Tk1rbCiay2V3ICYZYufytdWT6V++DISF3nvw==}
- '@types/ember__runloop@3.16.10':
- resolution: {integrity: sha512-abhXy3pikiQsQJKZhJXVW6BbIOM0E2+GlEJ63ZA/yKJLmcY9vuwCWLieaXXKyTyBolSOPLyofLVRJ/L/C2rp0A==}
-
'@types/ember__runloop@4.0.10':
resolution: {integrity: sha512-9MZfOJBXuUP7RqLjovmzy1yY2xKTxVpqHMapqy6QJ8mjAekRmq9IJ+ni2zJ5CWftyb3Lqu3Eks05CL7fnbhcJA==}
- '@types/ember__service@3.16.9':
- resolution: {integrity: sha512-U3jhGybrSSqkZDpeF6v5y74GHMlPcfuhwhwXVR8M3YV8A8hsDkT4tiV4Ul7pHwh/HoYdw8giF9p8J0RXpmhPsg==}
-
'@types/ember__service@4.0.9':
resolution: {integrity: sha512-DrepocL/4hH5YxbDWbxEKMDcAchBPSGGa4g+LEINW1Po81RmSdKw5GZV4UO0mvRWgkdu3EbWUxbTzB4gmbDSeQ==}
- '@types/ember__string@2.0.7':
- resolution: {integrity: sha512-N8ersNizusKO6mDylmxgS3IQQawyAJQQdb7/W/ZDBIIx9G/yxoTvgMOSjbR6V+wQYngnG3NeSh+DdK4RZj/cJw==}
-
'@types/ember__string@3.0.15':
resolution: {integrity: sha512-SxoaweAJUJKSIt82clIwpi/Fm0IfeisozLnXthnBp/hE2JyVcnOb1wMIbw0CCfzercmyWG1njV45VBqy8SrLDQ==}
- '@types/ember__template@3.16.7':
- resolution: {integrity: sha512-Mj3BzTzXKrS2cX9rkUpsqnyCNnVUUJh6juhuJW9KleJNtrUdfGPPGkOonn+oXFKcWfxiRB15jx8Ypi668vDDQw==}
-
'@types/ember__template@4.0.7':
resolution: {integrity: sha512-jv4hhG+8d1zdma+jhbCdJ3Ak7C22YNatGyWWvB3N9zbXq358AAPXaJoyNY8QTDbD/RIR9P6yoRk4u9vLbF6zfA==}
@@ -1646,15 +1609,9 @@ packages:
resolution: {integrity: sha512-GTucagS2Yqla9EkCe478DvF0n3SYaiJMf4v27SKw0DNm3JRoDGxfHp5guIKfoyeLH8yASl3RtsBwD5jNwM4qmw==}
deprecated: This is a stub types definition. @ember/test-helpers provides its own type definitions, so you do not need this installed.
- '@types/ember__test@3.16.7':
- resolution: {integrity: sha512-xB74tYOxokbMnSP6RFlFscQ9M1o9vi0aI1SClwyviz9c6u7qVhJhJWzctad1aAY3gRwFh25CbKpXEw5KkOk88w==}
-
'@types/ember__test@4.0.6':
resolution: {integrity: sha512-Nswm/epfTepXknT8scZvWyyop1aqJcZcyzY4THGHFcXvYQQfA9rgmgrx6vo9vCJmYHh3jm0TTAIAIfoCvGaX5g==}
- '@types/ember__utils@3.16.8':
- resolution: {integrity: sha512-r5vtLdK352rgqA0nOFqvNETIwPnLOnCRlfdhEifRzltetyN9YAlAwFMzO3+ECuDBQWuBlWkt0xV1b8EWbN6XCg==}
-
'@types/ember__utils@4.0.7':
resolution: {integrity: sha512-qQPBeWRyIPigKnZ68POlkqI5e6XA78Q4G3xHo687wQTcEtfoL/iZyPC4hn70mdijcZq8Hjch2Y3E5yhsEMzK+g==}
@@ -1698,9 +1655,6 @@ packages:
'@types/http-errors@2.0.5':
resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==}
- '@types/jquery@3.5.32':
- resolution: {integrity: sha512-b9Xbf4CkMqS02YH8zACqN1xzdxc3cO735Qe5AbSUFmyOiaWAbcpqh9Wna+Uk0vgACvoQHpWDg2rGdHkYPLmCiQ==}
-
'@types/json-schema@7.0.15':
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
@@ -1750,9 +1704,6 @@ packages:
'@types/serve-static@1.15.8':
resolution: {integrity: sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==}
- '@types/sizzle@2.3.9':
- resolution: {integrity: sha512-xzLEyKB50yqCUPUJkIsrVvoWNfFUbIZI+RspLWt8u+tIW/BetMBZtgV2LY/2o+tYH8dRvQ+eoPf3NdhQCcLE2w==}
-
'@types/supports-color@8.1.3':
resolution: {integrity: sha512-Hy6UMpxhE3j1tLpl27exp1XqHD7n8chAiNPzWfz16LPZoMMoSc4dzLl6w9qijkEb/r5O1ozdu1CWGA2L83ZeZg==}
@@ -3570,10 +3521,6 @@ packages:
qunit:
optional: true
- ember-app-scheduler@7.0.1:
- resolution: {integrity: sha512-7140A/4OJuYBlncfxmreZHX5S7FxO/4KX5NswowIrvGZpaLuoeULjBHgiKBWC1OUzsdHST4jwaDufniHEROajg==}
- engines: {node: 12.* || 14.* || >= 16}
-
ember-arg-types@1.1.0:
resolution: {integrity: sha512-hWpUz0eiNkWzi3FgHW5QU6LyCDyUlTWwuIROHluEKZoa9m6LJVXbb/EVFgIG3FkAib6a5Ie00WvkXEZFXxh3+A==}
engines: {node: 14.* || >= 16}
@@ -3925,10 +3872,6 @@ packages:
resolution: {integrity: sha512-89oVHVJwmLDvGvAUWgS87KpBoRhy3aZ6U0Ql6HOmU4TrPkyaa8pM0W81wj9cIwjYprcQtN9EwzZMHnq46+oUyw==}
engines: {node: 8.* || 10.* || >= 12}
- ember-router-scroll@4.1.2:
- resolution: {integrity: sha512-5AGRmbfhSx7kOu2U8caQkG8qOxlLnvJIoQgKRE9mc1isuYPdime6Qn061NSnnQukMMsSPlV8GAImiEk05BmfGA==}
- engines: {node: 12.* || 14.* || >= 16}
-
ember-showdown-shiki@1.2.1:
resolution: {integrity: sha512-h3WYvEVjK7R86SosU6Y9lA7kvlVff4Y/7KS/D79lJ828NReLW1CnQAcxRSoGVvu+S6A8uONzImzJhyDXwuZDZA==}
peerDependencies:
@@ -9339,6 +9282,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@ember/test-waiters@4.1.1':
+ dependencies:
+ '@embroider/addon-shim': 1.10.0
+ '@embroider/macros': 1.18.1
+ transitivePeerDependencies:
+ - '@glint/template'
+ - supports-color
+
'@embroider/addon-shim@1.10.0':
dependencies:
'@embroider/shared-internals': 3.0.0
@@ -9750,6 +9701,17 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.19.1
+ '@nullvoxpopuli/ember-router-scroll@0.0.2(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2))':
+ dependencies:
+ '@ember/test-waiters': 4.1.1
+ '@embroider/addon-shim': 1.10.0
+ decorator-transforms: 2.3.0(@babel/core@7.28.3)
+ ember-source: 4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2)
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@glint/template'
+ - supports-color
+
'@percy/cli-app@1.31.1(typescript@4.9.5)':
dependencies:
'@percy/cli-command': 1.31.1(typescript@4.9.5)
@@ -10057,26 +10019,6 @@ snapshots:
- '@babel/core'
- supports-color
- '@types/ember@3.16.14':
- dependencies:
- '@types/ember__application': 3.16.10
- '@types/ember__array': 3.16.11
- '@types/ember__component': 3.16.14
- '@types/ember__controller': 3.16.14
- '@types/ember__debug': 3.16.12
- '@types/ember__engine': 3.16.9
- '@types/ember__error': 3.16.6
- '@types/ember__object': 3.12.13
- '@types/ember__polyfills': 3.12.7
- '@types/ember__routing': 3.16.23
- '@types/ember__runloop': 3.16.10
- '@types/ember__service': 3.16.9
- '@types/ember__string': 2.0.7
- '@types/ember__template': 3.16.7
- '@types/ember__test': 3.16.7
- '@types/ember__utils': 3.16.8
- '@types/rsvp': 4.0.9
-
'@types/ember@4.0.11(@babel/core@7.28.3)':
dependencies:
'@types/ember__application': 4.0.11(@babel/core@7.28.3)
@@ -10100,12 +10042,6 @@ snapshots:
- '@babel/core'
- supports-color
- '@types/ember__application@3.16.10':
- dependencies:
- '@types/ember__engine': 3.16.9
- '@types/ember__object': 3.12.13
- '@types/ember__routing': 3.16.23
-
'@types/ember__application@4.0.11(@babel/core@7.28.3)':
dependencies:
'@glimmer/component': 1.1.2(@babel/core@7.28.3)
@@ -10118,10 +10054,6 @@ snapshots:
- '@babel/core'
- supports-color
- '@types/ember__array@3.16.11':
- dependencies:
- '@types/ember__object': 3.12.13
-
'@types/ember__array@4.0.10(@babel/core@7.28.3)':
dependencies:
'@types/ember': 4.0.11(@babel/core@7.28.3)
@@ -10130,11 +10062,6 @@ snapshots:
- '@babel/core'
- supports-color
- '@types/ember__component@3.16.14':
- dependencies:
- '@types/ember__object': 3.12.13
- '@types/jquery': 3.5.32
-
'@types/ember__component@4.0.22(@babel/core@7.28.3)':
dependencies:
'@types/ember': 4.0.11(@babel/core@7.28.3)
@@ -10143,10 +10070,6 @@ snapshots:
- '@babel/core'
- supports-color
- '@types/ember__controller@3.16.14':
- dependencies:
- '@types/ember__object': 3.12.13
-
'@types/ember__controller@4.0.12(@babel/core@7.28.3)':
dependencies:
'@types/ember__object': 4.0.12(@babel/core@7.28.3)
@@ -10154,11 +10077,6 @@ snapshots:
- '@babel/core'
- supports-color
- '@types/ember__debug@3.16.12':
- dependencies:
- '@types/ember__engine': 3.16.9
- '@types/ember__object': 3.12.13
-
'@types/ember__debug@4.0.8(@babel/core@7.28.3)':
dependencies:
'@types/ember__object': 4.0.12(@babel/core@7.28.3)
@@ -10167,10 +10085,6 @@ snapshots:
- '@babel/core'
- supports-color
- '@types/ember__engine@3.16.9':
- dependencies:
- '@types/ember__object': 3.12.13
-
'@types/ember__engine@4.0.11(@babel/core@7.28.3)':
dependencies:
'@types/ember__object': 4.0.12(@babel/core@7.28.3)
@@ -10179,14 +10093,8 @@ snapshots:
- '@babel/core'
- supports-color
- '@types/ember__error@3.16.6': {}
-
'@types/ember__error@4.0.6': {}
- '@types/ember__object@3.12.13':
- dependencies:
- '@types/rsvp': 4.0.9
-
'@types/ember__object@4.0.12(@babel/core@7.28.3)':
dependencies:
'@types/ember': 4.0.11(@babel/core@7.28.3)
@@ -10197,17 +10105,8 @@ snapshots:
'@types/ember__owner@4.0.9': {}
- '@types/ember__polyfills@3.12.7': {}
-
'@types/ember__polyfills@4.0.6': {}
- '@types/ember__routing@3.16.23':
- dependencies:
- '@types/ember__component': 3.16.14
- '@types/ember__controller': 3.16.14
- '@types/ember__object': 3.12.13
- '@types/ember__service': 3.16.9
-
'@types/ember__routing@4.0.22(@babel/core@7.28.3)':
dependencies:
'@types/ember': 4.0.11(@babel/core@7.28.3)
@@ -10218,8 +10117,6 @@ snapshots:
- '@babel/core'
- supports-color
- '@types/ember__runloop@3.16.10': {}
-
'@types/ember__runloop@4.0.10(@babel/core@7.28.3)':
dependencies:
'@types/ember': 4.0.11(@babel/core@7.28.3)
@@ -10227,10 +10124,6 @@ snapshots:
- '@babel/core'
- supports-color
- '@types/ember__service@3.16.9':
- dependencies:
- '@types/ember__object': 3.12.13
-
'@types/ember__service@4.0.9(@babel/core@7.28.3)':
dependencies:
'@types/ember__object': 4.0.12(@babel/core@7.28.3)
@@ -10238,14 +10131,8 @@ snapshots:
- '@babel/core'
- supports-color
- '@types/ember__string@2.0.7':
- dependencies:
- '@types/ember__template': 3.16.7
-
'@types/ember__string@3.0.15': {}
- '@types/ember__template@3.16.7': {}
-
'@types/ember__template@4.0.7': {}
'@types/ember__test-helpers@2.9.3(@babel/core@7.28.3)(ember-source@4.12.4(@babel/core@7.28.3)(@glimmer/component@1.1.2(@babel/core@7.28.3))(webpack@5.101.2))':
@@ -10258,10 +10145,6 @@ snapshots:
- ember-source
- supports-color
- '@types/ember__test@3.16.7':
- dependencies:
- '@types/ember__application': 3.16.10
-
'@types/ember__test@4.0.6(@babel/core@7.28.3)':
dependencies:
'@types/ember__application': 4.0.11(@babel/core@7.28.3)
@@ -10269,8 +10152,6 @@ snapshots:
- '@babel/core'
- supports-color
- '@types/ember__utils@3.16.8': {}
-
'@types/ember__utils@4.0.7(@babel/core@7.28.3)':
dependencies:
'@types/ember': 4.0.11(@babel/core@7.28.3)
@@ -10336,10 +10217,6 @@ snapshots:
'@types/http-errors@2.0.5': {}
- '@types/jquery@3.5.32':
- dependencies:
- '@types/sizzle': 2.3.9
-
'@types/json-schema@7.0.15': {}
'@types/mdast@4.0.4':
@@ -10388,8 +10265,6 @@ snapshots:
'@types/node': 24.3.0
'@types/send': 0.17.5
- '@types/sizzle@2.3.9': {}
-
'@types/supports-color@8.1.3': {}
'@types/symlink-or-copy@1.2.2': {}
@@ -12697,19 +12572,6 @@ snapshots:
- supports-color
- webpack
- ember-app-scheduler@7.0.1(@babel/core@7.28.3):
- dependencies:
- '@ember/test-waiters': 3.1.0
- '@types/ember': 3.16.14
- '@types/rsvp': 4.0.9
- ember-cli-babel: 7.26.11
- ember-cli-typescript: 4.2.1
- ember-compatibility-helpers: 1.2.7(@babel/core@7.28.3)
- ember-destroyable-polyfill: 2.0.3(@babel/core@7.28.3)
- transitivePeerDependencies:
- - '@babel/core'
- - supports-color
-
ember-arg-types@1.1.0(webpack@5.101.2):
dependencies:
'@embroider/macros': 1.18.1
@@ -13686,15 +13548,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- ember-router-scroll@4.1.2(@babel/core@7.28.3):
- dependencies:
- ember-app-scheduler: 7.0.1(@babel/core@7.28.3)
- ember-cli-babel: 7.26.11
- ember-compatibility-helpers: 1.2.7(@babel/core@7.28.3)
- transitivePeerDependencies:
- - '@babel/core'
- - supports-color
-
ember-showdown-shiki@1.2.1(@babel/core@7.28.3)(showdown@2.1.0):
dependencies:
'@embroider/addon-shim': 1.10.0
diff --git a/tests/acceptance/function-test.js b/tests/acceptance/function-test.js
index 3eddeb27..874cb9f8 100644
--- a/tests/acceptance/function-test.js
+++ b/tests/acceptance/function-test.js
@@ -1,20 +1,16 @@
/* eslint-disable qunit/no-assert-equal */
import { module, test } from 'qunit';
import { setupApplicationTest } from 'ember-qunit';
-import { visit, find } from '@ember/test-helpers';
+import { visit } from '@ember/test-helpers';
module('Acceptance | Function', function (hooks) {
setupApplicationTest(hooks);
- test.skip('shows function when loaded from url', async function (assert) {
+ test('shows function when loaded from url', async function (assert) {
await visit('ember/2.18/functions/@ember%2Fapplication/getOwner');
assert.dom('.method').exists({ count: 1 }, 'Single function per page');
- assert.equal(
- find('.method .method-name').innerText,
- 'getOwner',
- 'Correct function is shown',
- );
+ assert.dom('.method .method-name').hasText('getOwner');
});
test('shows function when loaded from url in a more modern version', async function (assert) {
diff --git a/tests/acceptance/module-test.js b/tests/acceptance/module-test.js
index fae93f7c..b2471afc 100644
--- a/tests/acceptance/module-test.js
+++ b/tests/acceptance/module-test.js
@@ -1,12 +1,12 @@
/* eslint-disable qunit/no-assert-equal */
-import { module, test, skip } from 'qunit';
+import { module, test } from 'qunit';
import { setupApplicationTest } from 'ember-qunit';
import { visit, click, findAll } from '@ember/test-helpers';
module('Acceptance | Module', function (hooks) {
setupApplicationTest(hooks);
- skip('lists all public/private classes and namespaces on the module page', async function (assert) {
+ test('lists all public/private classes and namespaces on the module page', async function (assert) {
await visit('ember/1.0/modules/ember-handlebars');
const store = this.owner.lookup('service:store');
@@ -28,7 +28,7 @@ module('Acceptance | Module', function (hooks) {
numberPublicClasses + numberNameSpaces,
);
- await click('.sidebar .private-deprecated-toggle');
+ await click('[data-test-private-deprecated-toggle]');
assert.equal(
findAll('.spec-property-list li').length,
numberPublicClasses + numberNameSpaces + numberPrivateClasses,
diff --git a/tests/acceptance/switch-versions-test.js b/tests/acceptance/switch-versions-test.js
index 1259d633..74134f1b 100644
--- a/tests/acceptance/switch-versions-test.js
+++ b/tests/acceptance/switch-versions-test.js
@@ -165,7 +165,7 @@ module('Acceptance | version navigation', function (hooks) {
);
});
- test.skip('switching versions works if class name includes slashes', async function (assert) {
+ test('switching versions works if class name includes slashes', async function (assert) {
await visit('/ember/3.4/classes/@ember%2Fobject%2Fcomputed');
assert.equal(
currentURL(),
@@ -197,7 +197,7 @@ module('Acceptance | version navigation', function (hooks) {
);
});
- test.skip(`switching versions works if we've previously switched for a different class`, async function (assert) {
+ test(`switching versions works if we've previously switched for a different class`, async function (assert) {
await visit('/ember/3.4/classes/@ember%2Fobject%2Fcomputed');
assert.equal(
currentURL(),