@raydenui/ui 0.3.0 → 0.4.0

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/index.d.cts CHANGED
@@ -547,6 +547,81 @@ interface SelectOptionProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>
547
547
  }
548
548
  declare const SelectOption: react.ForwardRefExoticComponent<SelectOptionProps & react.RefAttributes<HTMLButtonElement>>;
549
549
 
550
+ interface ActivityItemLink {
551
+ label: string;
552
+ href?: string;
553
+ onClick?: () => void;
554
+ }
555
+ interface ActivityItemProps extends HTMLAttributes<HTMLDivElement> {
556
+ /** Avatar element (e.g., <Avatar />) */
557
+ avatar: ReactNode;
558
+ /** Primary text content — mixed inline content with bold names, action text, highlights */
559
+ text: ReactNode;
560
+ /** Whether this item is unread (shows green dot) */
561
+ unread?: boolean;
562
+ /** Date label (e.g., "Thurs 21, 2023") */
563
+ date?: string;
564
+ /** Time label (e.g., "10 mins") — right-aligned */
565
+ time?: string;
566
+ /** Optional link button in meta row */
567
+ link?: ActivityItemLink;
568
+ /** Optional badge text in meta row (e.g., "#Marketing-Design") */
569
+ badge?: string;
570
+ /** Connector line position for timeline layouts */
571
+ connector?: "top" | "middle" | "last";
572
+ /** Optional content block (e.g., ActivityContent) */
573
+ children?: ReactNode;
574
+ }
575
+ declare const ActivityItem: react.ForwardRefExoticComponent<ActivityItemProps & react.RefAttributes<HTMLDivElement>>;
576
+
577
+ type ActivityContentVariant = "file" | "comment" | "cta";
578
+ type ActivityContentStyle = "plain" | "card" | "container";
579
+ interface ActivityContentAttachment {
580
+ name: string;
581
+ extension: string;
582
+ }
583
+ interface ActivityContentAction {
584
+ label: string;
585
+ onClick?: () => void;
586
+ }
587
+ interface ActivityContentProps extends HTMLAttributes<HTMLDivElement> {
588
+ /** Content variant */
589
+ variant: ActivityContentVariant;
590
+ /** Visual style wrapper */
591
+ contentStyle?: ActivityContentStyle;
592
+ /** Leading icon for file variant */
593
+ icon?: ReactNode | IconName;
594
+ /** File name */
595
+ title?: string;
596
+ /** File size (e.g., "13MB") */
597
+ size?: string;
598
+ /** File type label (e.g., "PDF File") */
599
+ fileType?: string;
600
+ /** File date (e.g., "11 Sept 23") */
601
+ date?: string;
602
+ /** Avatar element for comment author */
603
+ avatar?: ReactNode;
604
+ /** Author name */
605
+ author?: string;
606
+ /** Timestamp (e.g., "2 hours ago") */
607
+ timestamp?: string;
608
+ /** Comment body text */
609
+ comment?: string;
610
+ /** File attachments */
611
+ attachments?: ActivityContentAttachment[];
612
+ /** Number of reactions */
613
+ reactions?: number;
614
+ /** Number of replies */
615
+ replies?: number;
616
+ /** Reply button callback */
617
+ onReply?: () => void;
618
+ /** Primary action (e.g., Accept) */
619
+ primaryAction?: ActivityContentAction;
620
+ /** Secondary action (e.g., Decline) */
621
+ secondaryAction?: ActivityContentAction;
622
+ }
623
+ declare const ActivityContent: react.ForwardRefExoticComponent<ActivityContentProps & react.RefAttributes<HTMLDivElement>>;
624
+
550
625
  declare function cn(...inputs: ClassValue[]): string;
551
626
 
