-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
// SPDX-FileCopyrightText: 2024 Shota FUJI <pockawoooh@gmail.com>
// SPDX-License-Identifier: AGPL-3.0-only
import { QuestionMarkCircledIcon } from "@radix-ui/react-icons";
import { IconButton, Dialog, Tooltip, VisuallyHidden } from "@radix-ui/themes";
import { type FC, type ReactNode } from "react";
export interface TriggerProps extends Omit<Dialog.TriggerProps, "children"> {
/**
* ツールチップやスクリーンリーダー向けに表示されるテキスト。
*/
children: ReactNode;
}
export const Trigger: FC<TriggerProps> = ({ children, ...rest }) => {
return (
<Tooltip content={children} delayDuration={700}>
<Dialog.Trigger {...rest}>
<IconButton variant="ghost" size="1" color="gray">
<QuestionMarkCircledIcon />
<VisuallyHidden>{children}</VisuallyHidden>
</IconButton>
</Dialog.Trigger>
</Tooltip>
);
};