@wow-two-beta/ui 0.0.12 → 0.0.13
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/actions/index.d.ts +1 -0
- package/dist/actions/index.d.ts.map +1 -1
- package/dist/actions/index.js +2 -2
- package/dist/actions/toolbar/Toolbar.d.ts +23 -0
- package/dist/actions/toolbar/Toolbar.d.ts.map +1 -0
- package/dist/actions/toolbar/index.d.ts +2 -0
- package/dist/actions/toolbar/index.d.ts.map +1 -0
- package/dist/{chunk-K6V4KLRO.js → chunk-A4N52LL6.js} +1130 -168
- package/dist/chunk-A4N52LL6.js.map +1 -0
- package/dist/{chunk-52DFDWY3.js → chunk-EU6JT5B4.js} +6 -6
- package/dist/chunk-EU6JT5B4.js.map +1 -0
- package/dist/{chunk-VTLWHUMD.js → chunk-PRRVOVUC.js} +384 -8
- package/dist/chunk-PRRVOVUC.js.map +1 -0
- package/dist/{chunk-ZTHJ5OTI.js → chunk-UGHPZ3I7.js} +212 -6
- package/dist/chunk-UGHPZ3I7.js.map +1 -0
- package/dist/{chunk-D5CHR6RX.js → chunk-ULAOIBCP.js} +113 -5
- package/dist/chunk-ULAOIBCP.js.map +1 -0
- package/dist/{chunk-YANOG5YR.js → chunk-YMSAS7M7.js} +104 -55
- package/dist/chunk-YMSAS7M7.js.map +1 -0
- package/dist/display/accordion/Accordion.d.ts +41 -0
- package/dist/display/accordion/Accordion.d.ts.map +1 -0
- package/dist/display/accordion/index.d.ts +2 -0
- package/dist/display/accordion/index.d.ts.map +1 -0
- package/dist/display/collapsible/Collapsible.d.ts +26 -0
- package/dist/display/collapsible/Collapsible.d.ts.map +1 -0
- package/dist/display/collapsible/index.d.ts +2 -0
- package/dist/display/collapsible/index.d.ts.map +1 -0
- package/dist/display/index.d.ts +3 -0
- package/dist/display/index.d.ts.map +1 -1
- package/dist/display/index.js +2 -3
- package/dist/display/tabs/Tabs.d.ts +31 -0
- package/dist/display/tabs/Tabs.d.ts.map +1 -0
- package/dist/display/tabs/index.d.ts +2 -0
- package/dist/display/tabs/index.d.ts.map +1 -0
- package/dist/forms/datePicker/DatePicker.d.ts.map +1 -1
- package/dist/forms/dateRangePicker/DateRangePicker.d.ts.map +1 -1
- package/dist/forms/index.d.ts +8 -0
- package/dist/forms/index.d.ts.map +1 -1
- package/dist/forms/index.js +3 -3
- package/dist/forms/stepper/Stepper.d.ts +32 -0
- package/dist/forms/stepper/Stepper.d.ts.map +1 -0
- package/dist/forms/stepper/index.d.ts +2 -0
- package/dist/forms/stepper/index.d.ts.map +1 -0
- package/dist/forms/timePicker/TimePicker.d.ts.map +1 -1
- package/dist/index.js +6 -7
- package/dist/nav/index.d.ts +1 -0
- package/dist/nav/index.d.ts.map +1 -1
- package/dist/nav/index.js +2 -3
- package/dist/nav/navigationMenu/NavigationMenu.d.ts +39 -0
- package/dist/nav/navigationMenu/NavigationMenu.d.ts.map +1 -0
- package/dist/nav/navigationMenu/index.d.ts +2 -0
- package/dist/nav/navigationMenu/index.d.ts.map +1 -0
- package/dist/overlays/index.js +2 -3
- package/dist/overlays/popover/Popover.d.ts +7 -0
- package/dist/overlays/popover/Popover.d.ts.map +1 -1
- package/dist/primitives/anchoredPositioner/AnchoredPositioner.d.ts +8 -0
- package/dist/primitives/anchoredPositioner/AnchoredPositioner.d.ts.map +1 -1
- package/dist/primitives/index.js +1 -2
- package/dist/primitives/rovingFocusGroup/RovingFocusGroup.d.ts +1 -1
- package/dist/primitives/rovingFocusGroup/RovingFocusGroup.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-33IOXQYO.js +0 -47
- package/dist/chunk-33IOXQYO.js.map +0 -1
- package/dist/chunk-52DFDWY3.js.map +0 -1
- package/dist/chunk-D5CHR6RX.js.map +0 -1
- package/dist/chunk-K6V4KLRO.js.map +0 -1
- package/dist/chunk-VTLWHUMD.js.map +0 -1
- package/dist/chunk-YANOG5YR.js.map +0 -1
- package/dist/chunk-ZTHJ5OTI.js.map +0 -1
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { Portal, ScrollLockProvider, DismissableLayer, AnchoredPositioner, OverlayArrow } from './chunk-YANOG5YR.js';
|
|
2
1
|
import { useControlled } from './chunk-4P2TFUVW.js';
|
|
3
|
-
import { Slot } from './chunk-
|
|
2
|
+
import { Portal, Slot, ScrollLockProvider, DismissableLayer, AnchoredPositioner, OverlayArrow } from './chunk-YMSAS7M7.js';
|
|
4
3
|
import { composeRefs } from './chunk-DN7WBRIV.js';
|
|
5
4
|
import { cn } from './chunk-KZ4VFY2T.js';
|
|
6
5
|
import { forwardRef, createContext, useContext, useRef, useId, useMemo, useCallback, isValidElement, cloneElement } from 'react';
|
|
@@ -507,7 +506,7 @@ var PopoverTrigger = forwardRef(
|
|
|
507
506
|
}
|
|
508
507
|
);
|
|
509
508
|
var PopoverContent = forwardRef(
|
|
510
|
-
function PopoverContent2({ className, children, ...rest }, forwardedRef) {
|
|
509
|
+
function PopoverContent2({ bare, className, children, ...rest }, forwardedRef) {
|
|
511
510
|
const ctx = usePopoverContext();
|
|
512
511
|
if (!ctx.open) return null;
|
|
513
512
|
return /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsx(
|
|
@@ -536,7 +535,8 @@ var PopoverContent = forwardRef(
|
|
|
536
535
|
role: "dialog",
|
|
537
536
|
"data-state": "open",
|
|
538
537
|
className: cn(
|
|
539
|
-
"z-50
|
|
538
|
+
"z-50 outline-none animate-in fade-in-0 zoom-in-95",
|
|
539
|
+
!bare && "w-72 rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md",
|
|
540
540
|
className
|
|
541
541
|
),
|
|
542
542
|
...rest,
|
|
@@ -674,5 +674,5 @@ HoverCard.Content = HoverCardContent;
|
|
|
674
674
|
HoverCard.Arrow = HoverCardArrow;
|
|
675
675
|
|
|
676
676
|
export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, Backdrop, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, Drawer, DrawerBody, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerTitle, DrawerTrigger, HoverCard, HoverCardArrow, HoverCardContent, HoverCardTrigger, Popover, PopoverArrow, PopoverContent, PopoverTrigger };
|
|
677
|
-
//# sourceMappingURL=chunk-
|
|
678
|
-
//# sourceMappingURL=chunk-
|
|
677
|
+
//# sourceMappingURL=chunk-EU6JT5B4.js.map
|
|
678
|
+
//# sourceMappingURL=chunk-EU6JT5B4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/overlays/backdrop/Backdrop.tsx","../src/overlays/dialog/Dialog.tsx","../src/overlays/alertDialog/AlertDialog.tsx","../src/overlays/drawer/Drawer.tsx","../src/overlays/popover/Popover.tsx","../src/overlays/hoverCard/HoverCard.tsx"],"names":["Backdrop","jsx","forwardRef","DialogTrigger","DialogContent","DialogClose","AlertDialogContent","AlertDialogAction","AlertDialogCancel","createContext","useContext","useRef","useId","useMemo","DrawerTrigger","DrawerContent","jsxs","FocusScope","DrawerClose","X","PopoverTrigger","PopoverContent","HoverCardContent"],"mappings":"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","file":"chunk-EU6JT5B4.js","sourcesContent":["import { forwardRef, type HTMLAttributes } from 'react';\nimport { cn } from '../../utils';\nimport { Portal } from '../../primitives';\n\nexport interface BackdropProps extends HTMLAttributes<HTMLDivElement> {\n /** Mount state. Default `true`. */\n open?: boolean;\n /** Apply backdrop-blur. */\n blur?: boolean;\n /** When `'none'`, clicks pass through. Default `'auto'`. */\n pointerEvents?: 'auto' | 'none';\n /** Skip the Portal wrap — render in place. */\n inline?: boolean;\n}\n\n/**\n * Fixed-position scrim. Used by Dialog / Drawer / LoadingOverlay; also a\n * public component for custom overlay surfaces.\n */\nexport const Backdrop = forwardRef<HTMLDivElement, BackdropProps>(function Backdrop(\n { open = true, blur, pointerEvents = 'auto', inline, className, style, ...rest },\n ref,\n) {\n if (!open) return null;\n const node = (\n <div\n ref={ref}\n data-state={open ? 'open' : 'closed'}\n style={{ pointerEvents, ...style }}\n className={cn(\n 'fixed inset-0 z-50 bg-black/50 animate-in fade-in-0',\n blur && 'backdrop-blur-sm',\n className,\n )}\n {...rest}\n />\n );\n return inline ? node : <Portal>{node}</Portal>;\n});\n","import {\n createContext,\n forwardRef,\n useContext,\n useId,\n useMemo,\n useRef,\n type ButtonHTMLAttributes,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { X } from 'lucide-react';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { cn, composeRefs } from '../../utils';\nimport { useControlled } from '../../hooks';\nimport { DismissableLayer, Portal, ScrollLockProvider, Slot } from '../../primitives';\nimport { Backdrop } from '../backdrop';\n\ninterface DialogContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n triggerRef: React.MutableRefObject<HTMLElement | null>;\n titleId: string;\n descriptionId: string;\n role: 'dialog' | 'alertdialog';\n dismissOnOutsideClick: boolean;\n dismissOnEscape: boolean;\n}\n\nconst DialogContext = createContext<DialogContextValue | null>(null);\n\nfunction useDialogContext() {\n const ctx = useContext(DialogContext);\n if (!ctx) throw new Error('Dialog.* must be used inside <Dialog>');\n return ctx;\n}\n\nexport interface DialogProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n dismissOnOutsideClick?: boolean;\n dismissOnEscape?: boolean;\n /** Internal — `AlertDialog` overrides this. */\n role?: 'dialog' | 'alertdialog';\n children: ReactNode;\n}\n\nexport function Dialog({\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n dismissOnOutsideClick = true,\n dismissOnEscape = true,\n role = 'dialog',\n children,\n}: DialogProps) {\n const [open, setOpen] = useControlled({\n controlled: openProp,\n default: defaultOpen,\n onChange: onOpenChange,\n });\n const triggerRef = useRef<HTMLElement | null>(null);\n const titleId = useId();\n const descriptionId = useId();\n\n const ctx = useMemo<DialogContextValue>(\n () => ({\n open,\n setOpen,\n triggerRef,\n titleId,\n descriptionId,\n role,\n dismissOnOutsideClick,\n dismissOnEscape,\n }),\n [open, setOpen, titleId, descriptionId, role, dismissOnOutsideClick, dismissOnEscape],\n );\n\n return <DialogContext.Provider value={ctx}>{children}</DialogContext.Provider>;\n}\n\nexport interface DialogTriggerProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n asChild?: boolean;\n children: ReactNode;\n}\n\nexport const DialogTrigger = forwardRef<HTMLButtonElement, DialogTriggerProps>(\n function DialogTrigger({ asChild, onClick, children, ...rest }, forwardedRef) {\n const ctx = useDialogContext();\n const Component = asChild ? Slot : 'button';\n return (\n <Component\n ref={composeRefs(forwardedRef, ctx.triggerRef as React.MutableRefObject<HTMLButtonElement | null>) as never}\n type=\"button\"\n aria-haspopup={ctx.role === 'alertdialog' ? 'dialog' : 'dialog'}\n aria-expanded={ctx.open}\n data-state={ctx.open ? 'open' : 'closed'}\n onClick={(e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n ctx.setOpen(true);\n }}\n {...rest}\n >\n {children}\n </Component>\n );\n },\n);\n\nexport interface DialogContentProps extends HTMLAttributes<HTMLDivElement> {\n /** Disable the default backdrop. */\n hideBackdrop?: boolean;\n /** Apply backdrop blur. */\n blur?: boolean;\n children: ReactNode;\n}\n\nexport const DialogContent = forwardRef<HTMLDivElement, DialogContentProps>(\n function DialogContent(\n { hideBackdrop, blur, className, children, ...rest },\n forwardedRef,\n ) {\n const ctx = useDialogContext();\n if (!ctx.open) return null;\n return (\n <Portal>\n <ScrollLockProvider>\n {!hideBackdrop && (\n <Backdrop\n inline\n blur={blur}\n onClick={() => {\n if (ctx.dismissOnOutsideClick) ctx.setOpen(false);\n }}\n />\n )}\n <div className=\"fixed inset-0 z-50 grid place-items-center overflow-y-auto p-4\">\n <FocusScope asChild trapped loop>\n <DismissableLayer\n disableEscape={!ctx.dismissOnEscape}\n onEscape={() => ctx.setOpen(false)}\n disableOutsideClick\n >\n <div\n ref={forwardedRef}\n role={ctx.role}\n aria-modal=\"true\"\n aria-labelledby={ctx.titleId}\n aria-describedby={ctx.descriptionId}\n data-state=\"open\"\n className={cn(\n 'relative w-full max-w-lg rounded-lg border border-border bg-background p-6 shadow-lg outline-none animate-in fade-in-0 zoom-in-95',\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n </DismissableLayer>\n </FocusScope>\n </div>\n </ScrollLockProvider>\n </Portal>\n );\n },\n);\n\nexport interface DialogHeaderProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n}\n\nexport function DialogHeader({ className, children, ...rest }: DialogHeaderProps) {\n return (\n <div className={cn('mb-4 flex flex-col gap-1.5', className)} {...rest}>\n {children}\n </div>\n );\n}\n\nexport interface DialogTitleProps extends HTMLAttributes<HTMLHeadingElement> {\n children: ReactNode;\n}\n\nexport function DialogTitle({ className, children, ...rest }: DialogTitleProps) {\n const ctx = useDialogContext();\n return (\n <h2\n id={ctx.titleId}\n className={cn('text-lg font-semibold leading-none text-foreground', className)}\n {...rest}\n >\n {children}\n </h2>\n );\n}\n\nexport interface DialogDescriptionProps extends HTMLAttributes<HTMLParagraphElement> {\n children: ReactNode;\n}\n\nexport function DialogDescription({\n className,\n children,\n ...rest\n}: DialogDescriptionProps) {\n const ctx = useDialogContext();\n return (\n <p id={ctx.descriptionId} className={cn('text-sm text-muted-foreground', className)} {...rest}>\n {children}\n </p>\n );\n}\n\nexport interface DialogBodyProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n}\n\nexport function DialogBody({ className, children, ...rest }: DialogBodyProps) {\n return (\n <div className={cn('text-sm text-foreground', className)} {...rest}>\n {children}\n </div>\n );\n}\n\nexport interface DialogFooterProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n}\n\nexport function DialogFooter({ className, children, ...rest }: DialogFooterProps) {\n return (\n <div\n className={cn(\n 'mt-6 flex flex-col-reverse gap-2 sm:flex-row sm:justify-end',\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n );\n}\n\nexport interface DialogCloseProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n asChild?: boolean;\n children?: ReactNode;\n}\n\nexport const DialogClose = forwardRef<HTMLButtonElement, DialogCloseProps>(function DialogClose(\n { asChild, onClick, className, children, ...rest },\n forwardedRef,\n) {\n const ctx = useDialogContext();\n const Component = asChild ? Slot : 'button';\n return (\n <Component\n ref={forwardedRef as never}\n type=\"button\"\n aria-label={children ? undefined : 'Close'}\n onClick={(e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n ctx.setOpen(false);\n requestAnimationFrame(() => ctx.triggerRef.current?.focus());\n }}\n className={\n asChild\n ? className\n : cn(\n 'absolute right-4 top-4 grid h-7 w-7 place-items-center rounded-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n className,\n )\n }\n {...rest}\n >\n {children ?? <X className=\"h-4 w-4\" />}\n </Component>\n );\n});\n\ntype DialogComponent = typeof Dialog & {\n Trigger: typeof DialogTrigger;\n Content: typeof DialogContent;\n Header: typeof DialogHeader;\n Title: typeof DialogTitle;\n Description: typeof DialogDescription;\n Body: typeof DialogBody;\n Footer: typeof DialogFooter;\n Close: typeof DialogClose;\n};\n\n(Dialog as DialogComponent).Trigger = DialogTrigger;\n(Dialog as DialogComponent).Content = DialogContent;\n(Dialog as DialogComponent).Header = DialogHeader;\n(Dialog as DialogComponent).Title = DialogTitle;\n(Dialog as DialogComponent).Description = DialogDescription;\n(Dialog as DialogComponent).Body = DialogBody;\n(Dialog as DialogComponent).Footer = DialogFooter;\n(Dialog as DialogComponent).Close = DialogClose;\n\nexport default Dialog as DialogComponent;\n","import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from 'react';\nimport { cn } from '../../utils';\nimport {\n Dialog,\n DialogBody,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n DialogClose,\n type DialogProps,\n type DialogContentProps,\n} from '../dialog';\n\nexport type AlertDialogProps = Omit<DialogProps, 'role' | 'dismissOnOutsideClick'>;\n\nexport function AlertDialog(props: AlertDialogProps) {\n return <Dialog {...props} role=\"alertdialog\" dismissOnOutsideClick={false} />;\n}\n\nexport const AlertDialogContent = forwardRef<HTMLDivElement, DialogContentProps>(\n function AlertDialogContent(props, ref) {\n return <DialogContent ref={ref} {...props} />;\n },\n);\n\nexport interface AlertDialogActionProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n /** Runs before the dialog closes. */\n onAction?: () => void;\n children: ReactNode;\n}\n\nexport const AlertDialogAction = forwardRef<HTMLButtonElement, AlertDialogActionProps>(\n function AlertDialogAction({ onAction, onClick, className, children, ...rest }, ref) {\n return (\n <DialogClose\n ref={ref}\n onClick={(e) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n onAction?.();\n }}\n className={cn(\n 'inline-flex h-9 items-center justify-center rounded-md bg-primary px-4 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n className,\n )}\n {...rest}\n >\n {children}\n </DialogClose>\n );\n },\n);\n\nexport interface AlertDialogCancelProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n children: ReactNode;\n}\n\nexport const AlertDialogCancel = forwardRef<HTMLButtonElement, AlertDialogCancelProps>(\n function AlertDialogCancel({ className, children, ...rest }, ref) {\n return (\n <DialogClose\n ref={ref}\n className={cn(\n 'inline-flex h-9 items-center justify-center rounded-md border border-border bg-background px-4 text-sm font-medium text-foreground transition-colors hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n className,\n )}\n {...rest}\n >\n {children}\n </DialogClose>\n );\n },\n);\n\ntype AlertDialogComponent = typeof AlertDialog & {\n Trigger: typeof DialogTrigger;\n Content: typeof AlertDialogContent;\n Header: typeof DialogHeader;\n Title: typeof DialogTitle;\n Description: typeof DialogDescription;\n Body: typeof DialogBody;\n Footer: typeof DialogFooter;\n Action: typeof AlertDialogAction;\n Cancel: typeof AlertDialogCancel;\n};\n\n(AlertDialog as AlertDialogComponent).Trigger = DialogTrigger;\n(AlertDialog as AlertDialogComponent).Content = AlertDialogContent;\n(AlertDialog as AlertDialogComponent).Header = DialogHeader;\n(AlertDialog as AlertDialogComponent).Title = DialogTitle;\n(AlertDialog as AlertDialogComponent).Description = DialogDescription;\n(AlertDialog as AlertDialogComponent).Body = DialogBody;\n(AlertDialog as AlertDialogComponent).Footer = DialogFooter;\n(AlertDialog as AlertDialogComponent).Action = AlertDialogAction;\n(AlertDialog as AlertDialogComponent).Cancel = AlertDialogCancel;\n\nexport default AlertDialog as AlertDialogComponent;\n","import {\n createContext,\n forwardRef,\n useContext,\n useId,\n useMemo,\n useRef,\n type ButtonHTMLAttributes,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { X } from 'lucide-react';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { cn, composeRefs } from '../../utils';\nimport { useControlled } from '../../hooks';\nimport { DismissableLayer, Portal, ScrollLockProvider, Slot } from '../../primitives';\nimport { Backdrop } from '../backdrop';\n\nexport type DrawerSide = 'top' | 'right' | 'bottom' | 'left';\n\ninterface DrawerContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n triggerRef: React.MutableRefObject<HTMLElement | null>;\n titleId: string;\n descriptionId: string;\n side: DrawerSide;\n dismissOnOutsideClick: boolean;\n dismissOnEscape: boolean;\n}\n\nconst DrawerContext = createContext<DrawerContextValue | null>(null);\n\nfunction useDrawerContext() {\n const ctx = useContext(DrawerContext);\n if (!ctx) throw new Error('Drawer.* must be used inside <Drawer>');\n return ctx;\n}\n\nexport interface DrawerProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n side?: DrawerSide;\n dismissOnOutsideClick?: boolean;\n dismissOnEscape?: boolean;\n children: ReactNode;\n}\n\nexport function Drawer({\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n side = 'right',\n dismissOnOutsideClick = true,\n dismissOnEscape = true,\n children,\n}: DrawerProps) {\n const [open, setOpen] = useControlled({\n controlled: openProp,\n default: defaultOpen,\n onChange: onOpenChange,\n });\n const triggerRef = useRef<HTMLElement | null>(null);\n const titleId = useId();\n const descriptionId = useId();\n\n const ctx = useMemo<DrawerContextValue>(\n () => ({\n open,\n setOpen,\n triggerRef,\n titleId,\n descriptionId,\n side,\n dismissOnOutsideClick,\n dismissOnEscape,\n }),\n [open, setOpen, titleId, descriptionId, side, dismissOnOutsideClick, dismissOnEscape],\n );\n\n return <DrawerContext.Provider value={ctx}>{children}</DrawerContext.Provider>;\n}\n\nexport interface DrawerTriggerProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n asChild?: boolean;\n children: ReactNode;\n}\n\nexport const DrawerTrigger = forwardRef<HTMLButtonElement, DrawerTriggerProps>(\n function DrawerTrigger({ asChild, onClick, children, ...rest }, forwardedRef) {\n const ctx = useDrawerContext();\n const Component = asChild ? Slot : 'button';\n return (\n <Component\n ref={composeRefs(forwardedRef, ctx.triggerRef as React.MutableRefObject<HTMLButtonElement | null>) as never}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={ctx.open}\n data-state={ctx.open ? 'open' : 'closed'}\n onClick={(e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n ctx.setOpen(true);\n }}\n {...rest}\n >\n {children}\n </Component>\n );\n },\n);\n\nconst SIDE_CLASSES: Record<DrawerSide, string> = {\n right:\n 'inset-y-0 right-0 h-full w-full sm:max-w-sm border-l animate-in slide-in-from-right',\n left: 'inset-y-0 left-0 h-full w-full sm:max-w-sm border-r animate-in slide-in-from-left',\n top: 'inset-x-0 top-0 w-full max-h-[85vh] border-b animate-in slide-in-from-top',\n bottom: 'inset-x-0 bottom-0 w-full max-h-[85vh] border-t animate-in slide-in-from-bottom',\n};\n\nexport interface DrawerContentProps extends HTMLAttributes<HTMLDivElement> {\n hideBackdrop?: boolean;\n blur?: boolean;\n children: ReactNode;\n}\n\nexport const DrawerContent = forwardRef<HTMLDivElement, DrawerContentProps>(\n function DrawerContent(\n { hideBackdrop, blur, className, children, ...rest },\n forwardedRef,\n ) {\n const ctx = useDrawerContext();\n if (!ctx.open) return null;\n return (\n <Portal>\n <ScrollLockProvider>\n {!hideBackdrop && (\n <Backdrop\n inline\n blur={blur}\n onClick={() => {\n if (ctx.dismissOnOutsideClick) ctx.setOpen(false);\n }}\n />\n )}\n <FocusScope asChild trapped loop>\n <DismissableLayer\n disableEscape={!ctx.dismissOnEscape}\n onEscape={() => ctx.setOpen(false)}\n disableOutsideClick\n >\n <div\n ref={forwardedRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={ctx.titleId}\n aria-describedby={ctx.descriptionId}\n data-state=\"open\"\n data-side={ctx.side}\n className={cn(\n 'fixed z-50 flex flex-col gap-4 border-border bg-background p-6 shadow-lg outline-none',\n SIDE_CLASSES[ctx.side],\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n </DismissableLayer>\n </FocusScope>\n </ScrollLockProvider>\n </Portal>\n );\n },\n);\n\nexport interface DrawerHeaderProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n}\n\nexport function DrawerHeader({ className, children, ...rest }: DrawerHeaderProps) {\n return (\n <div className={cn('flex flex-col gap-1.5', className)} {...rest}>\n {children}\n </div>\n );\n}\n\nexport function DrawerTitle({\n className,\n children,\n ...rest\n}: HTMLAttributes<HTMLHeadingElement> & { children: ReactNode }) {\n const ctx = useDrawerContext();\n return (\n <h2\n id={ctx.titleId}\n className={cn('text-lg font-semibold leading-none text-foreground', className)}\n {...rest}\n >\n {children}\n </h2>\n );\n}\n\nexport function DrawerDescription({\n className,\n children,\n ...rest\n}: HTMLAttributes<HTMLParagraphElement> & { children: ReactNode }) {\n const ctx = useDrawerContext();\n return (\n <p id={ctx.descriptionId} className={cn('text-sm text-muted-foreground', className)} {...rest}>\n {children}\n </p>\n );\n}\n\nexport function DrawerBody({\n className,\n children,\n ...rest\n}: HTMLAttributes<HTMLDivElement> & { children: ReactNode }) {\n return (\n <div className={cn('flex-1 overflow-y-auto text-sm text-foreground', className)} {...rest}>\n {children}\n </div>\n );\n}\n\nexport function DrawerFooter({\n className,\n children,\n ...rest\n}: HTMLAttributes<HTMLDivElement> & { children: ReactNode }) {\n return (\n <div\n className={cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', className)}\n {...rest}\n >\n {children}\n </div>\n );\n}\n\nexport interface DrawerCloseProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n asChild?: boolean;\n children?: ReactNode;\n}\n\nexport const DrawerClose = forwardRef<HTMLButtonElement, DrawerCloseProps>(function DrawerClose(\n { asChild, onClick, className, children, ...rest },\n forwardedRef,\n) {\n const ctx = useDrawerContext();\n const Component = asChild ? Slot : 'button';\n return (\n <Component\n ref={forwardedRef as never}\n type=\"button\"\n aria-label={children ? undefined : 'Close'}\n onClick={(e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n ctx.setOpen(false);\n requestAnimationFrame(() => ctx.triggerRef.current?.focus());\n }}\n className={\n asChild\n ? className\n : cn(\n 'absolute right-4 top-4 grid h-7 w-7 place-items-center rounded-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n className,\n )\n }\n {...rest}\n >\n {children ?? <X className=\"h-4 w-4\" />}\n </Component>\n );\n});\n\ntype DrawerComponent = typeof Drawer & {\n Trigger: typeof DrawerTrigger;\n Content: typeof DrawerContent;\n Header: typeof DrawerHeader;\n Title: typeof DrawerTitle;\n Description: typeof DrawerDescription;\n Body: typeof DrawerBody;\n Footer: typeof DrawerFooter;\n Close: typeof DrawerClose;\n};\n\n(Drawer as DrawerComponent).Trigger = DrawerTrigger;\n(Drawer as DrawerComponent).Content = DrawerContent;\n(Drawer as DrawerComponent).Header = DrawerHeader;\n(Drawer as DrawerComponent).Title = DrawerTitle;\n(Drawer as DrawerComponent).Description = DrawerDescription;\n(Drawer as DrawerComponent).Body = DrawerBody;\n(Drawer as DrawerComponent).Footer = DrawerFooter;\n(Drawer as DrawerComponent).Close = DrawerClose;\n\nexport default Drawer as DrawerComponent;\n","import {\n createContext,\n forwardRef,\n useContext,\n useMemo,\n useRef,\n type ButtonHTMLAttributes,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { cn, composeRefs } from '../../utils';\nimport { useControlled } from '../../hooks';\nimport {\n AnchoredPositioner,\n DismissableLayer,\n OverlayArrow,\n Portal,\n Slot,\n type AnchoredPositionerProps,\n type OverlayArrowProps,\n} from '../../primitives';\n\ninterface PopoverContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n triggerRef: React.MutableRefObject<HTMLElement | null>;\n placement: AnchoredPositionerProps['placement'];\n offset: number;\n dismissOnOutsideClick: boolean;\n dismissOnEscape: boolean;\n}\n\nconst PopoverContext = createContext<PopoverContextValue | null>(null);\n\nfunction usePopoverContext() {\n const ctx = useContext(PopoverContext);\n if (!ctx) throw new Error('Popover.* must be used inside <Popover>');\n return ctx;\n}\n\nexport interface PopoverProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n placement?: AnchoredPositionerProps['placement'];\n offset?: number;\n dismissOnOutsideClick?: boolean;\n dismissOnEscape?: boolean;\n children: ReactNode;\n}\n\nexport function Popover({\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n placement = 'bottom',\n offset = 8,\n dismissOnOutsideClick = true,\n dismissOnEscape = true,\n children,\n}: PopoverProps) {\n const [open, setOpen] = useControlled({\n controlled: openProp,\n default: defaultOpen,\n onChange: onOpenChange,\n });\n const triggerRef = useRef<HTMLElement | null>(null);\n\n const ctx = useMemo<PopoverContextValue>(\n () => ({\n open,\n setOpen,\n triggerRef,\n placement,\n offset,\n dismissOnOutsideClick,\n dismissOnEscape,\n }),\n [open, setOpen, placement, offset, dismissOnOutsideClick, dismissOnEscape],\n );\n\n return <PopoverContext.Provider value={ctx}>{children}</PopoverContext.Provider>;\n}\n\nexport interface PopoverTriggerProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n asChild?: boolean;\n children: ReactNode;\n}\n\nexport const PopoverTrigger = forwardRef<HTMLButtonElement, PopoverTriggerProps>(\n function PopoverTrigger({ asChild, onClick, children, ...rest }, forwardedRef) {\n const ctx = usePopoverContext();\n const Component = asChild ? Slot : 'button';\n return (\n <Component\n ref={composeRefs(forwardedRef, ctx.triggerRef as React.MutableRefObject<HTMLButtonElement | null>) as never}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={ctx.open}\n data-state={ctx.open ? 'open' : 'closed'}\n onClick={(e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n ctx.setOpen(!ctx.open);\n }}\n {...rest}\n >\n {children}\n </Component>\n );\n },\n);\n\nexport interface PopoverContentProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Strip the default chrome (bg / border / padding / shadow / fixed width).\n * Use when the child provides its own container — e.g. wrapping a `Calendar`,\n * `Listbox`, or any pre-styled card. Keeps only structural classes\n * (z-index, animation, outline).\n */\n bare?: boolean;\n children: ReactNode;\n}\n\nexport const PopoverContent = forwardRef<HTMLDivElement, PopoverContentProps>(\n function PopoverContent({ bare, className, children, ...rest }, forwardedRef) {\n const ctx = usePopoverContext();\n if (!ctx.open) return null;\n return (\n <Portal>\n <AnchoredPositioner\n anchor={ctx.triggerRef.current}\n placement={ctx.placement}\n offset={ctx.offset}\n >\n <FocusScope asChild trapped loop>\n <DismissableLayer\n disableEscape={!ctx.dismissOnEscape}\n onEscape={() => {\n ctx.setOpen(false);\n requestAnimationFrame(() => ctx.triggerRef.current?.focus());\n }}\n disableOutsideClick={!ctx.dismissOnOutsideClick}\n onOutsidePointerDown={(e) => {\n if (ctx.triggerRef.current?.contains(e.target as Node)) return;\n ctx.setOpen(false);\n }}\n >\n <div\n ref={forwardedRef}\n role=\"dialog\"\n data-state=\"open\"\n className={cn(\n 'z-50 outline-none animate-in fade-in-0 zoom-in-95',\n !bare &&\n 'w-72 rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md',\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n </DismissableLayer>\n </FocusScope>\n </AnchoredPositioner>\n </Portal>\n );\n },\n);\n\nexport function PopoverArrow({ className, ...rest }: OverlayArrowProps) {\n return <OverlayArrow className={cn('text-popover', className)} {...rest} />;\n}\n\ntype PopoverComponent = typeof Popover & {\n Trigger: typeof PopoverTrigger;\n Content: typeof PopoverContent;\n Arrow: typeof PopoverArrow;\n};\n\n(Popover as PopoverComponent).Trigger = PopoverTrigger;\n(Popover as PopoverComponent).Content = PopoverContent;\n(Popover as PopoverComponent).Arrow = PopoverArrow;\n\nexport default Popover as PopoverComponent;\n","import {\n cloneElement,\n createContext,\n forwardRef,\n isValidElement,\n useCallback,\n useContext,\n useMemo,\n useRef,\n type HTMLAttributes,\n type ReactElement,\n type ReactNode,\n type Ref,\n} from 'react';\nimport { cn, composeRefs } from '../../utils';\nimport { useControlled } from '../../hooks';\nimport {\n AnchoredPositioner,\n OverlayArrow,\n Portal,\n type AnchoredPositionerProps,\n type OverlayArrowProps,\n} from '../../primitives';\n\ninterface HoverCardContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n triggerRef: React.MutableRefObject<HTMLElement | null>;\n show: () => void;\n hide: () => void;\n cancelHide: () => void;\n placement: AnchoredPositionerProps['placement'];\n offset: number;\n}\n\nconst HoverCardContext = createContext<HoverCardContextValue | null>(null);\n\nfunction useHoverCardContext() {\n const ctx = useContext(HoverCardContext);\n if (!ctx) throw new Error('HoverCard.* must be used inside <HoverCard>');\n return ctx;\n}\n\nexport interface HoverCardProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n openDelay?: number;\n closeDelay?: number;\n placement?: AnchoredPositionerProps['placement'];\n offset?: number;\n children: ReactNode;\n}\n\nexport function HoverCard({\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n openDelay = 700,\n closeDelay = 300,\n placement = 'bottom',\n offset = 8,\n children,\n}: HoverCardProps) {\n const [open, setOpen] = useControlled({\n controlled: openProp,\n default: defaultOpen,\n onChange: onOpenChange,\n });\n const triggerRef = useRef<HTMLElement | null>(null);\n const openTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n const closeTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const clear = useCallback(() => {\n if (openTimer.current) clearTimeout(openTimer.current);\n if (closeTimer.current) clearTimeout(closeTimer.current);\n openTimer.current = null;\n closeTimer.current = null;\n }, []);\n\n const show = useCallback(() => {\n clear();\n openTimer.current = setTimeout(() => setOpen(true), openDelay);\n }, [clear, openDelay, setOpen]);\n\n const hide = useCallback(() => {\n clear();\n closeTimer.current = setTimeout(() => setOpen(false), closeDelay);\n }, [clear, closeDelay, setOpen]);\n\n const cancelHide = useCallback(() => {\n if (closeTimer.current) {\n clearTimeout(closeTimer.current);\n closeTimer.current = null;\n }\n }, []);\n\n const ctx = useMemo<HoverCardContextValue>(\n () => ({ open, setOpen, triggerRef, show, hide, cancelHide, placement, offset }),\n [open, setOpen, show, hide, cancelHide, placement, offset],\n );\n\n return <HoverCardContext.Provider value={ctx}>{children}</HoverCardContext.Provider>;\n}\n\nexport interface HoverCardTriggerProps {\n asChild?: boolean;\n children: ReactElement;\n}\n\nexport function HoverCardTrigger({ children }: HoverCardTriggerProps) {\n const ctx = useHoverCardContext();\n if (!isValidElement(children)) return children;\n const trigger = children as ReactElement<{\n ref?: Ref<HTMLElement>;\n onPointerEnter?: (e: React.PointerEvent) => void;\n onPointerLeave?: (e: React.PointerEvent) => void;\n onFocus?: (e: React.FocusEvent) => void;\n onBlur?: (e: React.FocusEvent) => void;\n }> & { ref?: Ref<HTMLElement> };\n\n return cloneElement(trigger, {\n ref: composeRefs((node: HTMLElement | null) => {\n ctx.triggerRef.current = node;\n }, trigger.ref),\n onPointerEnter: (e: React.PointerEvent) => {\n trigger.props.onPointerEnter?.(e);\n ctx.show();\n },\n onPointerLeave: (e: React.PointerEvent) => {\n trigger.props.onPointerLeave?.(e);\n ctx.hide();\n },\n onFocus: (e: React.FocusEvent) => {\n trigger.props.onFocus?.(e);\n ctx.show();\n },\n onBlur: (e: React.FocusEvent) => {\n trigger.props.onBlur?.(e);\n ctx.hide();\n },\n });\n}\n\nexport interface HoverCardContentProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n}\n\nexport const HoverCardContent = forwardRef<HTMLDivElement, HoverCardContentProps>(\n function HoverCardContent({ className, children, onPointerEnter, onPointerLeave, ...rest }, forwardedRef) {\n const ctx = useHoverCardContext();\n if (!ctx.open) return null;\n return (\n <Portal>\n <AnchoredPositioner\n anchor={ctx.triggerRef.current}\n placement={ctx.placement}\n offset={ctx.offset}\n >\n <div\n ref={forwardedRef}\n data-state=\"open\"\n onPointerEnter={(e) => {\n onPointerEnter?.(e);\n ctx.cancelHide();\n }}\n onPointerLeave={(e) => {\n onPointerLeave?.(e);\n ctx.hide();\n }}\n className={cn(\n 'z-50 w-64 rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md outline-none animate-in fade-in-0 zoom-in-95',\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n </AnchoredPositioner>\n </Portal>\n );\n },\n);\n\nexport function HoverCardArrow({ className, ...rest }: OverlayArrowProps) {\n return <OverlayArrow className={cn('text-popover', className)} {...rest} />;\n}\n\ntype HoverCardComponent = typeof HoverCard & {\n Trigger: typeof HoverCardTrigger;\n Content: typeof HoverCardContent;\n Arrow: typeof HoverCardArrow;\n};\n\n(HoverCard as HoverCardComponent).Trigger = HoverCardTrigger;\n(HoverCard as HoverCardComponent).Content = HoverCardContent;\n(HoverCard as HoverCardComponent).Arrow = HoverCardArrow;\n\nexport default HoverCard as HoverCardComponent;\n"]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { tv } from './chunk-BMBIZLO4.js';
|
|
1
|
+
import { useClipboard, useControlled } from './chunk-4P2TFUVW.js';
|
|
2
|
+
import { Slot, RovingFocusGroup, useRovingFocusItem, Portal, AnchoredPositioner } from './chunk-YMSAS7M7.js';
|
|
3
|
+
import { tv, dataAttr } from './chunk-BMBIZLO4.js';
|
|
4
4
|
import { Icon } from './chunk-TDX22OWF.js';
|
|
5
5
|
import { composeRefs } from './chunk-DN7WBRIV.js';
|
|
6
6
|
import { cn } from './chunk-KZ4VFY2T.js';
|
|
7
|
-
import { forwardRef, useState, Children, isValidElement, Fragment as Fragment$1, useRef, cloneElement } from 'react';
|
|
7
|
+
import { forwardRef, useState, Children, isValidElement, Fragment as Fragment$1, createContext, useId, useMemo, useCallback, useContext, useRef, cloneElement } from 'react';
|
|
8
8
|
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
9
|
-
import { X, TrendingUp, TrendingDown, Check, Copy } from 'lucide-react';
|
|
9
|
+
import { X, TrendingUp, TrendingDown, Check, Copy, ChevronDown } from 'lucide-react';
|
|
10
10
|
|
|
11
11
|
// src/display/heading/Heading.variants.ts
|
|
12
12
|
var headingVariants = tv({
|
|
@@ -768,7 +768,383 @@ var Highlight = forwardRef(
|
|
|
768
768
|
}
|
|
769
769
|
);
|
|
770
770
|
Highlight.displayName = "Highlight";
|
|
771
|
+
var CollapsibleContext = createContext(null);
|
|
772
|
+
function useCollapsibleContext() {
|
|
773
|
+
const ctx = useContext(CollapsibleContext);
|
|
774
|
+
if (!ctx) throw new Error("Collapsible.* must be used inside <Collapsible>");
|
|
775
|
+
return ctx;
|
|
776
|
+
}
|
|
777
|
+
var Collapsible = forwardRef(function Collapsible2({ open: openProp, defaultOpen = false, onOpenChange, disabled = false, className, children, ...rest }, ref) {
|
|
778
|
+
const [open, setOpen] = useControlled({
|
|
779
|
+
controlled: openProp,
|
|
780
|
+
default: defaultOpen,
|
|
781
|
+
onChange: onOpenChange
|
|
782
|
+
});
|
|
783
|
+
const contentId = useId();
|
|
784
|
+
const triggerId = useId();
|
|
785
|
+
const ctx = useMemo(
|
|
786
|
+
() => ({ open, setOpen, contentId, triggerId, disabled }),
|
|
787
|
+
[open, setOpen, contentId, triggerId, disabled]
|
|
788
|
+
);
|
|
789
|
+
return /* @__PURE__ */ jsx(CollapsibleContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx(
|
|
790
|
+
"div",
|
|
791
|
+
{
|
|
792
|
+
ref,
|
|
793
|
+
"data-state": open ? "open" : "closed",
|
|
794
|
+
"data-disabled": dataAttr(disabled),
|
|
795
|
+
className,
|
|
796
|
+
...rest,
|
|
797
|
+
children
|
|
798
|
+
}
|
|
799
|
+
) });
|
|
800
|
+
});
|
|
801
|
+
var CollapsibleTrigger = forwardRef(
|
|
802
|
+
function CollapsibleTrigger2({ asChild, onClick, children, ...rest }, ref) {
|
|
803
|
+
const ctx = useCollapsibleContext();
|
|
804
|
+
const Component = asChild ? Slot : "button";
|
|
805
|
+
return /* @__PURE__ */ jsx(
|
|
806
|
+
Component,
|
|
807
|
+
{
|
|
808
|
+
ref,
|
|
809
|
+
id: ctx.triggerId,
|
|
810
|
+
type: "button",
|
|
811
|
+
"aria-expanded": ctx.open,
|
|
812
|
+
"aria-controls": ctx.contentId,
|
|
813
|
+
"data-state": ctx.open ? "open" : "closed",
|
|
814
|
+
"data-disabled": dataAttr(ctx.disabled),
|
|
815
|
+
disabled: ctx.disabled,
|
|
816
|
+
onClick: (e) => {
|
|
817
|
+
onClick?.(e);
|
|
818
|
+
if (e.defaultPrevented || ctx.disabled) return;
|
|
819
|
+
ctx.setOpen(!ctx.open);
|
|
820
|
+
},
|
|
821
|
+
...rest,
|
|
822
|
+
children
|
|
823
|
+
}
|
|
824
|
+
);
|
|
825
|
+
}
|
|
826
|
+
);
|
|
827
|
+
var CollapsibleContent = forwardRef(
|
|
828
|
+
function CollapsibleContent2({ forceMount, className, children, ...rest }, ref) {
|
|
829
|
+
const ctx = useCollapsibleContext();
|
|
830
|
+
if (!ctx.open && !forceMount) return null;
|
|
831
|
+
return /* @__PURE__ */ jsx(
|
|
832
|
+
"div",
|
|
833
|
+
{
|
|
834
|
+
ref,
|
|
835
|
+
id: ctx.contentId,
|
|
836
|
+
role: "region",
|
|
837
|
+
"aria-labelledby": ctx.triggerId,
|
|
838
|
+
"data-state": ctx.open ? "open" : "closed",
|
|
839
|
+
hidden: !ctx.open,
|
|
840
|
+
className: cn(
|
|
841
|
+
"overflow-hidden data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
842
|
+
className
|
|
843
|
+
),
|
|
844
|
+
...rest,
|
|
845
|
+
children
|
|
846
|
+
}
|
|
847
|
+
);
|
|
848
|
+
}
|
|
849
|
+
);
|
|
850
|
+
Collapsible.Trigger = CollapsibleTrigger;
|
|
851
|
+
Collapsible.Content = CollapsibleContent;
|
|
852
|
+
var AccordionContext = createContext(null);
|
|
853
|
+
function useAccordionContext() {
|
|
854
|
+
const ctx = useContext(AccordionContext);
|
|
855
|
+
if (!ctx) throw new Error("Accordion.* must be used inside <Accordion>");
|
|
856
|
+
return ctx;
|
|
857
|
+
}
|
|
858
|
+
var AccordionItemContext = createContext(null);
|
|
859
|
+
function useAccordionItemContext() {
|
|
860
|
+
const ctx = useContext(AccordionItemContext);
|
|
861
|
+
if (!ctx) throw new Error("Accordion.Trigger / Content must be used inside <Accordion.Item>");
|
|
862
|
+
return ctx;
|
|
863
|
+
}
|
|
864
|
+
var Accordion = forwardRef(function Accordion2(props, ref) {
|
|
865
|
+
const {
|
|
866
|
+
type = "single",
|
|
867
|
+
value,
|
|
868
|
+
defaultValue,
|
|
869
|
+
onValueChange,
|
|
870
|
+
collapsible = false,
|
|
871
|
+
disabled = false,
|
|
872
|
+
className,
|
|
873
|
+
children,
|
|
874
|
+
...rest
|
|
875
|
+
} = props;
|
|
876
|
+
const initial = defaultValue ?? (type === "multiple" ? [] : "");
|
|
877
|
+
const [current, setCurrent] = useControlled({
|
|
878
|
+
controlled: value,
|
|
879
|
+
default: initial,
|
|
880
|
+
onChange: onValueChange
|
|
881
|
+
});
|
|
882
|
+
const isOpen = useCallback(
|
|
883
|
+
(val) => Array.isArray(current) ? current.includes(val) : current === val,
|
|
884
|
+
[current]
|
|
885
|
+
);
|
|
886
|
+
const toggle = useCallback(
|
|
887
|
+
(val) => {
|
|
888
|
+
if (type === "multiple") {
|
|
889
|
+
const arr = Array.isArray(current) ? current : [];
|
|
890
|
+
setCurrent(arr.includes(val) ? arr.filter((v) => v !== val) : [...arr, val]);
|
|
891
|
+
} else {
|
|
892
|
+
if (current === val) {
|
|
893
|
+
if (collapsible) setCurrent("");
|
|
894
|
+
} else {
|
|
895
|
+
setCurrent(val);
|
|
896
|
+
}
|
|
897
|
+
}
|
|
898
|
+
},
|
|
899
|
+
[collapsible, current, setCurrent, type]
|
|
900
|
+
);
|
|
901
|
+
const ctx = useMemo(
|
|
902
|
+
() => ({ isOpen, toggle, disabled }),
|
|
903
|
+
[isOpen, toggle, disabled]
|
|
904
|
+
);
|
|
905
|
+
return /* @__PURE__ */ jsx(AccordionContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx(
|
|
906
|
+
RovingFocusGroup,
|
|
907
|
+
{
|
|
908
|
+
ref,
|
|
909
|
+
orientation: "vertical",
|
|
910
|
+
loop: true,
|
|
911
|
+
className: cn("flex flex-col", className),
|
|
912
|
+
...rest,
|
|
913
|
+
children
|
|
914
|
+
}
|
|
915
|
+
) });
|
|
916
|
+
});
|
|
917
|
+
var AccordionItem = forwardRef(
|
|
918
|
+
function AccordionItem2({ value, disabled = false, className, children, ...rest }, ref) {
|
|
919
|
+
const accordion = useAccordionContext();
|
|
920
|
+
const open = accordion.isOpen(value);
|
|
921
|
+
const contentId = useId();
|
|
922
|
+
const triggerId = useId();
|
|
923
|
+
const itemDisabled = disabled || accordion.disabled;
|
|
924
|
+
const itemCtx = useMemo(
|
|
925
|
+
() => ({ value, open, contentId, triggerId, disabled: itemDisabled }),
|
|
926
|
+
[value, open, contentId, triggerId, itemDisabled]
|
|
927
|
+
);
|
|
928
|
+
return /* @__PURE__ */ jsx(AccordionItemContext.Provider, { value: itemCtx, children: /* @__PURE__ */ jsx(
|
|
929
|
+
"div",
|
|
930
|
+
{
|
|
931
|
+
ref,
|
|
932
|
+
"data-state": open ? "open" : "closed",
|
|
933
|
+
"data-disabled": dataAttr(itemDisabled),
|
|
934
|
+
className: cn("border-b border-border", className),
|
|
935
|
+
...rest,
|
|
936
|
+
children
|
|
937
|
+
}
|
|
938
|
+
) });
|
|
939
|
+
}
|
|
940
|
+
);
|
|
941
|
+
var AccordionTrigger = forwardRef(
|
|
942
|
+
function AccordionTrigger2({ className, onClick, children, ...rest }, ref) {
|
|
943
|
+
const accordion = useAccordionContext();
|
|
944
|
+
const item = useAccordionItemContext();
|
|
945
|
+
const roving = useRovingFocusItem();
|
|
946
|
+
return /* @__PURE__ */ jsx("h3", { className: "flex", children: /* @__PURE__ */ jsxs(
|
|
947
|
+
"button",
|
|
948
|
+
{
|
|
949
|
+
ref: (node) => {
|
|
950
|
+
roving.ref(node);
|
|
951
|
+
if (typeof ref === "function") ref(node);
|
|
952
|
+
else if (ref) ref.current = node;
|
|
953
|
+
},
|
|
954
|
+
id: item.triggerId,
|
|
955
|
+
type: "button",
|
|
956
|
+
"aria-expanded": item.open,
|
|
957
|
+
"aria-controls": item.contentId,
|
|
958
|
+
"data-state": item.open ? "open" : "closed",
|
|
959
|
+
"data-disabled": dataAttr(item.disabled),
|
|
960
|
+
disabled: item.disabled,
|
|
961
|
+
tabIndex: roving.tabIndex,
|
|
962
|
+
onFocus: roving.onFocus,
|
|
963
|
+
onKeyDown: roving.onKeyDown,
|
|
964
|
+
onClick: (e) => {
|
|
965
|
+
onClick?.(e);
|
|
966
|
+
if (e.defaultPrevented || item.disabled) return;
|
|
967
|
+
accordion.toggle(item.value);
|
|
968
|
+
},
|
|
969
|
+
className: cn(
|
|
970
|
+
"flex w-full items-center justify-between gap-2 px-3 py-3 text-left text-sm font-medium text-foreground transition-colors hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
971
|
+
className
|
|
972
|
+
),
|
|
973
|
+
...rest,
|
|
974
|
+
children: [
|
|
975
|
+
/* @__PURE__ */ jsx("span", { className: "flex-1", children }),
|
|
976
|
+
/* @__PURE__ */ jsx(
|
|
977
|
+
ChevronDown,
|
|
978
|
+
{
|
|
979
|
+
className: cn(
|
|
980
|
+
"h-4 w-4 shrink-0 text-muted-foreground transition-transform",
|
|
981
|
+
item.open && "rotate-180"
|
|
982
|
+
)
|
|
983
|
+
}
|
|
984
|
+
)
|
|
985
|
+
]
|
|
986
|
+
}
|
|
987
|
+
) });
|
|
988
|
+
}
|
|
989
|
+
);
|
|
990
|
+
var AccordionContent = forwardRef(
|
|
991
|
+
function AccordionContent2({ className, children, ...rest }, ref) {
|
|
992
|
+
const item = useAccordionItemContext();
|
|
993
|
+
if (!item.open) return null;
|
|
994
|
+
return /* @__PURE__ */ jsx(
|
|
995
|
+
"div",
|
|
996
|
+
{
|
|
997
|
+
ref,
|
|
998
|
+
id: item.contentId,
|
|
999
|
+
role: "region",
|
|
1000
|
+
"aria-labelledby": item.triggerId,
|
|
1001
|
+
"data-state": "open",
|
|
1002
|
+
className: cn("overflow-hidden px-3 pb-3 text-sm text-foreground", className),
|
|
1003
|
+
...rest,
|
|
1004
|
+
children
|
|
1005
|
+
}
|
|
1006
|
+
);
|
|
1007
|
+
}
|
|
1008
|
+
);
|
|
1009
|
+
Accordion.Item = AccordionItem;
|
|
1010
|
+
Accordion.Trigger = AccordionTrigger;
|
|
1011
|
+
Accordion.Content = AccordionContent;
|
|
1012
|
+
var TabsContext = createContext(null);
|
|
1013
|
+
function useTabsContext() {
|
|
1014
|
+
const ctx = useContext(TabsContext);
|
|
1015
|
+
if (!ctx) throw new Error("Tabs.* must be used inside <Tabs>");
|
|
1016
|
+
return ctx;
|
|
1017
|
+
}
|
|
1018
|
+
var Tabs = forwardRef(function Tabs2({
|
|
1019
|
+
value,
|
|
1020
|
+
defaultValue,
|
|
1021
|
+
onValueChange,
|
|
1022
|
+
orientation = "horizontal",
|
|
1023
|
+
activationMode = "automatic",
|
|
1024
|
+
className,
|
|
1025
|
+
children,
|
|
1026
|
+
...rest
|
|
1027
|
+
}, ref) {
|
|
1028
|
+
const [active, setActive] = useControlled({
|
|
1029
|
+
controlled: value,
|
|
1030
|
+
default: defaultValue ?? "",
|
|
1031
|
+
onChange: onValueChange
|
|
1032
|
+
});
|
|
1033
|
+
const baseId = useId();
|
|
1034
|
+
const ctx = useMemo(
|
|
1035
|
+
() => ({ value: active, setValue: setActive, orientation, activationMode, baseId }),
|
|
1036
|
+
[active, setActive, orientation, activationMode, baseId]
|
|
1037
|
+
);
|
|
1038
|
+
return /* @__PURE__ */ jsx(TabsContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx(
|
|
1039
|
+
"div",
|
|
1040
|
+
{
|
|
1041
|
+
ref,
|
|
1042
|
+
"data-orientation": orientation,
|
|
1043
|
+
className: cn(
|
|
1044
|
+
orientation === "vertical" ? "flex gap-2" : "flex flex-col gap-2",
|
|
1045
|
+
className
|
|
1046
|
+
),
|
|
1047
|
+
...rest,
|
|
1048
|
+
children
|
|
1049
|
+
}
|
|
1050
|
+
) });
|
|
1051
|
+
});
|
|
1052
|
+
var TabsList = forwardRef(function TabsList2({ className, children, ...rest }, ref) {
|
|
1053
|
+
const ctx = useTabsContext();
|
|
1054
|
+
return /* @__PURE__ */ jsx(
|
|
1055
|
+
RovingFocusGroup,
|
|
1056
|
+
{
|
|
1057
|
+
ref,
|
|
1058
|
+
orientation: ctx.orientation,
|
|
1059
|
+
loop: true,
|
|
1060
|
+
role: "tablist",
|
|
1061
|
+
"aria-orientation": ctx.orientation,
|
|
1062
|
+
"data-orientation": ctx.orientation,
|
|
1063
|
+
className: cn(
|
|
1064
|
+
"inline-flex border-border",
|
|
1065
|
+
ctx.orientation === "vertical" ? "flex-col border-r" : "flex-row border-b",
|
|
1066
|
+
className
|
|
1067
|
+
),
|
|
1068
|
+
...rest,
|
|
1069
|
+
children
|
|
1070
|
+
}
|
|
1071
|
+
);
|
|
1072
|
+
});
|
|
1073
|
+
var TabsTab = forwardRef(function TabsTab2({ value, disabled = false, className, onClick, onFocus, children, ...rest }, ref) {
|
|
1074
|
+
const ctx = useTabsContext();
|
|
1075
|
+
const roving = useRovingFocusItem();
|
|
1076
|
+
const selected = ctx.value === value;
|
|
1077
|
+
const tabId = `${ctx.baseId}-tab-${value}`;
|
|
1078
|
+
const panelId = `${ctx.baseId}-panel-${value}`;
|
|
1079
|
+
return /* @__PURE__ */ jsx(
|
|
1080
|
+
"button",
|
|
1081
|
+
{
|
|
1082
|
+
ref: (node) => {
|
|
1083
|
+
roving.ref(node);
|
|
1084
|
+
if (typeof ref === "function") ref(node);
|
|
1085
|
+
else if (ref) ref.current = node;
|
|
1086
|
+
},
|
|
1087
|
+
id: tabId,
|
|
1088
|
+
role: "tab",
|
|
1089
|
+
type: "button",
|
|
1090
|
+
"aria-selected": selected,
|
|
1091
|
+
"aria-controls": panelId,
|
|
1092
|
+
"data-state": selected ? "active" : "inactive",
|
|
1093
|
+
"data-disabled": dataAttr(disabled),
|
|
1094
|
+
tabIndex: roving.tabIndex,
|
|
1095
|
+
disabled,
|
|
1096
|
+
onClick: (e) => {
|
|
1097
|
+
onClick?.(e);
|
|
1098
|
+
if (e.defaultPrevented || disabled) return;
|
|
1099
|
+
ctx.setValue(value);
|
|
1100
|
+
},
|
|
1101
|
+
onFocus: (e) => {
|
|
1102
|
+
onFocus?.(e);
|
|
1103
|
+
roving.onFocus();
|
|
1104
|
+
if (ctx.activationMode === "automatic" && !disabled) {
|
|
1105
|
+
ctx.setValue(value);
|
|
1106
|
+
}
|
|
1107
|
+
},
|
|
1108
|
+
onKeyDown: roving.onKeyDown,
|
|
1109
|
+
className: cn(
|
|
1110
|
+
"inline-flex items-center justify-center gap-2 px-4 py-2 text-sm font-medium text-muted-foreground transition-colors",
|
|
1111
|
+
"hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
1112
|
+
"data-[state=active]:text-foreground data-[state=active]:border-primary",
|
|
1113
|
+
ctx.orientation === "vertical" ? "border-r-2 border-transparent data-[state=active]:border-primary" : "border-b-2 border-transparent data-[state=active]:border-primary",
|
|
1114
|
+
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
1115
|
+
className
|
|
1116
|
+
),
|
|
1117
|
+
...rest,
|
|
1118
|
+
children
|
|
1119
|
+
}
|
|
1120
|
+
);
|
|
1121
|
+
});
|
|
1122
|
+
var TabsPanel = forwardRef(function TabsPanel2({ value, className, children, ...rest }, ref) {
|
|
1123
|
+
const ctx = useTabsContext();
|
|
1124
|
+
if (ctx.value !== value) return null;
|
|
1125
|
+
const tabId = `${ctx.baseId}-tab-${value}`;
|
|
1126
|
+
const panelId = `${ctx.baseId}-panel-${value}`;
|
|
1127
|
+
return /* @__PURE__ */ jsx(
|
|
1128
|
+
"div",
|
|
1129
|
+
{
|
|
1130
|
+
ref,
|
|
1131
|
+
id: panelId,
|
|
1132
|
+
role: "tabpanel",
|
|
1133
|
+
"aria-labelledby": tabId,
|
|
1134
|
+
tabIndex: 0,
|
|
1135
|
+
className: cn(
|
|
1136
|
+
"flex-1 outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
1137
|
+
className
|
|
1138
|
+
),
|
|
1139
|
+
...rest,
|
|
1140
|
+
children
|
|
1141
|
+
}
|
|
1142
|
+
);
|
|
1143
|
+
});
|
|
1144
|
+
Tabs.List = TabsList;
|
|
1145
|
+
Tabs.Tab = TabsTab;
|
|
1146
|
+
Tabs.Panel = TabsPanel;
|
|
771
1147
|
|
|
772
|
-
export { Avatar, AvatarGroup, Badge, BadgeOverlay, Card, Code, CountBadge, DescriptionList, EmptyState, Heading, Highlight, Image, InfoRow, Kbd, KeyboardShortcut, Mark, NotificationDot, Quote, SectionHeader, Separator, Snippet, Stat, Status, Tag, Text, Tooltip, avatarVariants, badgeVariants, codeVariants, headingVariants, tagVariants, textVariants };
|
|
773
|
-
//# sourceMappingURL=chunk-
|
|
774
|
-
//# sourceMappingURL=chunk-
|
|
1148
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Avatar, AvatarGroup, Badge, BadgeOverlay, Card, Code, Collapsible, CollapsibleContent, CollapsibleTrigger, CountBadge, DescriptionList, EmptyState, Heading, Highlight, Image, InfoRow, Kbd, KeyboardShortcut, Mark, NotificationDot, Quote, SectionHeader, Separator, Snippet, Stat, Status, Tabs, TabsList, TabsPanel, TabsTab, Tag, Text, Tooltip, avatarVariants, badgeVariants, codeVariants, headingVariants, tagVariants, textVariants };
|
|
1149
|
+
//# sourceMappingURL=chunk-PRRVOVUC.js.map
|
|
1150
|
+
//# sourceMappingURL=chunk-PRRVOVUC.js.map
|