552
- export { Alert, type AlertAction, type AlertProps, type AlertState, type AlertVariant, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarGroupSize, type AvatarProps, type AvatarSize, type AvatarStatus, type AvatarType, Badge, type BadgeColor, type BadgeProps, type BadgeSize, type BadgeType, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, Button, type ButtonAppearance, ButtonGroup, ButtonGroupItem, type ButtonGroupItemProps, type ButtonGroupProps, type ButtonProps, type ButtonSize, type ButtonVariant, Checkbox, type CheckboxProps, Chip, type ChipProps, Divider, type DividerProps, type DividerVariant, type DropZoneState, DropdownMenu, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, type DropdownMenuGroupProps, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuLabel, type DropdownMenuLabelProps, type DropdownMenuProps, DropdownMenuSeparator, type DropdownMenuSeparatorProps, DropdownMenuTrigger, type DropdownMenuTriggerProps, EmptyStateIllustration, type EmptyStateIllustrationProps, FileUpload, FileUploadDropZone, type FileUploadDropZoneProps, type FileUploadFileData, FileUploadItem, type FileUploadItemProps, type FileUploadItemStatus, type FileUploadProps, Icon, type IconName, type IconProps, type IconSize, type IconVariant, type IllustrationName, Input, type InputProps, type InputSize, MetricsCard, type MetricsCardCta, type MetricsCardProps, type MetricsCardStatusBadge, type MetricsCardTrend, type MetricsCardTrendBadge, type MetricsCardVariation, Pagination, type PaginationProps, ProgressBar, type ProgressBarProps, type ProgressBarSize, ProgressCircle, type ProgressCircleProps, type ProgressCircleSize, Radio, type RadioProps, Select, SelectOption, type SelectOptionProps, type SelectProps, SidebarMenu, type SidebarMenuContextValue, SidebarMenuItem, type SidebarMenuItemProps, type SidebarMenuProps, SidebarMenuSection, type SidebarMenuSectionProps, SidebarMenuSub, SidebarMenuSubItem, type SidebarMenuSubItemProps, type SidebarMenuSubProps, type SidebarMenuTheme, type SortDirection, Tab, type TabProps, Table, TableBody, type TableBodyProps, TableCell, type TableCellProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, type TabsVariant, Toggle, type ToggleProps, Tooltip, type TooltipAction, type TooltipPosition, type TooltipProps, type TooltipTheme, cn, illustrationNames };
627
+ export { ActivityContent, type ActivityContentAction, type ActivityContentAttachment, type ActivityContentProps, type ActivityContentStyle, type ActivityContentVariant, ActivityItem, type ActivityItemLink, type ActivityItemProps, Alert, type AlertAction, type AlertProps, type AlertState, type AlertVariant, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarGroupSize, type AvatarProps, type AvatarSize, type AvatarStatus, type AvatarType, Badge, type BadgeColor, type BadgeProps, type BadgeSize, type BadgeType, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, Button, type ButtonAppearance, ButtonGroup, ButtonGroupItem, type ButtonGroupItemProps, type ButtonGroupProps, type ButtonProps, type ButtonSize, type ButtonVariant, Checkbox, type CheckboxProps, Chip, type ChipProps, Divider, type DividerProps, type DividerVariant, type DropZoneState, DropdownMenu, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, type DropdownMenuGroupProps, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuLabel, type DropdownMenuLabelProps, type DropdownMenuProps, DropdownMenuSeparator, type DropdownMenuSeparatorProps, DropdownMenuTrigger, type DropdownMenuTriggerProps, EmptyStateIllustration, type EmptyStateIllustrationProps, FileUpload, FileUploadDropZone, type FileUploadDropZoneProps, type FileUploadFileData, FileUploadItem, type FileUploadItemProps, type FileUploadItemStatus, type FileUploadProps, Icon, type IconName, type IconProps, type IconSize, type IconVariant, type IllustrationName, Input, type InputProps, type InputSize, MetricsCard, type MetricsCardCta, type MetricsCardProps, type MetricsCardStatusBadge, type MetricsCardTrend, type MetricsCardTrendBadge, type MetricsCardVariation, Pagination, type PaginationProps, ProgressBar, type ProgressBarProps, type ProgressBarSize, ProgressCircle, type ProgressCircleProps, type ProgressCircleSize, Radio, type RadioProps, Select, SelectOption, type SelectOptionProps, type SelectProps, SidebarMenu, type SidebarMenuContextValue, SidebarMenuItem, type SidebarMenuItemProps, type SidebarMenuProps, SidebarMenuSection, type SidebarMenuSectionProps, SidebarMenuSub, SidebarMenuSubItem, type SidebarMenuSubItemProps, type SidebarMenuSubProps, type SidebarMenuTheme, type SortDirection, Tab, type TabProps, Table, TableBody, type TableBodyProps, TableCell, type TableCellProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, type TabsVariant, Toggle, type ToggleProps, Tooltip, type TooltipAction, type TooltipPosition, type TooltipProps, type TooltipTheme, cn, illustrationNames };
package/dist/index.d.ts CHANGED
@@ -547,6 +547,81 @@ interface SelectOptionProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>
547
547
  }
