dialog — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited dialog (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Modal dialog with backdrop, focus trapping, animated entrance/exit, and slot-based content. Built on GlobalOverlay and Framer Motion. Also exports useDialog hook.
import { Dialog, DialogHeader, DialogContent, DialogFooter, useDialog } from 'reablocks';| Prop | Type | Default | Description | |
|---|---|---|---|---|
open | boolean | — | Whether the dialog is visible | |
onClose | () => void | — | Close handler | |
size | `string \ | number` | '50%' | Dialog width |
header | ReactNode | — | (deprecated) Header content — use <DialogHeader> slot | |
footer | ReactNode | — | (deprecated) Footer content — use <DialogFooter> slot | |
showCloseButton | boolean | true | Show close button in header | |
disablePadding | boolean | false | Remove content padding | |
hasBackdrop | boolean | true | Show backdrop overlay | |
closeOnBackdropClick | boolean | true | Close when clicking backdrop | |
closeOnEscape | boolean | true | Close on Escape key | |
animation | MotionNodeAnimationOptions | — | Custom animation config | |
className | string | — | Root element CSS classes | |
innerClassName | string | — | Inner container CSS classes | |
contentClassName | string | — | Content section CSS classes | |
theme | DialogTheme | — | Per-instance theme override | |
children | `ReactNode \ | (() => ReactNode)` | — | Dialog body (supports slots or render function) |
<Dialog open={isOpen} onClose={close}>
<DialogHeader>My Title</DialogHeader>
<DialogContent>
<p>Dialog body content here.</p>
</DialogContent>
<DialogFooter>
<Button onClick={save} color="primary">Save</Button>
<Button onClick={close}>Cancel</Button>
</DialogFooter>
</Dialog><Dialog open={isOpen} onClose={close} header="My Title">
{() => (
<div>Dialog body content here.</div>
)}
</Dialog>const { isOpen, setOpen, toggleOpen, Dialog: DialogComponent } = useDialog();
<Button onClick={() => setOpen(true)}>Open</Button>
<DialogComponent size="600px">
<DialogHeader>Title</DialogHeader>
<DialogContent>Content</DialogContent>
</DialogComponent>| Property | Type | Description |
|---|---|---|
isOpen | boolean | Current open state |
setOpen | (open: boolean) => void | Set open state |
toggleOpen | () => void | Toggle open state |
Dialog | FC<Partial<DialogProps>> | Pre-wired Dialog component |
interface DialogTheme {
base: string; // Overlay container (fixed, flex, centered)
inner: string; // Dialog box (flex-col, bg, border, rounded, shadow, max-w/h)
content: string; // Content area (padding, flex-auto, overflow)
footer: string; // Footer area (flex, padding)
header: {
base: string; // Header container (flex, justify-between, padding)
text: string; // Title text (flex-1, font-bold)
closeButton: string; // Close button (cursor-pointer, text-size)
};
}~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.