- Prop
open- Type
boolean- Default
- —
- Requirement
- required
Docs Components Overlays
AlertDialog
React example follows below.
Vue example follows below.
Angular example follows below.
Svelte example follows below.
Solid example follows below.
- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
import * as React from "react";const alertDialogFixture = { id: "alert-dialog", trigger: "Tear down…", title: "Tear down ledger-api?", description: "This cannot be undone.", cancelLabel: "Cancel", confirmLabel: "Tear down", destructive: true, dismissable: false,} satisfies { id: string; trigger: string; title: string; description: string; cancelLabel: string; confirmLabel: string; destructive: boolean; dismissable: boolean;}; import { AlertDialog, Button } from "@grassroot/ui-react"; export default function AlertDialogDemo() { const [open, setOpen] = React.useState(false); return ( <div> <Button onClick={() => setOpen(true)}>{alertDialogFixture.trigger}</Button> <AlertDialog open={open} onOpenChange={setOpen} onConfirm={() => undefined} title={alertDialogFixture.title} description={alertDialogFixture.description} cancelLabel={alertDialogFixture.cancelLabel} confirmLabel={alertDialogFixture.confirmLabel} destructive={alertDialogFixture.destructive} dismissable={alertDialogFixture.dismissable} /> </div> );}- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
<script setup lang="ts">import { ref } from "vue";import { Button, AlertDialog } from "@grassroot/ui-vue";const alertDialogFixture = { id: "alert-dialog", trigger: "Tear down…", title: "Tear down ledger-api?", description: "This cannot be undone.", cancelLabel: "Cancel", confirmLabel: "Tear down", destructive: true, dismissable: false,} satisfies { id: string; trigger: string; title: string; description: string; cancelLabel: string; confirmLabel: string; destructive: boolean; dismissable: boolean;}; const open = ref(false);</script> <template> <div> <Button @click="open = true">{{ alertDialogFixture.trigger }}</Button> <AlertDialog v-model:open="open" :confirm-label="alertDialogFixture.confirmLabel" :cancel-label="alertDialogFixture.cancelLabel" :destructive="alertDialogFixture.destructive" :dismissable="alertDialogFixture.dismissable" > <template #title>{{ alertDialogFixture.title }}</template> <template #description>{{ alertDialogFixture.description }}</template> </AlertDialog> </div></template>- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
import { Component, signal } from "@angular/core";import { GrassrootButton, GrassrootAlertDialog, GrassrootDialogDescription, GrassrootDialogTitle,} from "@grassroot/ui-angular";const alertDialogFixture = { id: "alert-dialog", trigger: "Tear down…", title: "Tear down ledger-api?", description: "This cannot be undone.", cancelLabel: "Cancel", confirmLabel: "Tear down", destructive: true, dismissable: false,} satisfies { id: string; trigger: string; title: string; description: string; cancelLabel: string; confirmLabel: string; destructive: boolean; dismissable: boolean;}; @Component({ selector: "app-alert-dialog-demo", standalone: true, imports: [ GrassrootButton, GrassrootAlertDialog, GrassrootDialogTitle, GrassrootDialogDescription, ], template: ` <div> <grassroot-button (click)="open.set(true)">{{ fixture.trigger }}</grassroot-button> <grassroot-alert-dialog [open]="open()" (openChange)="open.set($event)" (confirm)="confirmed()" [confirmLabel]="fixture.confirmLabel" [cancelLabel]="fixture.cancelLabel" [destructive]="fixture.destructive" [dismissable]="fixture.dismissable" > <h2 grassrootDialogTitle>{{ fixture.title }}</h2> <p grassrootDialogDescription>{{ fixture.description }}</p> </grassroot-alert-dialog> </div> `,})export class AlertDialogDemoComponent { readonly open = signal(false); protected readonly fixture = alertDialogFixture; protected confirmed(): void {}} export default AlertDialogDemoComponent;- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
<script lang="ts"> import { Button, AlertDialog } from "@grassroot/ui-svelte"; const alertDialogFixture = { id: "alert-dialog", trigger: "Tear down…", title: "Tear down ledger-api?", description: "This cannot be undone.", cancelLabel: "Cancel", confirmLabel: "Tear down", destructive: true, dismissable: false, } satisfies { id: string; trigger: string; title: string; description: string; cancelLabel: string; confirmLabel: string; destructive: boolean; dismissable: boolean; }; let open = $state(false);</script> {#snippet title()}{alertDialogFixture.title}{/snippet}{#snippet description()}{alertDialogFixture.description}{/snippet}<div> <Button onClick={() => (open = true)}>{alertDialogFixture.trigger}</Button> <AlertDialog {open} onOpenChange={(next) => (open = next)} onConfirm={() => undefined} {title} {description} cancelLabel={alertDialogFixture.cancelLabel} confirmLabel={alertDialogFixture.confirmLabel} destructive={alertDialogFixture.destructive} dismissable={alertDialogFixture.dismissable} /></div>- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
/** @jsxImportSource solid-js */import { createSignal } from "solid-js";import { Button, AlertDialog } from "@grassroot/ui-solid";const alertDialogFixture = { id: "alert-dialog", trigger: "Tear down…", title: "Tear down ledger-api?", description: "This cannot be undone.", cancelLabel: "Cancel", confirmLabel: "Tear down", destructive: true, dismissable: false,} satisfies { id: string; trigger: string; title: string; description: string; cancelLabel: string; confirmLabel: string; destructive: boolean; dismissable: boolean;}; export default function AlertDialogDemo() { const [open, setOpen] = createSignal(false); return ( <div> <Button onClick={() => setOpen(true)}>{alertDialogFixture.trigger}</Button> <AlertDialog open={open()} onOpenChange={setOpen} onConfirm={() => {}} title={alertDialogFixture.title} description={alertDialogFixture.description} cancelLabel={alertDialogFixture.cancelLabel} confirmLabel={alertDialogFixture.confirmLabel} destructive={alertDialogFixture.destructive} dismissable={alertDialogFixture.dismissable} /> </div> );}Installation
API Reference
Import
import * as React from "react";
import { AlertDialog, Button } from "@grassroot/ui-react";
Props
Prop
Type
Default
Requirement
openboolean—
required
onOpenChange(open: boolean) => void—
required
onConfirm() => void—
required
confirmLabelstring | undefined—
optional
cancelLabelstring | undefined—
optional
destructiveboolean | undefined—
optional
dismissableboolean | undefined—
optional
classNamestring | undefined—
optional
- Prop
onOpenChange- Type
(open: boolean) => void- Default
- —
- Requirement
- required
- Prop
onConfirm- Type
() => void- Default
- —
- Requirement
- required
- Prop
confirmLabel- Type
string | undefined- Default
- —
- Requirement
- optional
- Prop
cancelLabel- Type
string | undefined- Default
- —
- Requirement
- optional
- Prop
destructive- Type
boolean | undefined- Default
- —
- Requirement
- optional
- Prop
dismissable- Type
boolean | undefined- Default
- —
- Requirement
- optional
- Prop
className- Type
string | undefined- Default
- —
- Requirement
- optional
Events
| Event | Payload |
|---|---|
onOpenChange | (open: boolean) => void |
onConfirm | () => void |
Content regions
childrendescriptiontitle
Import
import { ref } from "vue";
import { Button, AlertDialog } from "@grassroot/ui-vue";
Props
Prop
Type
Default
Requirement
openboolean—
required
confirmLabelstring"Confirm"optional
cancelLabelstring"Cancel"optional
destructivebooleantrueoptional
dismissablebooleanfalseoptional
- Prop
open- Type
boolean- Default
- —
- Requirement
- required
- Prop
confirmLabel- Type
string- Default
"Confirm"- Requirement
- optional
- Prop
cancelLabel- Type
string- Default
"Cancel"- Requirement
- optional
- Prop
destructive- Type
boolean- Default
true- Requirement
- optional
- Prop
dismissable- Type
boolean- Default
false- Requirement
- optional
Events
| Event | Payload |
|---|---|
update:open | (_open: boolean) => true |
confirm | () => true |
Content regions
defaultdescriptiontitle
Import
import { Component, signal } from "@angular/core";
import {
GrassrootButton,
GrassrootAlertDialog,
GrassrootDialogDescription,
GrassrootDialogTitle,
} from "@grassroot/ui-angular";
Props
Prop
Type
Default
Requirement
openboolean—
required
confirmLabelstring"Confirm"optional
cancelLabelstring"Cancel"optional
destructivebooleantrueoptional
dismissablebooleanfalseoptional
- Prop
open- Type
boolean- Default
- —
- Requirement
- required
- Prop
confirmLabel- Type
string- Default
"Confirm"- Requirement
- optional
- Prop
cancelLabel- Type
string- Default
"Cancel"- Requirement
- optional
- Prop
destructive- Type
boolean- Default
true- Requirement
- optional
- Prop
dismissable- Type
boolean- Default
false- Requirement
- optional
Events
| Event | Payload |
|---|---|
openChange | boolean |
confirm | void |
Content regions
defaultdescriptiontitle
Import
import { Button, AlertDialog } from "@grassroot/ui-svelte";
Props
Prop
Type
Default
Requirement
openboolean—
required
confirmLabelstring"Confirm"optional
cancelLabelstring"Cancel"optional
destructivebooleantrueoptional
dismissablebooleanfalseoptional
onOpenChange(open: boolean) => void—
required
onConfirm() => void—
required
classNamestring—
optional
- Prop
open- Type
boolean- Default
- —
- Requirement
- required
- Prop
confirmLabel- Type
string- Default
"Confirm"- Requirement
- optional
- Prop
cancelLabel- Type
string- Default
"Cancel"- Requirement
- optional
- Prop
destructive- Type
boolean- Default
true- Requirement
- optional
- Prop
dismissable- Type
boolean- Default
false- Requirement
- optional
- Prop
onOpenChange- Type
(open: boolean) => void- Default
- —
- Requirement
- required
- Prop
onConfirm- Type
() => void- Default
- —
- Requirement
- required
- Prop
className- Type
string- Default
- —
- Requirement
- optional
Events
| Event | Payload |
|---|---|
onOpenChange | (open: boolean) => void |
onConfirm | () => void |
Content regions
childrendescriptiontitle
Import
import { createSignal } from "solid-js";
import { Button, AlertDialog } from "@grassroot/ui-solid";
Props
Prop
Type
Default
Requirement
openboolean—
required
onOpenChange(open: boolean) => void—
required
onConfirm() => void—
required
confirmLabelstring"Confirm"optional
cancelLabelstring"Cancel"optional
destructivebooleantrueoptional
dismissablebooleanfalseoptional
classNamestring—
optional
- Prop
open- Type
boolean- Default
- —
- Requirement
- required
- Prop
onOpenChange- Type
(open: boolean) => void- Default
- —
- Requirement
- required
- Prop
onConfirm- Type
() => void- Default
- —
- Requirement
- required
- Prop
confirmLabel- Type
string- Default
"Confirm"- Requirement
- optional
- Prop
cancelLabel- Type
string- Default
"Cancel"- Requirement
- optional
- Prop
destructive- Type
boolean- Default
true- Requirement
- optional
- Prop
dismissable- Type
boolean- Default
false- Requirement
- optional
- Prop
className- Type
string- Default
- —
- Requirement
- optional
Events
| Event | Payload |
|---|---|
onOpenChange | (open: boolean) => void |
onConfirm | () => void |
Content regions
childrendescriptiontitle