Components

Awesome Dialog

Awesome Dialog component.

Client Only

Installation

pnpm dlx @docyrus/cli add @docyrus/ui-awesome-dialog
Required Packages(4 packages)
pnpm add radix-ui @types/react @types/react-dom vaul
UI Primitives(2 components)
npx shadcn@latest add button dropdown-menu

Usage

import {
  AwesomeDialog
} from "@docyrus/ui/components/awesome-dialog";
import type {
  AwesomeDialogProps,
  AwesomeDialogHeaderProps,
  AwesomeDialogBodyProps,
  AwesomeDialogFooterProps,
  AwesomeDialogToolbarProps,
  DialogContainer,
  DialogSide,
  DialogSize,
  DialogState,
  GlobalDialogContextValue,
  GlobalDialogProviderProps,
  ToolbarMenuItem,
  ToolbarMenuAction
} from "@docyrus/ui/components/awesome-dialog";

<AwesomeDialog />

API Reference

PropTypeDefault
classNamestring—

Components

ComponentDescription
AwesomeDialogPublic export
AwesomeDialogBodyInternal — awesome-dialog-body.tsx
AwesomeDialogContentInternal — awesome-dialog-content.tsx
AwesomeDialogFooterInternal — awesome-dialog-footer.tsx
AwesomeDialogHeaderInternal — awesome-dialog-header.tsx
AwesomeDialogToolbarInternal — awesome-dialog-toolbar.tsx
GlobalDialogBarInternal — global-dialog-bar.tsx
DrawerContainerInternal — containers/drawer-container.tsx
ModalContainerInternal — containers/modal-container.tsx
SheetContainerInternal — containers/sheet-container.tsx
AwesomeDialogProviderInternal — contexts/dialog-context.tsx
GlobalDialogProviderInternal — contexts/global-dialog-context.tsx

Type Exports

TypeDescription
AwesomeDialogProps—
AwesomeDialogHeaderProps—
AwesomeDialogBodyProps—
AwesomeDialogFooterProps—
AwesomeDialogToolbarProps—
DialogContainer—
DialogSide—
DialogSize—
DialogState—
GlobalDialogContextValue—
GlobalDialogProviderProps—
ToolbarMenuItem—
ToolbarMenuAction—

Type Reference

AwesomeDialogProps

FieldTypeDescription
openboolean—
onOpenChange(open: boolean) => void—
childrenReactNode—
containerDialogContainer—
sideDialogSide—
sizeDialogSize—
patternboolean—
patternStylePatternStyle—
resizableboolean—
fullscreenableboolean—
defaultFullscreenboolean—
minimizableboolean—
preventOutsideCloseboolean—
dialogIdstring—
classNamestring—

AwesomeDialogHeaderProps

FieldTypeDescription
childrenReactNode—
classNamestring—
titlestring—
descriptionstring—
iconstring—
iconLibstring—
namestring—
colorstring—
iconstring—
imagestring—
closableboolean—
headerButtonsReactNode—
onClose() => void—

AwesomeDialogBodyProps

FieldTypeDescription
childrenReactNode—
classNamestring—

AwesomeDialogFooterProps

FieldTypeDescription
childrenReactNode—
classNamestring—

AwesomeDialogToolbarProps

FieldTypeDescription
menusToolbarMenuItem[]—
childrenReactNode—
classNamestring—

DialogContainer

"modal" | "sheet" | "drawer"

DialogSide

"left" | "right" | "top" | "bottom"

DialogSize

"sm" | "default" | "lg" | "xl" | "full"

DialogState

FieldTypeDescription
dialogIdstring—
minimizedboolean—
fullscreenboolean—
zIndexnumber—
titlestring—
iconstring—

GlobalDialogContextValue

FieldTypeDescription
dialogsMap<string, DialogState>—
register(id: string, meta: { title?: string; icon?: string }) => void—
unregister(id: string) => void—
minimize(id: string) => void—
restore(id: string) => void—
bringToFront(id: string) => void—
toggleFullscreen(id: string) => void—
getZIndex(id: string) => number—
isMinimized(id: string) => boolean—
isFullscreen(id: string) => boolean—
minimizedDialogsDialogState[]—

GlobalDialogProviderProps

FieldTypeDescription
childrenReactNode—
persistboolean—
storageKeystring—

ToolbarMenuItem

FieldTypeDescription
labelstring—
itemsToolbarMenuAction[]—

ToolbarMenuAction

FieldTypeDescription
labelstring—
shortcutstring—
disabledboolean—
separatorboolean—
onClick() => void—

On this page