CLI previewInstall commands shown on this site are not released yet.

DocsComponentsOverlays

Popover

React example follows below.
ts
import { Popover } from "@grassroot/ui-react";
<Popover trigger="ledger-api">
<div className="px-1.5 py-1 font-semibold text-heading">ledger-api</div>
<div className="px-1.5 pb-2 text-body">Event-sourced payments ledger.</div>
</Popover>
ts
<script setup lang="ts">
import { Popover } from "@grassroot/ui-vue";
</script>
<template>
<Popover
trigger="ledger-api"
>
<div className="px-1.5 py-1 font-semibold text-heading">ledger-api</div>
<div className="px-1.5 pb-2 text-body">Event-sourced payments ledger.</div>
</Popover>
</template>
ts
import { Component } from "@angular/core";
import { GrassrootPopover } from "@grassroot/ui-angular";
@Component({
selector: "app-example",
standalone: true,
imports: [GrassrootPopover],
template: `
<grassroot-popover
trigger="ledger-api"
>
<div className="px-1.5 py-1 font-semibold text-heading">ledger-api</div>
<div className="px-1.5 pb-2 text-body">Event-sourced payments ledger.</div>
</grassroot-popover>
`,
})
export class ExampleComponent {
}
ts
<script lang="ts">
import { Popover } from "@grassroot/ui-svelte";
</script>
<Popover
>{#snippet trigger()}ledger-api{/snippet}
<div className="px-1.5 py-1 font-semibold text-heading">ledger-api</div>
<div className="px-1.5 pb-2 text-body">Event-sourced payments ledger.</div>
</Popover>
ts
import { Popover } from "@grassroot/ui-solid";
export function Example() {
return (
<>
<Popover
trigger="ledger-api"
>
<div className="px-1.5 py-1 font-semibold text-heading">ledger-api</div>
<div className="px-1.5 pb-2 text-body">Event-sourced payments ledger.</div>
</Popover>
</>
);
}

Installation

bash
pnpm dlx grassroot add ui/popover
bash
npx grassroot@latest add ui/popover
bash
yarn dlx grassroot add ui/popover
bash
bunx grassroot add ui/popover

API Reference

PopoverProps
PropTypeDefault
triggerrequiredContent rendered inside the trigger button.React.ReactNode
childrenrequiredReact.ReactNode
side"top" | "bottom" | undefined"bottom"
alignHorizontal edge the panel anchors to."start" | "end" | undefined"start" (left)
defaultOpenboolean | undefined
classNamestring | undefined
contentClassNamestring | undefined
triggerClassNameOverride the trigger button styling (e.g. a borderless icon button). Replaces the default chip.string | undefined