diff --git a/.gitignore b/.gitignore index ec02ef2a..af2bc790 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,5 @@ packages/**/dist .npmrc .vercel demo/build -.netlify \ No newline at end of file +.netlify +.idea/ diff --git a/packages/react-code-blocks/package.json b/packages/react-code-blocks/package.json index 2818447b..6f361c40 100644 --- a/packages/react-code-blocks/package.json +++ b/packages/react-code-blocks/package.json @@ -9,7 +9,7 @@ ], "author": "rajinwonderland", "maintainers": [], - "version": "0.1.6", + "version": "0.1.7", "homepage": "https://react-code-blocks.rajinwonderland.vercel.app", "license": "MIT", "main": "dist/index.js", diff --git a/packages/react-code-blocks/src/components/CopyBlock.tsx b/packages/react-code-blocks/src/components/CopyBlock.tsx index 20198139..2a06dc5d 100644 --- a/packages/react-code-blocks/src/components/CopyBlock.tsx +++ b/packages/react-code-blocks/src/components/CopyBlock.tsx @@ -15,9 +15,11 @@ export interface CopyBlockProps extends CodeBlockProps { onCopy?: (event: React.MouseEvent) => void; } -type CascadedProps = Partial & { theme: Theme }; - -const Button = styled.button` +type ButtonStyledProps = { + $copied?: boolean + theme: Theme +}; +const Button = styled.button` position: absolute; top: 0.5em; right: 0.75em; @@ -25,14 +27,14 @@ const Button = styled.button` flex-wrap: wrap; justify-content: center; align-items: center; - background: ${(p: CascadedProps) => p.theme.backgroundColor as string}; + background: ${(p: ButtonStyledProps) => p.theme.backgroundColor as string}; margin-top: 0.15rem; border-radius: 0.25rem; max-height: 2rem; max-width: 2rem; padding: 0.25rem; &:hover { - opacity: ${(p: CascadedProps) => (p.copied ? 1 : 0.5)}; + opacity: ${(p: ButtonStyledProps) => (p.$copied ? 1 : 0.5)}; } &:focus { outline: none; @@ -44,11 +46,15 @@ const Button = styled.button` } `; -const Snippet = styled.div` +type SnippetStyledProps = { + $codeBlock?: boolean + theme: Theme +}; +const Snippet = styled.div` position: relative; - background: ${(p: CascadedProps) => p.theme.backgroundColor as string}; + background: ${(p: SnippetStyledProps) => p.theme.backgroundColor as string}; border-radius: 0.25rem; - padding: ${(p: CascadedProps) => (p.codeBlock ? `0.25rem 0.5rem 0.25rem 0.25rem` : `0.25rem`)}; + padding: ${(p: SnippetStyledProps) => (p.$codeBlock ? `0.25rem 0.5rem 0.25rem 0.25rem` : `0.25rem`)}; `; export default function CopyBlock({ @@ -68,7 +74,7 @@ export default function CopyBlock({ }; return ( - + {codeBlock ? ( // @ts-ignore @@ -76,7 +82,7 @@ export default function CopyBlock({ // @ts-ignore )} -