548
548
  declare const SelectOption: react.ForwardRefExoticComponent<SelectOptionProps & react.RefAttributes<HTMLButtonElement>>;
549
549
 
550
+ interface ActivityItemLink {
551
+ label: string;
552
+ href?: string;
553
+ onClick?: () => void;
554
+ }
555
+ interface ActivityItemProps extends HTMLAttributes<HTMLDivElement> {
556
+ /** Avatar element (e.g., <Avatar />) */
557
+ avatar: ReactNode;
558
+ /** Primary text content — mixed inline content with bold names, action text, highlights */
559
+ text: ReactNode;
560
+ /** Whether this item is unread (shows green dot) */
561
+ unread?: boolean;
562
+ /** Date label (e.g., "Thurs 21, 2023") */
563
+ date?: string;
564
+ /** Time label (e.g., "10 mins") — right-aligned */
565
+ time?: string;
566
+ /** Optional link button in meta row */
567
+ link?: ActivityItemLink;
568
+ /** Optional badge text in meta row (e.g., "#Marketing-Design") */
569
+ badge?: string;
570
+ /** Connector line position for timeline layouts */
571
+ connector?: "top" | "middle" | "last";
572
+ /** Optional content block (e.g., ActivityContent) */
573
+ children?: ReactNode;
574
+ }
575
+ declare const ActivityItem: react.ForwardRefExoticComponent<ActivityItemProps & react.RefAttributes<HTMLDivElement>>;
576
+
577
+ type ActivityContentVariant = "file" | "comment" | "cta";
578
+ type ActivityContentStyle = "plain" | "card" | "container";
579
+ interface ActivityContentAttachment {
580
+ name: string;
581
+ extension: string;
582
+ }
583
+ interface ActivityContentAction {
584
+ label: string;
585
+ onClick?: () => void;
586
+ }
587
+ interface ActivityContentProps extends HTMLAttributes<HTMLDivElement> {
588
+ /** Content variant */
589
+ variant: ActivityContentVariant;
590
+ /** Visual style wrapper */
591
+ contentStyle?: ActivityContentStyle;
592
+ /** Leading icon for file variant */
593
+ icon?: ReactNode | IconName;
594
+ /** File name */
595
+ title?: string;
596
+ /** File size (e.g., "13MB") */
597
+ size?: string;
598
+ /** File type label (e.g., "PDF File") */
599
+ fileType?: string;
600
+ /** File date (e.g., "11 Sept 23") */
601
+ date?: string;
602
+ /** Avatar element for comment author */
603
+ avatar?: ReactNode;
604
+ /** Author name */
605
+ author?: string;
606
+ /** Timestamp (e.g., "2 hours ago") */
607
+ timestamp?: string;
608
+ /** Comment body text */
609
+ comment?: string;
610
+ /** File attachments */
611
+ attachments?: ActivityContentAttachment[];
612
+ /** Number of reactions */
613
+ reactions?: number;
614
+ /** Number of replies */
615
+ replies?: number;
616
+ /** Reply button callback */
617
+ onReply?: () => void;
618
+ /** Primary action (e.g., Accept) */
619
+ primaryAction?: ActivityContentAction;
620
+ /** Secondary action (e.g., Decline) */
621
+ secondaryAction?: ActivityContentAction;
622
+ }
623
+ declare const ActivityContent: react.ForwardRefExoticComponent<ActivityContentProps & react.RefAttributes<HTMLDivElement>>;
624
+
550
625
  declare function cn(...inputs: ClassValue[]): string;
