import { motionPackDetails, motionPackNames, type MotionPackName } from "@ai-ui/tokens"; import { Button, Card, CardContent, CardDescription, CardHeader, CardTitle, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, Input, Skeleton, Switch, skinDetails, skinNames, type SkinName } from "@ai-ui/ui"; import type { Meta, StoryObj } from "@storybook/react"; const motionAccessibilityModes = [ { label: "System accessibility", value: "system" }, { label: "Reduced accessibility", value: "reduced" } ] as const; type MotionAccessibilityMode = (typeof motionAccessibilityModes)[number]["value"]; function RuntimePill({ children }: { children: React.ReactNode }) { return ( {children} ); } function PanelPreview() { return (
Dialog panel contract
Panel vars preview the dialog surface without opening an overlay in every matrix cell.
AI UI / Phase 3
This page is the screenshot-friendly regression target for the pilot skin work. The grid uses nested `data-skin`, `data-motion-pack`, and `data-motion="reduced"` scopes so the same building blocks can be reviewed side by side.
{motionPackDetails[motionPack].note}
{motionAccessibilityMode.value === "reduced"
? '`data-motion="reduced"`'
: "System preference"}
{" "}with{" "}
{`data-motion-pack="${motionPack}"`}
.
Dialog still portals to the document root, so compare its real overlay and panel treatment with the Storybook toolbar. The matrix above covers scoped inline regression across packs and reduced-motion overlay. The control below covers the live overlay behavior.