tag', () => {
expect(codeRoot.tagName).toBe('DIV');
});
diff --git a/packages/Code/src/Code.story.tsx b/packages/code/src/Code.story.tsx
similarity index 100%
rename from packages/Code/src/Code.story.tsx
rename to packages/code/src/Code.story.tsx
diff --git a/packages/Code/src/Code.tsx b/packages/code/src/Code.tsx
similarity index 75%
rename from packages/Code/src/Code.tsx
rename to packages/code/src/Code.tsx
index 65ab10c97d..6378300236 100644
--- a/packages/Code/src/Code.tsx
+++ b/packages/code/src/Code.tsx
@@ -8,7 +8,7 @@ import Syntax, {
variantColors,
} from '@leafygreen-ui/syntax';
import LineNumbers from './LineNumbers';
-import WindowChrome, { windowChromeHeight } from './WindowChrome';
+import WindowChrome from './WindowChrome';
function stringFragmentIsBlank(str: string): str is '' | ' ' {
return str === '' || str === ' ';
@@ -54,23 +54,20 @@ function useProcessedCodeSnippet(snippet: string): ProcessedCodeSnippet {
const whiteSpace = 12;
-const wrapperStyle = css`
+const codeWrapperStyle = css`
overflow-x: auto;
- border: 1px solid;
- border-left-width: 3px;
- border-radius: 4px;
+ border-left: 2px solid;
padding: ${whiteSpace}px;
margin: 0;
position: relative;
`;
-const wrapperStyleWithLineNumbers = css`
+const codeWrapperStyleWithLineNumbers = css`
padding-left: ${whiteSpace * 3.5}px;
`;
-const wrapperStyleWithWindowChrome = css`
- padding-top: ${windowChromeHeight + whiteSpace}px;
- border-left-width: 1px;
+const codeWrapperStyleWithWindowChrome = css`
+ border-left: 0;
`;
function getWrapperVariantStyle(variant: Variant): string {
@@ -143,62 +140,65 @@ function Code({
chromeTitle = '',
...rest
}: CodeProps) {
+ const wrapperStyle = css`
+ display: inline-block;
+ border: 1px solid ${variantColors[variant][1]};
+ border-radius: 4px;
+ overflow: hidden;
+ `;
+
const wrapperClassName = cx(
- wrapperStyle,
+ codeWrapperStyle,
getWrapperVariantStyle(variant),
{
- [wrapperStyleWithLineNumbers]: multiline && showLineNumbers,
- [wrapperStyleWithWindowChrome]: showWindowChrome,
+ [codeWrapperStyleWithLineNumbers]: multiline && showLineNumbers,
+ [codeWrapperStyleWithWindowChrome]: showWindowChrome,
},
className,
);
const { content, lineCount } = useProcessedCodeSnippet(children);
- const renderedCommonContent = (
- <>
- {showWindowChrome && (
-
- )}
+ const renderedWindowChrome = showWindowChrome && (
+
+ );
-
- {content}
-
- >
+ const renderedSyntaxComponent = (
+
+ {content}
+
);
if (!multiline) {
return (
-
)}
- className={wrapperClassName}
- >
- {renderedCommonContent}
+
+ {renderedWindowChrome}
+
+
)}
+ className={wrapperClassName}
+ >
+ {renderedSyntaxComponent}
+
);
}
return (
-
)}
- className={wrapperClassName}
- >
- {showLineNumbers && (
-
- )}
-
- {renderedCommonContent}
-
+
+ {renderedWindowChrome}
+
+
)}
+ className={wrapperClassName}
+ >
+ {showLineNumbers && (
+
+ )}
+
+ {renderedSyntaxComponent}
+
+
);
}
diff --git a/packages/Code/src/LineNumbers.spec.tsx b/packages/code/src/LineNumbers.spec.tsx
similarity index 100%
rename from packages/Code/src/LineNumbers.spec.tsx
rename to packages/code/src/LineNumbers.spec.tsx
diff --git a/packages/Code/src/LineNumbers.tsx b/packages/code/src/LineNumbers.tsx
similarity index 100%
rename from packages/Code/src/LineNumbers.tsx
rename to packages/code/src/LineNumbers.tsx
diff --git a/packages/Code/src/WindowChrome.spec.tsx b/packages/code/src/WindowChrome.spec.tsx
similarity index 100%
rename from packages/Code/src/WindowChrome.spec.tsx
rename to packages/code/src/WindowChrome.spec.tsx
diff --git a/packages/Code/src/WindowChrome.tsx b/packages/code/src/WindowChrome.tsx
similarity index 68%
rename from packages/Code/src/WindowChrome.tsx
rename to packages/code/src/WindowChrome.tsx
index 1193fa02aa..2370f2634b 100644
--- a/packages/Code/src/WindowChrome.tsx
+++ b/packages/code/src/WindowChrome.tsx
@@ -5,34 +5,42 @@ import { Variant, variantColors } from '@leafygreen-ui/syntax';
import { darken } from 'polished';
export const windowChromeHeight = 28;
+const controlSize = 12;
+const controlSpacing = 8;
+const borderRadius = 4;
const windowChromeStyle = css`
- height: ${windowChromeHeight}px;
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
display: flex;
align-items: center;
- justify-content: center;
+ justify-content: space-between;
+ height: ${windowChromeHeight}px;
+ padding-left: ${controlSize}px;
+ padding-right: ${controlSize}px;
+ border-radius: ${borderRadius}px ${borderRadius}px 0 0;
`;
const windowControlsStyle = css`
- position: absolute;
- left: 12px;
- top: 0;
- bottom: 0;
- height: 12px;
- margin: auto;
display: flex;
+ height: ${controlSize}px;
+`;
+
+const fakeControlsStyle = css`
+ height: ${controlSize}px;
+ width: ${controlSpacing * 3 + controlSize * 3}px;
+`;
+
+const textStyle = css`
+ padding-left: ${controlSpacing}px;
+ padding-right: ${controlSpacing}px;
+ font-size: 14px;
`;
function WindowControl({ color }: { color: string }) {
return (
- {chromeTitle}
+
{chromeTitle}
+
+
);
}
diff --git a/packages/Code/src/index.ts b/packages/code/src/index.ts
similarity index 100%
rename from packages/Code/src/index.ts
rename to packages/code/src/index.ts
diff --git a/packages/Code/tsconfig.json b/packages/code/tsconfig.json
similarity index 100%
rename from packages/Code/tsconfig.json
rename to packages/code/tsconfig.json
diff --git a/packages/Syntax/README.md b/packages/syntax/README.md
similarity index 100%
rename from packages/Syntax/README.md
rename to packages/syntax/README.md
diff --git a/packages/Syntax/package.json b/packages/syntax/package.json
similarity index 100%
rename from packages/Syntax/package.json
rename to packages/syntax/package.json
diff --git a/packages/Syntax/src/Syntax.spec.tsx b/packages/syntax/src/Syntax.spec.tsx
similarity index 100%
rename from packages/Syntax/src/Syntax.spec.tsx
rename to packages/syntax/src/Syntax.spec.tsx
diff --git a/packages/Syntax/src/Syntax.story.tsx b/packages/syntax/src/Syntax.story.tsx
similarity index 100%
rename from packages/Syntax/src/Syntax.story.tsx
rename to packages/syntax/src/Syntax.story.tsx
diff --git a/packages/Syntax/src/Syntax.tsx b/packages/syntax/src/Syntax.tsx
similarity index 100%
rename from packages/Syntax/src/Syntax.tsx
rename to packages/syntax/src/Syntax.tsx
diff --git a/packages/Syntax/src/globalStyles.tsx b/packages/syntax/src/globalStyles.tsx
similarity index 100%
rename from packages/Syntax/src/globalStyles.tsx
rename to packages/syntax/src/globalStyles.tsx
diff --git a/packages/Syntax/src/index.ts b/packages/syntax/src/index.ts
similarity index 100%
rename from packages/Syntax/src/index.ts
rename to packages/syntax/src/index.ts
diff --git a/packages/Syntax/src/types.ts b/packages/syntax/src/types.ts
similarity index 100%
rename from packages/Syntax/src/types.ts
rename to packages/syntax/src/types.ts
diff --git a/packages/Syntax/tsconfig.json b/packages/syntax/tsconfig.json
similarity index 100%
rename from packages/Syntax/tsconfig.json
rename to packages/syntax/tsconfig.json