551
626
 
552
- export { Alert, type AlertAction, type AlertProps, type AlertState, type AlertVariant, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarGroupSize, type AvatarProps, type AvatarSize, type AvatarStatus, type AvatarType, Badge, type BadgeColor, type BadgeProps, type BadgeSize, type BadgeType, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, Button, type ButtonAppearance, ButtonGroup, ButtonGroupItem, type ButtonGroupItemProps, type ButtonGroupProps, type ButtonProps, type ButtonSize, type ButtonVariant, Checkbox, type CheckboxProps, Chip, type ChipProps, Divider, type DividerProps, type DividerVariant, type DropZoneState, DropdownMenu, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, type DropdownMenuGroupProps, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuLabel, type DropdownMenuLabelProps, type DropdownMenuProps, DropdownMenuSeparator, type DropdownMenuSeparatorProps, DropdownMenuTrigger, type DropdownMenuTriggerProps, EmptyStateIllustration, type EmptyStateIllustrationProps, FileUpload, FileUploadDropZone, type FileUploadDropZoneProps, type FileUploadFileData, FileUploadItem, type FileUploadItemProps, type FileUploadItemStatus, type FileUploadProps, Icon, type IconName, type IconProps, type IconSize, type IconVariant, type IllustrationName, Input, type InputProps, type InputSize, MetricsCard, type MetricsCardCta, type MetricsCardProps, type MetricsCardStatusBadge, type MetricsCardTrend, type MetricsCardTrendBadge, type MetricsCardVariation, Pagination, type PaginationProps, ProgressBar, type ProgressBarProps, type ProgressBarSize, ProgressCircle, type ProgressCircleProps, type ProgressCircleSize, Radio, type RadioProps, Select, SelectOption, type SelectOptionProps, type SelectProps, SidebarMenu, type SidebarMenuContextValue, SidebarMenuItem, type SidebarMenuItemProps, type SidebarMenuProps, SidebarMenuSection, type SidebarMenuSectionProps, SidebarMenuSub, SidebarMenuSubItem, type SidebarMenuSubItemProps, type SidebarMenuSubProps, type SidebarMenuTheme, type SortDirection, Tab, type TabProps, Table, TableBody, type TableBodyProps, TableCell, type TableCellProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, type TabsVariant, Toggle, type ToggleProps, Tooltip, type TooltipAction, type TooltipPosition, type TooltipProps, type TooltipTheme, cn, illustrationNames };
627
+ export { ActivityContent, type ActivityContentAction, type ActivityContentAttachment, type ActivityContentProps, type ActivityContentStyle, type ActivityContentVariant, ActivityItem, type ActivityItemLink, type ActivityItemProps, Alert, type AlertAction, type AlertProps, type AlertState, type AlertVariant, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarGroupSize, type AvatarProps, type AvatarSize, type AvatarStatus, type AvatarType, Badge, type BadgeColor, type BadgeProps, type BadgeSize, type BadgeType, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, Button, type ButtonAppearance, ButtonGroup, ButtonGroupItem, type ButtonGroupItemProps, type ButtonGroupProps, type ButtonProps, type ButtonSize, type ButtonVariant, Checkbox, type CheckboxProps, Chip, type ChipProps, Divider, type DividerProps, type DividerVariant, type DropZoneState, DropdownMenu, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, type DropdownMenuGroupProps, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuLabel, type DropdownMenuLabelProps, type DropdownMenuProps, DropdownMenuSeparator, type DropdownMenuSeparatorProps, DropdownMenuTrigger, type DropdownMenuTriggerProps, EmptyStateIllustration, type EmptyStateIllustrationProps, FileUpload, FileUploadDropZone, type FileUploadDropZoneProps, type FileUploadFileData, FileUploadItem, type FileUploadItemProps, type FileUploadItemStatus, type FileUploadProps, Icon, type IconName, type IconProps, type IconSize, type IconVariant, type IllustrationName, Input, type InputProps, type InputSize, MetricsCard, type MetricsCardCta, type MetricsCardProps, type MetricsCardStatusBadge, type MetricsCardTrend, type MetricsCardTrendBadge, type MetricsCardVariation, Pagination, type PaginationProps, ProgressBar, type ProgressBarProps, type ProgressBarSize, ProgressCircle, type ProgressCircleProps, type ProgressCircleSize, Radio, type RadioProps, Select, SelectOption, type SelectOptionProps, type SelectProps, SidebarMenu, type SidebarMenuContextValue, SidebarMenuItem, type SidebarMenuItemProps, type SidebarMenuProps, SidebarMenuSection, type SidebarMenuSectionProps, SidebarMenuSub, SidebarMenuSubItem, type SidebarMenuSubItemProps, type SidebarMenuSubProps, type SidebarMenuTheme, type SortDirection, Tab, type TabProps, Table, TableBody, type TableBodyProps, TableCell, type TableCellProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, type TabsVariant, Toggle, type ToggleProps, Tooltip, type TooltipAction, type TooltipPosition, type TooltipProps, type TooltipTheme, cn, illustrationNames };
package/dist/index.js CHANGED
@@ -12397,7 +12397,292 @@ var SelectOption = forwardRef(
12397
12397
  }
