{"$schema":"https://ui.shadcn.com/schema/registry-item.json","name":"detail-drawer","title":"Detail Drawer","description":"Right-side drawer for the details of a record, with an optional edit form.","dependencies":[],"registryDependencies":["@siteplane/base","@siteplane/drawer"],"files":[{"path":"packages/ui/src/components/detail-drawer/detail-drawer.tsx","content":"\"use client\";\n\nimport type * as React from \"react\";\n\nimport {\n  Drawer,\n  DrawerClose,\n  DrawerDescription,\n  DrawerFooter,\n  DrawerHeader,\n  DrawerPanel,\n  DrawerPopup,\n  DrawerTitle,\n  DrawerTrigger,\n} from \"../drawer\";\nimport { cn } from \"../../system/utils/cn\";\n\n/**\n * A Drawer that opens from the right. Its content takes the side, and the swipe\n * direction, from this root, so `position` is set once, here.\n */\nexport function DetailDrawer(\n  props: React.ComponentProps<typeof Drawer>,\n): React.ReactElement {\n  return <Drawer position=\"right\" {...props} />;\n}\n\nexport const DetailDrawerTrigger: typeof DrawerTrigger = DrawerTrigger;\nexport const DetailDrawerClose: typeof DrawerClose = DrawerClose;\n\n/**\n * The popup of the drawer, a straight side panel at most 448 px wide. It is\n * the Drawer's popup, so its name ends in `Popup` like the popup of every\n * other overlay.\n */\nexport function DetailDrawerPopup({\n  children,\n  className,\n  ...props\n}: React.ComponentProps<typeof DrawerPopup>): React.ReactElement {\n  return (\n    <DrawerPopup\n      className={cn(\"max-w-md\", className)}\n      data-pattern=\"detail-drawer-content\"\n      variant=\"straight\"\n      {...props}\n    >\n      {children}\n    </DrawerPopup>\n  );\n}\n\nexport function DetailDrawerHeader({\n  className,\n  ...props\n}: React.ComponentProps<typeof DrawerHeader>): React.ReactElement {\n  return (\n    <DrawerHeader\n      className={className}\n      data-pattern=\"detail-drawer-header\"\n      {...props}\n    />\n  );\n}\n\nexport const DetailDrawerTitle: typeof DrawerTitle = DrawerTitle;\nexport const DetailDrawerDescription: typeof DrawerDescription =\n  DrawerDescription;\n\nexport function DetailDrawerBody({\n  className,\n  ...props\n}: React.ComponentProps<typeof DrawerPanel>): React.ReactElement {\n  return (\n    <DrawerPanel\n      className={cn(\"min-h-0 flex-1\", className)}\n      data-pattern=\"detail-drawer-body\"\n      {...props}\n    />\n  );\n}\n\nexport function DetailDrawerFooter({\n  className,\n  ...props\n}: React.ComponentProps<typeof DrawerFooter>): React.ReactElement {\n  return (\n    <DrawerFooter\n      className={className}\n      data-pattern=\"detail-drawer-footer\"\n      {...props}\n    />\n  );\n}\n\n/**\n * @deprecated `DetailDrawerContent` is the earlier name of `DetailDrawerPopup`,\n * the same part; it keeps working until 2.0.\n */\nexport const DetailDrawerContent: typeof DetailDrawerPopup = DetailDrawerPopup;\n","type":"registry:ui","target":"~/src/siteplane/components/detail-drawer/detail-drawer.tsx"},{"path":"packages/ui/src/components/detail-drawer/index.ts","content":"export * from \"./detail-drawer\";\n","type":"registry:ui","target":"~/src/siteplane/components/detail-drawer/index.ts"}],"type":"registry:ui","docs":"https://ui.siteplane.io/docs-markdown/components/detail-drawer.md","categories":["Overlays & disclosure"],"meta":{"avoidWhen":["Avoid for a short confirmation; use Alert Dialog.","Avoid for content other than the details of a record; compose Drawer or Sheet directly."],"description":"Right-side drawer for the details of a record, with an optional edit form.","knownLimitations":["Swipe is not the only way to close: keep a visible close action."],"providerNotes":[],"releaseStatus":"stable","searchTerms":["detail-drawer","detail","drawer"],"useWhen":["Use to show the details of a record beside its list, with an optional edit form."]}}