@etus/ui 0.4.0-beta.8 → 0.4.0-beta.9
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/{chunk-2YWWZEPE.js → chunk-2HM5Z2YP.js} +3 -3
- package/dist/{chunk-2YWWZEPE.js.map → chunk-2HM5Z2YP.js.map} +1 -1
- package/dist/{chunk-SCGKQ5RE.js → chunk-2ROFZG3A.js} +3 -3
- package/dist/{chunk-SCGKQ5RE.js.map → chunk-2ROFZG3A.js.map} +1 -1
- package/dist/{chunk-YP2ATSXP.js → chunk-3BBOSSDG.js} +14 -6
- package/dist/{chunk-YP2ATSXP.js.map → chunk-3BBOSSDG.js.map} +1 -1
- package/dist/{chunk-LEAK22ZP.js → chunk-55RLLBXW.js} +3 -3
- package/dist/{chunk-LEAK22ZP.js.map → chunk-55RLLBXW.js.map} +1 -1
- package/dist/{chunk-43BS3PPX.js → chunk-5DMK7CVS.js} +3 -3
- package/dist/{chunk-43BS3PPX.js.map → chunk-5DMK7CVS.js.map} +1 -1
- package/dist/{chunk-5TZDEGZN.js → chunk-EVZ2GZU4.js} +3 -3
- package/dist/{chunk-5TZDEGZN.js.map → chunk-EVZ2GZU4.js.map} +1 -1
- package/dist/{chunk-4GQN76L7.js → chunk-G7PBPX3K.js} +3 -3
- package/dist/{chunk-4GQN76L7.js.map → chunk-G7PBPX3K.js.map} +1 -1
- package/dist/{chunk-BMNCNBPA.js → chunk-GDSYLR7L.js} +3 -3
- package/dist/{chunk-BMNCNBPA.js.map → chunk-GDSYLR7L.js.map} +1 -1
- package/dist/{chunk-237TQKWH.js → chunk-LNSCL76Q.js} +3 -3
- package/dist/{chunk-237TQKWH.js.map → chunk-LNSCL76Q.js.map} +1 -1
- package/dist/{chunk-JMZ4CO6R.js → chunk-NCT5WXKG.js} +3 -3
- package/dist/{chunk-JMZ4CO6R.js.map → chunk-NCT5WXKG.js.map} +1 -1
- package/dist/{chunk-KZRTQF64.js → chunk-RJ2QVURO.js} +3 -3
- package/dist/{chunk-KZRTQF64.js.map → chunk-RJ2QVURO.js.map} +1 -1
- package/dist/{chunk-YDZBLZVZ.js → chunk-SLRCXCHM.js} +3 -3
- package/dist/{chunk-YDZBLZVZ.js.map → chunk-SLRCXCHM.js.map} +1 -1
- package/dist/{chunk-JONTKXGK.js → chunk-U2CXFKRK.js} +3 -3
- package/dist/{chunk-JONTKXGK.js.map → chunk-U2CXFKRK.js.map} +1 -1
- package/dist/{chunk-B4ETIQOO.js → chunk-U2R47SPY.js} +3 -3
- package/dist/{chunk-B4ETIQOO.js.map → chunk-U2R47SPY.js.map} +1 -1
- package/dist/{chunk-ON7WFRYH.js → chunk-UST7EAJM.js} +3 -3
- package/dist/{chunk-ON7WFRYH.js.map → chunk-UST7EAJM.js.map} +1 -1
- package/dist/{chunk-QZWKXUZP.js → chunk-VBJ26PZJ.js} +3 -3
- package/dist/{chunk-QZWKXUZP.js.map → chunk-VBJ26PZJ.js.map} +1 -1
- package/dist/{chunk-YQX7XZES.js → chunk-YZ25HHV2.js} +3 -3
- package/dist/{chunk-YQX7XZES.js.map → chunk-YZ25HHV2.js.map} +1 -1
- package/dist/components/advanced/ReportBuilder/index.js +2 -2
- package/dist/components/advanced/index.js +6 -6
- package/dist/components/data-display/DashboardFilterbar/index.js +1 -1
- package/dist/components/data-display/List/index.js +2 -2
- package/dist/components/data-display/index.js +17 -17
- package/dist/components/feedback/Notification/index.js +2 -2
- package/dist/components/feedback/index.js +4 -4
- package/dist/components/forms/Field/index.js +2 -2
- package/dist/components/forms/Form/index.js +2 -2
- package/dist/components/forms/InputOTPField/index.js +3 -3
- package/dist/components/forms/Rating/index.js +1 -1
- package/dist/components/forms/TextareaField/index.js +3 -3
- package/dist/components/forms/index.js +11 -11
- package/dist/components/index.js +73 -73
- package/dist/components/layout/index.js +1 -1
- package/dist/components/navigation/AccountSwitch/index.js +2 -2
- package/dist/components/navigation/Sidebar/index.js +2 -2
- package/dist/components/navigation/index.js +11 -11
- package/dist/components/primitives/Avatar/index.js +1 -1
- package/dist/components/primitives/Label/index.js +1 -1
- package/dist/components/primitives/index.js +7 -7
- package/dist/components/workflow/ApprovalFlow/index.js +2 -2
- package/dist/components/workflow/CommentSystem/index.js +2 -2
- package/dist/components/workflow/DashboardBuilder/index.js +2 -2
- package/dist/components/workflow/KanbanBoard/index.js +2 -2
- package/dist/components/workflow/ReportGenerator/index.js +2 -2
- package/dist/components/workflow/index.js +8 -8
- package/dist/index.d.ts +6 -6
- package/dist/index.js +73 -73
- package/dist/styles.css +98 -25
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/primitives/Avatar/Avatar.tsx","../src/components/primitives/Avatar/AvatarStatus.tsx","../src/components/primitives/Avatar/AvatarBadge.tsx","../src/components/primitives/Avatar/AvatarGroup.tsx","../src/components/primitives/Avatar/AvatarLabelGroup.tsx","../src/components/primitives/Avatar/AvatarAddButton.tsx","../src/components/primitives/Avatar/AvatarSkeleton.tsx"],"names":["cva","jsx","jsxs","iconSizes"],"mappings":"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","file":"chunk-YP2ATSXP.js","sourcesContent":["\"use client\"\n\nimport type { AvatarFallbackProps, AvatarImageProps, AvatarProps } from \"./Avatar.types\"\n\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\nimport { cva } from \"class-variance-authority\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"../../feedback/Tooltip\"\n\nconst avatarVariants = cva(\n \"relative flex shrink-0 overflow-hidden\",\n {\n variants: {\n size: {\n xs: \"size-[var(--avatar-size-xs)] text-[length:var(--avatar-text-xs)]\",\n sm: \"size-[var(--avatar-size-sm)] text-[length:var(--avatar-text-sm)]\",\n default: \"size-[var(--avatar-size-default)] text-[length:var(--avatar-text-default)]\",\n lg: \"size-[var(--avatar-size-lg)] text-[length:var(--avatar-text-lg)]\",\n xl: \"size-[var(--avatar-size-xl)] text-[length:var(--avatar-text-xl)]\",\n },\n shape: {\n circle: \"rounded-[var(--avatar-radius-circle)]\",\n },\n bordered: {\n true: \"ring-2 ring-background\",\n false: \"\",\n },\n interactive: {\n true: \"cursor-pointer transition-transform hover:scale-105 focus-visible:outline-none focus-visible:ring-[length:var(--avatar-focus-ring-width)] focus-visible:ring-offset-[length:var(--avatar-focus-ring-offset)] focus-visible:ring-[color:var(--avatar-focus-ring-color)]\",\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"default\",\n shape: \"circle\",\n bordered: false,\n interactive: false,\n },\n }\n)\n\n// Static contrast border classes for Tailwind JIT compatibility\n// Uses base-black/8 token instead of hardcoded rgba values\nconst contrastBorderClasses = {\n \"xs-circle\": \"after:absolute after:inset-0 after:rounded-full after:border-[0.5px] after:border-[color:var(--avatar-border-contrast)] after:pointer-events-none\",\n \"sm-circle\": \"after:absolute after:inset-0 after:rounded-full after:border-[0.5px] after:border-[color:var(--avatar-border-contrast)] after:pointer-events-none\",\n \"default-circle\": \"after:absolute after:inset-0 after:rounded-full after:border-[0.75px] after:border-[color:var(--avatar-border-contrast)] after:pointer-events-none\",\n \"lg-circle\": \"after:absolute after:inset-0 after:rounded-full after:border-[0.75px] after:border-[color:var(--avatar-border-contrast)] after:pointer-events-none\",\n \"xl-circle\": \"after:absolute after:inset-0 after:rounded-full after:border-[0.75px] after:border-[color:var(--avatar-border-contrast)] after:pointer-events-none\",\n} as const\n\nfunction getContrastBorderClass(size: string, shape: string): string {\n const key = `${size}-${shape}` as keyof typeof contrastBorderClasses\n return key in contrastBorderClasses ? contrastBorderClasses[key] : contrastBorderClasses[\"default-circle\"]\n}\n\nfunction Avatar({\n className,\n size = \"default\",\n shape = \"circle\",\n bordered,\n interactive,\n contrastBorder = true,\n tooltip,\n children,\n ...props\n}: AvatarProps) {\n const avatarElement = (\n <AvatarPrimitive.Root\n className={cn(\n avatarVariants({ size, shape, bordered, interactive }),\n contrastBorder && size && shape && getContrastBorderClass(size, shape),\n className\n )}\n data-slot=\"avatar\"\n tabIndex={tooltip ? 0 : undefined}\n {...props}\n >\n {children}\n </AvatarPrimitive.Root>\n )\n\n if (tooltip) {\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n {avatarElement}\n </TooltipTrigger>\n <TooltipContent>\n {tooltip}\n </TooltipContent>\n </Tooltip>\n )\n }\n\n return avatarElement\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: AvatarImageProps) {\n return (\n <AvatarPrimitive.Image\n className={cn(\"aspect-square size-full object-cover\", className)}\n data-slot=\"avatar-image\"\n {...props}\n />\n )\n}\n\nconst avatarFallbackVariants = cva(\n \"flex size-full items-center justify-center font-medium\",\n {\n variants: {\n colorScheme: {\n default: \"bg-[color:var(--avatar-fallback-bg-default)] text-[color:var(--avatar-fallback-text-default)]\",\n primary: \"bg-[color:var(--avatar-fallback-bg-primary)] text-[color:var(--avatar-fallback-text-primary)]\",\n secondary: \"bg-[color:var(--avatar-fallback-bg-secondary)] text-[color:var(--avatar-fallback-text-secondary)]\",\n success: \"bg-[color:var(--avatar-fallback-bg-success)] text-[color:var(--avatar-fallback-text-success)]\",\n warning: \"bg-[color:var(--avatar-fallback-bg-warning)] text-[color:var(--avatar-fallback-text-warning)]\",\n destructive: \"bg-[color:var(--avatar-fallback-bg-destructive)] text-[color:var(--avatar-fallback-text-destructive)]\",\n },\n },\n defaultVariants: {\n colorScheme: \"default\",\n },\n }\n)\n\nfunction AvatarFallback({\n className,\n colorScheme = \"default\",\n ...props\n}: AvatarFallbackProps) {\n return (\n <AvatarPrimitive.Fallback\n className={cn(avatarFallbackVariants({ colorScheme }), className)}\n data-slot=\"avatar-fallback\"\n {...props}\n />\n )\n}\n\nexport { Avatar, AvatarFallback, avatarFallbackVariants, AvatarImage, avatarVariants }\n","\"use client\"\n\nimport { cva } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\n\nconst avatarStatusVariants = cva(\n \"absolute bottom-0 right-0 rounded-full ring-[1.5px] ring-background\",\n {\n variants: {\n status: {\n online: \"bg-success\",\n offline: \"bg-muted-foreground\",\n busy: \"bg-destructive\",\n away: \"bg-warning\",\n },\n size: {\n xs: \"size-1.5\", // 6px\n sm: \"size-2\", // 8px\n default: \"size-2.5\", // 10px\n lg: \"size-3\", // 12px\n xl: \"size-3.5\", // 14px\n },\n },\n defaultVariants: {\n status: \"offline\",\n size: \"default\",\n },\n }\n)\n\nexport interface AvatarStatusProps extends React.ComponentProps<\"span\"> {\n /**\n * The size of the status indicator (should match parent Avatar size)\n * @default \"default\"\n */\n size?: \"default\" | \"lg\" | \"sm\" | \"xl\" | \"xs\"\n /**\n * The status to display\n * @default \"offline\"\n */\n status?: \"away\" | \"busy\" | \"offline\" | \"online\"\n}\n\nconst statusLabels = {\n online: \"Online\",\n offline: \"Offline\",\n busy: \"Busy\",\n away: \"Away\",\n} as const\n\nfunction AvatarStatus({\n className,\n status = \"offline\",\n size,\n ...props\n}: AvatarStatusProps) {\n return (\n <span\n aria-label={statusLabels[status]}\n className={cn(avatarStatusVariants({ status, size, className }))}\n data-slot=\"avatar-status\"\n role=\"status\"\n {...props}\n />\n )\n}\n\nexport { AvatarStatus, avatarStatusVariants }\n","\"use client\"\n\nimport { cva } from \"class-variance-authority\"\nimport { Building2, CheckCircle2 } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\n\nconst avatarBadgeVariants = cva(\n \"absolute -bottom-0.5 -right-0.5 flex items-center justify-center rounded-full ring-[1.5px] ring-background\",\n {\n variants: {\n variant: {\n company: \"bg-brius-500 text-base-white\",\n verified: \"bg-sevends-blue-600 text-base-white\",\n },\n size: {\n xs: \"size-2.5\", // 10px\n sm: \"size-3\", // 12px\n default: \"size-3.5\", // 14px\n lg: \"size-4\", // 16px\n xl: \"size-5\", // 18px\n },\n },\n defaultVariants: {\n variant: \"verified\",\n size: \"default\",\n },\n }\n)\n\nconst iconSizes = {\n xs: \"size-2\",\n sm: \"size-2.5\",\n default: \"size-3\",\n lg: \"size-3.5\",\n xl: \"size-4\",\n} as const\n\nexport interface AvatarBadgeProps extends React.ComponentProps<\"span\"> {\n /**\n * The size of the badge (should match parent Avatar size)\n * @default \"default\"\n */\n size?: \"default\" | \"lg\" | \"sm\" | \"xl\" | \"xs\"\n /**\n * The badge variant to display\n * @default \"verified\"\n */\n variant?: \"company\" | \"verified\"\n}\n\nconst badgeLabels = {\n company: \"Company account\",\n verified: \"Verified account\",\n} as const\n\nfunction AvatarBadge({\n className,\n variant = \"verified\",\n size = \"default\",\n children,\n ...props\n}: AvatarBadgeProps) {\n const defaultIcon = variant === \"company\"\n ? <Building2 className={iconSizes[size]} />\n : <CheckCircle2 className={iconSizes[size]} />\n\n return (\n <span\n aria-label={badgeLabels[variant]}\n className={cn(avatarBadgeVariants({ variant, size, className }))}\n data-slot=\"avatar-badge\"\n role=\"img\"\n {...props}\n >\n {children ?? defaultIcon}\n </span>\n )\n}\n\nexport { AvatarBadge, avatarBadgeVariants }\n","\"use client\"\n\nimport type { AvatarProps, AvatarSize } from \"./Avatar.types\"\n\nimport { cva } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Avatar, AvatarFallback } from \"./Avatar\"\n\nconst avatarGroupVariants = cva(\"flex\", {\n variants: {\n size: {\n xs: \"-space-x-1\",\n sm: \"-space-x-2\",\n default: \"-space-x-3\",\n lg: \"-space-x-3\",\n xl: \"-space-x-4\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n})\n\nexport interface AvatarGroupProps extends React.ComponentProps<\"div\"> {\n /**\n * Whether to apply ring-2 ring-background to all avatars for visual separation\n * @default true\n */\n bordered?: boolean\n /**\n * Child Avatar components\n */\n children: React.ReactNode\n /**\n * Maximum number of avatars to display before showing \"+N\" indicator\n */\n max?: number\n /**\n * Size to apply to all child avatars\n * @default \"default\"\n */\n size?: AvatarSize\n}\n\nfunction AvatarGroup({\n className,\n max,\n size = \"default\",\n bordered = true,\n children,\n ...props\n}: AvatarGroupProps) {\n // eslint-disable-next-line @eslint-react/no-children-to-array -- Required to count and slice children for max limit\n const childArray = React.Children.toArray(children)\n const hasMax = max !== undefined\n const visibleChildren = hasMax ? childArray.slice(0, max) : childArray\n const remainingCount = hasMax ? Math.max(0, childArray.length - max) : 0\n\n return (\n <div\n aria-label={`Avatar group${hasMax && remainingCount > 0 ? `, showing ${String(visibleChildren.length)} of ${String(childArray.length)}` : \"\"}`}\n className={cn(avatarGroupVariants({ size, className }))}\n data-slot=\"avatar-group\"\n role=\"group\"\n {...props}\n >\n {/* eslint-disable @eslint-react/no-clone-element -- Required to inject size/bordered props to Avatar children */}\n {visibleChildren.map((child) => {\n if (React.isValidElement<AvatarProps>(child) && child.type === Avatar) {\n // Children.toArray assigns stable keys to all children\n return React.cloneElement(child, {\n size: child.props.size ?? size,\n bordered: child.props.bordered ?? bordered,\n className: cn(\n bordered && \"ring-2 ring-background\",\n child.props.className\n ),\n })\n }\n return child\n })}\n {/* eslint-enable @eslint-react/no-clone-element */}\n {remainingCount > 0 && (\n <Avatar\n bordered={bordered}\n className={cn(bordered && \"ring-2 ring-background\")}\n size={size}\n >\n <AvatarFallback className=\"bg-muted text-muted-foreground text-xs font-medium\">\n +{remainingCount}\n </AvatarFallback>\n </Avatar>\n )}\n </div>\n )\n}\n\nexport { AvatarGroup, avatarGroupVariants }\n","\"use client\"\n\nimport { cva } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"../../feedback/Tooltip\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"./Avatar\"\nimport { AvatarBadge, type AvatarBadgeProps } from \"./AvatarBadge\"\nimport { AvatarStatus, type AvatarStatusProps } from \"./AvatarStatus\"\n\nconst avatarLabelGroupVariants = cva(\n \"flex items-center gap-3\",\n {\n variants: {\n interactive: {\n true: \"cursor-pointer rounded-lg transition-colors hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 -m-2 p-2\",\n false: \"\",\n },\n },\n defaultVariants: {\n interactive: false,\n },\n }\n)\n\nexport interface AvatarLabelGroupProps extends React.ComponentProps<\"div\"> {\n /**\n * Alternative text for the avatar image\n */\n alt?: string\n /**\n * Optional badge variant (company or verified)\n * Cannot be used together with status\n */\n badge?: AvatarBadgeProps[\"variant\"]\n /**\n * Optional description text below the name\n */\n description?: string\n /**\n * Whether the component is interactive (shows hover/focus states)\n * @default false\n */\n interactive?: boolean\n /**\n * The name to display (required, also used for initials fallback)\n */\n name: string\n /**\n * Click handler for interactive mode\n */\n onClick?: React.MouseEventHandler<HTMLDivElement>\n /**\n * Size variant for the avatar and status/badge indicator\n * @default \"default\"\n */\n size?: AvatarStatusProps[\"size\"]\n /**\n * The image source for the avatar\n */\n src?: string\n /**\n * Optional status indicator (online, offline, busy, away)\n * Cannot be used together with badge\n */\n status?: AvatarStatusProps[\"status\"]\n /**\n * Tooltip text to display on hover\n * If true, uses name + description\n * @default undefined\n */\n tooltip?: boolean | string\n}\n\n/**\n * Generates initials from a name string\n * Takes first letter of first two words, uppercased\n */\nfunction getInitials(name: string): string {\n return name\n .split(\" \")\n .map((word) => word[0])\n .join(\"\")\n .toUpperCase()\n .slice(0, 2)\n}\n\nfunction AvatarLabelGroup({\n className,\n src,\n alt,\n name,\n description,\n size = \"default\",\n status,\n badge,\n interactive = false,\n onClick,\n tooltip,\n ...props\n}: AvatarLabelGroupProps) {\n // Generate tooltip text\n const tooltipText = tooltip === true\n ? description ? `${name} - ${description}` : name\n : typeof tooltip === \"string\" ? tooltip : undefined\n\n const content = (\n <div\n className={cn(avatarLabelGroupVariants({ interactive }), className)}\n data-slot=\"avatar-label-group\"\n role={interactive ? \"button\" : undefined}\n tabIndex={interactive || tooltipText ? 0 : undefined}\n onClick={interactive ? onClick : undefined}\n {...props}\n >\n <div className=\"relative\">\n <Avatar interactive={interactive} size={size}>\n {src && <AvatarImage alt={alt ?? name} src={src} />}\n <AvatarFallback>{getInitials(name)}</AvatarFallback>\n </Avatar>\n {status && <AvatarStatus size={size} status={status} />}\n {badge && !status && <AvatarBadge size={size} variant={badge} />}\n </div>\n <div className=\"flex flex-col gap-0.5\">\n <span className=\"text-sm font-medium text-foreground\">{name}</span>\n {description && (\n <span className=\"text-sm text-muted-foreground\">{description}</span>\n )}\n </div>\n </div>\n )\n\n if (tooltipText) {\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n {content}\n </TooltipTrigger>\n <TooltipContent>\n {tooltipText}\n </TooltipContent>\n </Tooltip>\n )\n }\n\n return content\n}\n\nexport { AvatarLabelGroup, avatarLabelGroupVariants, getInitials }\n","\"use client\"\n\nimport { cva } from \"class-variance-authority\"\nimport { Plus } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\n\nconst avatarAddButtonVariants = cva(\n \"relative flex shrink-0 items-center justify-center overflow-hidden rounded-full border-2 border-dashed border-muted-foreground/50 bg-muted text-muted-foreground transition-colors hover:border-primary hover:bg-primary/10 hover:text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 cursor-pointer\",\n {\n variants: {\n size: {\n xs: \"size-[var(--avatar-size-xs)]\",\n sm: \"size-[var(--avatar-size-sm)]\",\n default: \"size-[var(--avatar-size-default)]\",\n lg: \"size-[var(--avatar-size-lg)]\",\n xl: \"size-[var(--avatar-size-xl)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\nexport interface AvatarAddButtonProps extends React.ComponentProps<\"button\"> {\n size?: \"default\" | \"lg\" | \"sm\" | \"xl\" | \"xs\"\n}\n\nfunction AvatarAddButton({\n className,\n size = \"default\",\n ...props\n}: AvatarAddButtonProps) {\n const iconSizes = {\n xs: \"size-3\",\n sm: \"size-3.5\",\n default: \"size-4\",\n lg: \"size-5\",\n xl: \"size-6\",\n }\n\n return (\n <button\n aria-label=\"Add user\"\n className={cn(avatarAddButtonVariants({ size, className }))}\n data-slot=\"avatar-add-button\"\n type=\"button\"\n {...props}\n >\n <Plus className={iconSizes[size]} />\n </button>\n )\n}\n\nexport { AvatarAddButton, avatarAddButtonVariants }\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { avatarVariants } from \"./Avatar\"\n\nexport interface AvatarSkeletonProps extends React.ComponentProps<\"div\"> {\n /**\n * The shape of the skeleton\n * @default \"circle\"\n */\n shape?: \"circle\"\n /**\n * The size of the skeleton\n * @default \"default\"\n */\n size?: \"default\" | \"lg\" | \"sm\" | \"xl\" | \"xs\"\n}\n\nexport interface AvatarLabelGroupSkeletonProps extends React.ComponentProps<\"div\"> {\n /**\n * The size of the avatar skeleton\n * @default \"default\"\n */\n size?: \"default\" | \"lg\" | \"sm\" | \"xl\" | \"xs\"\n}\n\n/**\n * Skeleton placeholder for Avatar component\n * Use while loading user data\n */\nfunction AvatarSkeleton({\n size = \"default\",\n shape = \"circle\",\n className,\n ...props\n}: AvatarSkeletonProps) {\n return (\n <div\n className={cn(\n avatarVariants({ size, shape }),\n \"bg-muted animate-pulse\",\n className\n )}\n data-slot=\"avatar-skeleton\"\n {...props}\n />\n )\n}\n\n/**\n * Skeleton placeholder for AvatarLabelGroup component\n * Use while loading user data with name and description\n */\nfunction AvatarLabelGroupSkeleton({\n size = \"default\",\n className,\n ...props\n}: AvatarLabelGroupSkeletonProps) {\n return (\n <div\n className={cn(\"flex items-center gap-3\", className)}\n data-slot=\"avatar-label-group-skeleton\"\n {...props}\n >\n <AvatarSkeleton size={size} />\n <div className=\"flex flex-col gap-1.5\">\n <div className=\"h-4 w-24 rounded bg-muted animate-pulse\" />\n <div className=\"h-3 w-32 rounded bg-muted animate-pulse\" />\n </div>\n </div>\n )\n}\n\nexport { AvatarLabelGroupSkeleton, AvatarSkeleton }\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/primitives/Avatar/Avatar.tsx","../src/components/primitives/Avatar/AvatarStatus.tsx","../src/components/primitives/Avatar/AvatarBadge.tsx","../src/components/primitives/Avatar/AvatarGroup.tsx","../src/components/primitives/Avatar/AvatarLabelGroup.tsx","../src/components/primitives/Avatar/AvatarAddButton.tsx","../src/components/primitives/Avatar/AvatarSkeleton.tsx"],"names":["cva","jsx","jsxs","iconSizes"],"mappings":"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","file":"chunk-3BBOSSDG.js","sourcesContent":["\"use client\"\n\nimport type { AvatarFallbackProps, AvatarImageProps, AvatarProps } from \"./Avatar.types\"\n\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\nimport { cva } from \"class-variance-authority\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"../../feedback/Tooltip\"\n\nconst avatarVariants = cva(\n \"relative flex shrink-0 overflow-hidden\",\n {\n variants: {\n size: {\n xs: \"size-[var(--avatar-size-xs)] text-[length:var(--avatar-text-xs)]\",\n sm: \"size-[var(--avatar-size-sm)] text-[length:var(--avatar-text-sm)]\",\n default: \"size-[var(--avatar-size-default)] text-[length:var(--avatar-text-default)]\",\n lg: \"size-[var(--avatar-size-lg)] text-[length:var(--avatar-text-lg)]\",\n xl: \"size-[var(--avatar-size-xl)] text-[length:var(--avatar-text-xl)]\",\n \"3xl\": \"size-[var(--avatar-size-3xl)] text-[length:var(--avatar-text-3xl)]\",\n \"4xl\": \"size-[var(--avatar-size-4xl)] text-[length:var(--avatar-text-4xl)]\",\n },\n shape: {\n circle: \"rounded-[var(--avatar-radius-circle)]\",\n },\n bordered: {\n true: \"ring-2 ring-background\",\n false: \"\",\n },\n interactive: {\n true: \"cursor-pointer transition-transform hover:scale-105 focus-visible:outline-none focus-visible:ring-[length:var(--avatar-focus-ring-width)] focus-visible:ring-offset-[length:var(--avatar-focus-ring-offset)] focus-visible:ring-[color:var(--avatar-focus-ring-color)]\",\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"default\",\n shape: \"circle\",\n bordered: false,\n interactive: false,\n },\n }\n)\n\n// Static contrast border classes for Tailwind JIT compatibility\n// Uses base-black/8 token instead of hardcoded rgba values\nconst contrastBorderClasses = {\n \"xs-circle\": \"after:absolute after:inset-0 after:rounded-full after:border-[0.5px] after:border-[color:var(--avatar-border-contrast)] after:pointer-events-none\",\n \"sm-circle\": \"after:absolute after:inset-0 after:rounded-full after:border-[0.5px] after:border-[color:var(--avatar-border-contrast)] after:pointer-events-none\",\n \"default-circle\": \"after:absolute after:inset-0 after:rounded-full after:border-[0.75px] after:border-[color:var(--avatar-border-contrast)] after:pointer-events-none\",\n \"lg-circle\": \"after:absolute after:inset-0 after:rounded-full after:border-[0.75px] after:border-[color:var(--avatar-border-contrast)] after:pointer-events-none\",\n \"xl-circle\": \"after:absolute after:inset-0 after:rounded-full after:border-[0.75px] after:border-[color:var(--avatar-border-contrast)] after:pointer-events-none\",\n} as const\n\nfunction getContrastBorderClass(size: string, shape: string): string {\n const key = `${size}-${shape}` as keyof typeof contrastBorderClasses\n return key in contrastBorderClasses ? contrastBorderClasses[key] : contrastBorderClasses[\"default-circle\"]\n}\n\nfunction Avatar({\n className,\n size = \"default\",\n shape = \"circle\",\n bordered,\n interactive,\n contrastBorder = true,\n tooltip,\n children,\n ...props\n}: AvatarProps) {\n const avatarElement = (\n <AvatarPrimitive.Root\n className={cn(\n avatarVariants({ size, shape, bordered, interactive }),\n contrastBorder && size && shape && getContrastBorderClass(size, shape),\n className\n )}\n data-slot=\"avatar\"\n tabIndex={tooltip ? 0 : undefined}\n {...props}\n >\n {children}\n </AvatarPrimitive.Root>\n )\n\n if (tooltip) {\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n {avatarElement}\n </TooltipTrigger>\n <TooltipContent>\n {tooltip}\n </TooltipContent>\n </Tooltip>\n )\n }\n\n return avatarElement\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: AvatarImageProps) {\n return (\n <AvatarPrimitive.Image\n className={cn(\"aspect-square size-full object-cover\", className)}\n data-slot=\"avatar-image\"\n {...props}\n />\n )\n}\n\nconst avatarFallbackVariants = cva(\n \"flex size-full items-center justify-center font-medium\",\n {\n variants: {\n colorScheme: {\n default: \"bg-[color:var(--avatar-fallback-bg-default)] text-[color:var(--avatar-fallback-text-default)]\",\n primary: \"bg-[color:var(--avatar-fallback-bg-primary)] text-[color:var(--avatar-fallback-text-primary)]\",\n secondary: \"bg-[color:var(--avatar-fallback-bg-secondary)] text-[color:var(--avatar-fallback-text-secondary)]\",\n success: \"bg-[color:var(--avatar-fallback-bg-success)] text-[color:var(--avatar-fallback-text-success)]\",\n warning: \"bg-[color:var(--avatar-fallback-bg-warning)] text-[color:var(--avatar-fallback-text-warning)]\",\n destructive: \"bg-[color:var(--avatar-fallback-bg-destructive)] text-[color:var(--avatar-fallback-text-destructive)]\",\n },\n },\n defaultVariants: {\n colorScheme: \"default\",\n },\n }\n)\n\nfunction AvatarFallback({\n className,\n colorScheme = \"default\",\n ...props\n}: AvatarFallbackProps) {\n return (\n <AvatarPrimitive.Fallback\n className={cn(avatarFallbackVariants({ colorScheme }), className)}\n data-slot=\"avatar-fallback\"\n {...props}\n />\n )\n}\n\nexport { Avatar, AvatarFallback, avatarFallbackVariants, AvatarImage, avatarVariants }\n","\"use client\"\n\nimport { cva } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\n\nconst avatarStatusVariants = cva(\n \"absolute bottom-0 right-0 rounded-full ring-[1.5px] ring-background\",\n {\n variants: {\n status: {\n online: \"bg-success\",\n offline: \"bg-muted-foreground\",\n busy: \"bg-destructive\",\n away: \"bg-warning\",\n },\n size: {\n xs: \"size-1.5\", // 6px\n sm: \"size-2\", // 8px\n default: \"size-2.5\", // 10px\n lg: \"size-3\", // 12px\n xl: \"size-3.5\", // 14px\n },\n },\n defaultVariants: {\n status: \"offline\",\n size: \"default\",\n },\n }\n)\n\nexport interface AvatarStatusProps extends React.ComponentProps<\"span\"> {\n /**\n * The size of the status indicator (should match parent Avatar size)\n * @default \"default\"\n */\n size?: \"default\" | \"lg\" | \"sm\" | \"xl\" | \"xs\"\n /**\n * The status to display\n * @default \"offline\"\n */\n status?: \"away\" | \"busy\" | \"offline\" | \"online\"\n}\n\nconst statusLabels = {\n online: \"Online\",\n offline: \"Offline\",\n busy: \"Busy\",\n away: \"Away\",\n} as const\n\nfunction AvatarStatus({\n className,\n status = \"offline\",\n size,\n ...props\n}: AvatarStatusProps) {\n return (\n <span\n aria-label={statusLabels[status]}\n className={cn(avatarStatusVariants({ status, size, className }))}\n data-slot=\"avatar-status\"\n role=\"status\"\n {...props}\n />\n )\n}\n\nexport { AvatarStatus, avatarStatusVariants }\n","\"use client\"\n\nimport { cva } from \"class-variance-authority\"\nimport { Building2, CheckCircle2 } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\n\nconst avatarBadgeVariants = cva(\n \"absolute -bottom-0.5 -right-0.5 flex items-center justify-center rounded-full ring-[1.5px] ring-background\",\n {\n variants: {\n variant: {\n company: \"bg-brius-500 text-base-white\",\n verified: \"bg-sevends-blue-600 text-base-white\",\n },\n size: {\n xs: \"size-2.5\", // 10px\n sm: \"size-3\", // 12px\n default: \"size-3.5\", // 14px\n lg: \"size-4\", // 16px\n xl: \"size-5\", // 18px\n },\n },\n defaultVariants: {\n variant: \"verified\",\n size: \"default\",\n },\n }\n)\n\nconst iconSizes = {\n xs: \"size-2\",\n sm: \"size-2.5\",\n default: \"size-3\",\n lg: \"size-3.5\",\n xl: \"size-4\",\n} as const\n\nexport interface AvatarBadgeProps extends React.ComponentProps<\"span\"> {\n /**\n * The size of the badge (should match parent Avatar size)\n * @default \"default\"\n */\n size?: \"default\" | \"lg\" | \"sm\" | \"xl\" | \"xs\"\n /**\n * The badge variant to display\n * @default \"verified\"\n */\n variant?: \"company\" | \"verified\"\n}\n\nconst badgeLabels = {\n company: \"Company account\",\n verified: \"Verified account\",\n} as const\n\nfunction AvatarBadge({\n className,\n variant = \"verified\",\n size = \"default\",\n children,\n ...props\n}: AvatarBadgeProps) {\n const defaultIcon = variant === \"company\"\n ? <Building2 className={iconSizes[size]} />\n : <CheckCircle2 className={iconSizes[size]} />\n\n return (\n <span\n aria-label={badgeLabels[variant]}\n className={cn(avatarBadgeVariants({ variant, size, className }))}\n data-slot=\"avatar-badge\"\n role=\"img\"\n {...props}\n >\n {children ?? defaultIcon}\n </span>\n )\n}\n\nexport { AvatarBadge, avatarBadgeVariants }\n","\"use client\"\n\nimport type { AvatarProps, AvatarSize } from \"./Avatar.types\"\n\nimport { cva } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Avatar, AvatarFallback } from \"./Avatar\"\n\nconst avatarGroupVariants = cva(\"flex\", {\n variants: {\n size: {\n xs: \"-space-x-1\",\n sm: \"-space-x-2\",\n default: \"-space-x-3\",\n lg: \"-space-x-3\",\n xl: \"-space-x-4\",\n \"3xl\": \"-space-x-5\",\n \"4xl\": \"-space-x-6\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n})\n\nexport interface AvatarGroupProps extends React.ComponentProps<\"div\"> {\n /**\n * Whether to apply ring-2 ring-background to all avatars for visual separation\n * @default true\n */\n bordered?: boolean\n /**\n * Child Avatar components\n */\n children: React.ReactNode\n /**\n * Maximum number of avatars to display before showing \"+N\" indicator\n */\n max?: number\n /**\n * Size to apply to all child avatars\n * @default \"default\"\n */\n size?: AvatarSize\n}\n\nfunction AvatarGroup({\n className,\n max,\n size = \"default\",\n bordered = true,\n children,\n ...props\n}: AvatarGroupProps) {\n // eslint-disable-next-line @eslint-react/no-children-to-array -- Required to count and slice children for max limit\n const childArray = React.Children.toArray(children)\n const hasMax = max !== undefined\n const visibleChildren = hasMax ? childArray.slice(0, max) : childArray\n const remainingCount = hasMax ? Math.max(0, childArray.length - max) : 0\n\n return (\n <div\n aria-label={`Avatar group${hasMax && remainingCount > 0 ? `, showing ${String(visibleChildren.length)} of ${String(childArray.length)}` : \"\"}`}\n className={cn(avatarGroupVariants({ size, className }))}\n data-slot=\"avatar-group\"\n role=\"group\"\n {...props}\n >\n {/* eslint-disable @eslint-react/no-clone-element -- Required to inject size/bordered props to Avatar children */}\n {visibleChildren.map((child) => {\n if (React.isValidElement<AvatarProps>(child) && child.type === Avatar) {\n // Children.toArray assigns stable keys to all children\n return React.cloneElement(child, {\n size: child.props.size ?? size,\n bordered: child.props.bordered ?? bordered,\n className: cn(\n bordered && \"ring-2 ring-background\",\n child.props.className\n ),\n })\n }\n return child\n })}\n {/* eslint-enable @eslint-react/no-clone-element */}\n {remainingCount > 0 && (\n <Avatar\n bordered={bordered}\n className={cn(bordered && \"ring-2 ring-background\")}\n size={size}\n >\n <AvatarFallback className=\"bg-muted text-muted-foreground text-xs font-medium\">\n +{remainingCount}\n </AvatarFallback>\n </Avatar>\n )}\n </div>\n )\n}\n\nexport { AvatarGroup, avatarGroupVariants }\n","\"use client\"\n\nimport { cva } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"../../feedback/Tooltip\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"./Avatar\"\nimport { AvatarBadge, type AvatarBadgeProps } from \"./AvatarBadge\"\nimport { AvatarStatus, type AvatarStatusProps } from \"./AvatarStatus\"\n\nconst avatarLabelGroupVariants = cva(\n \"flex items-center gap-3\",\n {\n variants: {\n interactive: {\n true: \"cursor-pointer rounded-lg transition-colors hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 -m-2 p-2\",\n false: \"\",\n },\n },\n defaultVariants: {\n interactive: false,\n },\n }\n)\n\nexport interface AvatarLabelGroupProps extends React.ComponentProps<\"div\"> {\n /**\n * Alternative text for the avatar image\n */\n alt?: string\n /**\n * Optional badge variant (company or verified)\n * Cannot be used together with status\n */\n badge?: AvatarBadgeProps[\"variant\"]\n /**\n * Optional description text below the name\n */\n description?: string\n /**\n * Whether the component is interactive (shows hover/focus states)\n * @default false\n */\n interactive?: boolean\n /**\n * The name to display (required, also used for initials fallback)\n */\n name: string\n /**\n * Click handler for interactive mode\n */\n onClick?: React.MouseEventHandler<HTMLDivElement>\n /**\n * Size variant for the avatar and status/badge indicator\n * @default \"default\"\n */\n size?: AvatarStatusProps[\"size\"]\n /**\n * The image source for the avatar\n */\n src?: string\n /**\n * Optional status indicator (online, offline, busy, away)\n * Cannot be used together with badge\n */\n status?: AvatarStatusProps[\"status\"]\n /**\n * Tooltip text to display on hover\n * If true, uses name + description\n * @default undefined\n */\n tooltip?: boolean | string\n}\n\n/**\n * Generates initials from a name string\n * Takes first letter of first two words, uppercased\n */\nfunction getInitials(name: string): string {\n return name\n .split(\" \")\n .map((word) => word[0])\n .join(\"\")\n .toUpperCase()\n .slice(0, 2)\n}\n\nfunction AvatarLabelGroup({\n className,\n src,\n alt,\n name,\n description,\n size = \"default\",\n status,\n badge,\n interactive = false,\n onClick,\n tooltip,\n ...props\n}: AvatarLabelGroupProps) {\n // Generate tooltip text\n const tooltipText = tooltip === true\n ? description ? `${name} - ${description}` : name\n : typeof tooltip === \"string\" ? tooltip : undefined\n\n const content = (\n <div\n className={cn(avatarLabelGroupVariants({ interactive }), className)}\n data-slot=\"avatar-label-group\"\n role={interactive ? \"button\" : undefined}\n tabIndex={interactive || tooltipText ? 0 : undefined}\n onClick={interactive ? onClick : undefined}\n {...props}\n >\n <div className=\"relative\">\n <Avatar interactive={interactive} size={size}>\n {src && <AvatarImage alt={alt ?? name} src={src} />}\n <AvatarFallback>{getInitials(name)}</AvatarFallback>\n </Avatar>\n {status && <AvatarStatus size={size} status={status} />}\n {badge && !status && <AvatarBadge size={size} variant={badge} />}\n </div>\n <div className=\"flex flex-col gap-0.5\">\n <span className=\"text-sm font-medium text-foreground\">{name}</span>\n {description && (\n <span className=\"text-sm text-muted-foreground\">{description}</span>\n )}\n </div>\n </div>\n )\n\n if (tooltipText) {\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n {content}\n </TooltipTrigger>\n <TooltipContent>\n {tooltipText}\n </TooltipContent>\n </Tooltip>\n )\n }\n\n return content\n}\n\nexport { AvatarLabelGroup, avatarLabelGroupVariants, getInitials }\n","\"use client\"\n\nimport { cva } from \"class-variance-authority\"\nimport { Plus } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\n\nconst avatarAddButtonVariants = cva(\n \"relative flex shrink-0 items-center justify-center overflow-hidden rounded-full border-2 border-dashed border-muted-foreground/50 bg-muted text-muted-foreground transition-colors hover:border-primary hover:bg-primary/10 hover:text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 cursor-pointer\",\n {\n variants: {\n size: {\n xs: \"size-[var(--avatar-size-xs)]\",\n sm: \"size-[var(--avatar-size-sm)]\",\n default: \"size-[var(--avatar-size-default)]\",\n lg: \"size-[var(--avatar-size-lg)]\",\n xl: \"size-[var(--avatar-size-xl)]\",\n \"3xl\": \"size-[var(--avatar-size-3xl)]\",\n \"4xl\": \"size-[var(--avatar-size-4xl)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\nexport interface AvatarAddButtonProps extends React.ComponentProps<\"button\"> {\n size?: \"3xl\" | \"4xl\" | \"default\" | \"lg\" | \"sm\" | \"xl\" | \"xs\"\n}\n\nfunction AvatarAddButton({\n className,\n size = \"default\",\n ...props\n}: AvatarAddButtonProps) {\n const iconSizes = {\n xs: \"size-3\",\n sm: \"size-3.5\",\n default: \"size-4\",\n lg: \"size-5\",\n xl: \"size-6\",\n \"3xl\": \"size-7\",\n \"4xl\": \"size-8\",\n }\n\n return (\n <button\n aria-label=\"Add user\"\n className={cn(avatarAddButtonVariants({ size, className }))}\n data-slot=\"avatar-add-button\"\n type=\"button\"\n {...props}\n >\n <Plus className={iconSizes[size]} />\n </button>\n )\n}\n\nexport { AvatarAddButton, avatarAddButtonVariants }\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { avatarVariants } from \"./Avatar\"\n\nexport interface AvatarSkeletonProps extends React.ComponentProps<\"div\"> {\n /**\n * The shape of the skeleton\n * @default \"circle\"\n */\n shape?: \"circle\"\n /**\n * The size of the skeleton\n * @default \"default\"\n */\n size?: \"default\" | \"lg\" | \"sm\" | \"xl\" | \"xs\"\n}\n\nexport interface AvatarLabelGroupSkeletonProps extends React.ComponentProps<\"div\"> {\n /**\n * The size of the avatar skeleton\n * @default \"default\"\n */\n size?: \"default\" | \"lg\" | \"sm\" | \"xl\" | \"xs\"\n}\n\n/**\n * Skeleton placeholder for Avatar component\n * Use while loading user data\n */\nfunction AvatarSkeleton({\n size = \"default\",\n shape = \"circle\",\n className,\n ...props\n}: AvatarSkeletonProps) {\n return (\n <div\n className={cn(\n avatarVariants({ size, shape }),\n \"bg-muted animate-pulse\",\n className\n )}\n data-slot=\"avatar-skeleton\"\n {...props}\n />\n )\n}\n\n/**\n * Skeleton placeholder for AvatarLabelGroup component\n * Use while loading user data with name and description\n */\nfunction AvatarLabelGroupSkeleton({\n size = \"default\",\n className,\n ...props\n}: AvatarLabelGroupSkeletonProps) {\n return (\n <div\n className={cn(\"flex items-center gap-3\", className)}\n data-slot=\"avatar-label-group-skeleton\"\n {...props}\n >\n <AvatarSkeleton size={size} />\n <div className=\"flex flex-col gap-1.5\">\n <div className=\"h-4 w-24 rounded bg-muted animate-pulse\" />\n <div className=\"h-3 w-32 rounded bg-muted animate-pulse\" />\n </div>\n </div>\n )\n}\n\nexport { AvatarLabelGroupSkeleton, AvatarSkeleton }\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Label } from './chunk-
|
|
1
|
+
import { Label } from './chunk-2ROFZG3A.js';
|
|
2
2
|
import { TextInput } from './chunk-PWCMCMDN.js';
|
|
3
3
|
import { Button } from './chunk-HDOR3SN3.js';
|
|
4
4
|
import { cn } from './chunk-HRNDJU7D.js';
|
|
@@ -920,5 +920,5 @@ function DashboardBuilder({
|
|
|
920
920
|
DashboardBuilder.displayName = "DashboardBuilder";
|
|
921
921
|
|
|
922
922
|
export { DashboardBuilder, DashboardBuilderCanvas, DashboardBuilderPropertiesPanel, DashboardBuilderToolbar, DashboardBuilderWidgetComponent, DashboardBuilderWidgetLibrary, dashboardBuilderCanvasVariants, dashboardBuilderDropZoneVariants, dashboardBuilderEmptyStateVariants, dashboardBuilderPropertiesPanelVariants, dashboardBuilderResizeHandleVariants, dashboardBuilderToolbarVariants, dashboardBuilderVariants, dashboardBuilderWidgetCardVariants, dashboardBuilderWidgetLibraryVariants, dashboardBuilderWidgetVariants, defaultWidgets };
|
|
923
|
-
//# sourceMappingURL=chunk-
|
|
924
|
-
//# sourceMappingURL=chunk-
|
|
923
|
+
//# sourceMappingURL=chunk-55RLLBXW.js.map
|
|
924
|
+
//# sourceMappingURL=chunk-55RLLBXW.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/workflow/DashboardBuilder/DashboardBuilder.variants.ts","../src/components/workflow/DashboardBuilder/DashboardBuilder.tsx"],"names":[],"mappings":"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","file":"chunk-LEAK22ZP.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * DashboardBuilder container variants\n */\nexport const dashboardBuilderVariants = cva(\n \"relative flex h-full w-full overflow-hidden rounded-lg border bg-background transition-all duration-300\",\n {\n variants: {\n mode: {\n edit: \"\",\n preview: \"\",\n configure: \"\",\n },\n size: {\n default: \"\",\n compact: \"\",\n full: \"h-screen\",\n },\n },\n defaultVariants: {\n mode: \"edit\",\n size: \"default\",\n },\n }\n)\n\n/**\n * Toolbar variants\n */\nexport const dashboardBuilderToolbarVariants = cva(\n \"flex h-14 shrink-0 items-center justify-between border-b bg-card px-4 transition-all duration-200\",\n {\n variants: {\n position: {\n top: \"\",\n bottom: \"border-b-0 border-t\",\n },\n },\n defaultVariants: {\n position: \"top\",\n },\n }\n)\n\n/**\n * Canvas (main work area) variants\n */\nexport const dashboardBuilderCanvasVariants = cva(\n \"relative flex-1 overflow-auto bg-muted/30 p-4 transition-all duration-200\",\n {\n variants: {\n showGrid: {\n true: [\n \"bg-[linear-gradient(to_right,var(--border)_1px,transparent_1px),linear-gradient(to_bottom,var(--border)_1px,transparent_1px)]\",\n \"bg-[size:var(--grid-size)_var(--grid-size)]\",\n ],\n false: \"\",\n },\n state: {\n idle: \"\",\n dragging: \"cursor-grabbing\",\n resizing: \"cursor-nwse-resize\",\n configuring: \"\",\n saving: \"pointer-events-none opacity-75\",\n },\n },\n defaultVariants: {\n showGrid: true,\n state: \"idle\",\n },\n }\n)\n\n/**\n * Widget library sidebar variants\n */\nexport const dashboardBuilderWidgetLibraryVariants = cva(\n \"flex w-64 shrink-0 flex-col border-r bg-card transition-all duration-200\",\n {\n variants: {\n collapsed: {\n true: \"w-14\",\n false: \"w-64\",\n },\n position: {\n left: \"border-r\",\n right: \"border-l border-r-0\",\n },\n },\n defaultVariants: {\n collapsed: false,\n position: \"left\",\n },\n }\n)\n\n/**\n * Properties panel variants\n */\nexport const dashboardBuilderPropertiesPanelVariants = cva(\n \"flex w-72 shrink-0 flex-col border-l bg-card transition-all duration-200\",\n {\n variants: {\n open: {\n true: \"w-72\",\n false: \"w-0 overflow-hidden border-l-0\",\n },\n },\n defaultVariants: {\n open: false,\n },\n }\n)\n\n/**\n * Widget card in library variants\n */\nexport const dashboardBuilderWidgetCardVariants = cva(\n \"flex cursor-grab items-center gap-3 rounded-md border bg-background p-3 transition-all duration-200 hover:border-primary hover:shadow-sm active:cursor-grabbing\",\n {\n variants: {\n category: {\n default: \"\",\n charts: \"border-l-2 border-l-blue-500\",\n kpi: \"border-l-2 border-l-green-500\",\n tables: \"border-l-2 border-l-purple-500\",\n text: \"border-l-2 border-l-orange-500\",\n },\n dragging: {\n true: \"opacity-50\",\n false: \"\",\n },\n },\n defaultVariants: {\n category: \"default\",\n dragging: false,\n },\n }\n)\n\n/**\n * Widget on canvas variants\n */\nexport const dashboardBuilderWidgetVariants = cva(\n \"group relative rounded-md border-2 bg-card transition-all duration-200\",\n {\n variants: {\n state: {\n idle: \"border-transparent hover:border-muted-foreground/30\",\n selected: \"border-primary ring-2 ring-primary/20\",\n dragging: \"border-primary border-dashed opacity-75\",\n resizing: \"border-primary\",\n preview: \"border-border\",\n },\n },\n defaultVariants: {\n state: \"idle\",\n },\n }\n)\n\n/**\n * Widget resize handle variants\n */\nexport const dashboardBuilderResizeHandleVariants = cva(\n \"absolute opacity-0 transition-opacity group-hover:opacity-100\",\n {\n variants: {\n position: {\n se: \"bottom-0 right-0 cursor-se-resize\",\n sw: \"bottom-0 left-0 cursor-sw-resize\",\n ne: \"right-0 top-0 cursor-ne-resize\",\n nw: \"left-0 top-0 cursor-nw-resize\",\n e: \"right-0 top-1/2 -translate-y-1/2 cursor-e-resize\",\n w: \"left-0 top-1/2 -translate-y-1/2 cursor-w-resize\",\n n: \"left-1/2 top-0 -translate-x-1/2 cursor-n-resize\",\n s: \"bottom-0 left-1/2 -translate-x-1/2 cursor-s-resize\",\n },\n size: {\n sm: \"h-2 w-2\",\n default: \"h-3 w-3\",\n lg: \"h-4 w-4\",\n },\n },\n defaultVariants: {\n position: \"se\",\n size: \"default\",\n },\n }\n)\n\n/**\n * Drop zone indicator variants\n */\nexport const dashboardBuilderDropZoneVariants = cva(\n \"pointer-events-none absolute rounded-md border-2 transition-all duration-200\",\n {\n variants: {\n active: {\n true: \"border-primary bg-primary/10\",\n false: \"border-transparent\",\n },\n valid: {\n true: \"border-primary bg-primary/10\",\n false: \"border-destructive bg-destructive/10\",\n },\n },\n defaultVariants: {\n active: false,\n valid: true,\n },\n }\n)\n\n/**\n * Empty state variants for canvas\n */\nexport const dashboardBuilderEmptyStateVariants = cva(\n \"flex h-full flex-col items-center justify-center gap-4 text-muted-foreground\",\n {\n variants: {\n variant: {\n default: \"\",\n minimal: \"gap-2\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\n// Export variant prop types\nexport type DashboardBuilderVariantProps = VariantProps<\n typeof dashboardBuilderVariants\n>\nexport type DashboardBuilderToolbarVariantProps = VariantProps<\n typeof dashboardBuilderToolbarVariants\n>\nexport type DashboardBuilderCanvasVariantProps = VariantProps<\n typeof dashboardBuilderCanvasVariants\n>\nexport type DashboardBuilderWidgetLibraryVariantProps = VariantProps<\n typeof dashboardBuilderWidgetLibraryVariants\n>\nexport type DashboardBuilderPropertiesPanelVariantProps = VariantProps<\n typeof dashboardBuilderPropertiesPanelVariants\n>\nexport type DashboardBuilderWidgetCardVariantProps = VariantProps<\n typeof dashboardBuilderWidgetCardVariants\n>\nexport type DashboardBuilderWidgetVariantProps = VariantProps<\n typeof dashboardBuilderWidgetVariants\n>\nexport type DashboardBuilderResizeHandleVariantProps = VariantProps<\n typeof dashboardBuilderResizeHandleVariants\n>\nexport type DashboardBuilderDropZoneVariantProps = VariantProps<\n typeof dashboardBuilderDropZoneVariants\n>\nexport type DashboardBuilderEmptyStateVariantProps = VariantProps<\n typeof dashboardBuilderEmptyStateVariants\n>\n","import type {\n BuilderLayoutConfig,\n BuilderMode,\n BuilderPosition,\n BuilderState,\n BuilderWidget,\n BuilderWidgetDefinition,\n DashboardBuilderCanvasProps,\n DashboardBuilderPropertiesPanelProps,\n DashboardBuilderProps,\n DashboardBuilderToolbarProps,\n DashboardBuilderWidgetComponentProps,\n DashboardBuilderWidgetLibraryProps,\n} from \"./DashboardBuilder.types\"\nimport type { DragEvent, KeyboardEvent, ReactNode } from \"react\"\n\nimport {\n BarChart2,\n ChevronLeft,\n ChevronRight,\n Eye,\n GripVertical,\n LayoutGrid,\n PieChart,\n Redo2,\n Save,\n Table,\n Trash2,\n Type,\n Undo2,\n X,\n} from \"lucide-react\"\nimport { useCallback, useId, useMemo, useRef, useState } from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { TextInput } from \"../../forms/TextInput\"\nimport { Button } from \"../../primitives/Button\"\nimport { Label } from \"../../primitives/Label\"\nimport {\n dashboardBuilderCanvasVariants,\n dashboardBuilderEmptyStateVariants,\n dashboardBuilderPropertiesPanelVariants,\n dashboardBuilderToolbarVariants,\n dashboardBuilderVariants,\n dashboardBuilderWidgetCardVariants,\n dashboardBuilderWidgetLibraryVariants,\n dashboardBuilderWidgetVariants,\n} from \"./DashboardBuilder.variants\"\n\n// ============================================\n// DEFAULT WIDGET DEFINITIONS\n// ============================================\n\n/**\n * Placeholder widget component for demo purposes\n */\nfunction PlaceholderWidget({ config, title }: { config: Record<string, unknown>; title: string }): ReactNode {\n const value = config[\"value\"]\n const getDisplayValue = (): string => {\n if (value === null || value === undefined) return \"\"\n if (typeof value === \"object\") return JSON.stringify(value)\n return String(value as boolean | number | string)\n }\n return (\n <div className=\"flex h-full flex-col items-center justify-center p-4\">\n <span className=\"text-sm font-medium\">{title}</span>\n {value !== undefined && value !== null && (\n <span className=\"text-2xl font-bold text-primary\">\n {getDisplayValue()}\n </span>\n )}\n </div>\n )\n}\n\n/**\n * Default widgets available in the library\n */\nconst defaultWidgets: BuilderWidgetDefinition[] = [\n {\n type: \"kpi\",\n name: \"KPI Card\",\n description: \"Display a key performance indicator\",\n icon: <LayoutGrid className=\"h-4 w-4\" />,\n category: \"kpi\",\n defaultSize: { w: 3, h: 2 },\n minSize: { w: 2, h: 1 },\n maxSize: { w: 6, h: 4 },\n configSchema: {\n fields: [\n { name: \"title\", type: \"text\", label: \"Title\", defaultValue: \"KPI\" },\n { name: \"value\", type: \"text\", label: \"Value\", defaultValue: \"0\" },\n { name: \"unit\", type: \"text\", label: \"Unit\", defaultValue: \"\" },\n ],\n },\n component: PlaceholderWidget,\n },\n {\n type: \"chart-line\",\n name: \"Line Chart\",\n description: \"Display data as a line chart\",\n icon: <BarChart2 className=\"h-4 w-4\" />,\n category: \"charts\",\n defaultSize: { w: 6, h: 4 },\n minSize: { w: 4, h: 3 },\n configSchema: {\n fields: [\n { name: \"title\", type: \"text\", label: \"Title\", defaultValue: \"Chart\" },\n {\n name: \"showLegend\",\n type: \"boolean\",\n label: \"Show Legend\",\n defaultValue: true,\n },\n ],\n },\n component: PlaceholderWidget,\n },\n {\n type: \"chart-pie\",\n name: \"Pie Chart\",\n description: \"Display data as a pie chart\",\n icon: <PieChart className=\"h-4 w-4\" />,\n category: \"charts\",\n defaultSize: { w: 4, h: 4 },\n minSize: { w: 3, h: 3 },\n configSchema: {\n fields: [\n { name: \"title\", type: \"text\", label: \"Title\", defaultValue: \"Chart\" },\n ],\n },\n component: PlaceholderWidget,\n },\n {\n type: \"table\",\n name: \"Data Table\",\n description: \"Display data in a table format\",\n icon: <Table className=\"h-4 w-4\" />,\n category: \"tables\",\n defaultSize: { w: 6, h: 4 },\n minSize: { w: 4, h: 3 },\n configSchema: {\n fields: [\n { name: \"title\", type: \"text\", label: \"Title\", defaultValue: \"Table\" },\n {\n name: \"pageSize\",\n type: \"number\",\n label: \"Page Size\",\n defaultValue: 10,\n },\n ],\n },\n component: PlaceholderWidget,\n },\n {\n type: \"text\",\n name: \"Text Block\",\n description: \"Display formatted text content\",\n icon: <Type className=\"h-4 w-4\" />,\n category: \"text\",\n defaultSize: { w: 4, h: 2 },\n minSize: { w: 2, h: 1 },\n configSchema: {\n fields: [\n { name: \"content\", type: \"text\", label: \"Content\", defaultValue: \"\" },\n ],\n },\n component: PlaceholderWidget,\n },\n]\n\n// ============================================\n// SUB-COMPONENTS\n// ============================================\n\n/**\n * Toolbar component with save, undo, redo, and preview actions\n */\nfunction DashboardBuilderToolbar({\n canRedo,\n canUndo,\n onRedo,\n onSave,\n onTogglePreview,\n onUndo,\n showPreview,\n showUndo,\n}: DashboardBuilderToolbarProps): ReactNode {\n return (\n <div\n className={dashboardBuilderToolbarVariants()}\n data-slot=\"dashboard-builder-toolbar\"\n >\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm font-medium\">Dashboard Builder</span>\n </div>\n\n <div className=\"flex items-center gap-2\">\n {showUndo && (\n <>\n <Button\n aria-label=\"Undo\"\n disabled={!canUndo}\n size=\"sm\"\n variant=\"ghost\"\n onClick={onUndo}\n >\n <Undo2 className=\"h-4 w-4\" />\n </Button>\n <Button\n aria-label=\"Redo\"\n disabled={!canRedo}\n size=\"sm\"\n variant=\"ghost\"\n onClick={onRedo}\n >\n <Redo2 className=\"h-4 w-4\" />\n </Button>\n <div className=\"mx-2 h-6 w-px bg-border\" />\n </>\n )}\n\n {showPreview && (\n <Button\n aria-label=\"Preview dashboard\"\n size=\"sm\"\n variant=\"outline\"\n onClick={onTogglePreview}\n >\n <Eye className=\"mr-2 h-4 w-4\" />\n Preview\n </Button>\n )}\n\n <Button size=\"sm\" onClick={onSave}>\n <Save className=\"mr-2 h-4 w-4\" />\n Save\n </Button>\n </div>\n </div>\n )\n}\n\n/**\n * Widget library sidebar showing available widgets\n */\nfunction DashboardBuilderWidgetLibrary({\n widgets,\n}: DashboardBuilderWidgetLibraryProps): ReactNode {\n const [collapsed, setCollapsed] = useState(false)\n\n // Group widgets by category\n const groupedWidgets = useMemo(() => {\n return widgets.reduce<Record<string, BuilderWidgetDefinition[]>>((acc, widget) => {\n const category = widget.category || \"default\"\n acc[category] ??= []\n acc[category].push(widget)\n return acc\n }, {})\n }, [widgets])\n\n const handleDragStart = (e: DragEvent<HTMLDivElement>, widget: BuilderWidgetDefinition): void => {\n e.dataTransfer.setData(\"widget-type\", widget.type)\n e.dataTransfer.effectAllowed = \"copy\"\n }\n\n return (\n <div\n className={dashboardBuilderWidgetLibraryVariants({ collapsed })}\n data-slot=\"dashboard-builder-widget-library\"\n >\n <div className=\"flex h-12 items-center justify-between border-b px-4\">\n {!collapsed && (\n <span className=\"text-sm font-medium\">Widgets</span>\n )}\n <Button\n aria-label={collapsed ? \"Expand widget library\" : \"Collapse widget library\"}\n className=\"ml-auto\"\n size=\"icon\"\n variant=\"ghost\"\n onClick={() => { setCollapsed(!collapsed); }}\n >\n {collapsed ? (\n <ChevronRight className=\"h-4 w-4\" />\n ) : (\n <ChevronLeft className=\"h-4 w-4\" />\n )}\n </Button>\n </div>\n\n {!collapsed && (\n <div className=\"flex-1 overflow-y-auto p-4\">\n <div className=\"space-y-4\">\n {Object.entries(groupedWidgets).map(([category, categoryWidgets]) => (\n <div key={category}>\n <span className=\"mb-2 block text-xs font-medium uppercase text-muted-foreground\">\n {category}\n </span>\n <div className=\"space-y-2\">\n {categoryWidgets.map((widget) => (\n <div\n key={widget.type}\n draggable\n className={dashboardBuilderWidgetCardVariants({\n category: category as \"charts\" | \"default\" | \"kpi\" | \"tables\" | \"text\",\n })}\n aria-label={`Drag ${widget.name} widget`}\n role=\"button\"\n tabIndex={0}\n title={widget.description}\n onDragStart={(e: DragEvent<HTMLDivElement>) => { handleDragStart(e, widget); }}\n >\n <span className=\"text-muted-foreground\">{widget.icon}</span>\n <span className=\"text-sm\">{widget.name}</span>\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n )\n}\n\n/**\n * Canvas component - main work area for widgets\n */\nfunction DashboardBuilderCanvas({\n children,\n columns,\n onWidgetDrop,\n rowHeight,\n showGrid,\n widgets,\n}: DashboardBuilderCanvasProps & {\n children?: ReactNode\n onWidgetClick?: (id: string) => void\n onWidgetRemove?: (id: string) => void\n selectedWidgetId?: null | string\n widgetDefinitions: BuilderWidgetDefinition[]\n}): ReactNode {\n const canvasRef = useRef<HTMLDivElement>(null)\n const [isDragOver, setIsDragOver] = useState(false)\n\n const handleDragOver = (e: DragEvent<HTMLDivElement>): void => {\n e.preventDefault()\n e.dataTransfer.dropEffect = \"copy\"\n setIsDragOver(true)\n }\n\n const handleDragLeave = (): void => {\n setIsDragOver(false)\n }\n\n const handleDrop = (e: DragEvent<HTMLDivElement>): void => {\n e.preventDefault()\n setIsDragOver(false)\n\n const widgetType = e.dataTransfer.getData(\"widget-type\")\n if (!widgetType || !canvasRef.current) return\n\n const rect = canvasRef.current.getBoundingClientRect()\n const gridWidth = rect.width / columns\n const x = Math.floor((e.clientX - rect.left) / gridWidth)\n const y = Math.floor((e.clientY - rect.top) / rowHeight)\n\n onWidgetDrop?.(widgetType, { x, y })\n }\n\n const gridSizeStyle = {\n \"--grid-size\": `${String(100 / columns)}%`,\n } as React.CSSProperties\n\n return (\n <div\n ref={canvasRef}\n className={cn(\n dashboardBuilderCanvasVariants({ showGrid }),\n isDragOver && \"ring-2 ring-primary ring-offset-2\"\n )}\n aria-describedby=\"canvas-instructions\"\n aria-label=\"Dashboard canvas\"\n data-slot=\"dashboard-builder-canvas\"\n role=\"region\"\n style={gridSizeStyle}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n >\n <span className=\"sr-only\" id=\"canvas-instructions\">\n Drag widgets from the library to add them. Use arrow keys to move selected widgets.\n Press Delete to remove selected widget.\n </span>\n\n {widgets.length === 0 ? (\n <div className={dashboardBuilderEmptyStateVariants()}>\n <LayoutGrid className=\"h-12 w-12 opacity-50\" />\n <div className=\"text-center\">\n <p className=\"text-sm font-medium\">No widgets yet</p>\n <p className=\"text-xs text-muted-foreground\">\n Drag widgets from the library to get started\n </p>\n </div>\n </div>\n ) : (\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns: `repeat(${String(columns)}, 1fr)`,\n gap: \"var(--spacing-4)\",\n minHeight: \"100%\",\n }}\n className=\"relative\"\n >\n {children}\n </div>\n )}\n </div>\n )\n}\n\n/**\n * Properties panel for configuring selected widget\n */\nfunction DashboardBuilderPropertiesPanel({\n onClose,\n onConfigChange,\n widget,\n widgetDefinition,\n}: DashboardBuilderPropertiesPanelProps): ReactNode {\n const panelId = useId()\n\n if (!widget || !widgetDefinition) {\n return (\n <div\n className={dashboardBuilderPropertiesPanelVariants({ open: false })}\n data-slot=\"dashboard-builder-properties-panel\"\n />\n )\n }\n\n const handleFieldChange = (fieldName: string, value: unknown): void => {\n const newConfig = { ...widget.config, [fieldName]: value }\n onConfigChange?.(newConfig)\n }\n\n return (\n <div\n aria-labelledby={`${panelId}-title`}\n className={dashboardBuilderPropertiesPanelVariants({ open: true })}\n data-slot=\"dashboard-builder-properties-panel\"\n role=\"region\"\n >\n <div className=\"flex h-12 items-center justify-between border-b px-4\">\n <span className=\"text-sm font-medium\" id={`${panelId}-title`}>\n Properties\n </span>\n <Button\n aria-label=\"Close properties panel\"\n size=\"icon\"\n variant=\"ghost\"\n onClick={onClose}\n >\n <X className=\"h-4 w-4\" />\n </Button>\n </div>\n\n <div className=\"flex-1 overflow-y-auto p-4\">\n <div className=\"space-y-4\">\n <div>\n <span className=\"text-xs font-medium uppercase text-muted-foreground\">\n Widget: {widgetDefinition.name}\n </span>\n </div>\n\n <div className=\"h-px w-full bg-border\" />\n\n <div className=\"space-y-4\">\n {widgetDefinition.configSchema.fields.map((field) => (\n <div key={field.name} className=\"space-y-2\">\n <Label htmlFor={`${panelId}-${field.name}`}>{field.label}</Label>\n {field.type === \"text\" && (\n <TextInput\n value={(() => {\n const val = widget.config[field.name] ?? field.defaultValue ?? \"\"\n if (typeof val === \"object\") return JSON.stringify(val)\n return String(val as boolean | number | string)\n })()}\n id={`${panelId}-${field.name}`}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => { handleFieldChange(field.name, e.target.value); }}\n />\n )}\n {field.type === \"number\" && (\n <TextInput\n value={(() => {\n const val = widget.config[field.name] ?? field.defaultValue ?? 0\n if (typeof val === \"object\") return \"0\"\n return String(val as boolean | number | string)\n })()}\n id={`${panelId}-${field.name}`}\n type=\"number\"\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => { handleFieldChange(field.name, Number(e.target.value)); }}\n />\n )}\n {field.type === \"boolean\" && (\n <input\n checked={Boolean(widget.config[field.name] ?? field.defaultValue)}\n className=\"h-4 w-4\"\n id={`${panelId}-${field.name}`}\n type=\"checkbox\"\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => { handleFieldChange(field.name, e.target.checked); }}\n />\n )}\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n )\n}\n\n/**\n * Individual widget component on the canvas\n */\nfunction DashboardBuilderWidgetComponent({\n isDragging,\n isSelected,\n onClick,\n onRemove,\n widget,\n widgetDefinition,\n}: DashboardBuilderWidgetComponentProps): ReactNode {\n const WidgetComponent = widgetDefinition?.component\n\n const state = isSelected ? \"selected\" : isDragging ? \"dragging\" : \"idle\"\n\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>): void => {\n if (e.key === \"Delete\" || e.key === \"Backspace\") {\n e.preventDefault()\n onRemove?.()\n }\n }\n\n return (\n <div\n style={{\n gridColumn: `span ${String(widget.w)}`,\n gridRow: `span ${String(widget.h)}`,\n minHeight: `${String(widget.h * 100)}px`,\n }}\n aria-label={`Widget: ${widget.title}`}\n aria-selected={isSelected}\n className={dashboardBuilderWidgetVariants({ state })}\n data-slot=\"dashboard-builder-widget\"\n data-widget-id={widget.id}\n role=\"button\"\n tabIndex={0}\n onClick={onClick}\n onKeyDown={handleKeyDown}\n >\n {/* Widget header */}\n <div className=\"flex items-center justify-between border-b bg-muted/50 px-3 py-2\">\n <div className=\"flex items-center gap-2\">\n <GripVertical className=\"h-4 w-4 cursor-grab text-muted-foreground\" />\n <span className=\"text-xs font-medium\">{widget.title}</span>\n </div>\n <Button\n aria-label={`Remove ${widget.title}`}\n className=\"opacity-0 group-hover:opacity-100\"\n size=\"icon\"\n variant=\"ghost\"\n onClick={(e) => {\n e.stopPropagation()\n onRemove?.()\n }}\n >\n <Trash2 className=\"h-3 w-3\" />\n </Button>\n </div>\n\n {/* Widget content */}\n <div className=\"flex-1 overflow-hidden p-2\">\n {WidgetComponent ? (\n <WidgetComponent\n config={widget.config}\n height={widget.h}\n id={widget.id}\n title={widget.title}\n width={widget.w}\n />\n ) : (\n <div className=\"flex h-full items-center justify-center text-muted-foreground\">\n <span className=\"text-xs\">Unknown widget type</span>\n </div>\n )}\n </div>\n </div>\n )\n}\n\n// ============================================\n// MAIN COMPONENT\n// ============================================\n\n/**\n * DashboardBuilder - Visual dashboard construction interface.\n *\n * Allows users to create, edit and customize dashboards through a drag-and-drop\n * interface with a widget library and properties panel.\n *\n * @example\n * ```tsx\n * <DashboardBuilder\n * onSave={({ widgets, layout }) => console.log('Saved:', widgets, layout)}\n * />\n * ```\n *\n * @example\n * ```tsx\n * const initialWidgets = [\n * { id: '1', type: 'kpi', title: 'Sales', x: 0, y: 0, w: 3, h: 2, config: { value: '150k' } }\n * ];\n *\n * <DashboardBuilder\n * initialWidgets={initialWidgets}\n * columns={12}\n * rowHeight={100}\n * />\n * ```\n */\nfunction DashboardBuilder({\n \"aria-label\": ariaLabel = \"Dashboard builder\",\n allowOverlap = false,\n autoSaveInterval = 30000,\n availableWidgets = defaultWidgets,\n className,\n columns = 12,\n enableAutoSave = false,\n initialLayout,\n initialWidgets = [],\n mode,\n onLayoutChange,\n onPreview,\n onRedo,\n onSave,\n onUndo,\n onWidgetAdd,\n onWidgetRemove,\n onWidgetUpdate,\n rowHeight = 100,\n showGrid = true,\n showPreview = true,\n showUndo = true,\n size,\n snapToGrid = true,\n ...props\n}: DashboardBuilderProps): ReactNode {\n const builderId = useId()\n\n // State\n const [widgets, setWidgets] = useState<BuilderWidget[]>(initialWidgets)\n const [selectedWidgetId, setSelectedWidgetId] = useState<null | string>(null)\n const [_builderMode, setBuilderMode] = useState<BuilderMode>(\"edit\")\n const [_builderState, setBuilderState] = useState<BuilderState>(\"idle\")\n const [history, setHistory] = useState<BuilderWidget[][]>([initialWidgets])\n const [historyIndex, setHistoryIndex] = useState(0)\n\n // Suppress unused variable warnings for future implementation\n void snapToGrid\n void allowOverlap\n void enableAutoSave\n void autoSaveInterval\n void initialLayout\n\n // Computed\n const selectedWidget = useMemo(\n () => widgets.find((w) => w.id === selectedWidgetId) ?? null,\n [widgets, selectedWidgetId]\n )\n const selectedWidgetDefinition = useMemo(\n () =>\n selectedWidget\n ? availableWidgets.find((w) => w.type === selectedWidget.type)\n : undefined,\n [selectedWidget, availableWidgets]\n )\n\n const canUndo = historyIndex > 0\n const canRedo = historyIndex < history.length - 1\n\n // Helpers\n const updateHistory = useCallback((newWidgets: BuilderWidget[]) => {\n setHistory((prev) => {\n const newHistory = prev.slice(0, historyIndex + 1)\n newHistory.push(newWidgets)\n return newHistory\n })\n setHistoryIndex((prev) => prev + 1)\n }, [historyIndex])\n\n const generateId = (): string => `widget-${String(Date.now())}-${Math.random().toString(36).slice(2, 9)}`\n\n const getLayoutConfig = useCallback((): BuilderLayoutConfig => {\n return {\n columns,\n rowHeight,\n widgets: widgets.map((w) => ({\n i: w.id,\n x: w.x,\n y: w.y,\n w: w.w,\n h: w.h,\n })),\n }\n }, [columns, rowHeight, widgets])\n\n // Event handlers\n const handleWidgetDrop = useCallback(\n (widgetType: string, position: BuilderPosition) => {\n const definition = availableWidgets.find((w) => w.type === widgetType)\n if (!definition) return\n\n const newWidget: BuilderWidget = {\n id: generateId(),\n type: widgetType,\n title: definition.name,\n x: position.x,\n y: position.y,\n w: definition.defaultSize.w,\n h: definition.defaultSize.h,\n config: definition.configSchema.fields.reduce<Record<string, unknown>>(\n (acc, field) => {\n acc[field.name] = field.defaultValue\n return acc\n },\n {}\n ),\n }\n\n const newWidgets = [...widgets, newWidget]\n setWidgets(newWidgets)\n updateHistory(newWidgets)\n setSelectedWidgetId(newWidget.id)\n\n onWidgetAdd?.({ widget: newWidget, position })\n onLayoutChange?.(getLayoutConfig())\n },\n [availableWidgets, widgets, updateHistory, onWidgetAdd, onLayoutChange, getLayoutConfig]\n )\n\n const handleWidgetRemove = useCallback(\n (widgetId: string) => {\n const newWidgets = widgets.filter((w) => w.id !== widgetId)\n setWidgets(newWidgets)\n updateHistory(newWidgets)\n\n if (selectedWidgetId === widgetId) {\n setSelectedWidgetId(null)\n }\n\n onWidgetRemove?.({ widgetId })\n onLayoutChange?.(getLayoutConfig())\n },\n [widgets, selectedWidgetId, updateHistory, onWidgetRemove, onLayoutChange, getLayoutConfig]\n )\n\n const handleWidgetSelect = useCallback((widgetId: string) => {\n setSelectedWidgetId(widgetId)\n setBuilderState(\"configuring\")\n }, [])\n\n const handleConfigChange = useCallback(\n (newConfig: Record<string, unknown>) => {\n if (!selectedWidgetId) return\n\n const newWidgets = widgets.map((w) =>\n w.id === selectedWidgetId ? { ...w, config: newConfig } : w\n )\n setWidgets(newWidgets)\n updateHistory(newWidgets)\n\n onWidgetUpdate?.({ widgetId: selectedWidgetId, config: newConfig })\n },\n [selectedWidgetId, widgets, updateHistory, onWidgetUpdate]\n )\n\n const handleSave = useCallback(() => {\n setBuilderState(\"saving\")\n onSave?.({ widgets, layout: getLayoutConfig() })\n setBuilderState(\"idle\")\n }, [widgets, getLayoutConfig, onSave])\n\n const handleUndo = useCallback(() => {\n if (!canUndo) return\n const newIndex = historyIndex - 1\n setHistoryIndex(newIndex)\n setWidgets(history[newIndex] ?? [])\n onUndo?.()\n }, [canUndo, historyIndex, history, onUndo])\n\n const handleRedo = useCallback(() => {\n if (!canRedo) return\n const newIndex = historyIndex + 1\n setHistoryIndex(newIndex)\n setWidgets(history[newIndex] ?? [])\n onRedo?.()\n }, [canRedo, historyIndex, history, onRedo])\n\n const handlePreview = useCallback(() => {\n setBuilderMode(\"preview\")\n onPreview?.()\n }, [onPreview])\n\n const handleCloseProperties = useCallback(() => {\n setSelectedWidgetId(null)\n setBuilderState(\"idle\")\n }, [])\n\n // Keyboard shortcuts\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLDivElement>) => {\n // Ctrl/Cmd + S: Save\n if ((e.ctrlKey || e.metaKey) && e.key === \"s\") {\n e.preventDefault()\n handleSave()\n }\n // Ctrl/Cmd + Z: Undo\n if ((e.ctrlKey || e.metaKey) && e.key === \"z\" && !e.shiftKey) {\n e.preventDefault()\n handleUndo()\n }\n // Ctrl/Cmd + Shift + Z or Ctrl/Cmd + Y: Redo\n if ((e.ctrlKey || e.metaKey) && (e.key === \"y\" || (e.key === \"z\" && e.shiftKey))) {\n e.preventDefault()\n handleRedo()\n }\n // Delete: Remove selected widget\n if ((e.key === \"Delete\" || e.key === \"Backspace\") && selectedWidgetId) {\n e.preventDefault()\n handleWidgetRemove(selectedWidgetId)\n }\n },\n [handleSave, handleUndo, handleRedo, selectedWidgetId, handleWidgetRemove]\n )\n\n return (\n <div\n aria-label={ariaLabel}\n className={cn(dashboardBuilderVariants({ mode, size }), className)}\n data-slot=\"dashboard-builder\"\n id={builderId}\n role=\"application\"\n tabIndex={-1}\n onKeyDown={handleKeyDown}\n {...props}\n >\n {/* Toolbar */}\n <div className=\"flex flex-col\">\n <DashboardBuilderToolbar\n canRedo={canRedo}\n canUndo={canUndo}\n showPreview={showPreview}\n showUndo={showUndo}\n onRedo={handleRedo}\n onSave={handleSave}\n onTogglePreview={handlePreview}\n onUndo={handleUndo}\n />\n\n {/* Main content area */}\n <div className=\"flex flex-1 overflow-hidden\">\n {/* Widget Library */}\n <DashboardBuilderWidgetLibrary widgets={availableWidgets} />\n\n {/* Canvas */}\n <div className=\"flex flex-1 flex-col\">\n <DashboardBuilderCanvas\n columns={columns}\n rowHeight={rowHeight}\n selectedWidgetId={selectedWidgetId}\n showGrid={showGrid}\n widgetDefinitions={availableWidgets}\n widgets={widgets}\n onWidgetClick={handleWidgetSelect}\n onWidgetDrop={handleWidgetDrop}\n onWidgetRemove={handleWidgetRemove}\n >\n {widgets.map((widget) => {\n const definition = availableWidgets.find(\n (w) => w.type === widget.type\n )\n return (\n <DashboardBuilderWidgetComponent\n key={widget.id}\n isSelected={widget.id === selectedWidgetId}\n widget={widget}\n widgetDefinition={definition}\n onClick={() => { handleWidgetSelect(widget.id); }}\n onRemove={() => { handleWidgetRemove(widget.id); }}\n />\n )\n })}\n </DashboardBuilderCanvas>\n </div>\n\n {/* Properties Panel */}\n <DashboardBuilderPropertiesPanel\n widget={selectedWidget}\n widgetDefinition={selectedWidgetDefinition}\n onClose={handleCloseProperties}\n onConfigChange={handleConfigChange}\n />\n </div>\n </div>\n </div>\n )\n}\n\nDashboardBuilder.displayName = \"DashboardBuilder\"\n\n// ============================================\n// EXPORTS\n// ============================================\n\nexport {\n DashboardBuilder,\n DashboardBuilderCanvas,\n DashboardBuilderPropertiesPanel,\n DashboardBuilderToolbar,\n DashboardBuilderWidgetComponent,\n DashboardBuilderWidgetLibrary,\n defaultWidgets,\n}\nexport type {\n DashboardBuilderCanvasProps,\n DashboardBuilderPropertiesPanelProps,\n DashboardBuilderProps,\n DashboardBuilderToolbarProps,\n DashboardBuilderWidgetComponentProps,\n DashboardBuilderWidgetLibraryProps,\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/workflow/DashboardBuilder/DashboardBuilder.variants.ts","../src/components/workflow/DashboardBuilder/DashboardBuilder.tsx"],"names":[],"mappings":"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","file":"chunk-55RLLBXW.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * DashboardBuilder container variants\n */\nexport const dashboardBuilderVariants = cva(\n \"relative flex h-full w-full overflow-hidden rounded-lg border bg-background transition-all duration-300\",\n {\n variants: {\n mode: {\n edit: \"\",\n preview: \"\",\n configure: \"\",\n },\n size: {\n default: \"\",\n compact: \"\",\n full: \"h-screen\",\n },\n },\n defaultVariants: {\n mode: \"edit\",\n size: \"default\",\n },\n }\n)\n\n/**\n * Toolbar variants\n */\nexport const dashboardBuilderToolbarVariants = cva(\n \"flex h-14 shrink-0 items-center justify-between border-b bg-card px-4 transition-all duration-200\",\n {\n variants: {\n position: {\n top: \"\",\n bottom: \"border-b-0 border-t\",\n },\n },\n defaultVariants: {\n position: \"top\",\n },\n }\n)\n\n/**\n * Canvas (main work area) variants\n */\nexport const dashboardBuilderCanvasVariants = cva(\n \"relative flex-1 overflow-auto bg-muted/30 p-4 transition-all duration-200\",\n {\n variants: {\n showGrid: {\n true: [\n \"bg-[linear-gradient(to_right,var(--border)_1px,transparent_1px),linear-gradient(to_bottom,var(--border)_1px,transparent_1px)]\",\n \"bg-[size:var(--grid-size)_var(--grid-size)]\",\n ],\n false: \"\",\n },\n state: {\n idle: \"\",\n dragging: \"cursor-grabbing\",\n resizing: \"cursor-nwse-resize\",\n configuring: \"\",\n saving: \"pointer-events-none opacity-75\",\n },\n },\n defaultVariants: {\n showGrid: true,\n state: \"idle\",\n },\n }\n)\n\n/**\n * Widget library sidebar variants\n */\nexport const dashboardBuilderWidgetLibraryVariants = cva(\n \"flex w-64 shrink-0 flex-col border-r bg-card transition-all duration-200\",\n {\n variants: {\n collapsed: {\n true: \"w-14\",\n false: \"w-64\",\n },\n position: {\n left: \"border-r\",\n right: \"border-l border-r-0\",\n },\n },\n defaultVariants: {\n collapsed: false,\n position: \"left\",\n },\n }\n)\n\n/**\n * Properties panel variants\n */\nexport const dashboardBuilderPropertiesPanelVariants = cva(\n \"flex w-72 shrink-0 flex-col border-l bg-card transition-all duration-200\",\n {\n variants: {\n open: {\n true: \"w-72\",\n false: \"w-0 overflow-hidden border-l-0\",\n },\n },\n defaultVariants: {\n open: false,\n },\n }\n)\n\n/**\n * Widget card in library variants\n */\nexport const dashboardBuilderWidgetCardVariants = cva(\n \"flex cursor-grab items-center gap-3 rounded-md border bg-background p-3 transition-all duration-200 hover:border-primary hover:shadow-sm active:cursor-grabbing\",\n {\n variants: {\n category: {\n default: \"\",\n charts: \"border-l-2 border-l-blue-500\",\n kpi: \"border-l-2 border-l-green-500\",\n tables: \"border-l-2 border-l-purple-500\",\n text: \"border-l-2 border-l-orange-500\",\n },\n dragging: {\n true: \"opacity-50\",\n false: \"\",\n },\n },\n defaultVariants: {\n category: \"default\",\n dragging: false,\n },\n }\n)\n\n/**\n * Widget on canvas variants\n */\nexport const dashboardBuilderWidgetVariants = cva(\n \"group relative rounded-md border-2 bg-card transition-all duration-200\",\n {\n variants: {\n state: {\n idle: \"border-transparent hover:border-muted-foreground/30\",\n selected: \"border-primary ring-2 ring-primary/20\",\n dragging: \"border-primary border-dashed opacity-75\",\n resizing: \"border-primary\",\n preview: \"border-border\",\n },\n },\n defaultVariants: {\n state: \"idle\",\n },\n }\n)\n\n/**\n * Widget resize handle variants\n */\nexport const dashboardBuilderResizeHandleVariants = cva(\n \"absolute opacity-0 transition-opacity group-hover:opacity-100\",\n {\n variants: {\n position: {\n se: \"bottom-0 right-0 cursor-se-resize\",\n sw: \"bottom-0 left-0 cursor-sw-resize\",\n ne: \"right-0 top-0 cursor-ne-resize\",\n nw: \"left-0 top-0 cursor-nw-resize\",\n e: \"right-0 top-1/2 -translate-y-1/2 cursor-e-resize\",\n w: \"left-0 top-1/2 -translate-y-1/2 cursor-w-resize\",\n n: \"left-1/2 top-0 -translate-x-1/2 cursor-n-resize\",\n s: \"bottom-0 left-1/2 -translate-x-1/2 cursor-s-resize\",\n },\n size: {\n sm: \"h-2 w-2\",\n default: \"h-3 w-3\",\n lg: \"h-4 w-4\",\n },\n },\n defaultVariants: {\n position: \"se\",\n size: \"default\",\n },\n }\n)\n\n/**\n * Drop zone indicator variants\n */\nexport const dashboardBuilderDropZoneVariants = cva(\n \"pointer-events-none absolute rounded-md border-2 transition-all duration-200\",\n {\n variants: {\n active: {\n true: \"border-primary bg-primary/10\",\n false: \"border-transparent\",\n },\n valid: {\n true: \"border-primary bg-primary/10\",\n false: \"border-destructive bg-destructive/10\",\n },\n },\n defaultVariants: {\n active: false,\n valid: true,\n },\n }\n)\n\n/**\n * Empty state variants for canvas\n */\nexport const dashboardBuilderEmptyStateVariants = cva(\n \"flex h-full flex-col items-center justify-center gap-4 text-muted-foreground\",\n {\n variants: {\n variant: {\n default: \"\",\n minimal: \"gap-2\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\n// Export variant prop types\nexport type DashboardBuilderVariantProps = VariantProps<\n typeof dashboardBuilderVariants\n>\nexport type DashboardBuilderToolbarVariantProps = VariantProps<\n typeof dashboardBuilderToolbarVariants\n>\nexport type DashboardBuilderCanvasVariantProps = VariantProps<\n typeof dashboardBuilderCanvasVariants\n>\nexport type DashboardBuilderWidgetLibraryVariantProps = VariantProps<\n typeof dashboardBuilderWidgetLibraryVariants\n>\nexport type DashboardBuilderPropertiesPanelVariantProps = VariantProps<\n typeof dashboardBuilderPropertiesPanelVariants\n>\nexport type DashboardBuilderWidgetCardVariantProps = VariantProps<\n typeof dashboardBuilderWidgetCardVariants\n>\nexport type DashboardBuilderWidgetVariantProps = VariantProps<\n typeof dashboardBuilderWidgetVariants\n>\nexport type DashboardBuilderResizeHandleVariantProps = VariantProps<\n typeof dashboardBuilderResizeHandleVariants\n>\nexport type DashboardBuilderDropZoneVariantProps = VariantProps<\n typeof dashboardBuilderDropZoneVariants\n>\nexport type DashboardBuilderEmptyStateVariantProps = VariantProps<\n typeof dashboardBuilderEmptyStateVariants\n>\n","import type {\n BuilderLayoutConfig,\n BuilderMode,\n BuilderPosition,\n BuilderState,\n BuilderWidget,\n BuilderWidgetDefinition,\n DashboardBuilderCanvasProps,\n DashboardBuilderPropertiesPanelProps,\n DashboardBuilderProps,\n DashboardBuilderToolbarProps,\n DashboardBuilderWidgetComponentProps,\n DashboardBuilderWidgetLibraryProps,\n} from \"./DashboardBuilder.types\"\nimport type { DragEvent, KeyboardEvent, ReactNode } from \"react\"\n\nimport {\n BarChart2,\n ChevronLeft,\n ChevronRight,\n Eye,\n GripVertical,\n LayoutGrid,\n PieChart,\n Redo2,\n Save,\n Table,\n Trash2,\n Type,\n Undo2,\n X,\n} from \"lucide-react\"\nimport { useCallback, useId, useMemo, useRef, useState } from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { TextInput } from \"../../forms/TextInput\"\nimport { Button } from \"../../primitives/Button\"\nimport { Label } from \"../../primitives/Label\"\nimport {\n dashboardBuilderCanvasVariants,\n dashboardBuilderEmptyStateVariants,\n dashboardBuilderPropertiesPanelVariants,\n dashboardBuilderToolbarVariants,\n dashboardBuilderVariants,\n dashboardBuilderWidgetCardVariants,\n dashboardBuilderWidgetLibraryVariants,\n dashboardBuilderWidgetVariants,\n} from \"./DashboardBuilder.variants\"\n\n// ============================================\n// DEFAULT WIDGET DEFINITIONS\n// ============================================\n\n/**\n * Placeholder widget component for demo purposes\n */\nfunction PlaceholderWidget({ config, title }: { config: Record<string, unknown>; title: string }): ReactNode {\n const value = config[\"value\"]\n const getDisplayValue = (): string => {\n if (value === null || value === undefined) return \"\"\n if (typeof value === \"object\") return JSON.stringify(value)\n return String(value as boolean | number | string)\n }\n return (\n <div className=\"flex h-full flex-col items-center justify-center p-4\">\n <span className=\"text-sm font-medium\">{title}</span>\n {value !== undefined && value !== null && (\n <span className=\"text-2xl font-bold text-primary\">\n {getDisplayValue()}\n </span>\n )}\n </div>\n )\n}\n\n/**\n * Default widgets available in the library\n */\nconst defaultWidgets: BuilderWidgetDefinition[] = [\n {\n type: \"kpi\",\n name: \"KPI Card\",\n description: \"Display a key performance indicator\",\n icon: <LayoutGrid className=\"h-4 w-4\" />,\n category: \"kpi\",\n defaultSize: { w: 3, h: 2 },\n minSize: { w: 2, h: 1 },\n maxSize: { w: 6, h: 4 },\n configSchema: {\n fields: [\n { name: \"title\", type: \"text\", label: \"Title\", defaultValue: \"KPI\" },\n { name: \"value\", type: \"text\", label: \"Value\", defaultValue: \"0\" },\n { name: \"unit\", type: \"text\", label: \"Unit\", defaultValue: \"\" },\n ],\n },\n component: PlaceholderWidget,\n },\n {\n type: \"chart-line\",\n name: \"Line Chart\",\n description: \"Display data as a line chart\",\n icon: <BarChart2 className=\"h-4 w-4\" />,\n category: \"charts\",\n defaultSize: { w: 6, h: 4 },\n minSize: { w: 4, h: 3 },\n configSchema: {\n fields: [\n { name: \"title\", type: \"text\", label: \"Title\", defaultValue: \"Chart\" },\n {\n name: \"showLegend\",\n type: \"boolean\",\n label: \"Show Legend\",\n defaultValue: true,\n },\n ],\n },\n component: PlaceholderWidget,\n },\n {\n type: \"chart-pie\",\n name: \"Pie Chart\",\n description: \"Display data as a pie chart\",\n icon: <PieChart className=\"h-4 w-4\" />,\n category: \"charts\",\n defaultSize: { w: 4, h: 4 },\n minSize: { w: 3, h: 3 },\n configSchema: {\n fields: [\n { name: \"title\", type: \"text\", label: \"Title\", defaultValue: \"Chart\" },\n ],\n },\n component: PlaceholderWidget,\n },\n {\n type: \"table\",\n name: \"Data Table\",\n description: \"Display data in a table format\",\n icon: <Table className=\"h-4 w-4\" />,\n category: \"tables\",\n defaultSize: { w: 6, h: 4 },\n minSize: { w: 4, h: 3 },\n configSchema: {\n fields: [\n { name: \"title\", type: \"text\", label: \"Title\", defaultValue: \"Table\" },\n {\n name: \"pageSize\",\n type: \"number\",\n label: \"Page Size\",\n defaultValue: 10,\n },\n ],\n },\n component: PlaceholderWidget,\n },\n {\n type: \"text\",\n name: \"Text Block\",\n description: \"Display formatted text content\",\n icon: <Type className=\"h-4 w-4\" />,\n category: \"text\",\n defaultSize: { w: 4, h: 2 },\n minSize: { w: 2, h: 1 },\n configSchema: {\n fields: [\n { name: \"content\", type: \"text\", label: \"Content\", defaultValue: \"\" },\n ],\n },\n component: PlaceholderWidget,\n },\n]\n\n// ============================================\n// SUB-COMPONENTS\n// ============================================\n\n/**\n * Toolbar component with save, undo, redo, and preview actions\n */\nfunction DashboardBuilderToolbar({\n canRedo,\n canUndo,\n onRedo,\n onSave,\n onTogglePreview,\n onUndo,\n showPreview,\n showUndo,\n}: DashboardBuilderToolbarProps): ReactNode {\n return (\n <div\n className={dashboardBuilderToolbarVariants()}\n data-slot=\"dashboard-builder-toolbar\"\n >\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm font-medium\">Dashboard Builder</span>\n </div>\n\n <div className=\"flex items-center gap-2\">\n {showUndo && (\n <>\n <Button\n aria-label=\"Undo\"\n disabled={!canUndo}\n size=\"sm\"\n variant=\"ghost\"\n onClick={onUndo}\n >\n <Undo2 className=\"h-4 w-4\" />\n </Button>\n <Button\n aria-label=\"Redo\"\n disabled={!canRedo}\n size=\"sm\"\n variant=\"ghost\"\n onClick={onRedo}\n >\n <Redo2 className=\"h-4 w-4\" />\n </Button>\n <div className=\"mx-2 h-6 w-px bg-border\" />\n </>\n )}\n\n {showPreview && (\n <Button\n aria-label=\"Preview dashboard\"\n size=\"sm\"\n variant=\"outline\"\n onClick={onTogglePreview}\n >\n <Eye className=\"mr-2 h-4 w-4\" />\n Preview\n </Button>\n )}\n\n <Button size=\"sm\" onClick={onSave}>\n <Save className=\"mr-2 h-4 w-4\" />\n Save\n </Button>\n </div>\n </div>\n )\n}\n\n/**\n * Widget library sidebar showing available widgets\n */\nfunction DashboardBuilderWidgetLibrary({\n widgets,\n}: DashboardBuilderWidgetLibraryProps): ReactNode {\n const [collapsed, setCollapsed] = useState(false)\n\n // Group widgets by category\n const groupedWidgets = useMemo(() => {\n return widgets.reduce<Record<string, BuilderWidgetDefinition[]>>((acc, widget) => {\n const category = widget.category || \"default\"\n acc[category] ??= []\n acc[category].push(widget)\n return acc\n }, {})\n }, [widgets])\n\n const handleDragStart = (e: DragEvent<HTMLDivElement>, widget: BuilderWidgetDefinition): void => {\n e.dataTransfer.setData(\"widget-type\", widget.type)\n e.dataTransfer.effectAllowed = \"copy\"\n }\n\n return (\n <div\n className={dashboardBuilderWidgetLibraryVariants({ collapsed })}\n data-slot=\"dashboard-builder-widget-library\"\n >\n <div className=\"flex h-12 items-center justify-between border-b px-4\">\n {!collapsed && (\n <span className=\"text-sm font-medium\">Widgets</span>\n )}\n <Button\n aria-label={collapsed ? \"Expand widget library\" : \"Collapse widget library\"}\n className=\"ml-auto\"\n size=\"icon\"\n variant=\"ghost\"\n onClick={() => { setCollapsed(!collapsed); }}\n >\n {collapsed ? (\n <ChevronRight className=\"h-4 w-4\" />\n ) : (\n <ChevronLeft className=\"h-4 w-4\" />\n )}\n </Button>\n </div>\n\n {!collapsed && (\n <div className=\"flex-1 overflow-y-auto p-4\">\n <div className=\"space-y-4\">\n {Object.entries(groupedWidgets).map(([category, categoryWidgets]) => (\n <div key={category}>\n <span className=\"mb-2 block text-xs font-medium uppercase text-muted-foreground\">\n {category}\n </span>\n <div className=\"space-y-2\">\n {categoryWidgets.map((widget) => (\n <div\n key={widget.type}\n draggable\n className={dashboardBuilderWidgetCardVariants({\n category: category as \"charts\" | \"default\" | \"kpi\" | \"tables\" | \"text\",\n })}\n aria-label={`Drag ${widget.name} widget`}\n role=\"button\"\n tabIndex={0}\n title={widget.description}\n onDragStart={(e: DragEvent<HTMLDivElement>) => { handleDragStart(e, widget); }}\n >\n <span className=\"text-muted-foreground\">{widget.icon}</span>\n <span className=\"text-sm\">{widget.name}</span>\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n )\n}\n\n/**\n * Canvas component - main work area for widgets\n */\nfunction DashboardBuilderCanvas({\n children,\n columns,\n onWidgetDrop,\n rowHeight,\n showGrid,\n widgets,\n}: DashboardBuilderCanvasProps & {\n children?: ReactNode\n onWidgetClick?: (id: string) => void\n onWidgetRemove?: (id: string) => void\n selectedWidgetId?: null | string\n widgetDefinitions: BuilderWidgetDefinition[]\n}): ReactNode {\n const canvasRef = useRef<HTMLDivElement>(null)\n const [isDragOver, setIsDragOver] = useState(false)\n\n const handleDragOver = (e: DragEvent<HTMLDivElement>): void => {\n e.preventDefault()\n e.dataTransfer.dropEffect = \"copy\"\n setIsDragOver(true)\n }\n\n const handleDragLeave = (): void => {\n setIsDragOver(false)\n }\n\n const handleDrop = (e: DragEvent<HTMLDivElement>): void => {\n e.preventDefault()\n setIsDragOver(false)\n\n const widgetType = e.dataTransfer.getData(\"widget-type\")\n if (!widgetType || !canvasRef.current) return\n\n const rect = canvasRef.current.getBoundingClientRect()\n const gridWidth = rect.width / columns\n const x = Math.floor((e.clientX - rect.left) / gridWidth)\n const y = Math.floor((e.clientY - rect.top) / rowHeight)\n\n onWidgetDrop?.(widgetType, { x, y })\n }\n\n const gridSizeStyle = {\n \"--grid-size\": `${String(100 / columns)}%`,\n } as React.CSSProperties\n\n return (\n <div\n ref={canvasRef}\n className={cn(\n dashboardBuilderCanvasVariants({ showGrid }),\n isDragOver && \"ring-2 ring-primary ring-offset-2\"\n )}\n aria-describedby=\"canvas-instructions\"\n aria-label=\"Dashboard canvas\"\n data-slot=\"dashboard-builder-canvas\"\n role=\"region\"\n style={gridSizeStyle}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n >\n <span className=\"sr-only\" id=\"canvas-instructions\">\n Drag widgets from the library to add them. Use arrow keys to move selected widgets.\n Press Delete to remove selected widget.\n </span>\n\n {widgets.length === 0 ? (\n <div className={dashboardBuilderEmptyStateVariants()}>\n <LayoutGrid className=\"h-12 w-12 opacity-50\" />\n <div className=\"text-center\">\n <p className=\"text-sm font-medium\">No widgets yet</p>\n <p className=\"text-xs text-muted-foreground\">\n Drag widgets from the library to get started\n </p>\n </div>\n </div>\n ) : (\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns: `repeat(${String(columns)}, 1fr)`,\n gap: \"var(--spacing-4)\",\n minHeight: \"100%\",\n }}\n className=\"relative\"\n >\n {children}\n </div>\n )}\n </div>\n )\n}\n\n/**\n * Properties panel for configuring selected widget\n */\nfunction DashboardBuilderPropertiesPanel({\n onClose,\n onConfigChange,\n widget,\n widgetDefinition,\n}: DashboardBuilderPropertiesPanelProps): ReactNode {\n const panelId = useId()\n\n if (!widget || !widgetDefinition) {\n return (\n <div\n className={dashboardBuilderPropertiesPanelVariants({ open: false })}\n data-slot=\"dashboard-builder-properties-panel\"\n />\n )\n }\n\n const handleFieldChange = (fieldName: string, value: unknown): void => {\n const newConfig = { ...widget.config, [fieldName]: value }\n onConfigChange?.(newConfig)\n }\n\n return (\n <div\n aria-labelledby={`${panelId}-title`}\n className={dashboardBuilderPropertiesPanelVariants({ open: true })}\n data-slot=\"dashboard-builder-properties-panel\"\n role=\"region\"\n >\n <div className=\"flex h-12 items-center justify-between border-b px-4\">\n <span className=\"text-sm font-medium\" id={`${panelId}-title`}>\n Properties\n </span>\n <Button\n aria-label=\"Close properties panel\"\n size=\"icon\"\n variant=\"ghost\"\n onClick={onClose}\n >\n <X className=\"h-4 w-4\" />\n </Button>\n </div>\n\n <div className=\"flex-1 overflow-y-auto p-4\">\n <div className=\"space-y-4\">\n <div>\n <span className=\"text-xs font-medium uppercase text-muted-foreground\">\n Widget: {widgetDefinition.name}\n </span>\n </div>\n\n <div className=\"h-px w-full bg-border\" />\n\n <div className=\"space-y-4\">\n {widgetDefinition.configSchema.fields.map((field) => (\n <div key={field.name} className=\"space-y-2\">\n <Label htmlFor={`${panelId}-${field.name}`}>{field.label}</Label>\n {field.type === \"text\" && (\n <TextInput\n value={(() => {\n const val = widget.config[field.name] ?? field.defaultValue ?? \"\"\n if (typeof val === \"object\") return JSON.stringify(val)\n return String(val as boolean | number | string)\n })()}\n id={`${panelId}-${field.name}`}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => { handleFieldChange(field.name, e.target.value); }}\n />\n )}\n {field.type === \"number\" && (\n <TextInput\n value={(() => {\n const val = widget.config[field.name] ?? field.defaultValue ?? 0\n if (typeof val === \"object\") return \"0\"\n return String(val as boolean | number | string)\n })()}\n id={`${panelId}-${field.name}`}\n type=\"number\"\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => { handleFieldChange(field.name, Number(e.target.value)); }}\n />\n )}\n {field.type === \"boolean\" && (\n <input\n checked={Boolean(widget.config[field.name] ?? field.defaultValue)}\n className=\"h-4 w-4\"\n id={`${panelId}-${field.name}`}\n type=\"checkbox\"\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => { handleFieldChange(field.name, e.target.checked); }}\n />\n )}\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n )\n}\n\n/**\n * Individual widget component on the canvas\n */\nfunction DashboardBuilderWidgetComponent({\n isDragging,\n isSelected,\n onClick,\n onRemove,\n widget,\n widgetDefinition,\n}: DashboardBuilderWidgetComponentProps): ReactNode {\n const WidgetComponent = widgetDefinition?.component\n\n const state = isSelected ? \"selected\" : isDragging ? \"dragging\" : \"idle\"\n\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>): void => {\n if (e.key === \"Delete\" || e.key === \"Backspace\") {\n e.preventDefault()\n onRemove?.()\n }\n }\n\n return (\n <div\n style={{\n gridColumn: `span ${String(widget.w)}`,\n gridRow: `span ${String(widget.h)}`,\n minHeight: `${String(widget.h * 100)}px`,\n }}\n aria-label={`Widget: ${widget.title}`}\n aria-selected={isSelected}\n className={dashboardBuilderWidgetVariants({ state })}\n data-slot=\"dashboard-builder-widget\"\n data-widget-id={widget.id}\n role=\"button\"\n tabIndex={0}\n onClick={onClick}\n onKeyDown={handleKeyDown}\n >\n {/* Widget header */}\n <div className=\"flex items-center justify-between border-b bg-muted/50 px-3 py-2\">\n <div className=\"flex items-center gap-2\">\n <GripVertical className=\"h-4 w-4 cursor-grab text-muted-foreground\" />\n <span className=\"text-xs font-medium\">{widget.title}</span>\n </div>\n <Button\n aria-label={`Remove ${widget.title}`}\n className=\"opacity-0 group-hover:opacity-100\"\n size=\"icon\"\n variant=\"ghost\"\n onClick={(e) => {\n e.stopPropagation()\n onRemove?.()\n }}\n >\n <Trash2 className=\"h-3 w-3\" />\n </Button>\n </div>\n\n {/* Widget content */}\n <div className=\"flex-1 overflow-hidden p-2\">\n {WidgetComponent ? (\n <WidgetComponent\n config={widget.config}\n height={widget.h}\n id={widget.id}\n title={widget.title}\n width={widget.w}\n />\n ) : (\n <div className=\"flex h-full items-center justify-center text-muted-foreground\">\n <span className=\"text-xs\">Unknown widget type</span>\n </div>\n )}\n </div>\n </div>\n )\n}\n\n// ============================================\n// MAIN COMPONENT\n// ============================================\n\n/**\n * DashboardBuilder - Visual dashboard construction interface.\n *\n * Allows users to create, edit and customize dashboards through a drag-and-drop\n * interface with a widget library and properties panel.\n *\n * @example\n * ```tsx\n * <DashboardBuilder\n * onSave={({ widgets, layout }) => console.log('Saved:', widgets, layout)}\n * />\n * ```\n *\n * @example\n * ```tsx\n * const initialWidgets = [\n * { id: '1', type: 'kpi', title: 'Sales', x: 0, y: 0, w: 3, h: 2, config: { value: '150k' } }\n * ];\n *\n * <DashboardBuilder\n * initialWidgets={initialWidgets}\n * columns={12}\n * rowHeight={100}\n * />\n * ```\n */\nfunction DashboardBuilder({\n \"aria-label\": ariaLabel = \"Dashboard builder\",\n allowOverlap = false,\n autoSaveInterval = 30000,\n availableWidgets = defaultWidgets,\n className,\n columns = 12,\n enableAutoSave = false,\n initialLayout,\n initialWidgets = [],\n mode,\n onLayoutChange,\n onPreview,\n onRedo,\n onSave,\n onUndo,\n onWidgetAdd,\n onWidgetRemove,\n onWidgetUpdate,\n rowHeight = 100,\n showGrid = true,\n showPreview = true,\n showUndo = true,\n size,\n snapToGrid = true,\n ...props\n}: DashboardBuilderProps): ReactNode {\n const builderId = useId()\n\n // State\n const [widgets, setWidgets] = useState<BuilderWidget[]>(initialWidgets)\n const [selectedWidgetId, setSelectedWidgetId] = useState<null | string>(null)\n const [_builderMode, setBuilderMode] = useState<BuilderMode>(\"edit\")\n const [_builderState, setBuilderState] = useState<BuilderState>(\"idle\")\n const [history, setHistory] = useState<BuilderWidget[][]>([initialWidgets])\n const [historyIndex, setHistoryIndex] = useState(0)\n\n // Suppress unused variable warnings for future implementation\n void snapToGrid\n void allowOverlap\n void enableAutoSave\n void autoSaveInterval\n void initialLayout\n\n // Computed\n const selectedWidget = useMemo(\n () => widgets.find((w) => w.id === selectedWidgetId) ?? null,\n [widgets, selectedWidgetId]\n )\n const selectedWidgetDefinition = useMemo(\n () =>\n selectedWidget\n ? availableWidgets.find((w) => w.type === selectedWidget.type)\n : undefined,\n [selectedWidget, availableWidgets]\n )\n\n const canUndo = historyIndex > 0\n const canRedo = historyIndex < history.length - 1\n\n // Helpers\n const updateHistory = useCallback((newWidgets: BuilderWidget[]) => {\n setHistory((prev) => {\n const newHistory = prev.slice(0, historyIndex + 1)\n newHistory.push(newWidgets)\n return newHistory\n })\n setHistoryIndex((prev) => prev + 1)\n }, [historyIndex])\n\n const generateId = (): string => `widget-${String(Date.now())}-${Math.random().toString(36).slice(2, 9)}`\n\n const getLayoutConfig = useCallback((): BuilderLayoutConfig => {\n return {\n columns,\n rowHeight,\n widgets: widgets.map((w) => ({\n i: w.id,\n x: w.x,\n y: w.y,\n w: w.w,\n h: w.h,\n })),\n }\n }, [columns, rowHeight, widgets])\n\n // Event handlers\n const handleWidgetDrop = useCallback(\n (widgetType: string, position: BuilderPosition) => {\n const definition = availableWidgets.find((w) => w.type === widgetType)\n if (!definition) return\n\n const newWidget: BuilderWidget = {\n id: generateId(),\n type: widgetType,\n title: definition.name,\n x: position.x,\n y: position.y,\n w: definition.defaultSize.w,\n h: definition.defaultSize.h,\n config: definition.configSchema.fields.reduce<Record<string, unknown>>(\n (acc, field) => {\n acc[field.name] = field.defaultValue\n return acc\n },\n {}\n ),\n }\n\n const newWidgets = [...widgets, newWidget]\n setWidgets(newWidgets)\n updateHistory(newWidgets)\n setSelectedWidgetId(newWidget.id)\n\n onWidgetAdd?.({ widget: newWidget, position })\n onLayoutChange?.(getLayoutConfig())\n },\n [availableWidgets, widgets, updateHistory, onWidgetAdd, onLayoutChange, getLayoutConfig]\n )\n\n const handleWidgetRemove = useCallback(\n (widgetId: string) => {\n const newWidgets = widgets.filter((w) => w.id !== widgetId)\n setWidgets(newWidgets)\n updateHistory(newWidgets)\n\n if (selectedWidgetId === widgetId) {\n setSelectedWidgetId(null)\n }\n\n onWidgetRemove?.({ widgetId })\n onLayoutChange?.(getLayoutConfig())\n },\n [widgets, selectedWidgetId, updateHistory, onWidgetRemove, onLayoutChange, getLayoutConfig]\n )\n\n const handleWidgetSelect = useCallback((widgetId: string) => {\n setSelectedWidgetId(widgetId)\n setBuilderState(\"configuring\")\n }, [])\n\n const handleConfigChange = useCallback(\n (newConfig: Record<string, unknown>) => {\n if (!selectedWidgetId) return\n\n const newWidgets = widgets.map((w) =>\n w.id === selectedWidgetId ? { ...w, config: newConfig } : w\n )\n setWidgets(newWidgets)\n updateHistory(newWidgets)\n\n onWidgetUpdate?.({ widgetId: selectedWidgetId, config: newConfig })\n },\n [selectedWidgetId, widgets, updateHistory, onWidgetUpdate]\n )\n\n const handleSave = useCallback(() => {\n setBuilderState(\"saving\")\n onSave?.({ widgets, layout: getLayoutConfig() })\n setBuilderState(\"idle\")\n }, [widgets, getLayoutConfig, onSave])\n\n const handleUndo = useCallback(() => {\n if (!canUndo) return\n const newIndex = historyIndex - 1\n setHistoryIndex(newIndex)\n setWidgets(history[newIndex] ?? [])\n onUndo?.()\n }, [canUndo, historyIndex, history, onUndo])\n\n const handleRedo = useCallback(() => {\n if (!canRedo) return\n const newIndex = historyIndex + 1\n setHistoryIndex(newIndex)\n setWidgets(history[newIndex] ?? [])\n onRedo?.()\n }, [canRedo, historyIndex, history, onRedo])\n\n const handlePreview = useCallback(() => {\n setBuilderMode(\"preview\")\n onPreview?.()\n }, [onPreview])\n\n const handleCloseProperties = useCallback(() => {\n setSelectedWidgetId(null)\n setBuilderState(\"idle\")\n }, [])\n\n // Keyboard shortcuts\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLDivElement>) => {\n // Ctrl/Cmd + S: Save\n if ((e.ctrlKey || e.metaKey) && e.key === \"s\") {\n e.preventDefault()\n handleSave()\n }\n // Ctrl/Cmd + Z: Undo\n if ((e.ctrlKey || e.metaKey) && e.key === \"z\" && !e.shiftKey) {\n e.preventDefault()\n handleUndo()\n }\n // Ctrl/Cmd + Shift + Z or Ctrl/Cmd + Y: Redo\n if ((e.ctrlKey || e.metaKey) && (e.key === \"y\" || (e.key === \"z\" && e.shiftKey))) {\n e.preventDefault()\n handleRedo()\n }\n // Delete: Remove selected widget\n if ((e.key === \"Delete\" || e.key === \"Backspace\") && selectedWidgetId) {\n e.preventDefault()\n handleWidgetRemove(selectedWidgetId)\n }\n },\n [handleSave, handleUndo, handleRedo, selectedWidgetId, handleWidgetRemove]\n )\n\n return (\n <div\n aria-label={ariaLabel}\n className={cn(dashboardBuilderVariants({ mode, size }), className)}\n data-slot=\"dashboard-builder\"\n id={builderId}\n role=\"application\"\n tabIndex={-1}\n onKeyDown={handleKeyDown}\n {...props}\n >\n {/* Toolbar */}\n <div className=\"flex flex-col\">\n <DashboardBuilderToolbar\n canRedo={canRedo}\n canUndo={canUndo}\n showPreview={showPreview}\n showUndo={showUndo}\n onRedo={handleRedo}\n onSave={handleSave}\n onTogglePreview={handlePreview}\n onUndo={handleUndo}\n />\n\n {/* Main content area */}\n <div className=\"flex flex-1 overflow-hidden\">\n {/* Widget Library */}\n <DashboardBuilderWidgetLibrary widgets={availableWidgets} />\n\n {/* Canvas */}\n <div className=\"flex flex-1 flex-col\">\n <DashboardBuilderCanvas\n columns={columns}\n rowHeight={rowHeight}\n selectedWidgetId={selectedWidgetId}\n showGrid={showGrid}\n widgetDefinitions={availableWidgets}\n widgets={widgets}\n onWidgetClick={handleWidgetSelect}\n onWidgetDrop={handleWidgetDrop}\n onWidgetRemove={handleWidgetRemove}\n >\n {widgets.map((widget) => {\n const definition = availableWidgets.find(\n (w) => w.type === widget.type\n )\n return (\n <DashboardBuilderWidgetComponent\n key={widget.id}\n isSelected={widget.id === selectedWidgetId}\n widget={widget}\n widgetDefinition={definition}\n onClick={() => { handleWidgetSelect(widget.id); }}\n onRemove={() => { handleWidgetRemove(widget.id); }}\n />\n )\n })}\n </DashboardBuilderCanvas>\n </div>\n\n {/* Properties Panel */}\n <DashboardBuilderPropertiesPanel\n widget={selectedWidget}\n widgetDefinition={selectedWidgetDefinition}\n onClose={handleCloseProperties}\n onConfigChange={handleConfigChange}\n />\n </div>\n </div>\n </div>\n )\n}\n\nDashboardBuilder.displayName = \"DashboardBuilder\"\n\n// ============================================\n// EXPORTS\n// ============================================\n\nexport {\n DashboardBuilder,\n DashboardBuilderCanvas,\n DashboardBuilderPropertiesPanel,\n DashboardBuilderToolbar,\n DashboardBuilderWidgetComponent,\n DashboardBuilderWidgetLibrary,\n defaultWidgets,\n}\nexport type {\n DashboardBuilderCanvasProps,\n DashboardBuilderPropertiesPanelProps,\n DashboardBuilderProps,\n DashboardBuilderToolbarProps,\n DashboardBuilderWidgetComponentProps,\n DashboardBuilderWidgetLibraryProps,\n}\n"]}
|
|
@@ -2,7 +2,7 @@ import { Sheet, SheetContent, SheetHeader, SheetTitle, SheetDescription } from '
|
|
|
2
2
|
import { useIsMobile } from './chunk-WH7Y2MAY.js';
|
|
3
3
|
import { SkeletonLoader } from './chunk-QHKOBGLW.js';
|
|
4
4
|
import { TextInput } from './chunk-PWCMCMDN.js';
|
|
5
|
-
import { Avatar } from './chunk-
|
|
5
|
+
import { Avatar } from './chunk-3BBOSSDG.js';
|
|
6
6
|
import { Button } from './chunk-HDOR3SN3.js';
|
|
7
7
|
import { TooltipProvider, Tooltip, TooltipTrigger, TooltipContent } from './chunk-7ZJ32KRQ.js';
|
|
8
8
|
import { Divider } from './chunk-3L5G7VI2.js';
|
|
@@ -1204,5 +1204,5 @@ function SidebarThemeToggle({
|
|
|
1204
1204
|
}
|
|
1205
1205
|
|
|
1206
1206
|
export { Sidebar, SidebarAvatar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLogo, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarPanelContent, SidebarProvider, SidebarRail, SidebarRailButton, SidebarRailContent, SidebarSeparator, SidebarThemeToggle, SidebarTrigger, sidebarContainerVariants, sidebarContentVariants, sidebarDesktopVariants, sidebarFooterVariants, sidebarGapVariants, sidebarGroupActionVariants, sidebarGroupContentVariants, sidebarGroupLabelVariants, sidebarGroupVariants, sidebarHeaderVariants, sidebarInnerVariants, sidebarInputVariants, sidebarInsetVariants, sidebarMenuActionShowOnHoverVariants, sidebarMenuActionVariants, sidebarMenuBadgeVariants, sidebarMenuButtonVariants, sidebarMenuItemVariants, sidebarMenuSkeletonVariants, sidebarMenuSubButtonVariants, sidebarMenuSubItemVariants, sidebarMenuSubVariants, sidebarMenuVariants, sidebarMobileVariants, sidebarNonCollapsibleVariants, sidebarProviderVariants, sidebarRailButtonVariants, sidebarRailVariants, sidebarSeparatorVariants, sidebarTriggerVariants, useSidebar };
|
|
1207
|
-
//# sourceMappingURL=chunk-
|
|
1208
|
-
//# sourceMappingURL=chunk-
|
|
1207
|
+
//# sourceMappingURL=chunk-5DMK7CVS.js.map
|
|
1208
|
+
//# sourceMappingURL=chunk-5DMK7CVS.js.map
|