- {file && (
-
- )}
+
+
+
+
+ {getFrameSource(stackFrame)} @{' '}
+
+
+
+
+
{decoded.map((entry, index) => (
= function Terminal({
)
}
+
+export const TERMINAL_STYLES = css`
+ [data-nextjs-terminal] {
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-line-clamp: 1;
+ flex: 1 0 0;
+
+ background-color: var(--color-background-200);
+ overflow: hidden;
+ color: var(--color-gray-1000);
+ text-overflow: ellipsis;
+ font-family: var(--font-stack-monospace);
+ font-size: 12px;
+ line-height: 16px;
+ }
+
+ .terminal-header {
+ border-top: 1px solid var(--color-gray-400);
+ border-bottom: 1px solid var(--color-gray-400);
+ }
+
+ [data-nextjs-terminal]::selection,
+ [data-nextjs-terminal] *::selection {
+ background-color: var(--color-ansi-selection);
+ }
+
+ [data-nextjs-terminal] * {
+ color: inherit;
+ background-color: transparent;
+ font-family: var(--font-stack-monospace);
+ }
+
+ [data-nextjs-terminal] > * {
+ margin: 0;
+ padding: calc(var(--size-gap) + var(--size-gap-half))
+ calc(var(--size-gap-double) + var(--size-gap-half));
+ }
+
+ [data-nextjs-terminal] > div > p {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ cursor: pointer;
+ margin: 0;
+ }
+ [data-nextjs-terminal] > div > p:hover {
+ text-decoration: underline dotted;
+ }
+ [data-nextjs-terminal] div > pre {
+ overflow: hidden;
+ display: inline-block;
+ }
+
+ [data-nextjs-terminal] svg {
+ color: var(--color-gray-900);
+ margin-right: 6px;
+ }
+`
diff --git a/packages/next/src/client/components/react-dev-overlay/_experimental/internal/components/Terminal/styles.tsx b/packages/next/src/client/components/react-dev-overlay/_experimental/internal/components/Terminal/styles.tsx
deleted file mode 100644
index 5ed1fc4565138..0000000000000
--- a/packages/next/src/client/components/react-dev-overlay/_experimental/internal/components/Terminal/styles.tsx
+++ /dev/null
@@ -1,55 +0,0 @@
-import { noop as css } from '../../helpers/noop-template'
-
-const styles = css`
- [data-nextjs-terminal] {
- border-radius: var(--size-gap-half);
- background-color: var(--color-ansi-bg);
- color: var(--color-ansi-fg);
- }
- [data-nextjs-terminal]::selection,
- [data-nextjs-terminal] *::selection {
- background-color: var(--color-ansi-selection);
- }
- [data-nextjs-terminal] * {
- color: inherit;
- background-color: transparent;
- font-family: var(--font-stack-monospace);
- }
- [data-nextjs-terminal] > * {
- margin: 0;
- padding: calc(var(--size-gap) + var(--size-gap-half))
- calc(var(--size-gap-double) + var(--size-gap-half));
- }
-
- [data-nextjs-terminal] pre {
- white-space: pre-wrap;
- word-break: break-word;
- }
-
- [data-with-open-in-editor-link] svg {
- width: auto;
- height: var(--size-font-small);
- margin-left: var(--size-gap);
- }
- [data-with-open-in-editor-link] {
- cursor: pointer;
- }
- [data-with-open-in-editor-link]:hover {
- text-decoration: underline dotted;
- }
- [data-with-open-in-editor-link-source-file] {
- border-bottom: 1px solid var(--color-ansi-bright-black);
- display: flex;
- align-items: center;
- justify-content: space-between;
- line-break: anywhere;
- }
- [data-with-open-in-editor-link-import-trace] {
- margin-left: var(--size-gap-double);
- }
- [data-nextjs-terminal] a {
- color: inherit;
- }
-`
-
-export { styles }
diff --git a/packages/next/src/client/components/react-dev-overlay/_experimental/internal/icons/FileIcon.tsx b/packages/next/src/client/components/react-dev-overlay/_experimental/internal/icons/FileIcon.tsx
new file mode 100644
index 0000000000000..44a9d1e4bdc04
--- /dev/null
+++ b/packages/next/src/client/components/react-dev-overlay/_experimental/internal/icons/FileIcon.tsx
@@ -0,0 +1,19 @@
+// TODO: Add more Icons (react, next, etc.)
+export function FileIcon(props: React.SVGProps