12398
12398
  );
12399
12399
  SelectOption.displayName = "SelectOption";
12400
+ var ActivityItem = forwardRef(
12401
+ ({
12402
+ avatar,
12403
+ text,
12404
+ unread = false,
12405
+ date,
12406
+ time,
12407
+ link,
12408
+ badge,
12409
+ connector,
12410
+ children,
12411
+ className,
12412
+ ...rest
12413
+ }, ref) => {
12414
+ const hasConnectorAbove = connector === "middle" || connector === "last";
12415
+ const hasConnectorBelow = connector === "top" || connector === "middle";
12416
+ return /* @__PURE__ */ jsxs(
12417
+ "div",
12418
+ {
12419
+ ref,
12420
+ className: cn("flex gap-3 items-start", className),
12421
+ ...rest,
12422
+ children: [
12423
+ /* @__PURE__ */ jsxs(
12424
+ "div",
12425
+ {
12426
+ className: cn(
12427
+ "flex flex-col items-center shrink-0 gap-1 self-stretch",
12428
+ (connector === "last" || !connector) && "justify-start"
12429
+ ),
12430
+ children: [
12431
+ hasConnectorAbove && /* @__PURE__ */ jsx("div", { className: "h-2 w-px bg-grey-100" }),
12432
+ /* @__PURE__ */ jsx("div", { className: "shrink-0 size-8", children: avatar }),
12433
+ hasConnectorBelow && /* @__PURE__ */ jsx("div", { className: "flex-1 w-px bg-grey-100" })
12434
+ ]
12435
+ }
12436
+ ),
12437
+ /* @__PURE__ */ jsxs(
12438
+ "div",
12439
+ {
12440
+ className: cn(
12441
+ "flex flex-1 flex-col gap-3 items-start min-w-0",
12442
+ !connector && "",
12443
+ connector === "top" && "pb-4",
12444
+ (connector === "middle" || connector === "last") && "py-4"
12445
+ ),
12446
+ children: [
12447
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1 w-full", children: [
12448
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between w-full", children: [
12449
+ /* @__PURE__ */ jsx("div", { className: "flex flex-1 items-start gap-1 min-w-0", children: /* @__PURE__ */ jsx("span", { className: "text-body-sm leading-5 text-grey-600", children: text }) }),
12450
+ unread && /* @__PURE__ */ jsx("span", { className: "shrink-0 size-2 rounded-full bg-[#04802E] border-[1.5px] border-white" })
12451
+ ] }),
12452
+ (date || time || link || badge) && /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-1 w-full", children: [
12453
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-1 items-start min-w-0", children: [
12454
+ date && /* @__PURE__ */ jsx("span", { className: "text-xs text-grey-400 whitespace-nowrap", children: date }),
12455
+ link && /* @__PURE__ */ jsxs(Fragment, { children: [
12456
+ /* @__PURE__ */ jsx("span", { className: "text-xs text-grey-400 whitespace-nowrap", children: "\u30FB" }),
12457
+ link.href ? /* @__PURE__ */ jsx(
12458
+ "a",
12459
+ {
12460
+ href: link.href,
12461
+ onClick: link.onClick,
12462
+ className: "text-xs font-medium text-primary-400 underline whitespace-nowrap",
12463
+ children: link.label
12464
+ }
12465
+ ) : /* @__PURE__ */ jsx(
12466
+ "button",
12467
+ {
12468
+ type: "button",
12469
+ onClick: link.onClick,
12470
+ className: "text-xs font-medium text-primary-400 underline whitespace-nowrap",
12471
+ children: link.label
12472
+ }
12473
+ )
12474
+ ] }),
12475
+ badge && /* @__PURE__ */ jsxs(Fragment, { children: [
12476
+ /* @__PURE__ */ jsx("span", { className: "text-xs text-grey-400 whitespace-nowrap", children: "\u30FB" }),
12477
+ /* @__PURE__ */ jsx("span", { className: "inline-flex items-center justify-center rounded-full bg-primary-400 px-2 text-xs font-medium text-white whitespace-nowrap", children: badge })
12478
+ ] })
12479
+ ] }),
12480
+ time && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-xs text-grey-400 whitespace-nowrap", children: time })
12481
+ ] })
12482
+ ] }),
12483
+ children
12484
+ ]
12485
+ }
12486
+ )
12487
+ ]
12488
+ }
12489
+ );
12490
+ }
12491
+ );
12492
+ ActivityItem.displayName = "ActivityItem";
12493
+ var styleClasses = {
12494
+ plain: "",
12495
+ card: "bg-white rounded-lg p-2 shadow-[0px_2px_5px_-2px_rgba(16,25,40,0.06),0px_2px_7px_0px_rgba(16,25,40,0.05),0px_0px_0px_1px_rgba(16,25,40,0.05)]",
12496
+ container: "bg-grey-50 border border-grey-100 rounded-lg p-3"
12497
+ };
12498
+ var ActivityContent = forwardRef(
12499
+ ({
12500
+ variant,
12501
+ contentStyle = "card",
12502
+ // File props
12503
+ icon,
12504
+ title,
12505
+ size,
12506
+ fileType,
12507
+ date,
12508
+ // Comment props
12509
+ avatar,
12510
+ author,
12511
+ timestamp,
12512
+ comment,
12513
+ attachments,
12514
+ reactions,
12515
+ replies,
12516
+ onReply,
12517
+ // CTA props
12518
+ primaryAction,
12519
+ secondaryAction,
12520
+ className,
12521
+ ...rest
12522
+ }, ref) => {
12523
+ if (variant === "file") {
12524
+ return /* @__PURE__ */ jsxs(
12525
+ "div",
12526
+ {
12527
+ ref,
12528
+ className: cn(
12529
+ "flex items-center gap-2",
12530
+ styleClasses[contentStyle],
12531
+ className
12532
+ ),
12533
+ ...rest,
12534
+ children: [
12535
+ /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center justify-center size-8 rounded-lg bg-primary-50", children: /* @__PURE__ */ jsx("span", { className: "size-4", children: resolveIcon(icon ?? "file", "sm") }) }),
12536
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-start", children: [
12537
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
12538
+ /* @__PURE__ */ jsx("span", { className: "text-xs font-semibold text-grey-700 whitespace-nowrap", children: title }),
12539
+ size && /* @__PURE__ */ jsxs(Fragment, { children: [
12540
+ /* @__PURE__ */ jsx("span", { className: "size-0.5 rounded-full bg-grey-400" }),
12541
+ /* @__PURE__ */ jsx("span", { className: "text-xs text-grey-400 whitespace-nowrap", children: size })
12542
+ ] })
12543
+ ] }),
12544
+ (fileType || date) && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
12545
+ fileType && /* @__PURE__ */ jsx("span", { className: "text-xs text-grey-400 whitespace-nowrap", children: fileType }),
12546
+ fileType && date && /* @__PURE__ */ jsx("span", { className: "size-0.5 rounded-full bg-grey-400" }),
12547
+ date && /* @__PURE__ */ jsx("span", { className: "text-xs text-grey-400 whitespace-nowrap", children: date })
12548
+ ] })
12549
+ ] })
12550
+ ]
12551
+ }
12552
+ );
12553
+ }
12554
+ if (variant === "comment") {
12555
+ contentStyle === "plain" ? "flex gap-2 items-start" : cn("flex flex-col gap-2", styleClasses[contentStyle]);
12556
+ const commentContent = /* @__PURE__ */ jsxs(Fragment, { children: [
12557
+ (avatar || author) && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 w-full", children: [
12558
+ avatar && /* @__PURE__ */ jsx("div", { className: "shrink-0 size-5", children: avatar }),
12559
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
12560
+ author && /* @__PURE__ */ jsx("span", { className: "text-body-sm font-medium text-grey-700 whitespace-nowrap", children: author }),
12561
+ timestamp && /* @__PURE__ */ jsxs("span", { className: "text-xs text-grey-400 whitespace-nowrap", children: [
12562
+ "\u30FB",
12563
+ timestamp
12564
+ ] })
12565
+ ] })
12566
+ ] }),
12567
+ comment && /* @__PURE__ */ jsx("p", { className: "text-body-sm text-grey-600 leading-5", children: comment }),
12568
+ attachments && attachments.length > 0 && /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2", children: [
12569
+ attachments.slice(0, 2).map((file) => /* @__PURE__ */ jsxs(
12570
+ "div",
12571
+ {
12572
+ className: "flex items-center gap-2 rounded-lg border border-grey-100 bg-white pl-1 pr-2 py-1",
12573
+ children: [
12574
+ /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center justify-center size-6 rounded bg-primary-50 border border-primary-50", children: /* @__PURE__ */ jsx("span", { className: "size-3", children: /* @__PURE__ */ jsx(Icon, { name: "file", size: "xs" }) }) }),
12575
+ /* @__PURE__ */ jsxs("span", { className: "text-xs text-grey-700 whitespace-nowrap", children: [
12576
+ /* @__PURE__ */ jsx("span", { className: "font-semibold", children: file.name }),
12577
+ /* @__PURE__ */ jsxs("span", { className: "text-grey-500", children: [
12578
+ ".",
12579
+ file.extension
12580
+ ] })
12581
+ ] })
12582
+ ]
12583
+ },
12584
+ `${file.name}.${file.extension}`
12585
+ )),
12586
+ attachments.length > 2 && /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center size-8 rounded-lg border border-grey-100 bg-white px-2 py-1", children: /* @__PURE__ */ jsxs("span", { className: "text-xs font-semibold text-grey-700", children: [
12587
+ "+",
12588
+ attachments.length - 2
12589
+ ] }) })
12590
+ ] }),
12591
+ (reactions != null || replies != null) && /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2", children: [
12592
+ reactions != null && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 rounded-lg border border-grey-100 bg-white px-2 py-1", children: [
12593
+ /* @__PURE__ */ jsx("span", { className: "text-xs text-grey-700", children: "\u{1F91D}\u{1F525}" }),
12594
+ /* @__PURE__ */ jsxs("span", { className: "text-xs text-grey-700", children: [
12595
+ /* @__PURE__ */ jsxs("span", { className: "font-semibold", children: [
12596
+ reactions,
12597
+ " "
12598
+ ] }),
12599
+ "Reactions"
12600
+ ] })
12601
+ ] }),
12602
+ replies != null && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 rounded-lg border border-grey-100 bg-white px-2 py-1 h-8", children: [
12603
+ /* @__PURE__ */ jsx(Icon, { name: "message", size: "sm", className: "text-grey-400" }),
12604
+ /* @__PURE__ */ jsxs("span", { className: "text-xs text-grey-700", children: [
12605
+ /* @__PURE__ */ jsxs("span", { className: "font-semibold", children: [
12606
+ replies,
12607
+ " "
12608
+ ] }),
12609
+ "Replies"
12610
+ ] })
12611
+ ] })
12612
+ ] }),
12613
+ onReply && /* @__PURE__ */ jsx(
12614
+ "button",
12615
+ {
12616
+ type: "button",
12617
+ onClick: onReply,
12618
+ className: "inline-flex items-center justify-center rounded-lg border border-grey-300 bg-white px-3 py-1 text-xs font-semibold text-grey-700",
12619
+ children: "Reply"
12620
+ }
12621
+ )
12622
+ ] });
12623
+ if (contentStyle === "plain") {
12624
+ return /* @__PURE__ */ jsxs(
12625
+ "div",
12626
+ {
12627
+ ref,
12628
+ className: cn("flex gap-2 items-start", className),
12629
+ ...rest,
12630
+ children: [
12631
+ /* @__PURE__ */ jsx("div", { className: "shrink-0 w-px self-stretch bg-grey-100" }),
12632
+ /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2 items-start rounded-lg p-3", children: commentContent })
12633
+ ]
12634
+ }
12635
+ );
12636
+ }
12637
+ return /* @__PURE__ */ jsx(
12638
+ "div",
12639
+ {
12640
+ ref,
12641
+ className: cn(
12642
+ "flex flex-col gap-2 items-start",
12643
+ styleClasses[contentStyle],
12644
+ className
12645
+ ),
12646
+ ...rest,
12647
+ children: commentContent
12648
+ }
12649
+ );
12650
+ }
12651
+ if (variant === "cta") {
12652
+ return /* @__PURE__ */ jsxs(
12653
+ "div",
12654
+ {
12655
+ ref,
12656
+ className: cn("flex items-start gap-3", className),
12657
+ ...rest,
12658
+ children: [
12659
+ primaryAction && /* @__PURE__ */ jsx(
12660
+ "button",
12661
+ {
12662
+ type: "button",
12663
+ onClick: primaryAction.onClick,
12664
+ className: "inline-flex items-center justify-center rounded-lg bg-primary-500 px-4 py-2 text-body-sm font-semibold text-white",
12665
+ children: primaryAction.label
12666
+ }
12667
+ ),
12668
+ secondaryAction && /* @__PURE__ */ jsx(
12669
+ "button",
12670
+ {
12671
+ type: "button",
12672
+ onClick: secondaryAction.onClick,
12673
+ className: "inline-flex items-center justify-center rounded-lg border border-grey-300 bg-white px-4 py-2 text-body-sm font-semibold text-grey-700",
12674
+ children: secondaryAction.label
12675
+ }
12676
+ )
12677
+ ]
12678
+ }
12679
+ );
12680
+ }
12681
+ return null;
12682
+ }
12683
+ );
12684
+ ActivityContent.displayName = "ActivityContent";
12400
12685
 
