@humain/ui 2.1.63 → 2.1.65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/organisms/ai/AIToolCall/AIToolCall.d.ts +9 -3
- package/dist/components/organisms/ai/AIToolRun/index.d.ts +1 -1
- package/dist/components/organisms/ai/AIToolRun/validation.d.ts +24 -3
- package/dist/components/organisms/ai/_shared/format-ai-duration.d.ts +1 -0
- package/dist/components/organisms/ai/_shared/workflow-step-renderer.d.ts +1 -0
- package/dist/index.js +52 -52
- package/dist/index151.js +1 -1
- package/dist/index174.js +7 -339
- package/dist/index174.js.map +1 -1
- package/dist/index175.js +310 -137
- package/dist/index175.js.map +1 -1
- package/dist/index176.js +148 -174
- package/dist/index176.js.map +1 -1
- package/dist/index177.js +186 -78
- package/dist/index177.js.map +1 -1
- package/dist/index178.js +74 -124
- package/dist/index178.js.map +1 -1
- package/dist/index179.js +133 -1
- package/dist/index179.js.map +1 -0
- package/dist/index180.js +2 -201
- package/dist/index181.js +201 -0
- package/dist/{index180.js.map → index181.js.map} +1 -1
- package/dist/index183.js +130 -166
- package/dist/index183.js.map +1 -1
- package/dist/index184.js +195 -983
- package/dist/index184.js.map +1 -1
- package/dist/index185.js +1069 -369
- package/dist/index185.js.map +1 -1
- package/dist/index186.js +395 -197
- package/dist/index186.js.map +1 -1
- package/dist/index187.js +198 -243
- package/dist/index187.js.map +1 -1
- package/dist/index188.js +263 -3
- package/dist/index188.js.map +1 -1
- package/dist/index189.js +3 -209
- package/dist/index189.js.map +1 -1
- package/dist/index190.js +190 -777
- package/dist/index190.js.map +1 -1
- package/dist/index191.js +771 -252
- package/dist/index191.js.map +1 -1
- package/dist/index192.js +250 -65
- package/dist/index192.js.map +1 -1
- package/dist/index193.js +72 -523
- package/dist/index193.js.map +1 -1
- package/dist/index194.js +537 -144
- package/dist/index194.js.map +1 -1
- package/dist/index195.js +139 -720
- package/dist/index195.js.map +1 -1
- package/dist/index196.js +707 -167
- package/dist/index196.js.map +1 -1
- package/dist/index197.js +175 -151
- package/dist/index197.js.map +1 -1
- package/dist/index198.js +152 -487
- package/dist/index198.js.map +1 -1
- package/dist/index199.js +472 -225
- package/dist/index199.js.map +1 -1
- package/dist/index200.js +236 -260
- package/dist/index200.js.map +1 -1
- package/dist/index201.js +265 -215
- package/dist/index201.js.map +1 -1
- package/dist/index202.js +207 -307
- package/dist/index202.js.map +1 -1
- package/dist/index203.js +302 -135
- package/dist/index203.js.map +1 -1
- package/dist/index204.js +140 -271
- package/dist/index204.js.map +1 -1
- package/dist/index205.js +263 -253
- package/dist/index205.js.map +1 -1
- package/dist/index206.js +244 -137
- package/dist/index206.js.map +1 -1
- package/dist/index207.js +100 -238
- package/dist/index207.js.map +1 -1
- package/dist/index208.js +278 -74
- package/dist/index208.js.map +1 -1
- package/dist/index209.js +56 -97
- package/dist/index209.js.map +1 -1
- package/dist/index210.js +142 -47
- package/dist/index210.js.map +1 -1
- package/dist/index211.js +38 -84
- package/dist/index211.js.map +1 -1
- package/dist/index212.js +72 -252
- package/dist/index212.js.map +1 -1
- package/dist/index213.js +274 -26
- package/dist/index213.js.map +1 -1
- package/dist/index214.js +29 -94
- package/dist/index214.js.map +1 -1
- package/dist/index215.js +98 -25
- package/dist/index215.js.map +1 -1
- package/dist/index216.js +20 -565
- package/dist/index216.js.map +1 -1
- package/dist/index217.js +564 -17
- package/dist/index217.js.map +1 -1
- package/dist/index218.js +20 -23
- package/dist/index218.js.map +1 -1
- package/dist/index219.js +20 -95
- package/dist/index219.js.map +1 -1
- package/dist/index220.js +92 -88
- package/dist/index220.js.map +1 -1
- package/dist/index221.js +97 -29
- package/dist/index221.js.map +1 -1
- package/dist/index222.js +24 -470
- package/dist/index222.js.map +1 -1
- package/dist/index223.js +446 -196
- package/dist/index223.js.map +1 -1
- package/dist/index224.js +199 -729
- package/dist/index224.js.map +1 -1
- package/dist/index225.js +750 -61
- package/dist/index225.js.map +1 -1
- package/dist/index226.js +58 -181
- package/dist/index226.js.map +1 -1
- package/dist/index227.js +175 -259
- package/dist/index227.js.map +1 -1
- package/dist/index228.js +246 -172
- package/dist/index228.js.map +1 -1
- package/dist/index229.js +195 -32
- package/dist/index229.js.map +1 -1
- package/dist/index230.js +12 -40
- package/dist/index230.js.map +1 -1
- package/dist/index231.js +23 -26
- package/dist/index231.js.map +1 -1
- package/dist/index232.js +45 -22
- package/dist/index232.js.map +1 -1
- package/dist/index233.js +27 -48
- package/dist/index233.js.map +1 -1
- package/dist/index234.js +52 -26
- package/dist/index234.js.map +1 -1
- package/dist/index235.js +40 -225
- package/dist/index235.js.map +1 -1
- package/dist/index236.js +217 -39
- package/dist/index236.js.map +1 -1
- package/dist/index237.js +50 -0
- package/dist/index237.js.map +1 -0
- package/dist/styles.css +1 -1
- package/dist/wc/AIToolCall.js +218 -0
- package/dist/wc/AIToolCall.js.map +1 -0
- package/dist/wc/hf-ai-tool-call.js +34 -219
- package/dist/wc/hf-ai-tool-call.js.map +1 -1
- package/dist/wc/hf-ai-tool-run.js +673 -576
- package/dist/wc/hf-ai-tool-run.js.map +1 -1
- package/dist/wc/workflow-step-renderer.js +79 -78
- package/dist/wc/workflow-step-renderer.js.map +1 -1
- package/dist/wc-react/AIToolCall.js +218 -0
- package/dist/wc-react/AIToolCall.js.map +1 -0
- package/dist/wc-react/hf-ai-tool-call.js +32 -217
- package/dist/wc-react/hf-ai-tool-call.js.map +1 -1
- package/dist/wc-react/hf-ai-tool-run.js +698 -601
- package/dist/wc-react/hf-ai-tool-run.js.map +1 -1
- package/dist/wc-react/workflow-step-renderer.js +58 -57
- package/dist/wc-react/workflow-step-renderer.js.map +1 -1
- package/package.json +1 -1
- package/skills/humain-ui/SKILL.md +1 -1
- package/skills/humain-ui-wc/SKILL.md +1 -1
- package/skills/humain-ui-wc.skill +0 -0
- package/skills/humain-ui.skill +0 -0
- package/dist/index182.js +0 -143
- package/dist/index182.js.map +0 -1
- package/dist/wc/wrench.js +0 -10
- package/dist/wc/wrench.js.map +0 -1
- package/dist/wc-react/wrench.js +0 -10
- package/dist/wc-react/wrench.js.map +0 -1
package/dist/index206.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index206.js","names":[],"sources":["../src/components/organisms/overlays/AlertDialog/AlertDialog.tsx"],"sourcesContent":["import { AlertDialog as AlertDialogPrimitive } from '@base-ui/react/alert-dialog';\nimport * as React from 'react';\nimport { Button } from '@/components/atoms/buttons/Button';\nimport { cn } from '@/lib/utils';\n\n// ============================================\n// Root\n// ============================================\n\nconst Root = React.forwardRef<HTMLDivElement, AlertDialogPrimitive.Root.Props>(\n function Root({ ...props }, _ref) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />;\n },\n);\nRoot.displayName = 'AlertDialog.Root';\n\n// ============================================\n// Trigger\n// ============================================\n\nconst Trigger = React.forwardRef<\n HTMLButtonElement,\n AlertDialogPrimitive.Trigger.Props\n>(function Trigger({ ...props }, ref) {\n return (\n <AlertDialogPrimitive.Trigger\n ref={ref}\n data-slot=\"alert-dialog-trigger\"\n {...props}\n />\n );\n});\nTrigger.displayName = 'AlertDialog.Trigger';\n\n// ============================================\n// Portal\n// ============================================\n\nfunction Portal({ ...props }: AlertDialogPrimitive.Portal.Props) {\n return (\n <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" {...props} />\n );\n}\nPortal.displayName = 'AlertDialog.Portal';\n\nfunction isPortalContainerRef(\n container: AlertDialogPrimitive.Portal.Props['container'],\n): container is React.RefObject<HTMLElement | ShadowRoot | null> {\n return (\n container !== null &&\n typeof container === 'object' &&\n 'current' in container\n );\n}\n\nfunction usePortalContainer(\n container: AlertDialogPrimitive.Portal.Props['container'],\n): AlertDialogPrimitive.Portal.Props['container'] {\n return React.useMemo(() => {\n if (container == null || isPortalContainerRef(container)) return container;\n return { current: container };\n }, [container]);\n}\n\n// ============================================\n// Backdrop (renamed from Overlay)\n// ============================================\n\nexport interface BackdropProps extends AlertDialogPrimitive.Backdrop.Props {\n /** Disables open/close animations */\n disableAnimation?: boolean;\n /** Disables backdrop blur effect */\n disableBackdropBlur?: boolean;\n}\n\nconst Backdrop = React.forwardRef<HTMLDivElement, BackdropProps>(\n function Backdrop(\n { className, disableAnimation, disableBackdropBlur, ...props },\n ref,\n ) {\n return (\n <AlertDialogPrimitive.Backdrop\n ref={ref}\n data-slot=\"alert-dialog-backdrop\"\n className={cn(\n 'bg-background/80/10 fixed inset-0 isolate z-50',\n !disableAnimation &&\n 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 duration-100 motion-reduce:animate-none',\n !disableBackdropBlur && 'supports-backdrop-filter:backdrop-blur-xs',\n className,\n )}\n {...props}\n />\n );\n },\n);\nBackdrop.displayName = 'AlertDialog.Backdrop';\n\n// ============================================\n// Viewport\n// ============================================\n\nexport interface ViewportProps extends AlertDialogPrimitive.Viewport.Props {}\n\nconst Viewport = React.forwardRef<HTMLDivElement, ViewportProps>(\n function Viewport({ className, children, ...props }, ref) {\n return (\n <AlertDialogPrimitive.Viewport\n ref={ref}\n data-slot=\"alert-dialog-viewport\"\n className={cn(\n 'fixed inset-0 z-50 flex items-center justify-center p-4',\n className,\n )}\n {...props}\n >\n {children}\n </AlertDialogPrimitive.Viewport>\n );\n },\n);\nViewport.displayName = 'AlertDialog.Viewport';\n\n// ============================================\n// Popup (renamed from Content)\n// ============================================\n\nexport interface PopupProps extends AlertDialogPrimitive.Popup.Props {\n container?: AlertDialogPrimitive.Portal.Props['container'];\n size?: 'default' | 'sm';\n /** Disables open/close animations */\n disableAnimation?: boolean;\n /** Disables backdrop blur effect */\n disableBackdropBlur?: boolean;\n}\n\nconst Popup = React.forwardRef<HTMLDivElement, PopupProps>(function Popup(\n {\n className,\n container,\n size = 'default',\n disableAnimation,\n disableBackdropBlur,\n ...props\n },\n ref,\n) {\n const portalContainer = usePortalContainer(container);\n\n return (\n <Portal container={portalContainer}>\n <Backdrop\n disableAnimation={disableAnimation}\n disableBackdropBlur={disableBackdropBlur}\n />\n <AlertDialogPrimitive.Popup\n ref={ref}\n data-slot=\"alert-dialog-popup\"\n data-size={size}\n className={cn(\n 'bg-background ring-foreground/10 flex w-[calc(100%-2rem)] max-w-[483px] flex-col items-start gap-4 rounded-xl p-6 ring-1 shadow-lg sm:w-[483px] data-[size=sm]:sm:max-w-sm group/alert-dialog-content fixed top-1/2 left-1/2 z-50 -translate-x-1/2 -translate-y-1/2 outline-none',\n !disableAnimation &&\n 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 duration-150 motion-reduce:animate-none',\n className,\n )}\n {...props}\n />\n </Portal>\n );\n});\nPopup.displayName = 'AlertDialog.Popup';\n\n// ============================================\n// Header\n// ============================================\n\ntype AlertDialogAlignment = 'start' | 'center';\ntype AlertDialogFooterActionSlot =\n | 'alert-dialog-action'\n | 'alert-dialog-cancel';\n\nconst alertDialogFooterActionClassName = 'gap-2 rounded-xl px-4';\n\nexport interface HeaderProps extends React.ComponentProps<'div'> {\n align?: AlertDialogAlignment;\n}\n\nconst Header = React.forwardRef<HTMLDivElement, HeaderProps>(function Header(\n { className, align = 'start', ...props },\n ref,\n) {\n return (\n <div\n ref={ref}\n data-slot=\"alert-dialog-header\"\n data-align={align}\n className={cn(\n 'flex w-full flex-col gap-2',\n align === 'center'\n ? 'items-center text-center'\n : 'items-start text-left',\n className,\n )}\n {...props}\n />\n );\n});\nHeader.displayName = 'AlertDialog.Header';\n\n// ============================================\n// Footer\n// ============================================\n\nexport interface FooterProps extends React.ComponentProps<'div'> {\n align?: AlertDialogAlignment;\n}\n\nconst Footer = React.forwardRef<HTMLDivElement, FooterProps>(function Footer(\n { className, align = 'start', ...props },\n ref,\n) {\n return (\n <div\n ref={ref}\n data-slot=\"alert-dialog-footer\"\n data-align={align}\n className={cn(\n 'flex w-full flex-row items-center gap-3',\n align === 'center' ? 'justify-center' : 'justify-end',\n className,\n )}\n {...props}\n />\n );\n});\nFooter.displayName = 'AlertDialog.Footer';\n\n// ============================================\n// Media\n// ============================================\n\nconst Media = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n function Media({ className, ...props }, ref) {\n return (\n <div\n ref={ref}\n data-slot=\"alert-dialog-media\"\n className={cn(\n \"bg-muted mb-2 inline-flex size-16 items-center justify-center rounded-md *:[svg:not([class*='size-'])]:size-8\",\n className,\n )}\n {...props}\n />\n );\n },\n);\nMedia.displayName = 'AlertDialog.Media';\n\n// ============================================\n// Title\n// ============================================\n\nconst Title = React.forwardRef<\n HTMLHeadingElement,\n React.ComponentProps<typeof AlertDialogPrimitive.Title>\n>(function Title({ className, ...props }, ref) {\n return (\n <AlertDialogPrimitive.Title\n ref={ref}\n data-slot=\"alert-dialog-title\"\n className={cn('text-lg leading-7 font-semibold', className)}\n {...props}\n />\n );\n});\nTitle.displayName = 'AlertDialog.Title';\n\n// ============================================\n// Description\n// ============================================\n\nconst Description = React.forwardRef<\n HTMLParagraphElement,\n React.ComponentProps<typeof AlertDialogPrimitive.Description>\n>(function Description({ className, ...props }, ref) {\n return (\n <AlertDialogPrimitive.Description\n ref={ref}\n data-slot=\"alert-dialog-description\"\n className={cn(\n 'text-muted-foreground *:[a]:hover:text-foreground text-sm leading-5 *:[a]:underline *:[a]:underline-offset-3',\n className,\n )}\n {...props}\n />\n );\n});\nDescription.displayName = 'AlertDialog.Description';\n\n// ============================================\n// Action\n// ============================================\n\ninterface FooterActionButtonProps extends React.ComponentProps<typeof Button> {\n dataSlot: AlertDialogFooterActionSlot;\n}\n\nconst FooterActionButton = React.forwardRef<\n HTMLButtonElement,\n FooterActionButtonProps\n>(function FooterActionButton(\n { className, dataSlot, shape = 'rounded', size = 'default', ...props },\n ref,\n) {\n return (\n <Button\n ref={ref}\n data-slot={dataSlot}\n size={size}\n shape={shape}\n className={cn(alertDialogFooterActionClassName, className)}\n {...props}\n />\n );\n});\nFooterActionButton.displayName = 'AlertDialog.FooterActionButton';\n\nconst Action = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof Button>\n>(function Action(\n {\n className,\n appearance = 'solid',\n variant = 'primary',\n size = 'default',\n shape = 'rounded',\n ...props\n },\n ref,\n) {\n return (\n <FooterActionButton\n ref={ref}\n dataSlot=\"alert-dialog-action\"\n appearance={appearance}\n variant={variant}\n size={size}\n shape={shape}\n className={className}\n {...props}\n />\n );\n});\nAction.displayName = 'AlertDialog.Action';\n\n// ============================================\n// Cancel\n// ============================================\n\nconst Cancel = React.forwardRef<\n HTMLButtonElement,\n AlertDialogPrimitive.Close.Props &\n Pick<\n React.ComponentProps<typeof Button>,\n 'appearance' | 'variant' | 'size' | 'shape'\n >\n>(function Cancel(\n {\n className,\n appearance = 'outline',\n variant = 'secondary',\n size = 'default',\n shape = 'rounded',\n ...props\n },\n ref,\n) {\n return (\n <AlertDialogPrimitive.Close\n ref={ref}\n data-slot=\"alert-dialog-cancel\"\n className={className}\n render={\n <FooterActionButton\n dataSlot=\"alert-dialog-cancel\"\n appearance={appearance}\n variant={variant}\n size={size}\n shape={shape}\n />\n }\n {...props}\n />\n );\n});\nCancel.displayName = 'AlertDialog.Cancel';\n\n// ============================================\n// Type exports\n// ============================================\n\nexport type RootProps = AlertDialogPrimitive.Root.Props;\nexport type TriggerProps = AlertDialogPrimitive.Trigger.Props;\nexport type PortalProps = AlertDialogPrimitive.Portal.Props;\nexport type TitleProps = React.ComponentProps<typeof Title>;\nexport type DescriptionProps = React.ComponentProps<typeof Description>;\nexport type ActionProps = React.ComponentProps<typeof Action>;\nexport type CancelProps = React.ComponentProps<typeof Cancel>;\nexport type MediaProps = React.ComponentProps<typeof Media>;\n\n// ============================================\n// Compound component via dot notation (ADR-011)\n// ============================================\n\nconst AlertDialog = Object.assign(Root, {\n Root,\n Trigger,\n Portal,\n Backdrop,\n Viewport,\n Popup,\n Header,\n Footer,\n Title,\n Description,\n Action,\n Cancel,\n Media,\n});\n\nexport {\n Action as AlertDialogAction,\n AlertDialog,\n Backdrop as AlertDialogBackdrop,\n Cancel as AlertDialogCancel,\n Description as AlertDialogDescription,\n Footer as AlertDialogFooter,\n Header as AlertDialogHeader,\n Media as AlertDialogMedia,\n Popup as AlertDialogPopup,\n Portal as AlertDialogPortal,\n // Sub-components with AlertDialog prefix for direct imports\n Root as AlertDialogRoot,\n Title as AlertDialogTitle,\n Trigger as AlertDialogTrigger,\n Viewport as AlertDialogViewport,\n};\n"],"mappings":"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AAW,GAAG,SAC/D,KACA;CACA,OACE,oBAAC,QAAD;EACO;EACL,aAAW;EACL;EACC;EACP,WAAW,GAAG,kCAAkC,SAAS;EACzD,GAAI;CACL,CAAA;AAEL,CAAC;AACD,mBAAmB,cAAc;AAEjC,IAAM,SAAS,MAAM,WAGnB,SAAS,OACT,EACE,WACA,aAAa,SACb,UAAU,WACV,OAAO,WACP,QAAQ,WACR,GAAG,SAEL,KACA;CACA,OACE,oBAAC,oBAAD;EACO;EACL,UAAS;EACG;EACH;EACH;EACC;EACI;EACX,GAAI;CACL,CAAA;AAEL,CAAC;AACD,OAAO,cAAc;AAMrB,IAAM,SAAS,MAAM,WAOnB,SAAS,OACT,EACE,WACA,aAAa,WACb,UAAU,aACV,OAAO,WACP,QAAQ,WACR,GAAG,SAEL,KACA;CACA,OACE,oBAAC,YAAqB,OAAtB;EACO;EACL,aAAU;EACC;EACX,QACE,oBAAC,oBAAD;GACE,UAAS;GACG;GACH;GACH;GACC;EACR,CAAA;EAEH,GAAI;CACL,CAAA;AAEL,CAAC;AACD,OAAO,cAAc;AAmBrB,IAAM,gBAAc,OAAO,OAAO,MAAM;CACtC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"index206.js","names":[],"sources":["../src/components/organisms/menus/ContextMenu/ContextMenu.tsx"],"sourcesContent":["'use client';\n\nimport { Menu as MenuPrimitive } from '@base-ui/react/menu';\nimport { Check, ChevronRight } from 'lucide-react';\nimport * as React from 'react';\nimport { useControllableState } from '@/hooks/use-controllable-state';\nimport { createSafeContext } from '@/lib/create-safe-context';\nimport { cn } from '@/lib/utils';\n\ninterface ContextMenuContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n position: { x: number; y: number };\n setPosition: (position: { x: number; y: number }) => void;\n}\n\nexport interface ContextMenuAnchorPoint {\n x: number;\n y: number;\n}\n\nconst [ContextMenuContext, useContextMenuContext] =\n createSafeContext<ContextMenuContextValue>('ContextMenu');\n\n// ============================================\n// Root\n// ============================================\n\ninterface RootProps {\n children: React.ReactNode;\n anchorPoint?: ContextMenuAnchorPoint;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n}\n\nfunction Root({\n children,\n anchorPoint,\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n}: RootProps) {\n const [position, setPosition] = React.useState({ x: 0, y: 0 });\n\n const [open, setOpen] = useControllableState({\n value: controlledOpen,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n });\n\n return (\n <ContextMenuContext.Provider\n value={{\n open,\n setOpen,\n position: anchorPoint ?? position,\n setPosition,\n }}\n >\n <MenuPrimitive.Root\n data-slot=\"context-menu\"\n open={open}\n onOpenChange={setOpen}\n >\n {children}\n </MenuPrimitive.Root>\n </ContextMenuContext.Provider>\n );\n}\nRoot.displayName = 'ContextMenu.Root';\n\n// ============================================\n// Trigger\n// ============================================\n\ninterface TriggerProps\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'onContextMenu'> {\n children: React.ReactNode;\n className?: string;\n disabled?: boolean;\n}\n\nfunction Trigger({\n children,\n className,\n disabled = false,\n onKeyDown: onKeyDownProp,\n ...props\n}: TriggerProps) {\n const { setOpen, setPosition } = useContextMenuContext();\n\n const handleContextMenu = React.useCallback(\n (event: React.MouseEvent) => {\n if (disabled) return;\n event.preventDefault();\n setPosition({ x: event.clientX, y: event.clientY });\n setOpen(true);\n },\n [disabled, setOpen, setPosition],\n );\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLButtonElement>) => {\n onKeyDownProp?.(event);\n if (event.defaultPrevented) return;\n if (disabled) return;\n if (event.key === 'F10' && event.shiftKey) {\n event.preventDefault();\n const rect = event.currentTarget.getBoundingClientRect();\n setPosition({\n x: rect.left + rect.width / 2,\n y: rect.top + rect.height / 2,\n });\n setOpen(true);\n }\n },\n [disabled, onKeyDownProp, setOpen, setPosition],\n );\n\n return (\n <button\n type=\"button\"\n data-slot=\"context-menu-trigger\"\n onContextMenu={handleContextMenu}\n onKeyDown={handleKeyDown}\n className={className}\n disabled={disabled}\n {...props}\n >\n {children}\n </button>\n );\n}\nTrigger.displayName = 'ContextMenu.Trigger';\n\n// ============================================\n// Portal\n// ============================================\n\nfunction Portal({ ...props }: MenuPrimitive.Portal.Props) {\n return <MenuPrimitive.Portal data-slot=\"context-menu-portal\" {...props} />;\n}\nPortal.displayName = 'ContextMenu.Portal';\n\nconst popupMotionClassName =\n 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 motion-reduce:animate-none';\n\nconst popupSurfaceClassName =\n 'border border-border bg-popover text-popover-foreground rounded-lg p-1 shadow-sm duration-100 origin-(--transform-origin) outline-none';\n\nfunction isPortalContainerRef(\n container: MenuPrimitive.Portal.Props['container'],\n): container is React.RefObject<HTMLElement | ShadowRoot | null> {\n return (\n container !== null &&\n typeof container === 'object' &&\n 'current' in container\n );\n}\n\nfunction usePortalContainer(\n container: MenuPrimitive.Portal.Props['container'],\n): MenuPrimitive.Portal.Props['container'] {\n return React.useMemo(() => {\n if (container == null || isPortalContainerRef(container)) return container;\n return { current: container };\n }, [container]);\n}\n\nfunction resolvePortalContextElement(\n container: MenuPrimitive.Portal.Props['container'],\n): Element | undefined {\n const resolvedContainer = isPortalContainerRef(container)\n ? container.current\n : container;\n if (!resolvedContainer) return undefined;\n return 'host' in resolvedContainer\n ? resolvedContainer.host\n : resolvedContainer;\n}\n\n// ============================================\n// Popup (formerly Content)\n// ============================================\n\ninterface PopupProps extends Omit<MenuPrimitive.Popup.Props, 'anchor'> {\n alignOffset?: number;\n container?: MenuPrimitive.Portal.Props['container'];\n sideOffset?: number;\n}\n\nfunction Popup({\n alignOffset = 0,\n container,\n sideOffset = 0,\n className,\n ...props\n}: PopupProps) {\n const { position } = useContextMenuContext();\n const portalContainer = usePortalContainer(container);\n const portalContextElement = resolvePortalContextElement(container);\n\n // Create a virtual anchor at the cursor position\n const virtualAnchor = React.useMemo(\n () => ({\n contextElement: portalContextElement,\n getBoundingClientRect: () => ({\n x: position.x,\n y: position.y,\n width: 0,\n height: 0,\n top: position.y,\n right: position.x,\n bottom: position.y,\n left: position.x,\n toJSON: () => ({}),\n }),\n }),\n [portalContextElement, position.x, position.y],\n );\n\n return (\n <MenuPrimitive.Portal container={portalContainer}>\n <MenuPrimitive.Positioner\n data-anchor-x={position.x}\n data-anchor-y={position.y}\n data-slot=\"context-menu-positioner\"\n className=\"isolate z-50 outline-none\"\n anchor={virtualAnchor}\n side=\"bottom\"\n align=\"start\"\n sideOffset={sideOffset}\n alignOffset={alignOffset}\n collisionPadding={8}\n >\n <MenuPrimitive.Popup\n data-slot=\"context-menu-popup\"\n className={cn(\n popupMotionClassName,\n popupSurfaceClassName,\n 'min-w-32 z-50 max-h-(--available-height) overflow-x-hidden overflow-y-auto data-closed:overflow-hidden',\n className,\n )}\n {...props}\n />\n </MenuPrimitive.Positioner>\n </MenuPrimitive.Portal>\n );\n}\nPopup.displayName = 'ContextMenu.Popup';\n\n// ============================================\n// Group\n// ============================================\n\nfunction Group({ ...props }: MenuPrimitive.Group.Props) {\n return <MenuPrimitive.Group data-slot=\"context-menu-group\" {...props} />;\n}\nGroup.displayName = 'ContextMenu.Group';\n\n// ============================================\n// Label\n// ============================================\n\nfunction Label({\n className,\n inset,\n ...props\n}: MenuPrimitive.GroupLabel.Props & {\n inset?: boolean;\n}) {\n return (\n <MenuPrimitive.GroupLabel\n data-slot=\"context-menu-label\"\n data-inset={inset}\n className={cn(\n 'text-foreground px-2 py-1.5 text-sm leading-5 font-medium data-[inset]:ps-8',\n className,\n )}\n {...props}\n />\n );\n}\nLabel.displayName = 'ContextMenu.Label';\n\n// ============================================\n// Item\n// ============================================\n\nfunction Item({\n className,\n inset,\n variant = 'default',\n ...props\n}: MenuPrimitive.Item.Props & {\n inset?: boolean;\n variant?: 'default' | 'destructive';\n}) {\n return (\n <MenuPrimitive.Item\n data-slot=\"context-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"focus:bg-accent focus:text-popover-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive not-data-[variant=destructive]:focus:**:text-popover-foreground gap-2 rounded-md px-2 py-1.5 text-base leading-6 [&_svg:not([class*='size-'])]:size-4 group/context-menu-item relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-[inset]:ps-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 transition-[color,background-color,transform] duration-150 ease-smooth active:scale-[0.99] motion-reduce:transition-none motion-reduce:active:scale-100\",\n className,\n )}\n {...props}\n />\n );\n}\nItem.displayName = 'ContextMenu.Item';\n\n// ============================================\n// Sub\n// ============================================\n\nfunction Sub({ ...props }: MenuPrimitive.SubmenuRoot.Props) {\n return <MenuPrimitive.SubmenuRoot data-slot=\"context-menu-sub\" {...props} />;\n}\nSub.displayName = 'ContextMenu.Sub';\n\n// ============================================\n// SubTrigger\n// ============================================\n\nfunction SubTrigger({\n className,\n inset,\n children,\n ...props\n}: MenuPrimitive.SubmenuTrigger.Props & {\n inset?: boolean;\n}) {\n return (\n <MenuPrimitive.SubmenuTrigger\n data-slot=\"context-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"focus:bg-accent focus:text-popover-foreground data-open:bg-accent data-open:text-popover-foreground not-data-[variant=destructive]:focus:**:text-popover-foreground gap-2 rounded-md px-2 py-1.5 text-base leading-6 [&_svg:not([class*='size-'])]:size-4 group/ctx-sub flex cursor-default items-center outline-hidden select-none data-[inset]:ps-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 transition-[color,background-color,transform] duration-150 ease-smooth active:scale-[0.99] motion-reduce:transition-none motion-reduce:active:scale-100\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ms-auto rtl:rotate-180 transition-transform duration-150 group-data-open/ctx-sub:translate-x-0.5\" />\n </MenuPrimitive.SubmenuTrigger>\n );\n}\nSubTrigger.displayName = 'ContextMenu.SubTrigger';\n\n// ============================================\n// SubPopup (formerly SubContent)\n// ============================================\n\nfunction SubPopup({\n className,\n container,\n ...props\n}: Omit<PopupProps, 'alignOffset' | 'sideOffset'> &\n Omit<MenuPrimitive.Popup.Props, 'anchor'>) {\n const portalContainer = usePortalContainer(container);\n\n return (\n <MenuPrimitive.Portal container={portalContainer}>\n <MenuPrimitive.Positioner\n className=\"isolate z-50 outline-none\"\n side=\"right\"\n align=\"start\"\n sideOffset={0}\n alignOffset={-3}\n >\n <MenuPrimitive.Popup\n data-slot=\"context-menu-sub-popup\"\n className={cn(\n popupMotionClassName,\n 'data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n popupSurfaceClassName,\n 'min-w-[96px] w-auto',\n className,\n )}\n {...props}\n />\n </MenuPrimitive.Positioner>\n </MenuPrimitive.Portal>\n );\n}\nSubPopup.displayName = 'ContextMenu.SubPopup';\n\n// ============================================\n// CheckboxItem\n// ============================================\n\nfunction CheckboxItem({\n className,\n children,\n checked,\n ...props\n}: MenuPrimitive.CheckboxItem.Props) {\n return (\n <MenuPrimitive.CheckboxItem\n data-slot=\"context-menu-checkbox-item\"\n className={cn(\n \"focus:bg-accent focus:text-popover-foreground focus:**:text-popover-foreground gap-2 rounded-md py-1.5 pe-2 ps-8 text-base leading-6 [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 transition-colors duration-150 ease-smooth motion-reduce:transition-none\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute start-2 flex size-4 items-center justify-center\"\n data-slot=\"context-menu-checkbox-item-indicator\"\n >\n <MenuPrimitive.CheckboxItemIndicator className=\"animate-in zoom-in-75 duration-150 motion-reduce:animate-none\">\n <Check />\n </MenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </MenuPrimitive.CheckboxItem>\n );\n}\nCheckboxItem.displayName = 'ContextMenu.CheckboxItem';\n\n// ============================================\n// RadioGroup\n// ============================================\n\nfunction RadioGroup({ ...props }: MenuPrimitive.RadioGroup.Props) {\n return (\n <MenuPrimitive.RadioGroup data-slot=\"context-menu-radio-group\" {...props} />\n );\n}\nRadioGroup.displayName = 'ContextMenu.RadioGroup';\n\n// ============================================\n// RadioItem\n// ============================================\n\nfunction RadioItem({\n className,\n children,\n ...props\n}: MenuPrimitive.RadioItem.Props) {\n return (\n <MenuPrimitive.RadioItem\n data-slot=\"context-menu-radio-item\"\n className={cn(\n \"focus:bg-accent focus:text-popover-foreground focus:**:text-popover-foreground gap-2 rounded-md py-1.5 pe-2 ps-8 text-base leading-6 [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 transition-colors duration-150 ease-smooth motion-reduce:transition-none\",\n className,\n )}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute start-2 flex size-4 items-center justify-center\"\n data-slot=\"context-menu-radio-item-indicator\"\n >\n <MenuPrimitive.RadioItemIndicator className=\"animate-in zoom-in-75 duration-150 motion-reduce:animate-none\">\n <Check />\n </MenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </MenuPrimitive.RadioItem>\n );\n}\nRadioItem.displayName = 'ContextMenu.RadioItem';\n\n// ============================================\n// Separator\n// ============================================\n\nfunction Separator({ className, ...props }: MenuPrimitive.Separator.Props) {\n return (\n <MenuPrimitive.Separator\n data-slot=\"context-menu-separator\"\n className={cn('bg-border my-1 h-px', className)}\n {...props}\n />\n );\n}\nSeparator.displayName = 'ContextMenu.Separator';\n\n// ============================================\n// Shortcut\n// ============================================\n\nfunction Shortcut({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"context-menu-shortcut\"\n className={cn(\n 'text-muted-foreground group-focus/context-menu-item:text-popover-foreground ms-auto text-xs tracking-widest transition-colors duration-150 ease-smooth motion-reduce:transition-none',\n className,\n )}\n {...props}\n />\n );\n}\nShortcut.displayName = 'ContextMenu.Shortcut';\n\n// ============================================\n// Type exports\n// ============================================\n\nexport type ContextMenuRootProps = RootProps;\nexport type ContextMenuTriggerProps = TriggerProps;\nexport type ContextMenuPopupProps = PopupProps;\n\n// ============================================\n// Compound component via dot notation (ADR-011)\n// ============================================\n\nconst ContextMenu = Object.assign(Root, {\n Root,\n Trigger,\n Portal,\n Popup,\n Group,\n Label,\n Item,\n Sub,\n SubTrigger,\n SubPopup,\n CheckboxItem,\n RadioGroup,\n RadioItem,\n Separator,\n Shortcut,\n});\n\nexport {\n CheckboxItem as ContextMenuCheckboxItem,\n ContextMenu,\n Group as ContextMenuGroup,\n Item as ContextMenuItem,\n Label as ContextMenuLabel,\n Popup as ContextMenuPopup,\n Portal as ContextMenuPortal,\n RadioGroup as ContextMenuRadioGroup,\n RadioItem as ContextMenuRadioItem,\n // Sub-components with ContextMenu prefix for direct imports\n Root as ContextMenuRoot,\n Separator as ContextMenuSeparator,\n Shortcut as ContextMenuShortcut,\n Sub as ContextMenuSub,\n SubPopup as ContextMenuSubPopup,\n SubTrigger as ContextMenuSubTrigger,\n Trigger as ContextMenuTrigger,\n};\n"],"mappings":"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"}
|
package/dist/index207.js
CHANGED
|
@@ -1,280 +1,154 @@
|
|
|
1
1
|
import { cn } from "./index2.js";
|
|
2
2
|
import { Button } from "./index5.js";
|
|
3
|
-
import { cva } from "class-variance-authority";
|
|
4
|
-
import { X } from "lucide-react";
|
|
5
3
|
import * as React from "react";
|
|
6
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
-
import {
|
|
8
|
-
//#region src/components/organisms/overlays/
|
|
9
|
-
var closeButtonVariants = cva("", {
|
|
10
|
-
variants: { size: {
|
|
11
|
-
sm: "",
|
|
12
|
-
md: "",
|
|
13
|
-
lg: ""
|
|
14
|
-
} },
|
|
15
|
-
defaultVariants: { size: "sm" }
|
|
16
|
-
});
|
|
17
|
-
var buttonSizeMap = {
|
|
18
|
-
sm: "icon-sm",
|
|
19
|
-
md: "icon",
|
|
20
|
-
lg: "icon-lg"
|
|
21
|
-
};
|
|
22
|
-
var CloseButton = React.forwardRef(({ className, size = "sm", "aria-label": ariaLabel = "Close", ...props }, ref) => {
|
|
23
|
-
return /* @__PURE__ */ jsxs(Button, {
|
|
24
|
-
ref,
|
|
25
|
-
"data-slot": "close-button",
|
|
26
|
-
appearance: "ghost",
|
|
27
|
-
variant: "secondary",
|
|
28
|
-
size: buttonSizeMap[size ?? "sm"],
|
|
29
|
-
className: cn(closeButtonVariants({ size }), className),
|
|
30
|
-
"aria-label": ariaLabel,
|
|
31
|
-
...props,
|
|
32
|
-
children: [/* @__PURE__ */ jsx(X, {}), /* @__PURE__ */ jsx("span", {
|
|
33
|
-
className: "sr-only",
|
|
34
|
-
children: ariaLabel
|
|
35
|
-
})]
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
CloseButton.displayName = "CloseButton";
|
|
5
|
+
import { AlertDialog } from "@base-ui/react/alert-dialog";
|
|
6
|
+
//#region src/components/organisms/overlays/AlertDialog/AlertDialog.tsx
|
|
39
7
|
var Root = React.forwardRef(function Root({ ...props }, _ref) {
|
|
40
|
-
return /* @__PURE__ */ jsx(
|
|
41
|
-
"data-slot": "dialog",
|
|
8
|
+
return /* @__PURE__ */ jsx(AlertDialog.Root, {
|
|
9
|
+
"data-slot": "alert-dialog",
|
|
42
10
|
...props
|
|
43
11
|
});
|
|
44
12
|
});
|
|
45
|
-
Root.displayName = "
|
|
13
|
+
Root.displayName = "AlertDialog.Root";
|
|
46
14
|
var Trigger = React.forwardRef(function Trigger({ ...props }, ref) {
|
|
47
|
-
return /* @__PURE__ */ jsx(
|
|
15
|
+
return /* @__PURE__ */ jsx(AlertDialog.Trigger, {
|
|
48
16
|
ref,
|
|
49
|
-
"data-slot": "dialog-trigger",
|
|
17
|
+
"data-slot": "alert-dialog-trigger",
|
|
50
18
|
...props
|
|
51
19
|
});
|
|
52
20
|
});
|
|
53
|
-
Trigger.displayName = "
|
|
21
|
+
Trigger.displayName = "AlertDialog.Trigger";
|
|
54
22
|
function Portal({ ...props }) {
|
|
55
|
-
return /* @__PURE__ */ jsx(
|
|
56
|
-
"data-slot": "dialog-portal",
|
|
23
|
+
return /* @__PURE__ */ jsx(AlertDialog.Portal, {
|
|
24
|
+
"data-slot": "alert-dialog-portal",
|
|
57
25
|
...props
|
|
58
26
|
});
|
|
59
27
|
}
|
|
60
|
-
Portal.displayName = "
|
|
61
|
-
|
|
62
|
-
return
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}
|
|
68
|
-
|
|
28
|
+
Portal.displayName = "AlertDialog.Portal";
|
|
29
|
+
function isPortalContainerRef(container) {
|
|
30
|
+
return container !== null && typeof container === "object" && "current" in container;
|
|
31
|
+
}
|
|
32
|
+
function usePortalContainer(container) {
|
|
33
|
+
return React.useMemo(() => {
|
|
34
|
+
if (container == null || isPortalContainerRef(container)) return container;
|
|
35
|
+
return { current: container };
|
|
36
|
+
}, [container]);
|
|
37
|
+
}
|
|
69
38
|
var Backdrop = React.forwardRef(function Backdrop({ className, disableAnimation, disableBackdropBlur, ...props }, ref) {
|
|
70
|
-
return /* @__PURE__ */ jsx(
|
|
39
|
+
return /* @__PURE__ */ jsx(AlertDialog.Backdrop, {
|
|
71
40
|
ref,
|
|
72
|
-
"data-slot": "dialog-backdrop",
|
|
41
|
+
"data-slot": "alert-dialog-backdrop",
|
|
73
42
|
className: cn("bg-background/80/10 fixed inset-0 isolate z-50", !disableAnimation && "data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 duration-100 motion-reduce:animate-none", !disableBackdropBlur && "supports-backdrop-filter:backdrop-blur-xs", className),
|
|
74
43
|
...props
|
|
75
44
|
});
|
|
76
45
|
});
|
|
77
|
-
Backdrop.displayName = "
|
|
46
|
+
Backdrop.displayName = "AlertDialog.Backdrop";
|
|
78
47
|
var Viewport = React.forwardRef(function Viewport({ className, children, ...props }, ref) {
|
|
79
|
-
return /* @__PURE__ */ jsx(
|
|
48
|
+
return /* @__PURE__ */ jsx(AlertDialog.Viewport, {
|
|
80
49
|
ref,
|
|
81
|
-
"data-slot": "dialog-viewport",
|
|
50
|
+
"data-slot": "alert-dialog-viewport",
|
|
82
51
|
className: cn("fixed inset-0 z-50 flex items-center justify-center p-4", className),
|
|
83
52
|
...props,
|
|
84
53
|
children
|
|
85
54
|
});
|
|
86
55
|
});
|
|
87
|
-
Viewport.displayName = "
|
|
88
|
-
function
|
|
89
|
-
return /* @__PURE__ */ jsxs(Portal, {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
PopupBase.displayName = "PopupBase";
|
|
101
|
-
function HeaderBase({ className, ...props }) {
|
|
102
|
-
return /* @__PURE__ */ jsx("div", {
|
|
103
|
-
"data-slot": "dialog-header",
|
|
104
|
-
className: cn("flex w-full", className),
|
|
105
|
-
...props
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
HeaderBase.displayName = "HeaderBase";
|
|
109
|
-
function FooterBase({ className, showCloseButton = false, children, ...props }) {
|
|
110
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
111
|
-
"data-slot": "dialog-footer",
|
|
112
|
-
className: cn("flex", className),
|
|
113
|
-
...props,
|
|
114
|
-
children: [children, showCloseButton && /* @__PURE__ */ jsx(Dialog.Close, {
|
|
115
|
-
render: /* @__PURE__ */ jsx(Button, {
|
|
116
|
-
appearance: "outline",
|
|
117
|
-
variant: "secondary"
|
|
118
|
-
}),
|
|
119
|
-
children: "Close"
|
|
56
|
+
Viewport.displayName = "AlertDialog.Viewport";
|
|
57
|
+
var Popup = React.forwardRef(function Popup({ className, container, size = "default", disableAnimation, disableBackdropBlur, ...props }, ref) {
|
|
58
|
+
return /* @__PURE__ */ jsxs(Portal, {
|
|
59
|
+
container: usePortalContainer(container),
|
|
60
|
+
children: [/* @__PURE__ */ jsx(Backdrop, {
|
|
61
|
+
disableAnimation,
|
|
62
|
+
disableBackdropBlur
|
|
63
|
+
}), /* @__PURE__ */ jsx(AlertDialog.Popup, {
|
|
64
|
+
ref,
|
|
65
|
+
"data-slot": "alert-dialog-popup",
|
|
66
|
+
"data-size": size,
|
|
67
|
+
className: cn("bg-background ring-foreground/10 flex w-[calc(100%-2rem)] max-w-[483px] flex-col items-start gap-4 rounded-xl p-6 ring-1 shadow-lg sm:w-[483px] data-[size=sm]:sm:max-w-sm group/alert-dialog-content fixed top-1/2 left-1/2 z-50 -translate-x-1/2 -translate-y-1/2 outline-none", !disableAnimation && "data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 duration-150 motion-reduce:animate-none", className),
|
|
68
|
+
...props
|
|
120
69
|
})]
|
|
121
70
|
});
|
|
122
|
-
}
|
|
123
|
-
FooterBase.displayName = "FooterBase";
|
|
124
|
-
function TitleBase({ className, ...props }) {
|
|
125
|
-
return /* @__PURE__ */ jsx(Dialog.Title, {
|
|
126
|
-
"data-slot": "dialog-title",
|
|
127
|
-
className: cn("leading-none font-medium", className),
|
|
128
|
-
...props
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
TitleBase.displayName = "TitleBase";
|
|
132
|
-
function DescriptionBase({ className, ...props }) {
|
|
133
|
-
return /* @__PURE__ */ jsx(Dialog.Description, {
|
|
134
|
-
"data-slot": "dialog-description",
|
|
135
|
-
className: cn("text-muted-foreground *:[a]:hover:text-foreground text-sm *:[a]:underline *:[a]:underline-offset-3", className),
|
|
136
|
-
...props
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
DescriptionBase.displayName = "DescriptionBase";
|
|
140
|
-
var popupVariants = cva("", {
|
|
141
|
-
variants: { size: {
|
|
142
|
-
sm: "sm:max-w-[430px] overflow-hidden",
|
|
143
|
-
md: "sm:max-w-[500px] overflow-hidden",
|
|
144
|
-
lg: "sm:max-w-[560px] overflow-hidden",
|
|
145
|
-
xl: "sm:max-w-[640px] overflow-hidden",
|
|
146
|
-
full: "sm:max-w-[calc(100vw-2rem)] overflow-hidden"
|
|
147
|
-
} },
|
|
148
|
-
defaultVariants: { size: "sm" }
|
|
149
71
|
});
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
disableBackdropBlur: shouldDisableBackdropBlur,
|
|
160
|
-
...props,
|
|
161
|
-
children
|
|
72
|
+
Popup.displayName = "AlertDialog.Popup";
|
|
73
|
+
var alertDialogFooterActionClassName = "gap-2 rounded-xl px-4";
|
|
74
|
+
var Header = React.forwardRef(function Header({ className, align = "start", ...props }, ref) {
|
|
75
|
+
return /* @__PURE__ */ jsx("div", {
|
|
76
|
+
ref,
|
|
77
|
+
"data-slot": "alert-dialog-header",
|
|
78
|
+
"data-align": align,
|
|
79
|
+
className: cn("flex w-full flex-col gap-2", align === "center" ? "items-center text-center" : "items-start text-left", className),
|
|
80
|
+
...props
|
|
162
81
|
});
|
|
163
|
-
}
|
|
164
|
-
Popup.displayName = "Dialog.Popup";
|
|
165
|
-
var iconVariants = cva("flex shrink-0 items-center justify-center rounded-xl", {
|
|
166
|
-
variants: {
|
|
167
|
-
variant: {
|
|
168
|
-
default: "bg-primary/10 text-primary",
|
|
169
|
-
success: "bg-success/10 text-success",
|
|
170
|
-
warning: "bg-warning/10 text-warning",
|
|
171
|
-
destructive: "bg-destructive/10 text-destructive",
|
|
172
|
-
info: "bg-primary/10 text-primary"
|
|
173
|
-
},
|
|
174
|
-
size: {
|
|
175
|
-
sm: "size-8 [&_svg]:size-4",
|
|
176
|
-
md: "size-10 [&_svg]:size-5",
|
|
177
|
-
lg: "size-12 [&_svg]:size-6"
|
|
178
|
-
}
|
|
179
|
-
},
|
|
180
|
-
defaultVariants: {
|
|
181
|
-
variant: "default",
|
|
182
|
-
size: "md"
|
|
183
|
-
}
|
|
184
82
|
});
|
|
185
|
-
|
|
83
|
+
Header.displayName = "AlertDialog.Header";
|
|
84
|
+
var Footer = React.forwardRef(function Footer({ className, align = "start", ...props }, ref) {
|
|
186
85
|
return /* @__PURE__ */ jsx("div", {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
...props,
|
|
193
|
-
children
|
|
86
|
+
ref,
|
|
87
|
+
"data-slot": "alert-dialog-footer",
|
|
88
|
+
"data-align": align,
|
|
89
|
+
className: cn("flex w-full flex-row items-center gap-3", align === "center" ? "justify-center" : "justify-end", className),
|
|
90
|
+
...props
|
|
194
91
|
});
|
|
195
|
-
}
|
|
196
|
-
Icon.displayName = "Dialog.Icon";
|
|
197
|
-
var headerVariants = cva("group/dialog-header flex w-full gap-4", {
|
|
198
|
-
variants: { layout: {
|
|
199
|
-
stacked: "flex-col items-start text-left",
|
|
200
|
-
horizontal: "flex-col items-start text-left sm:flex-row",
|
|
201
|
-
centered: "flex flex-col items-center text-center"
|
|
202
|
-
} },
|
|
203
|
-
defaultVariants: { layout: "stacked" }
|
|
204
92
|
});
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
return /* @__PURE__ */ jsx(HeaderBase, {
|
|
208
|
-
"data-layout": resolvedLayout,
|
|
209
|
-
className: cn(headerVariants({ layout: resolvedLayout }), divider && "border-b border-border", (divider || paddingBottom) && "pb-4", className),
|
|
210
|
-
...props,
|
|
211
|
-
children
|
|
212
|
-
});
|
|
213
|
-
}
|
|
214
|
-
Header.displayName = "Dialog.Header";
|
|
215
|
-
function HeaderContent({ className, children, ...props }) {
|
|
93
|
+
Footer.displayName = "AlertDialog.Footer";
|
|
94
|
+
var Media = React.forwardRef(function Media({ className, ...props }, ref) {
|
|
216
95
|
return /* @__PURE__ */ jsx("div", {
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
96
|
+
ref,
|
|
97
|
+
"data-slot": "alert-dialog-media",
|
|
98
|
+
className: cn("bg-muted mb-2 inline-flex size-16 items-center justify-center rounded-md *:[svg:not([class*='size-'])]:size-8", className),
|
|
99
|
+
...props
|
|
221
100
|
});
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
function Title({ className, ...props }) {
|
|
225
|
-
return /* @__PURE__ */ jsx(
|
|
226
|
-
|
|
101
|
+
});
|
|
102
|
+
Media.displayName = "AlertDialog.Media";
|
|
103
|
+
var Title = React.forwardRef(function Title({ className, ...props }, ref) {
|
|
104
|
+
return /* @__PURE__ */ jsx(AlertDialog.Title, {
|
|
105
|
+
ref,
|
|
106
|
+
"data-slot": "alert-dialog-title",
|
|
107
|
+
className: cn("text-lg leading-7 font-semibold", className),
|
|
227
108
|
...props
|
|
228
109
|
});
|
|
229
|
-
}
|
|
230
|
-
Title.displayName = "
|
|
231
|
-
function Description({ className, ...props }) {
|
|
232
|
-
return /* @__PURE__ */ jsx(
|
|
233
|
-
|
|
110
|
+
});
|
|
111
|
+
Title.displayName = "AlertDialog.Title";
|
|
112
|
+
var Description = React.forwardRef(function Description({ className, ...props }, ref) {
|
|
113
|
+
return /* @__PURE__ */ jsx(AlertDialog.Description, {
|
|
114
|
+
ref,
|
|
115
|
+
"data-slot": "alert-dialog-description",
|
|
116
|
+
className: cn("text-muted-foreground *:[a]:hover:text-foreground text-sm leading-5 *:[a]:underline *:[a]:underline-offset-3", className),
|
|
234
117
|
...props
|
|
235
118
|
});
|
|
236
|
-
}
|
|
237
|
-
Description.displayName = "Dialog.Description";
|
|
238
|
-
var footerVariants = cva("w-full gap-3", {
|
|
239
|
-
variants: { layout: {
|
|
240
|
-
horizontal: "flex flex-col-reverse sm:flex-row sm:items-center sm:justify-end",
|
|
241
|
-
"horizontal-fill": "flex flex-col-reverse sm:flex-row sm:items-center [&>*]:w-full [&>*]:sm:flex-1",
|
|
242
|
-
"horizontal-right": "flex flex-col-reverse sm:flex-row sm:items-center sm:justify-end",
|
|
243
|
-
stacked: "flex flex-col [&>*]:w-full",
|
|
244
|
-
"vertical-fill": "flex flex-col [&>*]:w-full",
|
|
245
|
-
wizard: "flex flex-col items-stretch sm:flex-row sm:items-center sm:justify-between"
|
|
246
|
-
} },
|
|
247
|
-
defaultVariants: { layout: "horizontal-fill" }
|
|
248
119
|
});
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
return /* @__PURE__ */ jsx(
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
120
|
+
Description.displayName = "AlertDialog.Description";
|
|
121
|
+
var FooterActionButton = React.forwardRef(function FooterActionButton({ className, dataSlot, shape = "rounded", size = "default", ...props }, ref) {
|
|
122
|
+
return /* @__PURE__ */ jsx(Button, {
|
|
123
|
+
ref,
|
|
124
|
+
"data-slot": dataSlot,
|
|
125
|
+
size,
|
|
126
|
+
shape,
|
|
127
|
+
className: cn(alertDialogFooterActionClassName, className),
|
|
128
|
+
...props
|
|
256
129
|
});
|
|
257
|
-
}
|
|
258
|
-
|
|
130
|
+
});
|
|
131
|
+
FooterActionButton.displayName = "AlertDialog.FooterActionButton";
|
|
259
132
|
var Action = React.forwardRef(function Action({ className, appearance = "solid", variant = "primary", size = "default", shape = "rounded", ...props }, ref) {
|
|
260
|
-
return /* @__PURE__ */ jsx(
|
|
133
|
+
return /* @__PURE__ */ jsx(FooterActionButton, {
|
|
261
134
|
ref,
|
|
262
|
-
|
|
135
|
+
dataSlot: "alert-dialog-action",
|
|
263
136
|
appearance,
|
|
264
137
|
variant,
|
|
265
138
|
size,
|
|
266
139
|
shape,
|
|
267
|
-
className
|
|
140
|
+
className,
|
|
268
141
|
...props
|
|
269
142
|
});
|
|
270
143
|
});
|
|
271
|
-
Action.displayName = "
|
|
144
|
+
Action.displayName = "AlertDialog.Action";
|
|
272
145
|
var Cancel = React.forwardRef(function Cancel({ className, appearance = "outline", variant = "secondary", size = "default", shape = "rounded", ...props }, ref) {
|
|
273
|
-
return /* @__PURE__ */ jsx(
|
|
146
|
+
return /* @__PURE__ */ jsx(AlertDialog.Close, {
|
|
274
147
|
ref,
|
|
275
|
-
"data-slot": "dialog-cancel",
|
|
276
|
-
className
|
|
277
|
-
render: /* @__PURE__ */ jsx(
|
|
148
|
+
"data-slot": "alert-dialog-cancel",
|
|
149
|
+
className,
|
|
150
|
+
render: /* @__PURE__ */ jsx(FooterActionButton, {
|
|
151
|
+
dataSlot: "alert-dialog-cancel",
|
|
278
152
|
appearance,
|
|
279
153
|
variant,
|
|
280
154
|
size,
|
|
@@ -283,17 +157,8 @@ var Cancel = React.forwardRef(function Cancel({ className, appearance = "outline
|
|
|
283
157
|
...props
|
|
284
158
|
});
|
|
285
159
|
});
|
|
286
|
-
Cancel.displayName = "
|
|
287
|
-
|
|
288
|
-
return /* @__PURE__ */ jsx("div", {
|
|
289
|
-
"data-slot": "dialog-body",
|
|
290
|
-
className: cn("flex flex-col gap-4", className),
|
|
291
|
-
...props,
|
|
292
|
-
children
|
|
293
|
-
});
|
|
294
|
-
}
|
|
295
|
-
Body.displayName = "Dialog.Body";
|
|
296
|
-
var Dialog$1 = Object.assign(Root, {
|
|
160
|
+
Cancel.displayName = "AlertDialog.Cancel";
|
|
161
|
+
var AlertDialog$1 = Object.assign(Root, {
|
|
297
162
|
Root,
|
|
298
163
|
Trigger,
|
|
299
164
|
Portal,
|
|
@@ -301,17 +166,14 @@ var Dialog$1 = Object.assign(Root, {
|
|
|
301
166
|
Viewport,
|
|
302
167
|
Popup,
|
|
303
168
|
Header,
|
|
304
|
-
HeaderContent,
|
|
305
|
-
Body,
|
|
306
169
|
Footer,
|
|
307
|
-
Action,
|
|
308
|
-
Cancel,
|
|
309
170
|
Title,
|
|
310
171
|
Description,
|
|
311
|
-
|
|
312
|
-
|
|
172
|
+
Action,
|
|
173
|
+
Cancel,
|
|
174
|
+
Media
|
|
313
175
|
});
|
|
314
176
|
//#endregion
|
|
315
|
-
export {
|
|
177
|
+
export { AlertDialog$1 as AlertDialog, Action as AlertDialogAction, Backdrop as AlertDialogBackdrop, Cancel as AlertDialogCancel, Description as AlertDialogDescription, Footer as AlertDialogFooter, Header as AlertDialogHeader, Media as AlertDialogMedia, Popup as AlertDialogPopup, Portal as AlertDialogPortal, Root as AlertDialogRoot, Title as AlertDialogTitle, Trigger as AlertDialogTrigger, Viewport as AlertDialogViewport };
|
|
316
178
|
|
|
317
179
|
//# sourceMappingURL=index207.js.map
|
package/dist/index207.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index207.js","names":[],"sources":["../src/components/organisms/overlays/Dialog/Dialog.tsx"],"sourcesContent":["import { Dialog as DialogPrimitive } from '@base-ui/react/dialog';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { Button } from '@/components/atoms/buttons/Button';\nimport { cn } from '@/lib/utils';\n\n// ============================================\n// CloseButton - Internal component for dialog close button\n// ============================================\n\nimport { X } from 'lucide-react';\n\nconst closeButtonVariants = cva('', {\n variants: {\n size: {\n sm: '',\n md: '',\n lg: '',\n },\n },\n defaultVariants: {\n size: 'sm',\n },\n});\n\nconst buttonSizeMap = {\n sm: 'icon-sm',\n md: 'icon',\n lg: 'icon-lg',\n} as const;\n\ninterface CloseButtonProps\n extends Omit<\n React.ComponentProps<typeof Button>,\n 'variant' | 'size' | 'children'\n >,\n VariantProps<typeof closeButtonVariants> {\n 'aria-label'?: string;\n}\n\nconst CloseButton = React.forwardRef<HTMLButtonElement, CloseButtonProps>(\n (\n { className, size = 'sm', 'aria-label': ariaLabel = 'Close', ...props },\n ref,\n ) => {\n return (\n <Button\n ref={ref}\n data-slot=\"close-button\"\n appearance=\"ghost\"\n variant=\"secondary\"\n size={buttonSizeMap[size ?? 'sm']}\n className={cn(closeButtonVariants({ size }), className)}\n aria-label={ariaLabel}\n {...props}\n >\n <X />\n <span className=\"sr-only\">{ariaLabel}</span>\n </Button>\n );\n },\n);\n\nCloseButton.displayName = 'CloseButton';\n\n// ============================================\n// Base Dialog Components (from ui/dialog.tsx)\n// ============================================\n\nconst Root = React.forwardRef<HTMLDivElement, DialogPrimitive.Root.Props>(\n function Root({ ...props }, _ref) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n },\n);\nRoot.displayName = 'Dialog.Root';\n\nconst Trigger = React.forwardRef<\n HTMLButtonElement,\n DialogPrimitive.Trigger.Props\n>(function Trigger({ ...props }, ref) {\n return (\n <DialogPrimitive.Trigger ref={ref} data-slot=\"dialog-trigger\" {...props} />\n );\n});\nTrigger.displayName = 'Dialog.Trigger';\n\nfunction Portal({ ...props }: DialogPrimitive.Portal.Props) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\nPortal.displayName = 'Dialog.Portal';\n\nconst Close = React.forwardRef<HTMLButtonElement, DialogPrimitive.Close.Props>(\n function Close({ ...props }, ref) {\n return (\n <DialogPrimitive.Close ref={ref} data-slot=\"dialog-close\" {...props} />\n );\n },\n);\nClose.displayName = 'Dialog.Close';\n\nexport interface BackdropProps extends DialogPrimitive.Backdrop.Props {\n /** Disables open/close animations */\n disableAnimation?: boolean;\n /** Disables backdrop blur effect */\n disableBackdropBlur?: boolean;\n}\n\nconst Backdrop = React.forwardRef<HTMLDivElement, BackdropProps>(\n function Backdrop(\n { className, disableAnimation, disableBackdropBlur, ...props },\n ref,\n ) {\n return (\n <DialogPrimitive.Backdrop\n ref={ref}\n data-slot=\"dialog-backdrop\"\n className={cn(\n 'bg-background/80/10 fixed inset-0 isolate z-50',\n !disableAnimation &&\n 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 duration-100 motion-reduce:animate-none',\n !disableBackdropBlur && 'supports-backdrop-filter:backdrop-blur-xs',\n className,\n )}\n {...props}\n />\n );\n },\n);\nBackdrop.displayName = 'Dialog.Backdrop';\n\n// ============================================\n// Viewport - Scroll container for dialog positioning\n// ============================================\n\nexport interface ViewportProps extends DialogPrimitive.Viewport.Props {}\n\nconst Viewport = React.forwardRef<HTMLDivElement, ViewportProps>(\n function Viewport({ className, children, ...props }, ref) {\n return (\n <DialogPrimitive.Viewport\n ref={ref}\n data-slot=\"dialog-viewport\"\n className={cn(\n 'fixed inset-0 z-50 flex items-center justify-center p-4',\n className,\n )}\n {...props}\n >\n {children}\n </DialogPrimitive.Viewport>\n );\n },\n);\nViewport.displayName = 'Dialog.Viewport';\n\n// Base Popup (internal use)\ninterface PopupBaseProps extends DialogPrimitive.Popup.Props {\n showCloseButton?: boolean;\n initialFocus?: boolean | React.RefObject<HTMLElement | null>;\n disableAnimation?: boolean;\n disableBackdropBlur?: boolean;\n}\n\nfunction PopupBase({\n className,\n children,\n showCloseButton = true,\n initialFocus,\n disableAnimation,\n disableBackdropBlur,\n ...props\n}: PopupBaseProps) {\n return (\n <Portal>\n <Backdrop\n disableAnimation={disableAnimation}\n disableBackdropBlur={disableBackdropBlur}\n />\n <DialogPrimitive.Popup\n data-slot=\"dialog-popup\"\n initialFocus={initialFocus}\n className={cn(\n 'fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100vw-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl border border-border bg-card p-6 text-sm text-card-foreground shadow-lg outline-none',\n !disableAnimation &&\n 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 duration-150 motion-reduce:animate-none',\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n render={<CloseButton className=\"absolute top-2 end-2\" />}\n />\n )}\n </DialogPrimitive.Popup>\n </Portal>\n );\n}\nPopupBase.displayName = 'PopupBase';\n\n// Base Header (internal use)\nfunction HeaderBase({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn('flex w-full', className)}\n {...props}\n />\n );\n}\nHeaderBase.displayName = 'HeaderBase';\n\n// Base Footer (internal use)\nfunction FooterBase({\n className,\n showCloseButton = false,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n showCloseButton?: boolean;\n}) {\n return (\n <div data-slot=\"dialog-footer\" className={cn('flex', className)} {...props}>\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n render={<Button appearance=\"outline\" variant=\"secondary\" />}\n >\n Close\n </DialogPrimitive.Close>\n )}\n </div>\n );\n}\nFooterBase.displayName = 'FooterBase';\n\n// Base Title (internal use)\nfunction TitleBase({ className, ...props }: DialogPrimitive.Title.Props) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn('leading-none font-medium', className)}\n {...props}\n />\n );\n}\nTitleBase.displayName = 'TitleBase';\n\n// Base Description (internal use)\nfunction DescriptionBase({\n className,\n ...props\n}: DialogPrimitive.Description.Props) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\n 'text-muted-foreground *:[a]:hover:text-foreground text-sm *:[a]:underline *:[a]:underline-offset-3',\n className,\n )}\n {...props}\n />\n );\n}\nDescriptionBase.displayName = 'DescriptionBase';\n\n// ============================================\n// Popup - Extended with size variants\n// ============================================\n\nconst popupVariants = cva('', {\n variants: {\n size: {\n sm: 'sm:max-w-[430px] overflow-hidden',\n md: 'sm:max-w-[500px] overflow-hidden',\n lg: 'sm:max-w-[560px] overflow-hidden',\n xl: 'sm:max-w-[640px] overflow-hidden',\n full: 'sm:max-w-[calc(100vw-2rem)] overflow-hidden',\n },\n },\n defaultVariants: {\n size: 'sm',\n },\n});\n\nexport interface PopupProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof popupVariants> {\n /** Whether to show the close button */\n showCloseButton?: boolean;\n /** Whether to hide the close button (alias for showCloseButton=false) */\n hideCloseButton?: boolean;\n /**\n * Controls where focus moves when the dialog opens.\n * - `false`: Prevents auto-focus (equivalent to Radix's `onOpenAutoFocus={(e) => e.preventDefault()}`)\n * - `true`: Default focus behavior (first tabbable element)\n * - `RefObject`: Focus a specific element\n */\n initialFocus?: boolean | React.RefObject<HTMLElement | null>;\n /**\n * Disables all visual effects (animations and backdrop blur).\n * Use granular props (`disableAnimation`, `disableBackdropBlur`) for more control.\n */\n disableEffects?: boolean;\n /** Disables open/close animations on the dialog and overlay */\n disableAnimation?: boolean;\n /** Disables backdrop blur effect on the overlay */\n disableBackdropBlur?: boolean;\n}\n\nfunction Popup({\n className,\n children,\n size,\n showCloseButton = true,\n hideCloseButton = false,\n initialFocus,\n disableEffects,\n disableAnimation,\n disableBackdropBlur,\n ...props\n}: PopupProps) {\n // When disableEffects is true, disable all effects unless granular props override\n const shouldDisableAnimation = disableAnimation ?? disableEffects;\n const shouldDisableBackdropBlur = disableBackdropBlur ?? disableEffects;\n const shouldShowCloseButton = showCloseButton && !hideCloseButton;\n\n return (\n <PopupBase\n className={cn(popupVariants({ size }), className)}\n showCloseButton={shouldShowCloseButton}\n initialFocus={initialFocus}\n disableAnimation={shouldDisableAnimation}\n disableBackdropBlur={shouldDisableBackdropBlur}\n {...props}\n >\n {children}\n </PopupBase>\n );\n}\nPopup.displayName = 'Dialog.Popup';\n\n// ============================================\n// Icon - Featured icon with colored background\n// ============================================\n\nconst iconVariants = cva(\n 'flex shrink-0 items-center justify-center rounded-xl',\n {\n variants: {\n variant: {\n default: 'bg-primary/10 text-primary',\n success: 'bg-success/10 text-success',\n warning: 'bg-warning/10 text-warning',\n destructive: 'bg-destructive/10 text-destructive',\n info: 'bg-primary/10 text-primary',\n },\n size: {\n sm: 'size-8 [&_svg]:size-4',\n md: 'size-10 [&_svg]:size-5',\n lg: 'size-12 [&_svg]:size-6',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n },\n);\n\nexport interface IconProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof iconVariants> {\n children: React.ReactNode;\n}\n\nfunction Icon({ className, variant, size, children, ...props }: IconProps) {\n return (\n <div\n data-slot=\"dialog-icon\"\n className={cn(iconVariants({ variant, size }), className)}\n {...props}\n >\n {children}\n </div>\n );\n}\nIcon.displayName = 'Dialog.Icon';\n\n// ============================================\n// Header - Extended with layout variants\n// ============================================\n\nconst headerVariants = cva('group/dialog-header flex w-full gap-4', {\n variants: {\n layout: {\n stacked: 'flex-col items-start text-left',\n horizontal: 'flex-col items-start text-left sm:flex-row',\n centered: 'flex flex-col items-center text-center',\n },\n },\n defaultVariants: {\n layout: 'stacked',\n },\n});\n\nexport interface HeaderProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof headerVariants> {\n /** Adds the Figma header separator below the title block. */\n divider?: boolean;\n /** Adds Figma header bottom padding without forcing a divider. */\n paddingBottom?: boolean;\n}\n\nfunction Header({\n className,\n layout,\n children,\n divider = false,\n paddingBottom = false,\n ...props\n}: HeaderProps) {\n const resolvedLayout = layout ?? 'stacked';\n\n return (\n <HeaderBase\n data-layout={resolvedLayout}\n className={cn(\n headerVariants({ layout: resolvedLayout }),\n divider && 'border-b border-border',\n (divider || paddingBottom) && 'pb-4',\n className,\n )}\n {...props}\n >\n {children}\n </HeaderBase>\n );\n}\nHeader.displayName = 'Dialog.Header';\n\n// ============================================\n// HeaderContent - Text content wrapper\n// ============================================\n\nexport interface HeaderContentProps\n extends React.HTMLAttributes<HTMLDivElement> {}\n\nfunction HeaderContent({ className, children, ...props }: HeaderContentProps) {\n return (\n <div\n data-slot=\"dialog-header-content\"\n className={cn(\n 'flex min-w-0 flex-1 flex-col gap-1',\n 'group-data-[layout=stacked]/dialog-header:w-full',\n 'group-data-[layout=centered]/dialog-header:w-full group-data-[layout=centered]/dialog-header:items-center group-data-[layout=centered]/dialog-header:text-center',\n 'group-data-[layout=horizontal]/dialog-header:w-full group-data-[layout=horizontal]/dialog-header:sm:w-auto',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n}\nHeaderContent.displayName = 'Dialog.HeaderContent';\n\n// ============================================\n// Title - Extended\n// ============================================\n\nexport interface TitleProps extends React.HTMLAttributes<HTMLHeadingElement> {}\n\nfunction Title({ className, ...props }: TitleProps) {\n return (\n <TitleBase\n className={cn(\n 'text-lg font-semibold leading-7 text-foreground',\n className,\n )}\n {...props}\n />\n );\n}\nTitle.displayName = 'Dialog.Title';\n\n// ============================================\n// Description - Extended\n// ============================================\n\nexport interface DescriptionProps\n extends React.HTMLAttributes<HTMLParagraphElement> {}\n\nfunction Description({ className, ...props }: DescriptionProps) {\n return (\n <DescriptionBase\n className={cn('text-sm leading-5 text-secondary-foreground', className)}\n {...props}\n />\n );\n}\nDescription.displayName = 'Dialog.Description';\n\n// ============================================\n// Footer - Extended with layout variants\n// ============================================\n\nconst footerVariants = cva('w-full gap-3', {\n variants: {\n layout: {\n horizontal:\n 'flex flex-col-reverse sm:flex-row sm:items-center sm:justify-end',\n 'horizontal-fill':\n 'flex flex-col-reverse sm:flex-row sm:items-center [&>*]:w-full [&>*]:sm:flex-1',\n 'horizontal-right':\n 'flex flex-col-reverse sm:flex-row sm:items-center sm:justify-end',\n stacked: 'flex flex-col [&>*]:w-full',\n 'vertical-fill': 'flex flex-col [&>*]:w-full',\n wizard:\n 'flex flex-col items-stretch sm:flex-row sm:items-center sm:justify-between',\n },\n },\n defaultVariants: {\n layout: 'horizontal-fill',\n },\n});\n\nexport interface FooterProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof footerVariants> {\n /** Adds the Figma action separator above the footer controls. */\n divider?: boolean;\n}\n\nfunction Footer({\n className,\n layout,\n children,\n divider = false,\n ...props\n}: FooterProps) {\n const resolvedLayout = layout ?? 'horizontal-fill';\n\n return (\n <FooterBase\n data-layout={resolvedLayout}\n className={cn(\n footerVariants({ layout: resolvedLayout }),\n divider && 'border-t border-border pt-4',\n className,\n )}\n {...props}\n >\n {children}\n </FooterBase>\n );\n}\nFooter.displayName = 'Dialog.Footer';\n\n// ============================================\n// Action helpers - Figma footer action buttons\n// ============================================\n\nconst Action = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof Button>\n>(function Action(\n {\n className,\n appearance = 'solid',\n variant = 'primary',\n size = 'default',\n shape = 'rounded',\n ...props\n },\n ref,\n) {\n return (\n <Button\n ref={ref}\n data-slot=\"dialog-action\"\n appearance={appearance}\n variant={variant}\n size={size}\n shape={shape}\n className={cn('rounded-xl', className)}\n {...props}\n />\n );\n});\nAction.displayName = 'Dialog.Action';\n\nconst Cancel = React.forwardRef<\n HTMLButtonElement,\n DialogPrimitive.Close.Props &\n Pick<\n React.ComponentProps<typeof Button>,\n 'appearance' | 'variant' | 'size' | 'shape'\n >\n>(function Cancel(\n {\n className,\n appearance = 'outline',\n variant = 'secondary',\n size = 'default',\n shape = 'rounded',\n ...props\n },\n ref,\n) {\n return (\n <DialogPrimitive.Close\n ref={ref}\n data-slot=\"dialog-cancel\"\n className={cn('rounded-xl', className)}\n render={\n <Button\n appearance={appearance}\n variant={variant}\n size={size}\n shape={shape}\n />\n }\n {...props}\n />\n );\n});\nCancel.displayName = 'Dialog.Cancel';\n\n// ============================================\n// Body - Content area between header and footer\n// ============================================\n\nexport interface BodyProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nfunction Body({ className, children, ...props }: BodyProps) {\n return (\n <div\n data-slot=\"dialog-body\"\n className={cn('flex flex-col gap-4', className)}\n {...props}\n >\n {children}\n </div>\n );\n}\nBody.displayName = 'Dialog.Body';\n\n// ============================================\n// Type exports\n// ============================================\n\nexport type CloseProps = DialogPrimitive.Close.Props;\nexport type PortalProps = DialogPrimitive.Portal.Props;\nexport type TriggerProps = DialogPrimitive.Trigger.Props;\nexport type RootProps = DialogPrimitive.Root.Props;\nexport type ActionProps = React.ComponentProps<typeof Action>;\nexport type CancelProps = React.ComponentProps<typeof Cancel>;\n\n// ============================================\n// Compound component via dot notation (ADR-011)\n// ============================================\n\nconst Dialog = Object.assign(Root, {\n Root,\n Trigger,\n Portal,\n Backdrop,\n Viewport,\n Popup,\n Header,\n HeaderContent,\n Body,\n Footer,\n Action,\n Cancel,\n Title,\n Description,\n Close,\n Icon,\n});\n\nexport {\n Action as DialogAction,\n Backdrop as DialogBackdrop,\n Body as DialogBody,\n Cancel as DialogCancel,\n Close as DialogClose,\n Description as DialogDescription,\n Dialog,\n Footer as DialogFooter,\n footerVariants as dialogFooterVariants,\n Header as DialogHeader,\n HeaderContent as DialogHeaderContent,\n headerVariants as dialogHeaderVariants,\n Icon as DialogIcon,\n iconVariants as dialogIconVariants,\n Popup as DialogPopup,\n Portal as DialogPortal,\n // Variants\n popupVariants as dialogPopupVariants,\n // Sub-components with Dialog prefix for direct imports\n Root as DialogRoot,\n Title as DialogTitle,\n Trigger as DialogTrigger,\n Viewport as DialogViewport,\n};\n"],"mappings":";;;;;;;;AAaA,IAAM,sBAAsB,IAAI,IAAI;CAClC,UAAU,EACR,MAAM;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;CACN,EACF;CACA,iBAAiB,EACf,MAAM,KACR;AACF,CAAC;AAED,IAAM,gBAAgB;CACpB,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAWA,IAAM,cAAc,MAAM,YAEtB,EAAE,WAAW,OAAO,MAAM,cAAc,YAAY,SAAS,GAAG,SAChE,QACG;CACH,OACE,qBAAC,QAAD;EACO;EACL,aAAU;EACV,YAAW;EACX,SAAQ;EACR,MAAM,cAAc,QAAQ;EAC5B,WAAW,GAAG,oBAAoB,EAAE,KAAK,CAAC,GAAG,SAAS;EACtD,cAAY;EACZ,GAAI;YARN,CAUE,oBAAC,GAAD,CAAI,CAAA,GACJ,oBAAC,QAAD;GAAM,WAAU;aAAW;EAAgB,CAAA,CACrC;;AAEZ,CACF;AAEA,YAAY,cAAc;AAM1B,IAAM,OAAO,MAAM,WACjB,SAAS,KAAK,EAAE,GAAG,SAAS,MAAM;CAChC,OAAO,oBAAC,OAAgB,MAAjB;EAAsB,aAAU;EAAS,GAAI;CAAQ,CAAA;AAC9D,CACF;AACA,KAAK,cAAc;AAEnB,IAAM,UAAU,MAAM,WAGpB,SAAS,QAAQ,EAAE,GAAG,SAAS,KAAK;CACpC,OACE,oBAAC,OAAgB,SAAjB;EAA8B;EAAK,aAAU;EAAiB,GAAI;CAAQ,CAAA;AAE9E,CAAC;AACD,QAAQ,cAAc;AAEtB,SAAS,OAAO,EAAE,GAAG,SAAuC;CAC1D,OAAO,oBAAC,OAAgB,QAAjB;EAAwB,aAAU;EAAgB,GAAI;CAAQ,CAAA;AACvE;AACA,OAAO,cAAc;AAErB,IAAM,QAAQ,MAAM,WAClB,SAAS,MAAM,EAAE,GAAG,SAAS,KAAK;CAChC,OACE,oBAAC,OAAgB,OAAjB;EAA4B;EAAK,aAAU;EAAe,GAAI;CAAQ,CAAA;AAE1E,CACF;AACA,MAAM,cAAc;AASpB,IAAM,WAAW,MAAM,WACrB,SAAS,SACP,EAAE,WAAW,kBAAkB,qBAAqB,GAAG,SACvD,KACA;CACA,OACE,oBAAC,OAAgB,UAAjB;EACO;EACL,aAAU;EACV,WAAW,GACT,kDACA,CAAC,oBACC,mIACF,CAAC,uBAAuB,6CACxB,SACF;EACA,GAAI;CACL,CAAA;AAEL,CACF;AACA,SAAS,cAAc;AAQvB,IAAM,WAAW,MAAM,WACrB,SAAS,SAAS,EAAE,WAAW,UAAU,GAAG,SAAS,KAAK;CACxD,OACE,oBAAC,OAAgB,UAAjB;EACO;EACL,aAAU;EACV,WAAW,GACT,2DACA,SACF;EACA,GAAI;EAEH;CACuB,CAAA;AAE9B,CACF;AACA,SAAS,cAAc;AAUvB,SAAS,UAAU,EACjB,WACA,UACA,kBAAkB,MAClB,cACA,kBACA,qBACA,GAAG,SACc;CACjB,OACE,qBAAC,QAAD,EAAA,UAAA,CACE,oBAAC,UAAD;EACoB;EACG;CACtB,CAAA,GACD,qBAAC,OAAgB,OAAjB;EACE,aAAU;EACI;EACd,WAAW,GACT,4MACA,CAAC,oBACC,gLACF,SACF;EACA,GAAI;YATN,CAWG,UACA,mBACC,oBAAC,OAAgB,OAAjB,EACE,QAAQ,oBAAC,aAAD,EAAa,WAAU,uBAAwB,CAAA,EACxD,CAAA,CAEkB;GACjB,EAAA,CAAA;AAEZ;AACA,UAAU,cAAc;AAGxB,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;CACxE,OACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,eAAe,SAAS;EACtC,GAAI;CACL,CAAA;AAEL;AACA,WAAW,cAAc;AAGzB,SAAS,WAAW,EAClB,WACA,kBAAkB,OAClB,UACA,GAAG,SAGF;CACD,OACE,qBAAC,OAAD;EAAK,aAAU;EAAgB,WAAW,GAAG,QAAQ,SAAS;EAAG,GAAI;YAArE,CACG,UACA,mBACC,oBAAC,OAAgB,OAAjB;GACE,QAAQ,oBAAC,QAAD;IAAQ,YAAW;IAAU,SAAQ;GAAa,CAAA;aAC3D;EAEsB,CAAA,CAEtB;;AAET;AACA,WAAW,cAAc;AAGzB,SAAS,UAAU,EAAE,WAAW,GAAG,SAAsC;CACvE,OACE,oBAAC,OAAgB,OAAjB;EACE,aAAU;EACV,WAAW,GAAG,4BAA4B,SAAS;EACnD,GAAI;CACL,CAAA;AAEL;AACA,UAAU,cAAc;AAGxB,SAAS,gBAAgB,EACvB,WACA,GAAG,SACiC;CACpC,OACE,oBAAC,OAAgB,aAAjB;EACE,aAAU;EACV,WAAW,GACT,sGACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AACA,gBAAgB,cAAc;AAM9B,IAAM,gBAAgB,IAAI,IAAI;CAC5B,UAAU,EACR,MAAM;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,MAAM;CACR,EACF;CACA,iBAAiB,EACf,MAAM,KACR;AACF,CAAC;AA2BD,SAAS,MAAM,EACb,WACA,UACA,MACA,kBAAkB,MAClB,kBAAkB,OAClB,cACA,gBACA,kBACA,qBACA,GAAG,SACU;CAEb,MAAM,yBAAyB,oBAAoB;CACnD,MAAM,4BAA4B,uBAAuB;CACzD,MAAM,wBAAwB,mBAAmB,CAAC;CAElD,OACE,oBAAC,WAAD;EACE,WAAW,GAAG,cAAc,EAAE,KAAK,CAAC,GAAG,SAAS;EAChD,iBAAiB;EACH;EACd,kBAAkB;EAClB,qBAAqB;EACrB,GAAI;EAEH;CACQ,CAAA;AAEf;AACA,MAAM,cAAc;AAMpB,IAAM,eAAe,IACnB,wDACA;CACE,UAAU;EACR,SAAS;GACP,SAAS;GACT,SAAS;GACT,SAAS;GACT,aAAa;GACb,MAAM;EACR;EACA,MAAM;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;EACN;CACF;CACA,iBAAiB;EACf,SAAS;EACT,MAAM;CACR;AACF,CACF;AAQA,SAAS,KAAK,EAAE,WAAW,SAAS,MAAM,UAAU,GAAG,SAAoB;CACzE,OACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,aAAa;GAAE;GAAS;EAAK,CAAC,GAAG,SAAS;EACxD,GAAI;EAEH;CACE,CAAA;AAET;AACA,KAAK,cAAc;AAMnB,IAAM,iBAAiB,IAAI,yCAAyC;CAClE,UAAU,EACR,QAAQ;EACN,SAAS;EACT,YAAY;EACZ,UAAU;CACZ,EACF;CACA,iBAAiB,EACf,QAAQ,UACV;AACF,CAAC;AAWD,SAAS,OAAO,EACd,WACA,QACA,UACA,UAAU,OACV,gBAAgB,OAChB,GAAG,SACW;CACd,MAAM,iBAAiB,UAAU;CAEjC,OACE,oBAAC,YAAD;EACE,eAAa;EACb,WAAW,GACT,eAAe,EAAE,QAAQ,eAAe,CAAC,GACzC,WAAW,2BACV,WAAW,kBAAkB,QAC9B,SACF;EACA,GAAI;EAEH;CACS,CAAA;AAEhB;AACA,OAAO,cAAc;AASrB,SAAS,cAAc,EAAE,WAAW,UAAU,GAAG,SAA6B;CAC5E,OACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,sCACA,oDACA,oKACA,8GACA,SACF;EACA,GAAI;EAEH;CACE,CAAA;AAET;AACA,cAAc,cAAc;AAQ5B,SAAS,MAAM,EAAE,WAAW,GAAG,SAAqB;CAClD,OACE,oBAAC,WAAD;EACE,WAAW,GACT,mDACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AACA,MAAM,cAAc;AASpB,SAAS,YAAY,EAAE,WAAW,GAAG,SAA2B;CAC9D,OACE,oBAAC,iBAAD;EACE,WAAW,GAAG,+CAA+C,SAAS;EACtE,GAAI;CACL,CAAA;AAEL;AACA,YAAY,cAAc;AAM1B,IAAM,iBAAiB,IAAI,gBAAgB;CACzC,UAAU,EACR,QAAQ;EACN,YACE;EACF,mBACE;EACF,oBACE;EACF,SAAS;EACT,iBAAiB;EACjB,QACE;CACJ,EACF;CACA,iBAAiB,EACf,QAAQ,kBACV;AACF,CAAC;AASD,SAAS,OAAO,EACd,WACA,QACA,UACA,UAAU,OACV,GAAG,SACW;CACd,MAAM,iBAAiB,UAAU;CAEjC,OACE,oBAAC,YAAD;EACE,eAAa;EACb,WAAW,GACT,eAAe,EAAE,QAAQ,eAAe,CAAC,GACzC,WAAW,+BACX,SACF;EACA,GAAI;EAEH;CACS,CAAA;AAEhB;AACA,OAAO,cAAc;AAMrB,IAAM,SAAS,MAAM,WAGnB,SAAS,OACT,EACE,WACA,aAAa,SACb,UAAU,WACV,OAAO,WACP,QAAQ,WACR,GAAG,SAEL,KACA;CACA,OACE,oBAAC,QAAD;EACO;EACL,aAAU;EACE;EACH;EACH;EACC;EACP,WAAW,GAAG,cAAc,SAAS;EACrC,GAAI;CACL,CAAA;AAEL,CAAC;AACD,OAAO,cAAc;AAErB,IAAM,SAAS,MAAM,WAOnB,SAAS,OACT,EACE,WACA,aAAa,WACb,UAAU,aACV,OAAO,WACP,QAAQ,WACR,GAAG,SAEL,KACA;CACA,OACE,oBAAC,OAAgB,OAAjB;EACO;EACL,aAAU;EACV,WAAW,GAAG,cAAc,SAAS;EACrC,QACE,oBAAC,QAAD;GACc;GACH;GACH;GACC;EACR,CAAA;EAEH,GAAI;CACL,CAAA;AAEL,CAAC;AACD,OAAO,cAAc;AAQrB,SAAS,KAAK,EAAE,WAAW,UAAU,GAAG,SAAoB;CAC1D,OACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,uBAAuB,SAAS;EAC9C,GAAI;EAEH;CACE,CAAA;AAET;AACA,KAAK,cAAc;AAiBnB,IAAM,WAAS,OAAO,OAAO,MAAM;CACjC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"index207.js","names":[],"sources":["../src/components/organisms/overlays/AlertDialog/AlertDialog.tsx"],"sourcesContent":["import { AlertDialog as AlertDialogPrimitive } from '@base-ui/react/alert-dialog';\nimport * as React from 'react';\nimport { Button } from '@/components/atoms/buttons/Button';\nimport { cn } from '@/lib/utils';\n\n// ============================================\n// Root\n// ============================================\n\nconst Root = React.forwardRef<HTMLDivElement, AlertDialogPrimitive.Root.Props>(\n function Root({ ...props }, _ref) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />;\n },\n);\nRoot.displayName = 'AlertDialog.Root';\n\n// ============================================\n// Trigger\n// ============================================\n\nconst Trigger = React.forwardRef<\n HTMLButtonElement,\n AlertDialogPrimitive.Trigger.Props\n>(function Trigger({ ...props }, ref) {\n return (\n <AlertDialogPrimitive.Trigger\n ref={ref}\n data-slot=\"alert-dialog-trigger\"\n {...props}\n />\n );\n});\nTrigger.displayName = 'AlertDialog.Trigger';\n\n// ============================================\n// Portal\n// ============================================\n\nfunction Portal({ ...props }: AlertDialogPrimitive.Portal.Props) {\n return (\n <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" {...props} />\n );\n}\nPortal.displayName = 'AlertDialog.Portal';\n\nfunction isPortalContainerRef(\n container: AlertDialogPrimitive.Portal.Props['container'],\n): container is React.RefObject<HTMLElement | ShadowRoot | null> {\n return (\n container !== null &&\n typeof container === 'object' &&\n 'current' in container\n );\n}\n\nfunction usePortalContainer(\n container: AlertDialogPrimitive.Portal.Props['container'],\n): AlertDialogPrimitive.Portal.Props['container'] {\n return React.useMemo(() => {\n if (container == null || isPortalContainerRef(container)) return container;\n return { current: container };\n }, [container]);\n}\n\n// ============================================\n// Backdrop (renamed from Overlay)\n// ============================================\n\nexport interface BackdropProps extends AlertDialogPrimitive.Backdrop.Props {\n /** Disables open/close animations */\n disableAnimation?: boolean;\n /** Disables backdrop blur effect */\n disableBackdropBlur?: boolean;\n}\n\nconst Backdrop = React.forwardRef<HTMLDivElement, BackdropProps>(\n function Backdrop(\n { className, disableAnimation, disableBackdropBlur, ...props },\n ref,\n ) {\n return (\n <AlertDialogPrimitive.Backdrop\n ref={ref}\n data-slot=\"alert-dialog-backdrop\"\n className={cn(\n 'bg-background/80/10 fixed inset-0 isolate z-50',\n !disableAnimation &&\n 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 duration-100 motion-reduce:animate-none',\n !disableBackdropBlur && 'supports-backdrop-filter:backdrop-blur-xs',\n className,\n )}\n {...props}\n />\n );\n },\n);\nBackdrop.displayName = 'AlertDialog.Backdrop';\n\n// ============================================\n// Viewport\n// ============================================\n\nexport interface ViewportProps extends AlertDialogPrimitive.Viewport.Props {}\n\nconst Viewport = React.forwardRef<HTMLDivElement, ViewportProps>(\n function Viewport({ className, children, ...props }, ref) {\n return (\n <AlertDialogPrimitive.Viewport\n ref={ref}\n data-slot=\"alert-dialog-viewport\"\n className={cn(\n 'fixed inset-0 z-50 flex items-center justify-center p-4',\n className,\n )}\n {...props}\n >\n {children}\n </AlertDialogPrimitive.Viewport>\n );\n },\n);\nViewport.displayName = 'AlertDialog.Viewport';\n\n// ============================================\n// Popup (renamed from Content)\n// ============================================\n\nexport interface PopupProps extends AlertDialogPrimitive.Popup.Props {\n container?: AlertDialogPrimitive.Portal.Props['container'];\n size?: 'default' | 'sm';\n /** Disables open/close animations */\n disableAnimation?: boolean;\n /** Disables backdrop blur effect */\n disableBackdropBlur?: boolean;\n}\n\nconst Popup = React.forwardRef<HTMLDivElement, PopupProps>(function Popup(\n {\n className,\n container,\n size = 'default',\n disableAnimation,\n disableBackdropBlur,\n ...props\n },\n ref,\n) {\n const portalContainer = usePortalContainer(container);\n\n return (\n <Portal container={portalContainer}>\n <Backdrop\n disableAnimation={disableAnimation}\n disableBackdropBlur={disableBackdropBlur}\n />\n <AlertDialogPrimitive.Popup\n ref={ref}\n data-slot=\"alert-dialog-popup\"\n data-size={size}\n className={cn(\n 'bg-background ring-foreground/10 flex w-[calc(100%-2rem)] max-w-[483px] flex-col items-start gap-4 rounded-xl p-6 ring-1 shadow-lg sm:w-[483px] data-[size=sm]:sm:max-w-sm group/alert-dialog-content fixed top-1/2 left-1/2 z-50 -translate-x-1/2 -translate-y-1/2 outline-none',\n !disableAnimation &&\n 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 duration-150 motion-reduce:animate-none',\n className,\n )}\n {...props}\n />\n </Portal>\n );\n});\nPopup.displayName = 'AlertDialog.Popup';\n\n// ============================================\n// Header\n// ============================================\n\ntype AlertDialogAlignment = 'start' | 'center';\ntype AlertDialogFooterActionSlot =\n | 'alert-dialog-action'\n | 'alert-dialog-cancel';\n\nconst alertDialogFooterActionClassName = 'gap-2 rounded-xl px-4';\n\nexport interface HeaderProps extends React.ComponentProps<'div'> {\n align?: AlertDialogAlignment;\n}\n\nconst Header = React.forwardRef<HTMLDivElement, HeaderProps>(function Header(\n { className, align = 'start', ...props },\n ref,\n) {\n return (\n <div\n ref={ref}\n data-slot=\"alert-dialog-header\"\n data-align={align}\n className={cn(\n 'flex w-full flex-col gap-2',\n align === 'center'\n ? 'items-center text-center'\n : 'items-start text-left',\n className,\n )}\n {...props}\n />\n );\n});\nHeader.displayName = 'AlertDialog.Header';\n\n// ============================================\n// Footer\n// ============================================\n\nexport interface FooterProps extends React.ComponentProps<'div'> {\n align?: AlertDialogAlignment;\n}\n\nconst Footer = React.forwardRef<HTMLDivElement, FooterProps>(function Footer(\n { className, align = 'start', ...props },\n ref,\n) {\n return (\n <div\n ref={ref}\n data-slot=\"alert-dialog-footer\"\n data-align={align}\n className={cn(\n 'flex w-full flex-row items-center gap-3',\n align === 'center' ? 'justify-center' : 'justify-end',\n className,\n )}\n {...props}\n />\n );\n});\nFooter.displayName = 'AlertDialog.Footer';\n\n// ============================================\n// Media\n// ============================================\n\nconst Media = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n function Media({ className, ...props }, ref) {\n return (\n <div\n ref={ref}\n data-slot=\"alert-dialog-media\"\n className={cn(\n \"bg-muted mb-2 inline-flex size-16 items-center justify-center rounded-md *:[svg:not([class*='size-'])]:size-8\",\n className,\n )}\n {...props}\n />\n );\n },\n);\nMedia.displayName = 'AlertDialog.Media';\n\n// ============================================\n// Title\n// ============================================\n\nconst Title = React.forwardRef<\n HTMLHeadingElement,\n React.ComponentProps<typeof AlertDialogPrimitive.Title>\n>(function Title({ className, ...props }, ref) {\n return (\n <AlertDialogPrimitive.Title\n ref={ref}\n data-slot=\"alert-dialog-title\"\n className={cn('text-lg leading-7 font-semibold', className)}\n {...props}\n />\n );\n});\nTitle.displayName = 'AlertDialog.Title';\n\n// ============================================\n// Description\n// ============================================\n\nconst Description = React.forwardRef<\n HTMLParagraphElement,\n React.ComponentProps<typeof AlertDialogPrimitive.Description>\n>(function Description({ className, ...props }, ref) {\n return (\n <AlertDialogPrimitive.Description\n ref={ref}\n data-slot=\"alert-dialog-description\"\n className={cn(\n 'text-muted-foreground *:[a]:hover:text-foreground text-sm leading-5 *:[a]:underline *:[a]:underline-offset-3',\n className,\n )}\n {...props}\n />\n );\n});\nDescription.displayName = 'AlertDialog.Description';\n\n// ============================================\n// Action\n// ============================================\n\ninterface FooterActionButtonProps extends React.ComponentProps<typeof Button> {\n dataSlot: AlertDialogFooterActionSlot;\n}\n\nconst FooterActionButton = React.forwardRef<\n HTMLButtonElement,\n FooterActionButtonProps\n>(function FooterActionButton(\n { className, dataSlot, shape = 'rounded', size = 'default', ...props },\n ref,\n) {\n return (\n <Button\n ref={ref}\n data-slot={dataSlot}\n size={size}\n shape={shape}\n className={cn(alertDialogFooterActionClassName, className)}\n {...props}\n />\n );\n});\nFooterActionButton.displayName = 'AlertDialog.FooterActionButton';\n\nconst Action = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof Button>\n>(function Action(\n {\n className,\n appearance = 'solid',\n variant = 'primary',\n size = 'default',\n shape = 'rounded',\n ...props\n },\n ref,\n) {\n return (\n <FooterActionButton\n ref={ref}\n dataSlot=\"alert-dialog-action\"\n appearance={appearance}\n variant={variant}\n size={size}\n shape={shape}\n className={className}\n {...props}\n />\n );\n});\nAction.displayName = 'AlertDialog.Action';\n\n// ============================================\n// Cancel\n// ============================================\n\nconst Cancel = React.forwardRef<\n HTMLButtonElement,\n AlertDialogPrimitive.Close.Props &\n Pick<\n React.ComponentProps<typeof Button>,\n 'appearance' | 'variant' | 'size' | 'shape'\n >\n>(function Cancel(\n {\n className,\n appearance = 'outline',\n variant = 'secondary',\n size = 'default',\n shape = 'rounded',\n ...props\n },\n ref,\n) {\n return (\n <AlertDialogPrimitive.Close\n ref={ref}\n data-slot=\"alert-dialog-cancel\"\n className={className}\n render={\n <FooterActionButton\n dataSlot=\"alert-dialog-cancel\"\n appearance={appearance}\n variant={variant}\n size={size}\n shape={shape}\n />\n }\n {...props}\n />\n );\n});\nCancel.displayName = 'AlertDialog.Cancel';\n\n// ============================================\n// Type exports\n// ============================================\n\nexport type RootProps = AlertDialogPrimitive.Root.Props;\nexport type TriggerProps = AlertDialogPrimitive.Trigger.Props;\nexport type PortalProps = AlertDialogPrimitive.Portal.Props;\nexport type TitleProps = React.ComponentProps<typeof Title>;\nexport type DescriptionProps = React.ComponentProps<typeof Description>;\nexport type ActionProps = React.ComponentProps<typeof Action>;\nexport type CancelProps = React.ComponentProps<typeof Cancel>;\nexport type MediaProps = React.ComponentProps<typeof Media>;\n\n// ============================================\n// Compound component via dot notation (ADR-011)\n// ============================================\n\nconst AlertDialog = Object.assign(Root, {\n Root,\n Trigger,\n Portal,\n Backdrop,\n Viewport,\n Popup,\n Header,\n Footer,\n Title,\n Description,\n Action,\n Cancel,\n Media,\n});\n\nexport {\n Action as AlertDialogAction,\n AlertDialog,\n Backdrop as AlertDialogBackdrop,\n Cancel as AlertDialogCancel,\n Description as AlertDialogDescription,\n Footer as AlertDialogFooter,\n Header as AlertDialogHeader,\n Media as AlertDialogMedia,\n Popup as AlertDialogPopup,\n Portal as AlertDialogPortal,\n // Sub-components with AlertDialog prefix for direct imports\n Root as AlertDialogRoot,\n Title as AlertDialogTitle,\n Trigger as AlertDialogTrigger,\n Viewport as AlertDialogViewport,\n};\n"],"mappings":"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AAW,GAAG,SAC/D,KACA;CACA,OACE,oBAAC,QAAD;EACO;EACL,aAAW;EACL;EACC;EACP,WAAW,GAAG,kCAAkC,SAAS;EACzD,GAAI;CACL,CAAA;AAEL,CAAC;AACD,mBAAmB,cAAc;AAEjC,IAAM,SAAS,MAAM,WAGnB,SAAS,OACT,EACE,WACA,aAAa,SACb,UAAU,WACV,OAAO,WACP,QAAQ,WACR,GAAG,SAEL,KACA;CACA,OACE,oBAAC,oBAAD;EACO;EACL,UAAS;EACG;EACH;EACH;EACC;EACI;EACX,GAAI;CACL,CAAA;AAEL,CAAC;AACD,OAAO,cAAc;AAMrB,IAAM,SAAS,MAAM,WAOnB,SAAS,OACT,EACE,WACA,aAAa,WACb,UAAU,aACV,OAAO,WACP,QAAQ,WACR,GAAG,SAEL,KACA;CACA,OACE,oBAAC,YAAqB,OAAtB;EACO;EACL,aAAU;EACC;EACX,QACE,oBAAC,oBAAD;GACE,UAAS;GACG;GACH;GACH;GACC;EACR,CAAA;EAEH,GAAI;CACL,CAAA;AAEL,CAAC;AACD,OAAO,cAAc;AAmBrB,IAAM,gBAAc,OAAO,OAAO,MAAM;CACtC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC"}
|