Popover
トリガーに固定されて浮かぶパネルです。
インポート
「インポート」セクションimport { Popover, PopoverTrigger, PopoverContent } from "@pelagornis/page/components";上のプレビューはこのファイルを描画したものです。src/components/ にコピーして使い始めてください。
import { Button, Popover, PopoverContent, PopoverTrigger, Stack, Text } from "@pelagornis/page/components";
export default function PopoverDemo() { return ( <Popover> <PopoverTrigger> <Button variant="outline">Show details</Button> </PopoverTrigger> <PopoverContent placement="bottom" align="center"> <Stack gap="sizeXXSmall"> <Text variant="subtitleMd">@pelagornis/page</Text> <Text variant="bodySm">Re-exports every RefineUI component.</Text> </Stack> </PopoverContent> </Popover> );}MDX で使う
「MDX で使う」セクションPopover は React の状態を共有する複数のパーツで構成されます。MDX に書いた子要素はそれぞれ別のアイランドとして描画されるため、パーツ同士がつながりません。上の例のように .tsx ファイルで組み立て、そのファイルをインポートしてください。
---title: Example---
import PopoverExample from "../../components/PopoverExample";
<PopoverExample client:load />client:load はページの読み込み時にアイランドをハイドレートします。ページの下の方にあるコンテンツには client:visible を使ってください。
Markdoc で使う
「Markdoc で使う」セクションMarkdoc のタグは Astro コンポーネントを描画しますが、このコンポーネントにはクライアントの状態が必要です。例をハイドレートする .astro ファイルで包み、そのファイルをタグとして登録してください。
---import PopoverExample from "../PopoverExample";---
<PopoverExample client:load />import { component, defineMarkdocConfig } from "@astrojs/markdoc/config";import starlightMarkdoc from "@astrojs/starlight-markdoc";import pageMarkdoc from "@pelagornis/page/markdoc";
export default defineMarkdocConfig({ extends: [starlightMarkdoc(), pageMarkdoc()], tags: { "popover-example": { render: component("./src/components/markdoc/PopoverExample.astro"), selfClosing: true, }, },});{% popover-example /%}コンポーネントを構成するパーツと、それぞれが描画する data-refineui のロールです。
| パーツ | ロール |
|---|---|
root | popover-root |
キーボード
「キーボード」セクションフォーカスがあるときにコンポーネントが処理するキーです。
| キー | 動作 |
|---|---|
| Escape | close |
- デザインのガイドとトークンの詳細は RefineUI · Popover を参照してください。
- 共通のルールは MDX で使う と Markdoc で使う を参照してください。