|
1 | 1 | import React, { useMemo, useState } from 'react' |
2 | 2 |
|
3 | 3 | import { useLocalStorage } from '../../hooks/index.js' |
4 | | -import { IconCheck, IconChevronVerticalExpand, IconChevronVerticalShrink, IconCopy01 } from '../../icons/index.js' |
5 | | -import { ActionIcon, Box, BoxProps, Code, CodeProps, CopyButton, Group, HoverCard } from '../../primitive/index.js' |
| 4 | +import { IconCheck, IconChevronVerticalExpand, IconChevronVerticalShrink, IconCopy03 } from '../../icons/index.js' |
| 5 | +import { ActionIcon, Box, BoxProps, Code, CodeProps, CopyButton, Group, Tooltip } from '../../primitive/index.js' |
6 | 6 | import { Prism, PrismProps } from '../../primitive/Prism/index.js' |
7 | 7 | import { mergeStylesList, mergeSxList } from '../../utils/index.js' |
8 | 8 |
|
@@ -114,43 +114,37 @@ export const CodeBlock = ({ |
114 | 114 |
|
115 | 115 | <Group gap={4} sx={(theme) => ({ position: 'absolute', top: 16, right: 16, color: theme.colors.carbon[8] })}> |
116 | 116 | {foldIconVisible && ( |
117 | | - <HoverCard withArrow position="top" shadow="xs"> |
118 | | - <HoverCard.Target> |
119 | | - <ActionIcon |
120 | | - size="sm" |
121 | | - variant="subtle" |
122 | | - onClick={() => { |
123 | | - const v = !folded |
124 | | - setFolded(v) |
125 | | - onFoldIconClick?.(v) |
126 | | - }} |
127 | | - > |
128 | | - {folded ? <IconChevronVerticalExpand size={14} /> : <IconChevronVerticalShrink size={14} />} |
129 | | - </ActionIcon> |
130 | | - </HoverCard.Target> |
131 | | - <HoverCard.Dropdown p="xs">{folded ? 'Expand' : 'Collapse'}</HoverCard.Dropdown> |
132 | | - </HoverCard> |
| 117 | + <Tooltip withArrow label={folded ? 'Expand' : 'Collapse'}> |
| 118 | + <ActionIcon |
| 119 | + size="sm" |
| 120 | + variant="subtle" |
| 121 | + onClick={() => { |
| 122 | + const v = !folded |
| 123 | + setFolded(v) |
| 124 | + onFoldIconClick?.(v) |
| 125 | + }} |
| 126 | + > |
| 127 | + {folded ? <IconChevronVerticalExpand size={14} /> : <IconChevronVerticalShrink size={14} />} |
| 128 | + </ActionIcon> |
| 129 | + </Tooltip> |
133 | 130 | )} |
134 | 131 |
|
135 | 132 | {withCopyButton && ( |
136 | 133 | <CopyButton value={copyContent ?? children} timeout={2000}> |
137 | 134 | {({ copied, copy }) => ( |
138 | | - <HoverCard withArrow position="top" shadow="xs"> |
139 | | - <HoverCard.Target> |
140 | | - <ActionIcon |
141 | | - aria-label="Copy" |
142 | | - size="sm" |
143 | | - variant="subtle" |
144 | | - onClick={() => { |
145 | | - copy() |
146 | | - onCopyClick?.() |
147 | | - }} |
148 | | - > |
149 | | - {copied ? <IconCheck size={14} /> : <IconCopy01 size={14} />} |
150 | | - </ActionIcon> |
151 | | - </HoverCard.Target> |
152 | | - <HoverCard.Dropdown p="xs">{copied ? 'Copied' : 'Copy'}</HoverCard.Dropdown> |
153 | | - </HoverCard> |
| 135 | + <Tooltip withArrow label={copied ? 'Copied' : 'Copy'}> |
| 136 | + <ActionIcon |
| 137 | + aria-label="Copy" |
| 138 | + size="sm" |
| 139 | + variant="subtle" |
| 140 | + onClick={() => { |
| 141 | + copy() |
| 142 | + onCopyClick?.() |
| 143 | + }} |
| 144 | + > |
| 145 | + {copied ? <IconCheck size={14} /> : <IconCopy03 size={14} />} |
| 146 | + </ActionIcon> |
| 147 | + </Tooltip> |
154 | 148 | )} |
155 | 149 | </CopyButton> |
156 | 150 | )} |
@@ -185,23 +179,20 @@ export const CopyText = ({ children, value, ...rest }: React.PropsWithChildren<C |
185 | 179 | {children} |
186 | 180 | <CopyButton value={value} timeout={2000}> |
187 | 181 | {({ copied, copy }) => ( |
188 | | - <HoverCard withArrow position="top" shadow="xs"> |
189 | | - <HoverCard.Target> |
190 | | - <ActionIcon |
191 | | - aria-label="Copy" |
192 | | - variant="subtle" |
193 | | - size="sm" |
194 | | - ml={8} |
195 | | - display="inline-block" |
196 | | - onClick={() => { |
197 | | - copy() |
198 | | - }} |
199 | | - > |
200 | | - {copied ? <IconCheck size={14} /> : <IconCopy01 size={14} />} |
201 | | - </ActionIcon> |
202 | | - </HoverCard.Target> |
203 | | - <HoverCard.Dropdown p="xs">{copied ? 'Copied' : 'Copy'}</HoverCard.Dropdown> |
204 | | - </HoverCard> |
| 182 | + <Tooltip withArrow label={copied ? 'Copied' : 'Copy'}> |
| 183 | + <ActionIcon |
| 184 | + aria-label="Copy" |
| 185 | + variant="subtle" |
| 186 | + size="sm" |
| 187 | + ml={8} |
| 188 | + display="inline-block" |
| 189 | + onClick={() => { |
| 190 | + copy() |
| 191 | + }} |
| 192 | + > |
| 193 | + {copied ? <IconCheck size={14} /> : <IconCopy03 size={14} />} |
| 194 | + </ActionIcon> |
| 195 | + </Tooltip> |
205 | 196 | )} |
206 | 197 | </CopyButton> |
207 | 198 | </Code> |
|
0 commit comments