12401
- export { Alert, Avatar, AvatarGroup, Badge, Breadcrumb, Button, ButtonGroup, ButtonGroupItem, Checkbox, Chip, Divider, DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, EmptyStateIllustration, FileUpload, FileUploadDropZone, FileUploadItem, Icon, Input, MetricsCard, Pagination, ProgressBar, ProgressCircle, Radio, Select, SelectOption, SidebarMenu, SidebarMenuItem, SidebarMenuSection, SidebarMenuSub, SidebarMenuSubItem, Tab, Table, TableBody, TableCell, TableHead, TableHeader, TableRow, Tabs, Toggle, Tooltip, cn, illustrationNames };
12686
+ export { ActivityContent, ActivityItem, Alert, Avatar, AvatarGroup, Badge, Breadcrumb, Button, ButtonGroup, ButtonGroupItem, Checkbox, Chip, Divider, DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, EmptyStateIllustration, FileUpload, FileUploadDropZone, FileUploadItem, Icon, Input, MetricsCard, Pagination, ProgressBar, ProgressCircle, Radio, Select, SelectOption, SidebarMenu, SidebarMenuItem, SidebarMenuSection, SidebarMenuSub, SidebarMenuSubItem, Tab, Table, TableBody, TableCell, TableHead, TableHeader, TableRow, Tabs, Toggle, Tooltip, cn, illustrationNames };
12402
12687
  //# sourceMappingURL=index.js.map
12403
12688
  //# sourceMappingURL=index.js.map