diff --git a/.github/workflows/azure-preview-env-deploy.yml b/.github/workflows/azure-preview-env-deploy.yml
index 78567b9e25..f8827acab2 100644
--- a/.github/workflows/azure-preview-env-deploy.yml
+++ b/.github/workflows/azure-preview-env-deploy.yml
@@ -192,8 +192,7 @@ jobs:
rsync -rptovR ./user-code/content/./**/*.md ./content
rsync -rptovR ./user-code/assets/./**/*.png ./assets
rsync -rptovR ./user-code/data/./**/*.{yml,md} ./data
- rsync -rptovR ./user-code/components/./**/*.{scss,ts,tsx} ./components
- rsync -rptovR ./user-code/src/./**/*.tsx ./src
+ rsync -rptovR ./user-code/src/./**/*.{scss,ts,tsx} ./src
- uses: ./.github/actions/warmup-remotejson-cache
with:
diff --git a/Dockerfile b/Dockerfile
index 44903905f8..f992b6e3a9 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -44,7 +44,6 @@ RUN npm prune --production
# ---------------
FROM all_deps as builder
-COPY components ./components
COPY src ./src
# The star is because it's an optional directory
COPY .remotejson-cache* ./.remotejson-cache
diff --git a/src/assets/scripts/find-orphaned-assets.js b/src/assets/scripts/find-orphaned-assets.js
index 45297f6744..25f798a270 100755
--- a/src/assets/scripts/find-orphaned-assets.js
+++ b/src/assets/scripts/find-orphaned-assets.js
@@ -95,7 +95,7 @@ async function main(opts) {
}
}
- const roots = ['tests', 'components', 'contributing', 'src', 'assets']
+ const roots = ['tests', 'contributing', 'src', 'assets']
for (const root of roots) {
sourceFiles.push(
diff --git a/src/audit-logs/components/GroupedEvents.tsx b/src/audit-logs/components/GroupedEvents.tsx
index 6670cc4411..ff2010ffae 100644
--- a/src/audit-logs/components/GroupedEvents.tsx
+++ b/src/audit-logs/components/GroupedEvents.tsx
@@ -1,6 +1,6 @@
import { slug } from 'github-slugger'
-import { HeadingLink } from 'components/article/HeadingLink'
+import { HeadingLink } from 'src/frame/components/article/HeadingLink'
import { useTranslation } from 'src/languages/components/useTranslation'
type AuditLogEventT = {
diff --git a/src/audit-logs/pages/audit-log-events.tsx b/src/audit-logs/pages/audit-log-events.tsx
index 17c937b7fd..707fceaff1 100644
--- a/src/audit-logs/pages/audit-log-events.tsx
+++ b/src/audit-logs/pages/audit-log-events.tsx
@@ -5,7 +5,7 @@ import {
getMainContext,
MainContext,
MainContextT,
-} from 'components/context/MainContext'
+} from 'src/frame/components/context/MainContext'
import {
getAutomatedPageContextFromRequest,
AutomatedPageContext,
diff --git a/src/automated-pipelines/components/AutomatedPage.tsx b/src/automated-pipelines/components/AutomatedPage.tsx
index 29d5a0cc5c..5efc9bdf03 100644
--- a/src/automated-pipelines/components/AutomatedPage.tsx
+++ b/src/automated-pipelines/components/AutomatedPage.tsx
@@ -1,13 +1,13 @@
-import { DefaultLayout } from 'components/DefaultLayout'
-import { ArticleTitle } from 'components/article/ArticleTitle'
-import { MarkdownContent } from 'components/ui/MarkdownContent'
-import { Lead } from 'components/ui/Lead'
-import { PermissionsStatement } from 'components/ui/PermissionsStatement'
-import { ArticleGridLayout } from '../../../components/article/ArticleGridLayout'
-import { MiniTocs } from 'components/ui/MiniTocs'
+import { DefaultLayout } from 'src/frame/components/DefaultLayout'
+import { ArticleTitle } from 'src/frame/components/article/ArticleTitle'
+import { MarkdownContent } from 'src/frame/components/ui/MarkdownContent'
+import { Lead } from 'src/frame/components/ui/Lead'
+import { PermissionsStatement } from 'src/frame/components/ui/PermissionsStatement'
+import { ArticleGridLayout } from 'src/frame/components/article/ArticleGridLayout'
+import { MiniTocs } from 'src/frame/components/ui/MiniTocs'
import { useAutomatedPageContext } from 'src/automated-pipelines/components/AutomatedPageContext'
-import { ClientSideHighlight } from 'components/ClientSideHighlight'
-import { Callout } from 'components/ui/Callout'
+import { ClientSideHighlight } from 'src/frame/components/ClientSideHighlight'
+import { Callout } from 'src/frame/components/ui/Callout'
type Props = {
children: React.ReactNode
diff --git a/src/automated-pipelines/components/AutomatedPageContext.tsx b/src/automated-pipelines/components/AutomatedPageContext.tsx
index 61d3320c45..b61d52e08c 100644
--- a/src/automated-pipelines/components/AutomatedPageContext.tsx
+++ b/src/automated-pipelines/components/AutomatedPageContext.tsx
@@ -1,5 +1,5 @@
import { createContext, useContext } from 'react'
-import type { MiniTocItem } from 'components/context/ArticleContext'
+import type { MiniTocItem } from 'src/frame/components/context/ArticleContext'
export type AutomatedPageContextT = {
title: string
diff --git a/src/color-schemes/components/useTheme.ts b/src/color-schemes/components/useTheme.ts
index 0b1bf3d791..e240440b9b 100644
--- a/src/color-schemes/components/useTheme.ts
+++ b/src/color-schemes/components/useTheme.ts
@@ -1,5 +1,5 @@
import { useState, useEffect } from 'react'
-import Cookies from '../../../components/lib/cookies'
+import Cookies from '../../frame/components/lib/cookies'
enum CssColorMode {
auto = 'auto',
diff --git a/src/events/components/Survey.tsx b/src/events/components/Survey.tsx
index 53a631966c..3d1c49c68b 100644
--- a/src/events/components/Survey.tsx
+++ b/src/events/components/Survey.tsx
@@ -3,7 +3,7 @@ import cx from 'classnames'
import { useRouter } from 'next/router'
import { ThumbsdownIcon, ThumbsupIcon } from '@primer/octicons-react'
import { useTranslation } from 'src/languages/components/useTranslation'
-import { Link } from 'components/Link'
+import { Link } from 'src/frame/components/Link'
import { sendEvent, EventType } from 'src/events/components/events'
import styles from './Survey.module.scss'
diff --git a/src/events/components/events.ts b/src/events/components/events.ts
index ce4142b99a..e468c577e2 100644
--- a/src/events/components/events.ts
+++ b/src/events/components/events.ts
@@ -1,5 +1,5 @@
/* eslint-disable camelcase */
-import Cookies from 'components/lib/cookies'
+import Cookies from 'src/frame/components/lib/cookies'
import { parseUserAgent } from './user-agent'
const COOKIE_NAME = '_docs-events'
diff --git a/components/ClientSideHighlight.tsx b/src/frame/components/ClientSideHighlight.tsx
similarity index 100%
rename from components/ClientSideHighlight.tsx
rename to src/frame/components/ClientSideHighlight.tsx
diff --git a/components/ClientSideHighlightJS.tsx b/src/frame/components/ClientSideHighlightJS.tsx
similarity index 100%
rename from components/ClientSideHighlightJS.tsx
rename to src/frame/components/ClientSideHighlightJS.tsx
diff --git a/components/ClientSideRefresh.tsx b/src/frame/components/ClientSideRefresh.tsx
similarity index 100%
rename from components/ClientSideRefresh.tsx
rename to src/frame/components/ClientSideRefresh.tsx
diff --git a/components/DefaultLayout.tsx b/src/frame/components/DefaultLayout.tsx
similarity index 90%
rename from components/DefaultLayout.tsx
rename to src/frame/components/DefaultLayout.tsx
index 291a14fb46..0d62d40441 100644
--- a/components/DefaultLayout.tsx
+++ b/src/frame/components/DefaultLayout.tsx
@@ -1,16 +1,16 @@
import Head from 'next/head'
import { useRouter } from 'next/router'
-import { SidebarNav } from 'components/sidebar/SidebarNav'
-import { Header } from 'components/page-header/Header'
-import { LegalFooter } from 'components/page-footer/LegalFooter'
-import { ScrollButton } from 'components/ui/ScrollButton'
-import { SupportSection } from 'components/page-footer/SupportSection'
+import { SidebarNav } from 'src/frame/components/sidebar/SidebarNav'
+import { Header } from 'src/frame/components/page-header/Header'
+import { LegalFooter } from 'src/frame/components/page-footer/LegalFooter'
+import { ScrollButton } from 'src/frame/components/ui/ScrollButton'
+import { SupportSection } from 'src/frame/components/page-footer/SupportSection'
import { DeprecationBanner } from 'src/versions/components/DeprecationBanner'
import { RestBanner } from 'src/rest/components/RestBanner'
-import { useMainContext } from 'components/context/MainContext'
+import { useMainContext } from 'src/frame/components/context/MainContext'
import { useTranslation } from 'src/languages/components/useTranslation'
-import { Breadcrumbs } from 'components/page-header/Breadcrumbs'
+import { Breadcrumbs } from 'src/frame/components/page-header/Breadcrumbs'
import { useLanguages } from 'src/languages/components/LanguagesContext'
const MINIMAL_RENDER = Boolean(JSON.parse(process.env.MINIMAL_RENDER || 'false'))
diff --git a/components/GenericError.tsx b/src/frame/components/GenericError.tsx
similarity index 98%
rename from components/GenericError.tsx
rename to src/frame/components/GenericError.tsx
index c631f0ca1a..ba8d9abdbb 100644
--- a/components/GenericError.tsx
+++ b/src/frame/components/GenericError.tsx
@@ -3,7 +3,7 @@ import Link from 'next/link'
import { useRouter } from 'next/router'
import { MarkGithubIcon, CommentDiscussionIcon } from '@primer/octicons-react'
-import { Lead } from 'components/ui/Lead'
+import { Lead } from 'src/frame/components/ui/Lead'
export function GenericError() {
return (
diff --git a/components/Link.tsx b/src/frame/components/Link.tsx
similarity index 100%
rename from components/Link.tsx
rename to src/frame/components/Link.tsx
diff --git a/components/README.md b/src/frame/components/README.md
similarity index 100%
rename from components/README.md
rename to src/frame/components/README.md
diff --git a/components/article/ArticleGridLayout.module.scss b/src/frame/components/article/ArticleGridLayout.module.scss
similarity index 100%
rename from components/article/ArticleGridLayout.module.scss
rename to src/frame/components/article/ArticleGridLayout.module.scss
diff --git a/components/article/ArticleGridLayout.tsx b/src/frame/components/article/ArticleGridLayout.tsx
similarity index 100%
rename from components/article/ArticleGridLayout.tsx
rename to src/frame/components/article/ArticleGridLayout.tsx
diff --git a/components/article/ArticleInlineLayout.module.scss b/src/frame/components/article/ArticleInlineLayout.module.scss
similarity index 100%
rename from components/article/ArticleInlineLayout.module.scss
rename to src/frame/components/article/ArticleInlineLayout.module.scss
diff --git a/components/article/ArticleInlineLayout.tsx b/src/frame/components/article/ArticleInlineLayout.tsx
similarity index 100%
rename from components/article/ArticleInlineLayout.tsx
rename to src/frame/components/article/ArticleInlineLayout.tsx
diff --git a/components/article/ArticlePage.tsx b/src/frame/components/article/ArticlePage.tsx
similarity index 84%
rename from components/article/ArticlePage.tsx
rename to src/frame/components/article/ArticlePage.tsx
index 22cde36f2f..d3376ecd90 100644
--- a/components/article/ArticlePage.tsx
+++ b/src/frame/components/article/ArticlePage.tsx
@@ -3,27 +3,27 @@ import dynamic from 'next/dynamic'
import cx from 'classnames'
import { LinkExternalIcon } from '@primer/octicons-react'
-import { Callout } from 'components/ui/Callout'
-import { DefaultLayout } from 'components/DefaultLayout'
-import { ArticleTitle } from 'components/article/ArticleTitle'
-import { useArticleContext } from 'components/context/ArticleContext'
+import { Callout } from 'src/frame/components/ui/Callout'
+import { DefaultLayout } from 'src/frame/components/DefaultLayout'
+import { ArticleTitle } from 'src/frame/components/article/ArticleTitle'
+import { useArticleContext } from 'src/frame/components/context/ArticleContext'
import { LearningTrackNav } from 'src/learning-track/components/article/LearningTrackNav'
-import { MarkdownContent } from 'components/ui/MarkdownContent'
-import { Lead } from 'components/ui/Lead'
-import { PermissionsStatement } from 'components/ui/PermissionsStatement'
+import { MarkdownContent } from 'src/frame/components/ui/MarkdownContent'
+import { Lead } from 'src/frame/components/ui/Lead'
+import { PermissionsStatement } from 'src/frame/components/ui/PermissionsStatement'
import { ArticleGridLayout } from './ArticleGridLayout'
import { ArticleInlineLayout } from './ArticleInlineLayout'
import { PlatformPicker } from 'src/tools/components/PlatformPicker'
import { ToolPicker } from 'src/tools/components/ToolPicker'
-import { MiniTocs } from 'components/ui/MiniTocs'
+import { MiniTocs } from 'src/frame/components/ui/MiniTocs'
import { LearningTrackCard } from 'src/learning-track/components/article/LearningTrackCard'
import { RestRedirect } from 'src/rest/components/RestRedirect'
-import { Breadcrumbs } from 'components/page-header/Breadcrumbs'
-import { Link } from 'components/Link'
+import { Breadcrumbs } from 'src/frame/components/page-header/Breadcrumbs'
+import { Link } from 'src/frame/components/Link'
import { useTranslation } from 'src/languages/components/useTranslation'
import { LinkPreviewPopover } from 'src/links/components/LinkPreviewPopover'
-const ClientSideRefresh = dynamic(() => import('components/ClientSideRefresh'), {
+const ClientSideRefresh = dynamic(() => import('src/frame/components/ClientSideRefresh'), {
ssr: false,
})
const isDev = process.env.NODE_ENV === 'development'
diff --git a/components/article/ArticleTitle.tsx b/src/frame/components/article/ArticleTitle.tsx
similarity index 100%
rename from components/article/ArticleTitle.tsx
rename to src/frame/components/article/ArticleTitle.tsx
diff --git a/components/article/HeadingLink.tsx b/src/frame/components/article/HeadingLink.tsx
similarity index 100%
rename from components/article/HeadingLink.tsx
rename to src/frame/components/article/HeadingLink.tsx
diff --git a/components/article/SupportPortalVaIframe.module.scss b/src/frame/components/article/SupportPortalVaIframe.module.scss
similarity index 100%
rename from components/article/SupportPortalVaIframe.module.scss
rename to src/frame/components/article/SupportPortalVaIframe.module.scss
diff --git a/components/article/SupportPortalVaIframe.tsx b/src/frame/components/article/SupportPortalVaIframe.tsx
similarity index 100%
rename from components/article/SupportPortalVaIframe.tsx
rename to src/frame/components/article/SupportPortalVaIframe.tsx
diff --git a/components/context/ArticleContext.tsx b/src/frame/components/context/ArticleContext.tsx
similarity index 97%
rename from components/context/ArticleContext.tsx
rename to src/frame/components/context/ArticleContext.tsx
index 5dc38de5bc..3e24fdf01e 100644
--- a/components/context/ArticleContext.tsx
+++ b/src/frame/components/context/ArticleContext.tsx
@@ -1,4 +1,4 @@
-import { SupportPortalVaIframeProps } from 'components/article/SupportPortalVaIframe'
+import { SupportPortalVaIframeProps } from 'src/frame/components/article/SupportPortalVaIframe'
import { createContext, useContext } from 'react'
export type LearningTrack = {
diff --git a/components/context/MainContext.tsx b/src/frame/components/context/MainContext.tsx
similarity index 98%
rename from components/context/MainContext.tsx
rename to src/frame/components/context/MainContext.tsx
index 4fa70d061b..2bd941cb73 100644
--- a/components/context/MainContext.tsx
+++ b/src/frame/components/context/MainContext.tsx
@@ -1,8 +1,8 @@
import { createContext, useContext } from 'react'
import pick from 'lodash/pick'
-import type { BreadcrumbT } from 'components/page-header/Breadcrumbs'
-import type { FeatureFlags } from 'components/hooks/useFeatureFlags'
+import type { BreadcrumbT } from 'src/frame/components/page-header/Breadcrumbs'
+import type { FeatureFlags } from 'src/frame/components/hooks/useFeatureFlags'
export type ProductT = {
external: boolean
diff --git a/components/context/TocLandingContext.tsx b/src/frame/components/context/TocLandingContext.tsx
similarity index 100%
rename from components/context/TocLandingContext.tsx
rename to src/frame/components/context/TocLandingContext.tsx
diff --git a/components/declarations.d.ts b/src/frame/components/declarations.d.ts
similarity index 100%
rename from components/declarations.d.ts
rename to src/frame/components/declarations.d.ts
diff --git a/components/hooks/useFeatureFlags.ts b/src/frame/components/hooks/useFeatureFlags.ts
similarity index 67%
rename from components/hooks/useFeatureFlags.ts
rename to src/frame/components/hooks/useFeatureFlags.ts
index c604c1511d..9195fdbcf9 100644
--- a/components/hooks/useFeatureFlags.ts
+++ b/src/frame/components/hooks/useFeatureFlags.ts
@@ -1,4 +1,4 @@
-import { useMainContext } from 'components/context/MainContext'
+import { useMainContext } from 'src/frame/components/context/MainContext'
export type FeatureFlags = {}
diff --git a/components/hooks/useHasAccount.ts b/src/frame/components/hooks/useHasAccount.ts
similarity index 94%
rename from components/hooks/useHasAccount.ts
rename to src/frame/components/hooks/useHasAccount.ts
index adfa1495d4..04ab95d56d 100644
--- a/components/hooks/useHasAccount.ts
+++ b/src/frame/components/hooks/useHasAccount.ts
@@ -1,5 +1,5 @@
import { useState, useEffect } from 'react'
-import Cookies from 'components/lib/cookies'
+import Cookies from 'src/frame/components/lib/cookies'
// Measure if the user has a github.com account and signed in during this session.
// The github.com sends the color_mode cookie every request when you sign in,
diff --git a/components/lib/ExcludesNull.ts b/src/frame/components/lib/ExcludesNull.ts
similarity index 100%
rename from components/lib/ExcludesNull.ts
rename to src/frame/components/lib/ExcludesNull.ts
diff --git a/components/lib/cookies.ts b/src/frame/components/lib/cookies.ts
similarity index 100%
rename from components/lib/cookies.ts
rename to src/frame/components/lib/cookies.ts
diff --git a/components/lib/copy-code.ts b/src/frame/components/lib/copy-code.ts
similarity index 100%
rename from components/lib/copy-code.ts
rename to src/frame/components/lib/copy-code.ts
diff --git a/components/lib/toggle-annotations.ts b/src/frame/components/lib/toggle-annotations.ts
similarity index 98%
rename from components/lib/toggle-annotations.ts
rename to src/frame/components/lib/toggle-annotations.ts
index c15184dab6..e5f5e4823d 100644
--- a/components/lib/toggle-annotations.ts
+++ b/src/frame/components/lib/toggle-annotations.ts
@@ -1,4 +1,4 @@
-import Cookies from 'components/lib/cookies'
+import Cookies from 'src/frame/components/lib/cookies'
import { sendEvent, EventType } from 'src/events/components/events'
enum annotationMode {
diff --git a/components/lib/wrap-code-terms.ts b/src/frame/components/lib/wrap-code-terms.ts
similarity index 100%
rename from components/lib/wrap-code-terms.ts
rename to src/frame/components/lib/wrap-code-terms.ts
diff --git a/components/page-footer/Contribution.tsx b/src/frame/components/page-footer/Contribution.tsx
similarity index 92%
rename from components/page-footer/Contribution.tsx
rename to src/frame/components/page-footer/Contribution.tsx
index 5f86435f61..96f6b025b4 100644
--- a/components/page-footer/Contribution.tsx
+++ b/src/frame/components/page-footer/Contribution.tsx
@@ -1,6 +1,6 @@
import { GitPullRequestIcon } from '@primer/octicons-react'
-import { useMainContext } from 'components/context/MainContext'
+import { useMainContext } from 'src/frame/components/context/MainContext'
import { useTranslation } from 'src/languages/components/useTranslation'
export const Contribution = () => {
diff --git a/components/page-footer/LegalFooter.tsx b/src/frame/components/page-footer/LegalFooter.tsx
similarity index 100%
rename from components/page-footer/LegalFooter.tsx
rename to src/frame/components/page-footer/LegalFooter.tsx
diff --git a/components/page-footer/Support.tsx b/src/frame/components/page-footer/Support.tsx
similarity index 93%
rename from components/page-footer/Support.tsx
rename to src/frame/components/page-footer/Support.tsx
index 9a69c2c567..b100cdb46e 100644
--- a/components/page-footer/Support.tsx
+++ b/src/frame/components/page-footer/Support.tsx
@@ -1,7 +1,7 @@
import { PeopleIcon, CommentDiscussionIcon } from '@primer/octicons-react'
import { useTranslation } from 'src/languages/components/useTranslation'
-import { useMainContext } from 'components/context/MainContext'
+import { useMainContext } from 'src/frame/components/context/MainContext'
export const Support = () => {
const { t } = useTranslation('support')
diff --git a/components/page-footer/SupportSection.tsx b/src/frame/components/page-footer/SupportSection.tsx
similarity index 91%
rename from components/page-footer/SupportSection.tsx
rename to src/frame/components/page-footer/SupportSection.tsx
index 706a064489..bfaf4e2fc6 100644
--- a/components/page-footer/SupportSection.tsx
+++ b/src/frame/components/page-footer/SupportSection.tsx
@@ -1,9 +1,9 @@
import cx from 'classnames'
import { Survey } from 'src/events/components/Survey'
-import { Contribution } from 'components/page-footer/Contribution'
-import { Support } from 'components/page-footer/Support'
-import { useMainContext } from 'components/context/MainContext'
+import { Contribution } from 'src/frame/components/page-footer/Contribution'
+import { Support } from 'src/frame/components/page-footer/Support'
+import { useMainContext } from 'src/frame/components/context/MainContext'
import { useVersion } from 'src/versions/components/useVersion'
import { useRouter } from 'next/router'
import { useTranslation } from 'src/languages/components/useTranslation'
diff --git a/components/page-header/Breadcrumbs.module.scss b/src/frame/components/page-header/Breadcrumbs.module.scss
similarity index 100%
rename from components/page-header/Breadcrumbs.module.scss
rename to src/frame/components/page-header/Breadcrumbs.module.scss
diff --git a/components/page-header/Breadcrumbs.tsx b/src/frame/components/page-header/Breadcrumbs.tsx
similarity index 97%
rename from components/page-header/Breadcrumbs.tsx
rename to src/frame/components/page-header/Breadcrumbs.tsx
index ac7e06d76a..b3a29a907d 100644
--- a/components/page-header/Breadcrumbs.tsx
+++ b/src/frame/components/page-header/Breadcrumbs.tsx
@@ -1,7 +1,7 @@
import cx from 'classnames'
import { useMainContext } from '../context/MainContext'
-import { Link } from 'components/Link'
+import { Link } from 'src/frame/components/Link'
import styles from './Breadcrumbs.module.scss'
diff --git a/components/page-header/Header.module.scss b/src/frame/components/page-header/Header.module.scss
similarity index 100%
rename from components/page-header/Header.module.scss
rename to src/frame/components/page-header/Header.module.scss
diff --git a/components/page-header/Header.tsx b/src/frame/components/page-header/Header.tsx
similarity index 96%
rename from components/page-header/Header.tsx
rename to src/frame/components/page-header/Header.tsx
index 3e3e8dfd5e..40d33acb63 100644
--- a/components/page-header/Header.tsx
+++ b/src/frame/components/page-header/Header.tsx
@@ -12,18 +12,18 @@ import {
} from '@primer/octicons-react'
import { DEFAULT_VERSION, useVersion } from 'src/versions/components/useVersion'
-import { Link } from 'components/Link'
-import { useMainContext } from 'components/context/MainContext'
-import { useHasAccount } from 'components/hooks/useHasAccount'
+import { Link } from 'src/frame/components/Link'
+import { useMainContext } from 'src/frame/components/context/MainContext'
+import { useHasAccount } from 'src/frame/components/hooks/useHasAccount'
import { LanguagePicker } from 'src/languages/components/LanguagePicker'
-import { HeaderNotifications } from 'components/page-header/HeaderNotifications'
+import { HeaderNotifications } from 'src/frame/components/page-header/HeaderNotifications'
import { ApiVersionPicker } from 'src/rest/components/ApiVersionPicker'
import { useTranslation } from 'src/languages/components/useTranslation'
import { Search } from 'src/search/components/Search'
-import { Breadcrumbs } from 'components/page-header/Breadcrumbs'
+import { Breadcrumbs } from 'src/frame/components/page-header/Breadcrumbs'
import { VersionPicker } from 'src/versions/components/VersionPicker'
-import { SidebarNav } from 'components/sidebar/SidebarNav'
-import { AllProductsLink } from 'components/sidebar/AllProductsLink'
+import { SidebarNav } from 'src/frame/components/sidebar/SidebarNav'
+import { AllProductsLink } from 'src/frame/components/sidebar/AllProductsLink'
import styles from './Header.module.scss'
diff --git a/components/page-header/HeaderNotifications.module.scss b/src/frame/components/page-header/HeaderNotifications.module.scss
similarity index 100%
rename from components/page-header/HeaderNotifications.module.scss
rename to src/frame/components/page-header/HeaderNotifications.module.scss
diff --git a/components/page-header/HeaderNotifications.tsx b/src/frame/components/page-header/HeaderNotifications.tsx
similarity index 96%
rename from components/page-header/HeaderNotifications.tsx
rename to src/frame/components/page-header/HeaderNotifications.tsx
index c341111824..2d9a2c68c1 100644
--- a/components/page-header/HeaderNotifications.tsx
+++ b/src/frame/components/page-header/HeaderNotifications.tsx
@@ -3,9 +3,9 @@ import cx from 'classnames'
import { XIcon } from '@primer/octicons-react'
import { useLanguages } from 'src/languages/components/LanguagesContext'
-import { useMainContext } from 'components/context/MainContext'
+import { useMainContext } from 'src/frame/components/context/MainContext'
import { useTranslation } from 'src/languages/components/useTranslation'
-import { ExcludesNull } from 'components/lib/ExcludesNull'
+import { ExcludesNull } from 'src/frame/components/lib/ExcludesNull'
import { useVersion } from 'src/versions/components/useVersion'
import { useUserLanguage } from 'src/languages/components/useUserLanguage'
import styles from './HeaderNotifications.module.scss'
diff --git a/components/sidebar/AllProductsLink.tsx b/src/frame/components/sidebar/AllProductsLink.tsx
similarity index 93%
rename from components/sidebar/AllProductsLink.tsx
rename to src/frame/components/sidebar/AllProductsLink.tsx
index 7a6fa5e57f..b537402242 100644
--- a/components/sidebar/AllProductsLink.tsx
+++ b/src/frame/components/sidebar/AllProductsLink.tsx
@@ -1,7 +1,7 @@
import { useRouter } from 'next/router'
import { ArrowLeftIcon } from '@primer/octicons-react'
import { DEFAULT_VERSION, useVersion } from 'src/versions/components/useVersion'
-import { Link } from 'components/Link'
+import { Link } from 'src/frame/components/Link'
export const AllProductsLink = () => {
const router = useRouter()
diff --git a/components/sidebar/SidebarNav.tsx b/src/frame/components/sidebar/SidebarNav.tsx
similarity index 94%
rename from components/sidebar/SidebarNav.tsx
rename to src/frame/components/sidebar/SidebarNav.tsx
index 86af7ce882..979dbe6d61 100644
--- a/components/sidebar/SidebarNav.tsx
+++ b/src/frame/components/sidebar/SidebarNav.tsx
@@ -1,11 +1,11 @@
import cx from 'classnames'
import { useRouter } from 'next/router'
-import { useMainContext } from 'components/context/MainContext'
+import { useMainContext } from 'src/frame/components/context/MainContext'
import { SidebarProduct } from 'src/landings/components/SidebarProduct'
import { AllProductsLink } from './AllProductsLink'
import { ApiVersionPicker } from 'src/rest/components/ApiVersionPicker'
-import { Link } from 'components/Link'
+import { Link } from 'src/frame/components/Link'
type Props = {
variant?: 'full' | 'overlay'
diff --git a/components/ui/BumpLink/BumpLink.module.scss b/src/frame/components/ui/BumpLink/BumpLink.module.scss
similarity index 100%
rename from components/ui/BumpLink/BumpLink.module.scss
rename to src/frame/components/ui/BumpLink/BumpLink.module.scss
diff --git a/components/ui/BumpLink/BumpLink.tsx b/src/frame/components/ui/BumpLink/BumpLink.tsx
similarity index 100%
rename from components/ui/BumpLink/BumpLink.tsx
rename to src/frame/components/ui/BumpLink/BumpLink.tsx
diff --git a/components/ui/BumpLink/index.ts b/src/frame/components/ui/BumpLink/index.ts
similarity index 100%
rename from components/ui/BumpLink/index.ts
rename to src/frame/components/ui/BumpLink/index.ts
diff --git a/components/ui/Callout/Callout.module.scss b/src/frame/components/ui/Callout/Callout.module.scss
similarity index 100%
rename from components/ui/Callout/Callout.module.scss
rename to src/frame/components/ui/Callout/Callout.module.scss
diff --git a/components/ui/Callout/Callout.tsx b/src/frame/components/ui/Callout/Callout.tsx
similarity index 100%
rename from components/ui/Callout/Callout.tsx
rename to src/frame/components/ui/Callout/Callout.tsx
diff --git a/components/ui/Callout/index.ts b/src/frame/components/ui/Callout/index.ts
similarity index 100%
rename from components/ui/Callout/index.ts
rename to src/frame/components/ui/Callout/index.ts
diff --git a/components/ui/Lead/Lead.module.scss b/src/frame/components/ui/Lead/Lead.module.scss
similarity index 100%
rename from components/ui/Lead/Lead.module.scss
rename to src/frame/components/ui/Lead/Lead.module.scss
diff --git a/components/ui/Lead/Lead.tsx b/src/frame/components/ui/Lead/Lead.tsx
similarity index 100%
rename from components/ui/Lead/Lead.tsx
rename to src/frame/components/ui/Lead/Lead.tsx
diff --git a/components/ui/Lead/index.ts b/src/frame/components/ui/Lead/index.ts
similarity index 100%
rename from components/ui/Lead/index.ts
rename to src/frame/components/ui/Lead/index.ts
diff --git a/components/ui/MarkdownContent/MarkdownContent.module.scss b/src/frame/components/ui/MarkdownContent/MarkdownContent.module.scss
similarity index 100%
rename from components/ui/MarkdownContent/MarkdownContent.module.scss
rename to src/frame/components/ui/MarkdownContent/MarkdownContent.module.scss
diff --git a/components/ui/MarkdownContent/MarkdownContent.tsx b/src/frame/components/ui/MarkdownContent/MarkdownContent.tsx
similarity index 100%
rename from components/ui/MarkdownContent/MarkdownContent.tsx
rename to src/frame/components/ui/MarkdownContent/MarkdownContent.tsx
diff --git a/components/ui/MarkdownContent/index.ts b/src/frame/components/ui/MarkdownContent/index.ts
similarity index 100%
rename from components/ui/MarkdownContent/index.ts
rename to src/frame/components/ui/MarkdownContent/index.ts
diff --git a/components/ui/MarkdownContent/stylesheets/code.scss b/src/frame/components/ui/MarkdownContent/stylesheets/code.scss
similarity index 100%
rename from components/ui/MarkdownContent/stylesheets/code.scss
rename to src/frame/components/ui/MarkdownContent/stylesheets/code.scss
diff --git a/components/ui/MarkdownContent/stylesheets/headers.scss b/src/frame/components/ui/MarkdownContent/stylesheets/headers.scss
similarity index 100%
rename from components/ui/MarkdownContent/stylesheets/headers.scss
rename to src/frame/components/ui/MarkdownContent/stylesheets/headers.scss
diff --git a/components/ui/MarkdownContent/stylesheets/lists.scss b/src/frame/components/ui/MarkdownContent/stylesheets/lists.scss
similarity index 100%
rename from components/ui/MarkdownContent/stylesheets/lists.scss
rename to src/frame/components/ui/MarkdownContent/stylesheets/lists.scss
diff --git a/components/ui/MarkdownContent/stylesheets/table.scss b/src/frame/components/ui/MarkdownContent/stylesheets/table.scss
similarity index 100%
rename from components/ui/MarkdownContent/stylesheets/table.scss
rename to src/frame/components/ui/MarkdownContent/stylesheets/table.scss
diff --git a/components/ui/MiniTocs/MiniTocs.tsx b/src/frame/components/ui/MiniTocs/MiniTocs.tsx
similarity index 96%
rename from components/ui/MiniTocs/MiniTocs.tsx
rename to src/frame/components/ui/MiniTocs/MiniTocs.tsx
index 2e234a106e..c5575950cb 100644
--- a/components/ui/MiniTocs/MiniTocs.tsx
+++ b/src/frame/components/ui/MiniTocs/MiniTocs.tsx
@@ -2,7 +2,7 @@ import { Heading, NavList } from '@primer/react'
import { useEffect, useState } from 'react'
import cx from 'classnames'
-import type { MiniTocItem } from 'components/context/ArticleContext'
+import type { MiniTocItem } from 'src/frame/components/context/ArticleContext'
import { useTranslation } from 'src/languages/components/useTranslation'
import styles from './Minitocs.module.scss'
diff --git a/components/ui/MiniTocs/Minitocs.module.scss b/src/frame/components/ui/MiniTocs/Minitocs.module.scss
similarity index 100%
rename from components/ui/MiniTocs/Minitocs.module.scss
rename to src/frame/components/ui/MiniTocs/Minitocs.module.scss
diff --git a/components/ui/MiniTocs/index.ts b/src/frame/components/ui/MiniTocs/index.ts
similarity index 100%
rename from components/ui/MiniTocs/index.ts
rename to src/frame/components/ui/MiniTocs/index.ts
diff --git a/components/ui/PermissionsStatement/PermissionsStatement.module.scss b/src/frame/components/ui/PermissionsStatement/PermissionsStatement.module.scss
similarity index 100%
rename from components/ui/PermissionsStatement/PermissionsStatement.module.scss
rename to src/frame/components/ui/PermissionsStatement/PermissionsStatement.module.scss
diff --git a/components/ui/PermissionsStatement/PermissionsStatement.tsx b/src/frame/components/ui/PermissionsStatement/PermissionsStatement.tsx
similarity index 100%
rename from components/ui/PermissionsStatement/PermissionsStatement.tsx
rename to src/frame/components/ui/PermissionsStatement/PermissionsStatement.tsx
diff --git a/components/ui/PermissionsStatement/index.ts b/src/frame/components/ui/PermissionsStatement/index.ts
similarity index 100%
rename from components/ui/PermissionsStatement/index.ts
rename to src/frame/components/ui/PermissionsStatement/index.ts
diff --git a/components/ui/ScrollButton/ScrollButton.tsx b/src/frame/components/ui/ScrollButton/ScrollButton.tsx
similarity index 100%
rename from components/ui/ScrollButton/ScrollButton.tsx
rename to src/frame/components/ui/ScrollButton/ScrollButton.tsx
diff --git a/components/ui/ScrollButton/index.ts b/src/frame/components/ui/ScrollButton/index.ts
similarity index 100%
rename from components/ui/ScrollButton/index.ts
rename to src/frame/components/ui/ScrollButton/index.ts
diff --git a/src/github-apps/components/EnabledList.tsx b/src/github-apps/components/EnabledList.tsx
index a1bce87add..936edd0f17 100644
--- a/src/github-apps/components/EnabledList.tsx
+++ b/src/github-apps/components/EnabledList.tsx
@@ -2,9 +2,9 @@ import { Fragment } from 'react'
import { useRouter } from 'next/router'
import { slug as githubSlug } from 'github-slugger'
-import { HeadingLink } from 'components/article/HeadingLink'
-import { Link } from 'components/Link'
-import { MainContext, MainContextT } from 'components/context/MainContext'
+import { HeadingLink } from 'src/frame/components/article/HeadingLink'
+import { Link } from 'src/frame/components/Link'
+import { MainContext, MainContextT } from 'src/frame/components/context/MainContext'
import {
AutomatedPageContext,
AutomatedPageContextT,
diff --git a/src/github-apps/components/PermissionsList.tsx b/src/github-apps/components/PermissionsList.tsx
index 36f34f64d7..286f679d9f 100644
--- a/src/github-apps/components/PermissionsList.tsx
+++ b/src/github-apps/components/PermissionsList.tsx
@@ -2,10 +2,10 @@ import { useRouter } from 'next/router'
import cx from 'classnames'
import { slug as githubSlug } from 'github-slugger'
-import { HeadingLink } from 'components/article/HeadingLink'
+import { HeadingLink } from 'src/frame/components/article/HeadingLink'
import { useTranslation } from 'src/languages/components/useTranslation'
-import { Link } from 'components/Link'
-import { MainContextT } from 'components/context/MainContext'
+import { Link } from 'src/frame/components/Link'
+import { MainContextT } from 'src/frame/components/context/MainContext'
import {
AutomatedPageContext,
AutomatedPageContextT,
diff --git a/src/github-apps/pages/endpoints-available-for-fine-grained-personal-access-tokens.tsx b/src/github-apps/pages/endpoints-available-for-fine-grained-personal-access-tokens.tsx
index 7a01ff7d33..dde151c9c1 100644
--- a/src/github-apps/pages/endpoints-available-for-fine-grained-personal-access-tokens.tsx
+++ b/src/github-apps/pages/endpoints-available-for-fine-grained-personal-access-tokens.tsx
@@ -4,7 +4,7 @@ import {
AutomatedPageContextT,
getAutomatedPageContextFromRequest,
} from 'src/automated-pipelines/components/AutomatedPageContext'
-import { MainContextT, getMainContext } from 'components/context/MainContext'
+import { MainContextT, getMainContext } from 'src/frame/components/context/MainContext'
import { EnabledList, EnabledListT } from 'src/github-apps/components/EnabledList'
diff --git a/src/github-apps/pages/endpoints-available-for-github-app-installation-access-tokens.tsx b/src/github-apps/pages/endpoints-available-for-github-app-installation-access-tokens.tsx
index de16aae26d..aff5f5ac04 100644
--- a/src/github-apps/pages/endpoints-available-for-github-app-installation-access-tokens.tsx
+++ b/src/github-apps/pages/endpoints-available-for-github-app-installation-access-tokens.tsx
@@ -4,7 +4,7 @@ import {
AutomatedPageContextT,
getAutomatedPageContextFromRequest,
} from 'src/automated-pipelines/components/AutomatedPageContext'
-import { MainContextT, getMainContext } from 'components/context/MainContext'
+import { MainContextT, getMainContext } from 'src/frame/components/context/MainContext'
import { EnabledList, EnabledListT } from 'src/github-apps/components/EnabledList'
diff --git a/src/github-apps/pages/endpoints-available-for-github-app-user-access-tokens.tsx b/src/github-apps/pages/endpoints-available-for-github-app-user-access-tokens.tsx
index c45ab5d837..eb6b4a2f3f 100644
--- a/src/github-apps/pages/endpoints-available-for-github-app-user-access-tokens.tsx
+++ b/src/github-apps/pages/endpoints-available-for-github-app-user-access-tokens.tsx
@@ -4,7 +4,7 @@ import {
AutomatedPageContextT,
getAutomatedPageContextFromRequest,
} from 'src/automated-pipelines/components/AutomatedPageContext'
-import { MainContextT, getMainContext } from 'components/context/MainContext'
+import { MainContextT, getMainContext } from 'src/frame/components/context/MainContext'
import { EnabledList, EnabledListT } from 'src/github-apps/components/EnabledList'
diff --git a/src/github-apps/pages/permissions-required-for-fine-grained-personal-access-tokens.tsx b/src/github-apps/pages/permissions-required-for-fine-grained-personal-access-tokens.tsx
index a7e67626b0..b42354c367 100644
--- a/src/github-apps/pages/permissions-required-for-fine-grained-personal-access-tokens.tsx
+++ b/src/github-apps/pages/permissions-required-for-fine-grained-personal-access-tokens.tsx
@@ -4,7 +4,7 @@ import {
AutomatedPageContextT,
getAutomatedPageContextFromRequest,
} from 'src/automated-pipelines/components/AutomatedPageContext'
-import { MainContext, MainContextT, getMainContext } from 'components/context/MainContext'
+import { MainContext, MainContextT, getMainContext } from 'src/frame/components/context/MainContext'
import { PermissionsList, PermissionListT } from 'src/github-apps/components/PermissionsList'
type Props = {
diff --git a/src/github-apps/pages/permissions-required-for-github-apps.tsx b/src/github-apps/pages/permissions-required-for-github-apps.tsx
index be9d3e8c56..c4b5c2cdfb 100644
--- a/src/github-apps/pages/permissions-required-for-github-apps.tsx
+++ b/src/github-apps/pages/permissions-required-for-github-apps.tsx
@@ -3,7 +3,7 @@ import {
AutomatedPageContextT,
getAutomatedPageContextFromRequest,
} from 'src/automated-pipelines/components/AutomatedPageContext'
-import { MainContext, MainContextT, getMainContext } from 'components/context/MainContext'
+import { MainContext, MainContextT, getMainContext } from 'src/frame/components/context/MainContext'
import { PermissionsList, PermissionListT } from 'src/github-apps/components/PermissionsList'
type Props = {
diff --git a/src/graphql/components/BreakingChanges.tsx b/src/graphql/components/BreakingChanges.tsx
index ed0ceedf77..db2f66b286 100644
--- a/src/graphql/components/BreakingChanges.tsx
+++ b/src/graphql/components/BreakingChanges.tsx
@@ -1,9 +1,9 @@
import React from 'react'
import cx from 'classnames'
-import { HeadingLink } from 'components/article/HeadingLink'
+import { HeadingLink } from 'src/frame/components/article/HeadingLink'
import { BreakingChangesT } from './types'
-import styles from 'components/ui/MarkdownContent/MarkdownContent.module.scss'
+import styles from 'src/frame/components/ui/MarkdownContent/MarkdownContent.module.scss'
export type HeadingT = {
title: string
diff --git a/src/graphql/components/Changelog.tsx b/src/graphql/components/Changelog.tsx
index fa9cfcdf75..d10ead992a 100644
--- a/src/graphql/components/Changelog.tsx
+++ b/src/graphql/components/Changelog.tsx
@@ -1,9 +1,9 @@
import React from 'react'
import cx from 'classnames'
-import { HeadingLink } from 'components/article/HeadingLink'
+import { HeadingLink } from 'src/frame/components/article/HeadingLink'
import { ChangelogItemT } from './types'
-import styles from 'components/ui/MarkdownContent/MarkdownContent.module.scss'
+import styles from 'src/frame/components/ui/MarkdownContent/MarkdownContent.module.scss'
type Props = {
changelogItems: ChangelogItemT[]
diff --git a/src/graphql/components/GraphqlItem.tsx b/src/graphql/components/GraphqlItem.tsx
index 43097c999e..eed6ab83ea 100644
--- a/src/graphql/components/GraphqlItem.tsx
+++ b/src/graphql/components/GraphqlItem.tsx
@@ -1,4 +1,4 @@
-import { HeadingLink } from 'components/article/HeadingLink'
+import { HeadingLink } from 'src/frame/components/article/HeadingLink'
import type { GraphqlT } from './types'
import { Notice } from './Notice'
diff --git a/src/graphql/components/GraphqlPage.tsx b/src/graphql/components/GraphqlPage.tsx
index 3add5f7145..9eafe38ecc 100644
--- a/src/graphql/components/GraphqlPage.tsx
+++ b/src/graphql/components/GraphqlPage.tsx
@@ -19,7 +19,7 @@ import type {
ScalarT,
UnionT,
} from './types'
-import styles from 'components/ui/MarkdownContent/MarkdownContent.module.scss'
+import styles from 'src/frame/components/ui/MarkdownContent/MarkdownContent.module.scss'
type Props = {
schema: Object
diff --git a/src/graphql/components/Interface.tsx b/src/graphql/components/Interface.tsx
index 5e18912f73..980b605978 100644
--- a/src/graphql/components/Interface.tsx
+++ b/src/graphql/components/Interface.tsx
@@ -1,6 +1,6 @@
import { useRouter } from 'next/router'
-import { Link } from 'components/Link'
+import { Link } from 'src/frame/components/Link'
import { GraphqlItem } from './GraphqlItem'
import { Table } from './Table'
import { useTranslation } from 'src/languages/components/useTranslation'
diff --git a/src/graphql/components/Mutation.tsx b/src/graphql/components/Mutation.tsx
index 115c526714..7f763e29fc 100644
--- a/src/graphql/components/Mutation.tsx
+++ b/src/graphql/components/Mutation.tsx
@@ -1,6 +1,6 @@
import { useRouter } from 'next/router'
-import { Link } from 'components/Link'
+import { Link } from 'src/frame/components/Link'
import { GraphqlItem } from './GraphqlItem'
import { Notice } from './Notice'
import { useTranslation } from 'src/languages/components/useTranslation'
diff --git a/src/graphql/components/Notice.tsx b/src/graphql/components/Notice.tsx
index c99a636cb3..a090d8e334 100644
--- a/src/graphql/components/Notice.tsx
+++ b/src/graphql/components/Notice.tsx
@@ -1,6 +1,6 @@
import { useRouter } from 'next/router'
-import { Link } from 'components/Link'
+import { Link } from 'src/frame/components/Link'
import { useTranslation } from 'src/languages/components/useTranslation'
import type { GraphqlT } from './types'
diff --git a/src/graphql/components/Object.tsx b/src/graphql/components/Object.tsx
index 4708c420fc..ae44053c3a 100644
--- a/src/graphql/components/Object.tsx
+++ b/src/graphql/components/Object.tsx
@@ -1,6 +1,6 @@
import { useRouter } from 'next/router'
-import { Link } from 'components/Link'
+import { Link } from 'src/frame/components/Link'
import { GraphqlItem } from './GraphqlItem'
import { Table } from './Table'
import { useTranslation } from 'src/languages/components/useTranslation'
diff --git a/src/graphql/components/Previews.tsx b/src/graphql/components/Previews.tsx
index 507860719c..24b7826f83 100644
--- a/src/graphql/components/Previews.tsx
+++ b/src/graphql/components/Previews.tsx
@@ -2,10 +2,10 @@ import React from 'react'
import GithubSlugger from 'github-slugger'
import cx from 'classnames'
-import { HeadingLink } from 'components/article/HeadingLink'
+import { HeadingLink } from 'src/frame/components/article/HeadingLink'
import { useTranslation } from 'src/languages/components/useTranslation'
import { PreviewT } from './types'
-import styles from 'components/ui/MarkdownContent/MarkdownContent.module.scss'
+import styles from 'src/frame/components/ui/MarkdownContent/MarkdownContent.module.scss'
type Props = {
schema: PreviewT[]
diff --git a/src/graphql/components/Query.tsx b/src/graphql/components/Query.tsx
index 3ed226c569..def2142f56 100644
--- a/src/graphql/components/Query.tsx
+++ b/src/graphql/components/Query.tsx
@@ -1,6 +1,6 @@
import { useRouter } from 'next/router'
-import { Link } from 'components/Link'
+import { Link } from 'src/frame/components/Link'
import { GraphqlItem } from './GraphqlItem'
import { Table } from './Table'
import { useTranslation } from 'src/languages/components/useTranslation'
diff --git a/src/graphql/components/Table.tsx b/src/graphql/components/Table.tsx
index c83af06025..75618fe077 100644
--- a/src/graphql/components/Table.tsx
+++ b/src/graphql/components/Table.tsx
@@ -1,6 +1,6 @@
import { useRouter } from 'next/router'
-import { Link } from 'components/Link'
+import { Link } from 'src/frame/components/Link'
import { Notice } from './Notice'
import { useTranslation } from 'src/languages/components/useTranslation'
import { FieldT } from './types'
diff --git a/src/graphql/components/Union.tsx b/src/graphql/components/Union.tsx
index 73c10b8127..44efea0aa5 100644
--- a/src/graphql/components/Union.tsx
+++ b/src/graphql/components/Union.tsx
@@ -1,6 +1,6 @@
import { useRouter } from 'next/router'
-import { Link } from 'components/Link'
+import { Link } from 'src/frame/components/Link'
import { GraphqlItem } from './GraphqlItem'
import { useTranslation } from 'src/languages/components/useTranslation'
import type { UnionT } from './types'
diff --git a/src/graphql/pages/breaking-changes.tsx b/src/graphql/pages/breaking-changes.tsx
index d8fbb9208f..2f7572a4f7 100644
--- a/src/graphql/pages/breaking-changes.tsx
+++ b/src/graphql/pages/breaking-changes.tsx
@@ -2,7 +2,7 @@ import { GetServerSideProps } from 'next'
import React from 'react'
import GithubSlugger from 'github-slugger'
-import { MainContextT, MainContext, getMainContext } from 'components/context/MainContext'
+import { MainContextT, MainContext, getMainContext } from 'src/frame/components/context/MainContext'
import { AutomatedPage } from 'src/automated-pipelines/components/AutomatedPage'
import {
AutomatedPageContext,
diff --git a/src/graphql/pages/changelog.tsx b/src/graphql/pages/changelog.tsx
index a55ef7ad41..cc02e34d3c 100644
--- a/src/graphql/pages/changelog.tsx
+++ b/src/graphql/pages/changelog.tsx
@@ -1,7 +1,7 @@
import { GetServerSideProps } from 'next'
import React from 'react'
-import { MainContextT, MainContext, getMainContext } from 'components/context/MainContext'
+import { MainContextT, MainContext, getMainContext } from 'src/frame/components/context/MainContext'
import { AutomatedPage } from 'src/automated-pipelines/components/AutomatedPage'
import {
AutomatedPageContext,
diff --git a/src/graphql/pages/explorer.tsx b/src/graphql/pages/explorer.tsx
index 2db1f0f0dd..5bb93bf0f1 100644
--- a/src/graphql/pages/explorer.tsx
+++ b/src/graphql/pages/explorer.tsx
@@ -1,7 +1,7 @@
import { GetServerSideProps } from 'next'
-import { MainContextT, MainContext, getMainContext } from 'components/context/MainContext'
-import { DefaultLayout } from 'components/DefaultLayout'
+import { MainContextT, MainContext, getMainContext } from 'src/frame/components/context/MainContext'
+import { DefaultLayout } from 'src/frame/components/DefaultLayout'
import { useEffect, useRef } from 'react'
type Props = {
diff --git a/src/graphql/pages/reference.tsx b/src/graphql/pages/reference.tsx
index c6de33a32b..7a54efd95b 100644
--- a/src/graphql/pages/reference.tsx
+++ b/src/graphql/pages/reference.tsx
@@ -7,7 +7,7 @@ import {
MainContext,
getMainContext,
addUINamespaces,
-} from 'components/context/MainContext'
+} from 'src/frame/components/context/MainContext'
import type { ObjectT, GraphqlT } from 'src/graphql/components/types'
import { AutomatedPage } from 'src/automated-pipelines/components/AutomatedPage'
import {
diff --git a/src/graphql/pages/schema-previews.tsx b/src/graphql/pages/schema-previews.tsx
index 99f7e205d2..8e737c0471 100644
--- a/src/graphql/pages/schema-previews.tsx
+++ b/src/graphql/pages/schema-previews.tsx
@@ -6,7 +6,7 @@ import {
MainContext,
getMainContext,
addUINamespaces,
-} from 'components/context/MainContext'
+} from 'src/frame/components/context/MainContext'
import { AutomatedPage } from 'src/automated-pipelines/components/AutomatedPage'
import {
AutomatedPageContext,
diff --git a/src/landings/components/ArticleCard.tsx b/src/landings/components/ArticleCard.tsx
index 1fa51c64ae..4bd7788fd2 100644
--- a/src/landings/components/ArticleCard.tsx
+++ b/src/landings/components/ArticleCard.tsx
@@ -1,7 +1,7 @@
import { Label } from '@primer/react'
import { ArticleGuide } from 'src/landings/components/ProductGuidesContext'
-import { Link } from 'components/Link'
+import { Link } from 'src/frame/components/Link'
type Props = {
card: ArticleGuide
diff --git a/src/landings/components/ArticleList.tsx b/src/landings/components/ArticleList.tsx
index 4eb9ed9501..341cdba971 100644
--- a/src/landings/components/ArticleList.tsx
+++ b/src/landings/components/ArticleList.tsx
@@ -2,11 +2,11 @@ import cx from 'classnames'
import dayjs from 'dayjs'
import { ActionList } from '@primer/react'
import { useTranslation } from 'src/languages/components/useTranslation'
-import { Link } from 'components/Link'
+import { Link } from 'src/frame/components/Link'
import { ArrowRightIcon } from '@primer/octicons-react'
import { FeaturedLink } from 'src/landings/components/ProductLandingContext'
-import { useMainContext } from 'components/context/MainContext'
-import { BumpLink } from 'components/ui/BumpLink'
+import { useMainContext } from 'src/frame/components/context/MainContext'
+import { BumpLink } from 'src/frame/components/ui/BumpLink'
export type ArticleListPropsT = {
title?: string
diff --git a/src/landings/components/GuideCards.tsx b/src/landings/components/GuideCards.tsx
index 04a9a0270d..bc11b5582e 100644
--- a/src/landings/components/GuideCards.tsx
+++ b/src/landings/components/GuideCards.tsx
@@ -1,8 +1,8 @@
import { useRouter } from 'next/router'
-import { Link } from 'components/Link'
+import { Link } from 'src/frame/components/Link'
import { ArrowRightIcon } from '@primer/octicons-react'
-import { useMainContext } from 'components/context/MainContext'
+import { useMainContext } from 'src/frame/components/context/MainContext'
import { useProductLandingContext } from 'src/landings/components/ProductLandingContext'
import { GuideCard } from 'src/landings/components/GuideCard'
diff --git a/src/landings/components/GuidesHero.tsx b/src/landings/components/GuidesHero.tsx
index bf05365341..7af76a3754 100644
--- a/src/landings/components/GuidesHero.tsx
+++ b/src/landings/components/GuidesHero.tsx
@@ -1,5 +1,5 @@
import { useProductGuidesContext } from 'src/landings/components/ProductGuidesContext'
-import { Lead } from 'components/ui/Lead'
+import { Lead } from 'src/frame/components/ui/Lead'
export function GuidesHero() {
const { title, intro } = useProductGuidesContext()
diff --git a/src/landings/components/LandingHero.tsx b/src/landings/components/LandingHero.tsx
index 1d4078cd20..a12a1721b6 100644
--- a/src/landings/components/LandingHero.tsx
+++ b/src/landings/components/LandingHero.tsx
@@ -3,11 +3,11 @@ import cx from 'classnames'
import { useRouter } from 'next/router'
import { LinkExternalIcon, NoteIcon } from '@primer/octicons-react'
-import { Link } from 'components/Link'
+import { Link } from 'src/frame/components/Link'
import { useProductLandingContext } from 'src/landings/components/ProductLandingContext'
import { useTranslation } from 'src/languages/components/useTranslation'
import { useVersion } from 'src/versions/components/useVersion'
-import { Lead } from 'components/ui/Lead'
+import { Lead } from 'src/frame/components/ui/Lead'
export const LandingHero = () => {
const {
diff --git a/src/landings/components/LandingSection.tsx b/src/landings/components/LandingSection.tsx
index 5ea7992a36..e14bc08672 100644
--- a/src/landings/components/LandingSection.tsx
+++ b/src/landings/components/LandingSection.tsx
@@ -1,5 +1,5 @@
import cx from 'classnames'
-import { HeadingLink } from 'components/article/HeadingLink'
+import { HeadingLink } from 'src/frame/components/article/HeadingLink'
type Props = {
title?: string
diff --git a/src/landings/components/ProductArticlesList.tsx b/src/landings/components/ProductArticlesList.tsx
index 594837222b..51902c25e8 100644
--- a/src/landings/components/ProductArticlesList.tsx
+++ b/src/landings/components/ProductArticlesList.tsx
@@ -2,8 +2,8 @@ import cx from 'classnames'
import { ActionList } from '@primer/react'
-import { ProductTreeNode, useMainContext } from 'components/context/MainContext'
-import { Link } from 'components/Link'
+import { ProductTreeNode, useMainContext } from 'src/frame/components/context/MainContext'
+import { Link } from 'src/frame/components/Link'
export const ProductArticlesList = () => {
const { currentProductTree } = useMainContext()
diff --git a/src/landings/components/ProductGuides.tsx b/src/landings/components/ProductGuides.tsx
index c52e78a469..c60de8a66e 100644
--- a/src/landings/components/ProductGuides.tsx
+++ b/src/landings/components/ProductGuides.tsx
@@ -1,11 +1,11 @@
-import { DefaultLayout } from 'components/DefaultLayout'
+import { DefaultLayout } from 'src/frame/components/DefaultLayout'
import { useProductGuidesContext } from 'src/landings/components/ProductGuidesContext'
import { LandingSection } from 'src/landings/components/LandingSection'
import { GuidesHero } from 'src/landings/components/GuidesHero'
import { LearningTracks } from 'src/learning-track/components/guides/LearningTracks'
import { ArticleCards } from 'src/landings/components/ArticleCards'
import { useTranslation } from 'src/languages/components/useTranslation'
-import { useMainContext } from 'components/context/MainContext'
+import { useMainContext } from 'src/frame/components/context/MainContext'
export const ProductGuides = () => {
const { title, learningTracks, includeGuides } = useProductGuidesContext()
diff --git a/src/landings/components/ProductLanding.tsx b/src/landings/components/ProductLanding.tsx
index b67e4aee7e..0dbed5fa63 100644
--- a/src/landings/components/ProductLanding.tsx
+++ b/src/landings/components/ProductLanding.tsx
@@ -1,5 +1,5 @@
import { useRouter } from 'next/router'
-import { DefaultLayout } from 'components/DefaultLayout'
+import { DefaultLayout } from 'src/frame/components/DefaultLayout'
import { useProductLandingContext } from 'src/landings/components/ProductLandingContext'
import { LandingHero } from 'src/landings/components/LandingHero'
diff --git a/src/landings/components/ProductReleases.tsx b/src/landings/components/ProductReleases.tsx
index df7d2293a1..b952a286e3 100644
--- a/src/landings/components/ProductReleases.tsx
+++ b/src/landings/components/ProductReleases.tsx
@@ -1,8 +1,8 @@
import { ArrowRightIcon, ArrowUpIcon, FileIcon, ListUnorderedIcon } from '@primer/octicons-react'
-import { useMainContext } from 'components/context/MainContext'
+import { useMainContext } from 'src/frame/components/context/MainContext'
import { useProductLandingContext } from 'src/landings/components/ProductLandingContext'
import { useTranslation } from 'src/languages/components/useTranslation'
-import { Link } from 'components/Link'
+import { Link } from 'src/frame/components/Link'
import { useRouter } from 'next/router'
export function ProductReleases() {
diff --git a/src/landings/components/ProductSelectionCard.tsx b/src/landings/components/ProductSelectionCard.tsx
index 5f53fb7772..6ba80ceff7 100644
--- a/src/landings/components/ProductSelectionCard.tsx
+++ b/src/landings/components/ProductSelectionCard.tsx
@@ -1,7 +1,7 @@
import type { ProductGroupT } from 'src/landings/components/ProductSelections'
import React from 'react'
-import { Link } from 'components/Link'
+import { Link } from 'src/frame/components/Link'
import * as Octicons from '@primer/octicons-react'
import { LinkExternalIcon } from '@primer/octicons-react'
diff --git a/src/landings/components/ProductSelections.tsx b/src/landings/components/ProductSelections.tsx
index 0f98361d5d..ec02c3f5e9 100644
--- a/src/landings/components/ProductSelections.tsx
+++ b/src/landings/components/ProductSelections.tsx
@@ -1,6 +1,6 @@
import React from 'react'
-import type { ProductT } from 'components/context/MainContext'
+import type { ProductT } from 'src/frame/components/context/MainContext'
import { ProductSelectionCard } from './ProductSelectionCard'
export type ProductGroupT = {
diff --git a/src/landings/components/SidebarProduct.tsx b/src/landings/components/SidebarProduct.tsx
index 3fdfe620fc..2e4d14977a 100644
--- a/src/landings/components/SidebarProduct.tsx
+++ b/src/landings/components/SidebarProduct.tsx
@@ -2,7 +2,7 @@ import { useRouter } from 'next/router'
import { useEffect, useState } from 'react'
import { NavList } from '@primer/react'
-import { ProductTreeNode, useMainContext } from 'components/context/MainContext'
+import { ProductTreeNode, useMainContext } from 'src/frame/components/context/MainContext'
import { useAutomatedPageContext } from 'src/automated-pipelines/components/AutomatedPageContext'
import { nonAutomatedRestPaths } from '../../rest/lib/config.js'
diff --git a/src/landings/components/TableOfContents.tsx b/src/landings/components/TableOfContents.tsx
index bc7640db15..434a6b5dd4 100644
--- a/src/landings/components/TableOfContents.tsx
+++ b/src/landings/components/TableOfContents.tsx
@@ -2,7 +2,7 @@ import React from 'react'
import cx from 'classnames'
import { ActionList } from '@primer/react'
-import { Link } from 'components/Link'
+import { Link } from 'src/frame/components/Link'
import type { TocItem } from 'src/landings/components/ProductLandingContext'
type Props = {
diff --git a/src/landings/components/TocLanding.tsx b/src/landings/components/TocLanding.tsx
index ab1b7fe13a..ad5b8d9729 100644
--- a/src/landings/components/TocLanding.tsx
+++ b/src/landings/components/TocLanding.tsx
@@ -1,20 +1,20 @@
import { useRouter } from 'next/router'
import cx from 'classnames'
-import { useTocLandingContext } from 'components/context/TocLandingContext'
+import { useTocLandingContext } from 'src/frame/components/context/TocLandingContext'
import { useTranslation } from 'src/languages/components/useTranslation'
-import { DefaultLayout } from 'components/DefaultLayout'
+import { DefaultLayout } from 'src/frame/components/DefaultLayout'
import { TableOfContents } from 'src/landings/components/TableOfContents'
-import { ArticleTitle } from 'components/article/ArticleTitle'
-import { MarkdownContent } from 'components/ui/MarkdownContent'
+import { ArticleTitle } from 'src/frame/components/article/ArticleTitle'
+import { MarkdownContent } from 'src/frame/components/ui/MarkdownContent'
import { ArticleList } from 'src/landings/components/ArticleList'
-import { ArticleGridLayout } from 'components/article/ArticleGridLayout'
-import { Callout } from 'components/ui/Callout'
-import { Lead } from 'components/ui/Lead'
+import { ArticleGridLayout } from 'src/frame/components/article/ArticleGridLayout'
+import { Callout } from 'src/frame/components/ui/Callout'
+import { Lead } from 'src/frame/components/ui/Lead'
import { LearningTrackNav } from 'src/learning-track/components/article/LearningTrackNav'
import { ClientSideRedirects } from 'src/rest/components/ClientSideRedirects'
import { RestRedirect } from 'src/rest/components/RestRedirect'
-import { Breadcrumbs } from 'components/page-header/Breadcrumbs'
+import { Breadcrumbs } from 'src/frame/components/page-header/Breadcrumbs'
export const TocLanding = () => {
const router = useRouter()
diff --git a/src/landings/pages/home.tsx b/src/landings/pages/home.tsx
index 4e71c547e9..728485237e 100644
--- a/src/landings/pages/home.tsx
+++ b/src/landings/pages/home.tsx
@@ -6,9 +6,9 @@ import {
MainContext,
getMainContext,
addUINamespaces,
-} from 'components/context/MainContext'
+} from 'src/frame/components/context/MainContext'
-import { DefaultLayout } from 'components/DefaultLayout'
+import { DefaultLayout } from 'src/frame/components/DefaultLayout'
import { useTranslation } from 'src/languages/components/useTranslation'
import { ArticleList } from 'src/landings/components/ArticleList'
import { HomePageHero } from 'src/landings/components/HomePageHero'
diff --git a/src/landings/pages/product.tsx b/src/landings/pages/product.tsx
index 17dbb926f5..0c73891baf 100644
--- a/src/landings/pages/product.tsx
+++ b/src/landings/pages/product.tsx
@@ -3,16 +3,16 @@ import { useRouter } from 'next/router'
// "legacy" javascript needed to maintain existing functionality
// typically operating on elements **within** an article.
-import copyCode from 'components/lib/copy-code'
-import toggleAnnotation from 'components/lib/toggle-annotations'
-import wrapCodeTerms from 'components/lib/wrap-code-terms'
+import copyCode from 'src/frame/components/lib/copy-code'
+import toggleAnnotation from 'src/frame/components/lib/toggle-annotations'
+import wrapCodeTerms from 'src/frame/components/lib/wrap-code-terms'
import {
MainContextT,
MainContext,
getMainContext,
addUINamespaces,
-} from 'components/context/MainContext'
+} from 'src/frame/components/context/MainContext'
import {
getProductLandingContextFromRequest,
@@ -29,8 +29,8 @@ import {
getArticleContextFromRequest,
ArticleContextT,
ArticleContext,
-} from 'components/context/ArticleContext'
-import { ArticlePage } from 'components/article/ArticlePage'
+} from 'src/frame/components/context/ArticleContext'
+import { ArticlePage } from 'src/frame/components/article/ArticlePage'
import { ProductLanding } from 'src/landings/components/ProductLanding'
import { ProductGuides } from 'src/landings/components/ProductGuides'
@@ -39,7 +39,7 @@ import {
getTocLandingContextFromRequest,
TocLandingContext,
TocLandingContextT,
-} from 'components/context/TocLandingContext'
+} from 'src/frame/components/context/TocLandingContext'
import { useEffect } from 'react'
function initiateArticleScripts() {
diff --git a/src/languages/components/useTranslation.ts b/src/languages/components/useTranslation.ts
index 6b7902ef92..cfc1d8f1d4 100644
--- a/src/languages/components/useTranslation.ts
+++ b/src/languages/components/useTranslation.ts
@@ -1,5 +1,5 @@
-import type { UIStrings } from 'components/context/MainContext'
-import { useMainContext } from 'components/context/MainContext'
+import type { UIStrings } from 'src/frame/components/context/MainContext'
+import { useMainContext } from 'src/frame/components/context/MainContext'
class TranslationNamespaceError extends Error {}
class UngettableError extends Error {}
diff --git a/src/languages/components/useUserLanguage.ts b/src/languages/components/useUserLanguage.ts
index a5e62b0864..08fc9356b9 100644
--- a/src/languages/components/useUserLanguage.ts
+++ b/src/languages/components/useUserLanguage.ts
@@ -1,5 +1,5 @@
import { useState, useEffect } from 'react'
-import Cookies from 'components/lib/cookies'
+import Cookies from 'src/frame/components/lib/cookies'
import { useRouter } from 'next/router'
import { useLanguages } from 'src/languages/components/LanguagesContext'
diff --git a/src/learning-track/components/article/LearningTrackCard.tsx b/src/learning-track/components/article/LearningTrackCard.tsx
index 00110df42c..a1eb33a0bf 100644
--- a/src/learning-track/components/article/LearningTrackCard.tsx
+++ b/src/learning-track/components/article/LearningTrackCard.tsx
@@ -1,7 +1,7 @@
import { useRouter } from 'next/router'
-import { Link } from 'components/Link'
-import type { LearningTrack } from 'components/context/ArticleContext'
+import { Link } from 'src/frame/components/Link'
+import type { LearningTrack } from 'src/frame/components/context/ArticleContext'
import { useTranslation } from 'src/languages/components/useTranslation'
type Props = {
diff --git a/src/learning-track/components/article/LearningTrackNav.tsx b/src/learning-track/components/article/LearningTrackNav.tsx
index ccb4f053a6..e6688d0f32 100644
--- a/src/learning-track/components/article/LearningTrackNav.tsx
+++ b/src/learning-track/components/article/LearningTrackNav.tsx
@@ -1,5 +1,5 @@
-import { Link } from 'components/Link'
-import type { LearningTrack } from 'components/context/ArticleContext'
+import { Link } from 'src/frame/components/Link'
+import type { LearningTrack } from 'src/frame/components/context/ArticleContext'
import { useTranslation } from 'src/languages/components/useTranslation'
type Props = {
diff --git a/src/learning-track/components/guides/LearningTrack.tsx b/src/learning-track/components/guides/LearningTrack.tsx
index 92c6e0ca1f..f11a6c2eb0 100644
--- a/src/learning-track/components/guides/LearningTrack.tsx
+++ b/src/learning-track/components/guides/LearningTrack.tsx
@@ -1,9 +1,9 @@
import { useTranslation } from 'src/languages/components/useTranslation'
import { ArrowRightIcon } from '@primer/octicons-react'
import { LearningTrack as LearningTrackT } from 'src/landings/components/ProductGuidesContext'
-import { Link } from 'components/Link'
+import { Link } from 'src/frame/components/Link'
-import { HeadingLink } from 'components/article/HeadingLink'
+import { HeadingLink } from 'src/frame/components/article/HeadingLink'
type Props = {
track: LearningTrackT
diff --git a/src/pages/404.tsx b/src/pages/404.tsx
index 6c9f135a97..eed7fa2e4b 100644
--- a/src/pages/404.tsx
+++ b/src/pages/404.tsx
@@ -1,7 +1,7 @@
-import { SimpleHeader, SimpleFooter } from 'components/GenericError'
+import { SimpleHeader, SimpleFooter } from 'src/frame/components/GenericError'
import Head from 'next/head'
import { CommentDiscussionIcon } from '@primer/octicons-react'
-import { Lead } from 'components/ui/Lead'
+import { Lead } from 'src/frame/components/ui/Lead'
const Custom404 = () => {
return (
diff --git a/src/pages/_error.tsx b/src/pages/_error.tsx
index 89ce462d7d..0f26b87649 100644
--- a/src/pages/_error.tsx
+++ b/src/pages/_error.tsx
@@ -1,6 +1,6 @@
import type { NextPageContext } from 'next'
-import { GenericError } from 'components/GenericError'
+import { GenericError } from 'src/frame/components/GenericError'
function Error() {
return
diff --git a/src/release-notes/components/GHAEReleaseNotes.tsx b/src/release-notes/components/GHAEReleaseNotes.tsx
index 6b7e4865bf..a32e4bebf5 100644
--- a/src/release-notes/components/GHAEReleaseNotes.tsx
+++ b/src/release-notes/components/GHAEReleaseNotes.tsx
@@ -1,6 +1,6 @@
import cx from 'classnames'
-import { MarkdownContent } from 'components/ui/MarkdownContent'
+import { MarkdownContent } from 'src/frame/components/ui/MarkdownContent'
import { GHAEReleaseNotesContextT } from './types'
import { GHAEReleaseNotePatch } from './GHAEReleaseNotePatch'
diff --git a/src/release-notes/components/GHESReleaseNotePatch.tsx b/src/release-notes/components/GHESReleaseNotePatch.tsx
index 78c3f081e2..bae0ab7cae 100644
--- a/src/release-notes/components/GHESReleaseNotePatch.tsx
+++ b/src/release-notes/components/GHESReleaseNotePatch.tsx
@@ -3,7 +3,7 @@ import dayjs from 'dayjs'
import { useTranslation } from 'src/languages/components/useTranslation'
import { PatchNotes } from './PatchNotes'
-import { Link } from 'components/Link'
+import { Link } from 'src/frame/components/Link'
import { CurrentVersion, ReleaseNotePatch, GHESMessage } from './types'
type Props = {
diff --git a/src/release-notes/components/GHESReleaseNotes.tsx b/src/release-notes/components/GHESReleaseNotes.tsx
index 3549ac4939..b05773c6cc 100644
--- a/src/release-notes/components/GHESReleaseNotes.tsx
+++ b/src/release-notes/components/GHESReleaseNotes.tsx
@@ -1,6 +1,6 @@
import cx from 'classnames'
-import { MarkdownContent } from 'components/ui/MarkdownContent'
+import { MarkdownContent } from 'src/frame/components/ui/MarkdownContent'
import { GHESReleaseNotesContextT } from './types'
import { GHESReleaseNotePatch } from './GHESReleaseNotePatch'
diff --git a/src/release-notes/components/PatchNotes.tsx b/src/release-notes/components/PatchNotes.tsx
index 62055880dc..07bb5e20a6 100644
--- a/src/release-notes/components/PatchNotes.tsx
+++ b/src/release-notes/components/PatchNotes.tsx
@@ -1,6 +1,6 @@
import { slug } from 'github-slugger'
import { ReleaseNotePatch } from './types'
-import { HeadingLink } from 'components/article/HeadingLink'
+import { HeadingLink } from 'src/frame/components/article/HeadingLink'
const SectionToLabelMap: Record = {
features: 'Features',
diff --git a/src/release-notes/pages/release-notes.tsx b/src/release-notes/pages/release-notes.tsx
index b7c9e914f5..6e565a0d9e 100644
--- a/src/release-notes/pages/release-notes.tsx
+++ b/src/release-notes/pages/release-notes.tsx
@@ -7,8 +7,8 @@ import {
MainContext,
getMainContext,
addUINamespaces,
-} from 'components/context/MainContext'
-import { DefaultLayout } from 'components/DefaultLayout'
+} from 'src/frame/components/context/MainContext'
+import { DefaultLayout } from 'src/frame/components/DefaultLayout'
import { GHAEReleaseNotes } from 'src/release-notes/components/GHAEReleaseNotes'
import { GHESReleaseNotes } from 'src/release-notes/components/GHESReleaseNotes'
import {
diff --git a/src/rest/components/ApiVersionPicker.tsx b/src/rest/components/ApiVersionPicker.tsx
index c74b365f00..09b59a63df 100644
--- a/src/rest/components/ApiVersionPicker.tsx
+++ b/src/rest/components/ApiVersionPicker.tsx
@@ -1,8 +1,8 @@
import { useRouter } from 'next/router'
-import Cookies from 'components/lib/cookies'
+import Cookies from 'src/frame/components/lib/cookies'
import { InfoIcon } from '@primer/octicons-react'
-import { useMainContext } from 'components/context/MainContext'
+import { useMainContext } from 'src/frame/components/context/MainContext'
import { DEFAULT_VERSION, useVersion } from 'src/versions/components/useVersion'
import { Picker } from 'src/tools/components/Picker'
import { useTranslation } from 'src/languages/components/useTranslation'
diff --git a/src/rest/components/RestBanner.tsx b/src/rest/components/RestBanner.tsx
index a593ebf5bc..ac7c4d2642 100644
--- a/src/rest/components/RestBanner.tsx
+++ b/src/rest/components/RestBanner.tsx
@@ -3,8 +3,8 @@ import { Flash } from '@primer/react'
import { useRouter } from 'next/router'
import { DEFAULT_VERSION, useVersion } from 'src/versions/components/useVersion'
-import { Link } from 'components/Link'
-import { useMainContext } from 'components/context/MainContext'
+import { Link } from 'src/frame/components/Link'
+import { useMainContext } from 'src/frame/components/context/MainContext'
import { useTranslation } from 'src/languages/components/useTranslation'
const restRepoDisplayPages = [
diff --git a/src/rest/components/RestCodeSamples.tsx b/src/rest/components/RestCodeSamples.tsx
index 6b7cb6fc4b..5fbed9ab7f 100644
--- a/src/rest/components/RestCodeSamples.tsx
+++ b/src/rest/components/RestCodeSamples.tsx
@@ -1,7 +1,7 @@
import { useState, useEffect, useRef, FormEvent } from 'react'
import { FormControl, Select, Tooltip, TabNav } from '@primer/react'
import { CheckIcon, CopyIcon } from '@primer/octicons-react'
-import Cookies from 'components/lib/cookies'
+import Cookies from 'src/frame/components/lib/cookies'
import cx from 'classnames'
import hljs from 'highlight.js/lib/core'
diff --git a/src/rest/components/RestOperation.tsx b/src/rest/components/RestOperation.tsx
index 9650665eab..386a5d71b2 100644
--- a/src/rest/components/RestOperation.tsx
+++ b/src/rest/components/RestOperation.tsx
@@ -3,8 +3,8 @@ import { slug } from 'github-slugger'
import { CheckCircleFillIcon } from '@primer/octicons-react'
import cx from 'classnames'
-import { HeadingLink } from 'components/article/HeadingLink'
-import { Link } from 'components/Link'
+import { HeadingLink } from 'src/frame/components/article/HeadingLink'
+import { Link } from 'src/frame/components/Link'
import { useTranslation } from 'src/languages/components/useTranslation'
import { RestPreviewNotice } from './RestPreviewNotice'
import { ParameterTable } from 'src/automated-pipelines/components/parameter-table/ParameterTable'
diff --git a/src/rest/components/RestRedirect.tsx b/src/rest/components/RestRedirect.tsx
index 8c7013ce75..f5ce70b942 100644
--- a/src/rest/components/RestRedirect.tsx
+++ b/src/rest/components/RestRedirect.tsx
@@ -1,9 +1,9 @@
import { useEffect } from 'react'
import { useRouter } from 'next/router'
-import Cookies from 'components/lib/cookies'
+import Cookies from 'src/frame/components/lib/cookies'
import { useVersion } from 'src/versions/components/useVersion'
-import { useMainContext } from 'components/context/MainContext'
+import { useMainContext } from 'src/frame/components/context/MainContext'
export const API_VERSION_COOKIE_NAME = 'apiVersionPreferred'
diff --git a/src/rest/components/RestReferencePage.tsx b/src/rest/components/RestReferencePage.tsx
index 5d40ded91f..5541efff63 100644
--- a/src/rest/components/RestReferencePage.tsx
+++ b/src/rest/components/RestReferencePage.tsx
@@ -1,9 +1,9 @@
import { useEffect } from 'react'
-import { DefaultLayout } from 'components/DefaultLayout'
-import { MarkdownContent } from 'components/ui/MarkdownContent'
-import { Lead } from 'components/ui/Lead'
-import { PermissionsStatement } from 'components/ui/PermissionsStatement'
+import { DefaultLayout } from 'src/frame/components/DefaultLayout'
+import { MarkdownContent } from 'src/frame/components/ui/MarkdownContent'
+import { Lead } from 'src/frame/components/ui/Lead'
+import { PermissionsStatement } from 'src/frame/components/ui/PermissionsStatement'
import { RestOperation } from './RestOperation'
import { useAutomatedPageContext } from 'src/automated-pipelines/components/AutomatedPageContext'
import { Operation } from './types'
diff --git a/src/rest/components/get-rest-code-samples.ts b/src/rest/components/get-rest-code-samples.ts
index 5fa67089a4..0345b684d0 100644
--- a/src/rest/components/get-rest-code-samples.ts
+++ b/src/rest/components/get-rest-code-samples.ts
@@ -3,7 +3,7 @@ import { stringify } from 'javascript-stringify'
import type { CodeSample, Operation } from 'src/rest/components/types'
import { useVersion } from 'src/versions/components/useVersion'
-import { useMainContext } from 'components/context/MainContext'
+import { useMainContext } from 'src/frame/components/context/MainContext'
type CodeExamples = Record
diff --git a/src/rest/pages/category.tsx b/src/rest/pages/category.tsx
index 1679f63b33..ee414abccc 100644
--- a/src/rest/pages/category.tsx
+++ b/src/rest/pages/category.tsx
@@ -1,19 +1,19 @@
import { GetServerSideProps } from 'next'
import { Operation } from 'src/rest/components/types'
import { RestReferencePage } from 'src/rest/components/RestReferencePage'
-import { getMainContext, MainContext, MainContextT } from 'components/context/MainContext'
+import { getMainContext, MainContext, MainContextT } from 'src/frame/components/context/MainContext'
import {
AutomatedPageContext,
AutomatedPageContextT,
getAutomatedPageContextFromRequest,
} from 'src/automated-pipelines/components/AutomatedPageContext'
-import type { MiniTocItem } from 'components/context/ArticleContext'
+import type { MiniTocItem } from 'src/frame/components/context/ArticleContext'
import {
getTocLandingContextFromRequest,
TocItem,
TocLandingContext,
TocLandingContextT,
-} from 'components/context/TocLandingContext'
+} from 'src/frame/components/context/TocLandingContext'
import { TocLanding } from 'src/landings/components/TocLanding'
type MinitocItemsT = {
diff --git a/src/rest/pages/subcategory.tsx b/src/rest/pages/subcategory.tsx
index ee693c03d4..85994a8d62 100644
--- a/src/rest/pages/subcategory.tsx
+++ b/src/rest/pages/subcategory.tsx
@@ -6,13 +6,13 @@ import {
getMainContext,
MainContext,
MainContextT,
-} from 'components/context/MainContext'
+} from 'src/frame/components/context/MainContext'
import {
AutomatedPageContext,
AutomatedPageContextT,
getAutomatedPageContextFromRequest,
} from 'src/automated-pipelines/components/AutomatedPageContext'
-import type { MiniTocItem } from 'components/context/ArticleContext'
+import type { MiniTocItem } from 'src/frame/components/context/ArticleContext'
type MinitocItemsT = {
restOperationsMiniTocItems: MiniTocItem[]
diff --git a/src/search/components/NoQuery.tsx b/src/search/components/NoQuery.tsx
index 424c6cb666..ff7301f721 100644
--- a/src/search/components/NoQuery.tsx
+++ b/src/search/components/NoQuery.tsx
@@ -1,6 +1,6 @@
import { Heading, Flash } from '@primer/react'
-import { useMainContext } from 'components/context/MainContext'
+import { useMainContext } from 'src/frame/components/context/MainContext'
import { useTranslation } from 'src/languages/components/useTranslation'
export function NoQuery() {
diff --git a/src/search/components/SearchResults.tsx b/src/search/components/SearchResults.tsx
index c859a847c4..792783528d 100644
--- a/src/search/components/SearchResults.tsx
+++ b/src/search/components/SearchResults.tsx
@@ -5,7 +5,7 @@ import cx from 'classnames'
import type { SearchResultsT, SearchResultHitT, SearchQueryT } from './types'
import { useTranslation } from 'src/languages/components/useTranslation'
-import { Link } from 'components/Link'
+import { Link } from 'src/frame/components/Link'
import { sendEvent, EventType } from 'src/events/components/events'
import styles from './SearchResults.module.scss'
diff --git a/src/search/components/index.tsx b/src/search/components/index.tsx
index 5b36470312..f61133a3cf 100644
--- a/src/search/components/index.tsx
+++ b/src/search/components/index.tsx
@@ -7,7 +7,7 @@ import { DEFAULT_VERSION, useVersion } from 'src/versions/components/useVersion'
import { useNumberFormatter } from 'src/search/components/useNumberFormatter'
import { SearchResults } from 'src/search/components/SearchResults'
import { NoQuery } from 'src/search/components/NoQuery'
-import { useMainContext } from 'components/context/MainContext'
+import { useMainContext } from 'src/frame/components/context/MainContext'
import { ValidationErrors } from './ValidationErrors'
type Props = {
diff --git a/src/search/pages/search.tsx b/src/search/pages/search.tsx
index dca4ce1858..5ac1b911bc 100644
--- a/src/search/pages/search.tsx
+++ b/src/search/pages/search.tsx
@@ -5,8 +5,8 @@ import {
MainContext,
getMainContext,
addUINamespaces,
-} from 'components/context/MainContext'
-import { DefaultLayout } from 'components/DefaultLayout'
+} from 'src/frame/components/context/MainContext'
+import { DefaultLayout } from 'src/frame/components/DefaultLayout'
import type { SearchT } from 'src/search/components/types'
import { Search } from 'src/search/components/index'
diff --git a/src/tools/components/Fields.tsx b/src/tools/components/Fields.tsx
index 6c1c864def..9701b3411f 100644
--- a/src/tools/components/Fields.tsx
+++ b/src/tools/components/Fields.tsx
@@ -2,7 +2,7 @@ import { ReactNode } from 'react'
import { ActionList } from '@primer/react'
import { PickerItem } from './Picker'
-import { Link } from 'components/Link'
+import { Link } from 'src/frame/components/Link'
import styles from './Fields.module.scss'
diff --git a/src/tools/components/InArticlePicker.tsx b/src/tools/components/InArticlePicker.tsx
index dcf2650739..095bb3225c 100644
--- a/src/tools/components/InArticlePicker.tsx
+++ b/src/tools/components/InArticlePicker.tsx
@@ -1,5 +1,5 @@
import { useEffect, useState } from 'react'
-import Cookies from 'components/lib/cookies'
+import Cookies from 'src/frame/components/lib/cookies'
import { UnderlineNav } from '@primer/react/drafts'
import { sendEvent, EventType } from 'src/events/components/events'
import { useRouter } from 'next/router'
diff --git a/src/tools/components/PlatformPicker.tsx b/src/tools/components/PlatformPicker.tsx
index d1a2462bc5..c6afa31c41 100644
--- a/src/tools/components/PlatformPicker.tsx
+++ b/src/tools/components/PlatformPicker.tsx
@@ -1,6 +1,6 @@
import { useEffect, useState } from 'react'
-import { useArticleContext } from 'components/context/ArticleContext'
+import { useArticleContext } from 'src/frame/components/context/ArticleContext'
import { parseUserAgent } from 'src/events/components/user-agent'
import { InArticlePicker } from './InArticlePicker'
diff --git a/src/tools/components/ToolPicker.tsx b/src/tools/components/ToolPicker.tsx
index 6596b8b26d..ec001df0da 100644
--- a/src/tools/components/ToolPicker.tsx
+++ b/src/tools/components/ToolPicker.tsx
@@ -1,6 +1,6 @@
import { preserveAnchorNodePosition } from 'scroll-anchoring'
-import { useArticleContext } from 'components/context/ArticleContext'
+import { useArticleContext } from 'src/frame/components/context/ArticleContext'
import { InArticlePicker } from './InArticlePicker'
// example: http://localhost:4000/en/codespaces/developing-in-codespaces/creating-a-codespace
diff --git a/src/versions/components/DeprecationBanner.tsx b/src/versions/components/DeprecationBanner.tsx
index 0034bd7e56..f47f37ea66 100644
--- a/src/versions/components/DeprecationBanner.tsx
+++ b/src/versions/components/DeprecationBanner.tsx
@@ -1,5 +1,5 @@
-import type { EnterpriseDeprecation } from 'components/context/MainContext'
-import { useMainContext } from 'components/context/MainContext'
+import type { EnterpriseDeprecation } from 'src/frame/components/context/MainContext'
+import { useMainContext } from 'src/frame/components/context/MainContext'
import { useVersion } from 'src/versions/components/useVersion'
import { Flash } from '@primer/react'
import cx from 'classnames'
diff --git a/src/versions/components/VersionPicker.tsx b/src/versions/components/VersionPicker.tsx
index 85dbd347bf..6f86a62f9e 100644
--- a/src/versions/components/VersionPicker.tsx
+++ b/src/versions/components/VersionPicker.tsx
@@ -1,7 +1,7 @@
import { useRouter } from 'next/router'
import { ArrowRightIcon, InfoIcon } from '@primer/octicons-react'
-import { useMainContext } from 'components/context/MainContext'
+import { useMainContext } from 'src/frame/components/context/MainContext'
import { DEFAULT_VERSION, useVersion } from 'src/versions/components/useVersion'
import { useTranslation } from 'src/languages/components/useTranslation'
import { Picker } from 'src/tools/components/Picker'
diff --git a/src/webhooks/components/Webhook.tsx b/src/webhooks/components/Webhook.tsx
index 562ab55dab..aebc855bf2 100644
--- a/src/webhooks/components/Webhook.tsx
+++ b/src/webhooks/components/Webhook.tsx
@@ -6,7 +6,7 @@ import { slug } from 'github-slugger'
import cx from 'classnames'
import { useVersion } from 'src/versions/components/useVersion'
-import { HeadingLink } from 'components/article/HeadingLink'
+import { HeadingLink } from 'src/frame/components/article/HeadingLink'
import { useTranslation } from 'src/languages/components/useTranslation'
import type { WebhookAction, WebhookData } from './types'
import { ParameterTable } from 'src/automated-pipelines/components/parameter-table/ParameterTable'
diff --git a/src/webhooks/pages/webhook-events-and-payloads.tsx b/src/webhooks/pages/webhook-events-and-payloads.tsx
index a30aaaaf7a..dfb33013d8 100644
--- a/src/webhooks/pages/webhook-events-and-payloads.tsx
+++ b/src/webhooks/pages/webhook-events-and-payloads.tsx
@@ -7,7 +7,7 @@ import {
getMainContext,
MainContext,
MainContextT,
-} from 'components/context/MainContext'
+} from 'src/frame/components/context/MainContext'
import {
getAutomatedPageContextFromRequest,
AutomatedPageContext,