@b3-crow/ui-kit 0.0.34-pr30.3 → 0.0.34

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.
Files changed (120) hide show
  1. package/dist/components/cards/InvitationDetailsCard.d.ts +7 -4
  2. package/dist/components/cards/InvitationDetailsCard.d.ts.map +1 -1
  3. package/dist/components/cards/InvitationDetailsCard.js +4 -2
  4. package/dist/components/cards/InvitationDetailsCard.js.map +1 -1
  5. package/dist/components/index.d.ts +0 -1
  6. package/dist/components/index.d.ts.map +1 -1
  7. package/dist/components/index.js +0 -1
  8. package/dist/components/index.js.map +1 -1
  9. package/dist/components/inputs/EmailTagInput.js +1 -1
  10. package/dist/components/inputs/EmailTagInput.js.map +1 -1
  11. package/dist/styles.css +1 -1
  12. package/package.json +13 -20
  13. package/dist/components/dashboard/ChatHistorySection.d.ts +0 -4
  14. package/dist/components/dashboard/ChatHistorySection.d.ts.map +0 -1
  15. package/dist/components/dashboard/ChatHistorySection.js +0 -119
  16. package/dist/components/dashboard/ChatHistorySection.js.map +0 -1
  17. package/dist/components/dashboard/DashboardBackground.d.ts +0 -4
  18. package/dist/components/dashboard/DashboardBackground.d.ts.map +0 -1
  19. package/dist/components/dashboard/DashboardBackground.js +0 -12
  20. package/dist/components/dashboard/DashboardBackground.js.map +0 -1
  21. package/dist/components/dashboard/FilterDropdown.d.ts +0 -14
  22. package/dist/components/dashboard/FilterDropdown.d.ts.map +0 -1
  23. package/dist/components/dashboard/FilterDropdown.js +0 -114
  24. package/dist/components/dashboard/FilterDropdown.js.map +0 -1
  25. package/dist/components/dashboard/GlassPanel.d.ts +0 -13
  26. package/dist/components/dashboard/GlassPanel.d.ts.map +0 -1
  27. package/dist/components/dashboard/GlassPanel.js +0 -20
  28. package/dist/components/dashboard/GlassPanel.js.map +0 -1
  29. package/dist/components/dashboard/Header.d.ts +0 -4
  30. package/dist/components/dashboard/Header.d.ts.map +0 -1
  31. package/dist/components/dashboard/Header.js +0 -123
  32. package/dist/components/dashboard/Header.js.map +0 -1
  33. package/dist/components/dashboard/IconBadge.d.ts +0 -22
  34. package/dist/components/dashboard/IconBadge.d.ts.map +0 -1
  35. package/dist/components/dashboard/IconBadge.js +0 -44
  36. package/dist/components/dashboard/IconBadge.js.map +0 -1
  37. package/dist/components/dashboard/ListItem.d.ts +0 -22
  38. package/dist/components/dashboard/ListItem.d.ts.map +0 -1
  39. package/dist/components/dashboard/ListItem.js +0 -25
  40. package/dist/components/dashboard/ListItem.js.map +0 -1
  41. package/dist/components/dashboard/MetricsCard.d.ts +0 -10
  42. package/dist/components/dashboard/MetricsCard.d.ts.map +0 -1
  43. package/dist/components/dashboard/MetricsCard.js +0 -41
  44. package/dist/components/dashboard/MetricsCard.js.map +0 -1
  45. package/dist/components/dashboard/MobileSidebar.d.ts +0 -4
  46. package/dist/components/dashboard/MobileSidebar.d.ts.map +0 -1
  47. package/dist/components/dashboard/MobileSidebar.js +0 -57
  48. package/dist/components/dashboard/MobileSidebar.js.map +0 -1
  49. package/dist/components/dashboard/NavMenu.d.ts +0 -8
  50. package/dist/components/dashboard/NavMenu.d.ts.map +0 -1
  51. package/dist/components/dashboard/NavMenu.js +0 -66
  52. package/dist/components/dashboard/NavMenu.js.map +0 -1
  53. package/dist/components/dashboard/PatternCard.d.ts +0 -15
  54. package/dist/components/dashboard/PatternCard.d.ts.map +0 -1
  55. package/dist/components/dashboard/PatternCard.js +0 -36
  56. package/dist/components/dashboard/PatternCard.js.map +0 -1
  57. package/dist/components/dashboard/SearchInput.d.ts +0 -30
  58. package/dist/components/dashboard/SearchInput.d.ts.map +0 -1
  59. package/dist/components/dashboard/SearchInput.js +0 -52
  60. package/dist/components/dashboard/SearchInput.js.map +0 -1
  61. package/dist/components/dashboard/SectionHeader.d.ts +0 -13
  62. package/dist/components/dashboard/SectionHeader.d.ts.map +0 -1
  63. package/dist/components/dashboard/SectionHeader.js +0 -19
  64. package/dist/components/dashboard/SectionHeader.js.map +0 -1
  65. package/dist/components/dashboard/SettingsDropup.d.ts +0 -9
  66. package/dist/components/dashboard/SettingsDropup.d.ts.map +0 -1
  67. package/dist/components/dashboard/SettingsDropup.js +0 -98
  68. package/dist/components/dashboard/SettingsDropup.js.map +0 -1
  69. package/dist/components/dashboard/SettingsModal.d.ts +0 -4
  70. package/dist/components/dashboard/SettingsModal.d.ts.map +0 -1
  71. package/dist/components/dashboard/SettingsModal.js +0 -56
  72. package/dist/components/dashboard/SettingsModal.js.map +0 -1
  73. package/dist/components/dashboard/SidePanel.d.ts +0 -12
  74. package/dist/components/dashboard/SidePanel.d.ts.map +0 -1
  75. package/dist/components/dashboard/SidePanel.js +0 -79
  76. package/dist/components/dashboard/SidePanel.js.map +0 -1
  77. package/dist/components/dashboard/Sidebar.d.ts +0 -4
  78. package/dist/components/dashboard/Sidebar.d.ts.map +0 -1
  79. package/dist/components/dashboard/Sidebar.js +0 -28
  80. package/dist/components/dashboard/Sidebar.js.map +0 -1
  81. package/dist/components/dashboard/SidebarLogo.d.ts +0 -7
  82. package/dist/components/dashboard/SidebarLogo.d.ts.map +0 -1
  83. package/dist/components/dashboard/SidebarLogo.js +0 -6
  84. package/dist/components/dashboard/SidebarLogo.js.map +0 -1
  85. package/dist/components/dashboard/SourceIcon.d.ts +0 -15
  86. package/dist/components/dashboard/SourceIcon.d.ts.map +0 -1
  87. package/dist/components/dashboard/SourceIcon.js +0 -28
  88. package/dist/components/dashboard/SourceIcon.js.map +0 -1
  89. package/dist/components/dashboard/StatusBadge.d.ts +0 -26
  90. package/dist/components/dashboard/StatusBadge.d.ts.map +0 -1
  91. package/dist/components/dashboard/StatusBadge.js +0 -42
  92. package/dist/components/dashboard/StatusBadge.js.map +0 -1
  93. package/dist/components/dashboard/StatusIndicator.d.ts +0 -16
  94. package/dist/components/dashboard/StatusIndicator.d.ts.map +0 -1
  95. package/dist/components/dashboard/StatusIndicator.js +0 -35
  96. package/dist/components/dashboard/StatusIndicator.js.map +0 -1
  97. package/dist/components/dashboard/Tag.d.ts +0 -16
  98. package/dist/components/dashboard/Tag.d.ts.map +0 -1
  99. package/dist/components/dashboard/Tag.js +0 -18
  100. package/dist/components/dashboard/Tag.js.map +0 -1
  101. package/dist/components/dashboard/TipCard.d.ts +0 -12
  102. package/dist/components/dashboard/TipCard.d.ts.map +0 -1
  103. package/dist/components/dashboard/TipCard.js +0 -17
  104. package/dist/components/dashboard/TipCard.js.map +0 -1
  105. package/dist/components/dashboard/ToggleSwitch.d.ts +0 -17
  106. package/dist/components/dashboard/ToggleSwitch.d.ts.map +0 -1
  107. package/dist/components/dashboard/ToggleSwitch.js +0 -27
  108. package/dist/components/dashboard/ToggleSwitch.js.map +0 -1
  109. package/dist/components/dashboard/constants.d.ts +0 -28
  110. package/dist/components/dashboard/constants.d.ts.map +0 -1
  111. package/dist/components/dashboard/constants.js +0 -104
  112. package/dist/components/dashboard/constants.js.map +0 -1
  113. package/dist/components/dashboard/index.d.ts +0 -27
  114. package/dist/components/dashboard/index.d.ts.map +0 -1
  115. package/dist/components/dashboard/index.js +0 -27
  116. package/dist/components/dashboard/index.js.map +0 -1
  117. package/dist/components/dashboard/types.d.ts +0 -115
  118. package/dist/components/dashboard/types.d.ts.map +0 -1
  119. package/dist/components/dashboard/types.js +0 -2
  120. package/dist/components/dashboard/types.js.map +0 -1
@@ -1,119 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { ChevronDown, MoreHorizontal, Pencil, Trash2 } from 'lucide-react';
4
- import { useEffect, useRef, useState } from 'react';
5
- import { cn } from '../../lib/utils';
6
- export function ChatHistorySection({ items = [], activeItemId, isExpanded = true, isVisible = true, onItemClick, onToggleExpanded, onRename, onDelete, title = 'Chat History', emptyMessage = 'No chats yet. Start a conversation!', }) {
7
- const [newItemId, setNewItemId] = useState(null);
8
- const [canAnimate, setCanAnimate] = useState(false);
9
- const [openMenuId, setOpenMenuId] = useState(null);
10
- const [editingId, setEditingId] = useState(null);
11
- const [editValue, setEditValue] = useState('');
12
- const menuRef = useRef(null);
13
- const inputRef = useRef(null);
14
- const seenItemsRef = useRef(new Set());
15
- useEffect(() => {
16
- for (const item of items) {
17
- seenItemsRef.current.add(item.id);
18
- }
19
- const timer = setTimeout(() => {
20
- setCanAnimate(true);
21
- }, 600);
22
- return () => clearTimeout(timer);
23
- }, []);
24
- useEffect(() => {
25
- if (!canAnimate) {
26
- for (const item of items) {
27
- seenItemsRef.current.add(item.id);
28
- }
29
- return;
30
- }
31
- const seenItems = seenItemsRef.current;
32
- const firstItem = items[0];
33
- if (firstItem && !seenItems.has(firstItem.id)) {
34
- seenItems.add(firstItem.id);
35
- const timer = setTimeout(() => setNewItemId(firstItem.id), 0);
36
- const resetTimer = setTimeout(() => setNewItemId(null), 350);
37
- return () => {
38
- clearTimeout(timer);
39
- clearTimeout(resetTimer);
40
- };
41
- }
42
- for (const item of items) {
43
- seenItems.add(item.id);
44
- }
45
- }, [items, canAnimate]);
46
- useEffect(() => {
47
- if (!openMenuId)
48
- return;
49
- const handleClickOutside = (e) => {
50
- if (menuRef.current && !menuRef.current.contains(e.target)) {
51
- setOpenMenuId(null);
52
- }
53
- };
54
- document.addEventListener('mousedown', handleClickOutside);
55
- return () => document.removeEventListener('mousedown', handleClickOutside);
56
- }, [openMenuId]);
57
- useEffect(() => {
58
- if (editingId && inputRef.current) {
59
- inputRef.current.focus();
60
- inputRef.current.select();
61
- }
62
- }, [editingId]);
63
- const handleMenuClick = (e, itemId) => {
64
- e.stopPropagation();
65
- setOpenMenuId(openMenuId === itemId ? null : itemId);
66
- };
67
- const handleMenuKeyDown = (e, itemId) => {
68
- if (e.key === 'Enter' || e.key === ' ') {
69
- e.preventDefault();
70
- e.stopPropagation();
71
- setOpenMenuId(openMenuId === itemId ? null : itemId);
72
- }
73
- };
74
- const handleRenameStart = (item) => {
75
- setEditingId(item.id);
76
- setEditValue(item.title);
77
- setOpenMenuId(null);
78
- };
79
- const handleRenameSubmit = () => {
80
- if (editingId && editValue.trim()) {
81
- onRename?.(editingId, editValue.trim());
82
- }
83
- setEditingId(null);
84
- setEditValue('');
85
- };
86
- const handleRenameKeyDown = (e) => {
87
- if (e.key === 'Enter') {
88
- handleRenameSubmit();
89
- }
90
- else if (e.key === 'Escape') {
91
- setEditingId(null);
92
- setEditValue('');
93
- }
94
- };
95
- const handleDelete = (id) => {
96
- setOpenMenuId(null);
97
- onDelete?.(id);
98
- };
99
- return (_jsxs("div", { className: cn('px-4 mt-4 transition-all duration-300 ease-in-out overflow-hidden', isVisible ? 'opacity-100 animate-fadeInDown max-h-[500px]' : 'opacity-0 max-h-0 pointer-events-none'), children: [_jsxs("button", { type: "button", onClick: onToggleExpanded, className: "flex items-center justify-between w-full group", "aria-label": `${title} section`, "aria-expanded": isExpanded, children: [_jsx("span", { className: "text-[13px] font-normal text-gray-400 leading-[21px]", children: title }), _jsx(ChevronDown, { size: 16, className: cn('text-gray-600 transition-transform duration-200', !isExpanded && '-rotate-90') })] }), _jsx("div", { className: "overflow-hidden transition-all duration-300 ease-in-out", style: {
100
- maxHeight: isExpanded
101
- ? `${Math.max(items.length * 42 + 16, 60)}px`
102
- : '0px',
103
- opacity: isExpanded ? 1 : 0,
104
- }, children: _jsx("div", { className: "mt-2 flex flex-col gap-1", children: items.length === 0 ? (_jsx("p", { className: "text-xs italic py-2 text-gray-500", children: emptyMessage })) : (items.map(item => {
105
- const isActive = item.id === activeItemId;
106
- const isNew = item.id === newItemId;
107
- const isEditing = editingId === item.id;
108
- const isMenuOpen = openMenuId === item.id;
109
- return (_jsxs("div", { className: "relative", ref: isMenuOpen ? menuRef : undefined, children: [_jsxs("div", { role: "button", tabIndex: isEditing ? -1 : 0, onClick: () => !isEditing && onItemClick?.(item.id), onKeyDown: (e) => {
110
- if (!isEditing && (e.key === 'Enter' || e.key === ' ')) {
111
- e.preventDefault();
112
- onItemClick?.(item.id);
113
- }
114
- }, className: cn('group relative flex items-center justify-between w-full rounded-lg transition-all duration-200', 'h-[37px] hover:bg-white/5 cursor-pointer', isActive &&
115
- 'bg-white/[0.08] shadow-[inset_0px_1px_0px_1px_rgba(255,255,255,0.05)] outline outline-1 outline-white/[0.05] -outline-offset-1', isNew &&
116
- 'animate-[chatHistorySlideIn_0.3s_ease-out_forwards]'), children: [isEditing ? (_jsx("input", { ref: inputRef, type: "text", value: editValue, onChange: e => setEditValue(e.target.value), onBlur: handleRenameSubmit, onKeyDown: handleRenameKeyDown, className: "text-[13px] font-bold bg-transparent border-none outline-none pl-3 pr-8 w-full text-gray-200 leading-[21px]", onClick: e => e.stopPropagation() })) : (_jsx("span", { className: "text-[13px] font-bold truncate pl-3 pr-8 text-left text-gray-200 leading-[21px] max-w-[198px]", children: item.title })), isActive && !isEditing && (_jsx("button", { type: "button", className: "absolute right-2 flex items-center justify-center w-[19px] h-[19px] cursor-pointer hover:bg-white/10 rounded", onClick: e => handleMenuClick(e, item.id), onKeyDown: e => handleMenuKeyDown(e, item.id), "aria-label": "Chat options", "aria-haspopup": "menu", "aria-expanded": isMenuOpen, children: _jsx(MoreHorizontal, { size: 14, className: "text-white" }) }))] }), isMenuOpen && (_jsxs("div", { role: "menu", className: "absolute right-0 top-full mt-1 z-50 min-w-[140px] rounded-lg overflow-hidden bg-[rgba(30,30,30,0.95)] border border-white/10 shadow-[0_4px_12px_rgba(0,0,0,0.5)]", children: [_jsxs("button", { type: "button", role: "menuitem", onClick: () => handleRenameStart(item), className: "flex items-center gap-2 w-full px-3 py-2 text-left hover:bg-white/10 transition-colors", children: [_jsx(Pencil, { size: 14, className: "text-gray-400" }), _jsx("span", { className: "text-[13px] text-gray-200", children: "Rename" })] }), _jsxs("button", { type: "button", role: "menuitem", onClick: () => handleDelete(item.id), className: "flex items-center gap-2 w-full px-3 py-2 text-left hover:bg-red-500/20 transition-colors", children: [_jsx(Trash2, { size: 14, className: "text-red-400" }), _jsx("span", { className: "text-[13px] text-red-400", children: "Delete" })] })] }))] }, item.id));
117
- })) }) })] }));
118
- }
119
- //# sourceMappingURL=ChatHistorySection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatHistorySection.js","sourceRoot":"","sources":["../../../src/components/dashboard/ChatHistorySection.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import type { DashboardBackgroundProps } from './types';
2
- export type { DashboardBackgroundProps };
3
- export declare function DashboardBackground({ variant, noiseTextureSrc, sidebarWidth, }: DashboardBackgroundProps): import("react/jsx-runtime").JSX.Element;
4
- //# sourceMappingURL=DashboardBackground.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DashboardBackground.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/DashboardBackground.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAGxD,YAAY,EAAE,wBAAwB,EAAE,CAAC;AAEzC,wBAAgB,mBAAmB,CAAC,EAClC,OAAmB,EACnB,eAAe,EACf,YAAkB,GACnB,EAAE,wBAAwB,2CAsD1B"}
@@ -1,12 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { cn } from '../../lib/utils';
4
- export function DashboardBackground({ variant = 'default', noiseTextureSrc, sidebarWidth = 280, }) {
5
- if (variant === 'minimal') {
6
- return (_jsx("div", { className: "fixed inset-0 pointer-events-none z-0", children: _jsx("div", { className: "absolute inset-0 bg-[#030005]" }) }));
7
- }
8
- return (_jsxs("div", { className: "fixed inset-0 pointer-events-none z-0 overflow-hidden", style: { '--sidebar-width': `${sidebarWidth}px` }, children: [_jsx("div", { className: "absolute inset-0 bg-[#030005]" }), _jsx("div", { className: cn('absolute top-0 bottom-0 right-0', 'bg-gradient-to-l from-[#1E1035] via-[#0A0515] to-transparent', 'opacity-50'), style: { left: `calc(var(--sidebar-width) + 25%)` } }), noiseTextureSrc && (_jsx("img", { src: noiseTextureSrc, alt: "", role: "presentation", className: "absolute inset-0 w-full h-full opacity-[0.07] mix-blend-overlay object-cover" })), _jsx("div", { className: cn('absolute inset-0', 'opacity-40'), style: {
9
- background: `radial-gradient(ellipse 55% 90% at calc(50% + calc(var(--sidebar-width) / 2)) 50%, rgba(3, 0, 5, 0) 0%, rgba(3, 0, 5, 0.50) 100%)`,
10
- } }), _jsx("div", { className: cn('absolute w-[950px] h-[450px] bottom-0', 'bg-[rgba(133,78,210,0.45)] blur-[150px]', 'left-1/2 -translate-x-1/2 translate-y-[70%]', 'md:left-[calc(50%+calc(var(--sidebar-width)/2))]') })] }));
11
- }
12
- //# sourceMappingURL=DashboardBackground.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DashboardBackground.js","sourceRoot":"","sources":["../../../src/components/dashboard/DashboardBackground.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAIrC,MAAM,UAAU,mBAAmB,CAAC,EAClC,OAAO,GAAG,SAAS,EACnB,eAAe,EACf,YAAY,GAAG,GAAG,GACO;IACzB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,CACL,cAAK,SAAS,EAAC,uCAAuC,YACpD,cAAK,SAAS,EAAC,+BAA+B,GAAG,GAC7C,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,eACE,SAAS,EAAC,uDAAuD,EACjE,KAAK,EAAE,EAAE,iBAAiB,EAAE,GAAG,YAAY,IAAI,EAAyB,aAExE,cAAK,SAAS,EAAC,+BAA+B,GAAG,EAEjD,cACE,SAAS,EAAE,EAAE,CACX,iCAAiC,EACjC,8DAA8D,EAC9D,YAAY,CACb,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,kCAAkC,EAAE,GACnD,EAED,eAAe,IAAI,CAClB,cACE,GAAG,EAAE,eAAe,EACpB,GAAG,EAAC,EAAE,EACN,IAAI,EAAC,cAAc,EACnB,SAAS,EAAC,8EAA8E,GACxF,CACH,EAED,cACE,SAAS,EAAE,EAAE,CACX,kBAAkB,EAClB,YAAY,CACb,EACD,KAAK,EAAE;oBACL,UAAU,EAAE,mIAAmI;iBAChJ,GACD,EAEF,cACE,SAAS,EAAE,EAAE,CACX,uCAAuC,EACvC,yCAAyC,EACzC,6CAA6C,EAC7C,kDAAkD,CACnD,GACD,IACE,CACP,CAAC;AACJ,CAAC"}
@@ -1,14 +0,0 @@
1
- export interface FilterOption {
2
- label: string;
3
- value: string;
4
- }
5
- export interface FilterDropdownProps {
6
- label: string;
7
- options: FilterOption[];
8
- value?: string;
9
- onChange?: (value: string) => void;
10
- className?: string;
11
- showBorder?: boolean;
12
- }
13
- export declare function FilterDropdown({ label, options, value, onChange, className, showBorder, }: FilterDropdownProps): import("react/jsx-runtime").JSX.Element;
14
- //# sourceMappingURL=FilterDropdown.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FilterDropdown.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/FilterDropdown.tsx"],"names":[],"mappings":"AAOA,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,OAAO,EACP,KAAK,EACL,QAAQ,EACR,SAAS,EACT,UAAkB,GACnB,EAAE,mBAAmB,2CA0LrB"}
@@ -1,114 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { Check, ChevronDown } from 'lucide-react';
4
- import { useCallback, useEffect, useRef, useState } from 'react';
5
- import { createPortal } from 'react-dom';
6
- import { cn } from '../../lib/utils';
7
- export function FilterDropdown({ label, options, value, onChange, className, showBorder = false, }) {
8
- const [isOpen, setIsOpen] = useState(false);
9
- const [selectedValue, setSelectedValue] = useState(value || options[0]?.value);
10
- const [focusedIndex, setFocusedIndex] = useState(-1);
11
- const [dropdownPosition, setDropdownPosition] = useState({ top: 0, left: 0 });
12
- const buttonRef = useRef(null);
13
- const dropdownRef = useRef(null);
14
- useEffect(() => {
15
- if (value !== undefined && value !== selectedValue) {
16
- const timer = setTimeout(() => setSelectedValue(value), 0);
17
- return () => clearTimeout(timer);
18
- }
19
- }, [value, selectedValue]);
20
- const selectedOption = options.find(opt => opt.value === selectedValue);
21
- const updatePosition = useCallback(() => {
22
- if (buttonRef.current) {
23
- const rect = buttonRef.current.getBoundingClientRect();
24
- setDropdownPosition({
25
- top: rect.bottom + 4,
26
- left: rect.left,
27
- });
28
- }
29
- }, []);
30
- useEffect(() => {
31
- function handleClickOutside(event) {
32
- const target = event.target;
33
- if (buttonRef.current &&
34
- !buttonRef.current.contains(target) &&
35
- dropdownRef.current &&
36
- !dropdownRef.current.contains(target)) {
37
- setIsOpen(false);
38
- setFocusedIndex(-1);
39
- }
40
- }
41
- document.addEventListener('mousedown', handleClickOutside);
42
- return () => document.removeEventListener('mousedown', handleClickOutside);
43
- }, []);
44
- useEffect(() => {
45
- if (isOpen) {
46
- updatePosition();
47
- // Only listen for resize, not scroll (Lenis handles scroll smoothly)
48
- window.addEventListener('resize', updatePosition);
49
- return () => {
50
- window.removeEventListener('resize', updatePosition);
51
- };
52
- }
53
- }, [isOpen, updatePosition]);
54
- const handleSelect = (optionValue) => {
55
- setSelectedValue(optionValue);
56
- onChange?.(optionValue);
57
- setIsOpen(false);
58
- setFocusedIndex(-1);
59
- };
60
- const handleToggle = () => {
61
- if (!isOpen) {
62
- updatePosition();
63
- setFocusedIndex(0);
64
- }
65
- setIsOpen(!isOpen);
66
- };
67
- const handleKeyDown = (e) => {
68
- if (!isOpen) {
69
- if (e.key === 'Enter' || e.key === ' ' || e.key === 'ArrowDown') {
70
- e.preventDefault();
71
- updatePosition();
72
- setIsOpen(true);
73
- setFocusedIndex(0);
74
- }
75
- return;
76
- }
77
- switch (e.key) {
78
- case 'Escape':
79
- e.preventDefault();
80
- setIsOpen(false);
81
- setFocusedIndex(-1);
82
- buttonRef.current?.focus();
83
- break;
84
- case 'ArrowDown':
85
- e.preventDefault();
86
- setFocusedIndex(prev => (prev < options.length - 1 ? prev + 1 : 0));
87
- break;
88
- case 'ArrowUp':
89
- e.preventDefault();
90
- setFocusedIndex(prev => (prev > 0 ? prev - 1 : options.length - 1));
91
- break;
92
- case 'Enter':
93
- case ' ':
94
- e.preventDefault();
95
- if (focusedIndex >= 0 && focusedIndex < options.length) {
96
- handleSelect(options[focusedIndex].value);
97
- }
98
- break;
99
- case 'Tab':
100
- setIsOpen(false);
101
- setFocusedIndex(-1);
102
- break;
103
- }
104
- };
105
- return (_jsxs("div", { className: cn('relative', className), children: [_jsxs("button", { ref: buttonRef, type: "button", onClick: handleToggle, onKeyDown: handleKeyDown, "aria-expanded": isOpen, "aria-haspopup": "listbox", "aria-label": `${label} filter`, className: cn('h-[34px] px-3 flex items-center gap-2 rounded-lg transition-colors hover:bg-white/5', showBorder && 'border-r border-white/10 rounded-r-none pr-4', isOpen ? 'bg-white/5' : 'bg-transparent'), children: [_jsx("span", { className: "text-xs font-medium text-gray-300", children: selectedOption?.label || label }), _jsx(ChevronDown, { size: 12, className: cn('text-gray-500 transition-transform', isOpen && 'rotate-180') })] }), isOpen &&
106
- typeof document !== 'undefined' &&
107
- createPortal(_jsx("div", { ref: dropdownRef, role: "listbox", "aria-label": `${label} options`, className: "fixed min-w-[160px] py-1 rounded-lg z-[9999] bg-[rgba(20,10,35,0.98)] border border-white/10 shadow-[0_10px_40px_rgba(0,0,0,0.5)]", style: {
108
- top: dropdownPosition.top,
109
- left: dropdownPosition.left,
110
- }, children: options.map((option, index) => (_jsxs("button", { type: "button", role: "option", "aria-selected": selectedValue === option.value, onClick: () => handleSelect(option.value), className: cn('w-full px-3 py-2 flex items-center justify-between text-left transition-colors', focusedIndex === index && 'bg-white/5', focusedIndex !== index && 'hover:bg-white/5'), children: [_jsx("span", { className: cn('text-xs', selectedValue === option.value
111
- ? 'text-white'
112
- : 'text-gray-400'), children: option.label }), selectedValue === option.value && (_jsx(Check, { size: 12, className: "text-purple-400" }))] }, option.value))) }), document.body)] }));
113
- }
114
- //# sourceMappingURL=FilterDropdown.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FilterDropdown.js","sourceRoot":"","sources":["../../../src/components/dashboard/FilterDropdown.tsx"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import type { GlassPanelProps } from './types';
2
- export type { GlassPanelProps };
3
- /**
4
- * A frosted glass panel component with backdrop blur effect
5
- * Used to create modern glass-morphism UI elements
6
- * @param {GlassPanelProps} props - Component props
7
- * @param {React.ReactNode} props.children - Content to display inside the panel
8
- * @param {'light' | 'heavy'} [props.variant='light'] - Visual variant of the panel
9
- * @param {string} [props.className=''] - Additional CSS classes to apply
10
- * @returns {JSX.Element} The glass panel component
11
- */
12
- export declare function GlassPanel({ children, variant, className, }: GlassPanelProps): import("react/jsx-runtime").JSX.Element;
13
- //# sourceMappingURL=GlassPanel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GlassPanel.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/GlassPanel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG/C,YAAY,EAAE,eAAe,EAAE,CAAC;AAEhC;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,OAAiB,EACjB,SAAc,GACf,EAAE,eAAe,2CAUjB"}
@@ -1,20 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- import { cn } from '../../lib/utils';
4
- /**
5
- * A frosted glass panel component with backdrop blur effect
6
- * Used to create modern glass-morphism UI elements
7
- * @param {GlassPanelProps} props - Component props
8
- * @param {React.ReactNode} props.children - Content to display inside the panel
9
- * @param {'light' | 'heavy'} [props.variant='light'] - Visual variant of the panel
10
- * @param {string} [props.className=''] - Additional CSS classes to apply
11
- * @returns {JSX.Element} The glass panel component
12
- */
13
- export function GlassPanel({ children, variant = 'light', className = '', }) {
14
- const baseClasses = 'rounded-xl border';
15
- const variantClasses = variant === 'light'
16
- ? 'bg-white/[0.02] border-white/[0.06] backdrop-blur-sm'
17
- : 'bg-white/[0.02] border-white/[0.08] backdrop-blur-md';
18
- return (_jsx("div", { className: cn(baseClasses, variantClasses, className), children: children }));
19
- }
20
- //# sourceMappingURL=GlassPanel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GlassPanel.js","sourceRoot":"","sources":["../../../src/components/dashboard/GlassPanel.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAIrC;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,EACzB,QAAQ,EACR,OAAO,GAAG,OAAO,EACjB,SAAS,GAAG,EAAE,GACE;IAChB,MAAM,WAAW,GAAG,mBAAmB,CAAC;IACxC,MAAM,cAAc,GAClB,OAAO,KAAK,OAAO;QACjB,CAAC,CAAC,sDAAsD;QACxD,CAAC,CAAC,sDAAsD,CAAC;IAE7D,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,SAAS,CAAC,YAAG,QAAQ,GAAO,CAC7E,CAAC;AACJ,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { DateRangeOption, HeaderProps } from './types';
2
- export type { DateRangeOption, HeaderProps };
3
- export declare function Header({ orgName, dateRange, onDateRangeChange, dateRangeOptions, userInitials, showNotification, onNotificationClick, onAvatarClick, minimal, onMenuClick, logoSrc, }: HeaderProps): import("react/jsx-runtime").JSX.Element;
4
- //# sourceMappingURL=Header.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/Header.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAK5D,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;AA0H7C,wBAAgB,MAAM,CAAC,EACrB,OAA6B,EAC7B,SAAyB,EACzB,iBAAiB,EACjB,gBAA0C,EAC1C,YAAmB,EACnB,gBAAuB,EACvB,mBAAmB,EACnB,aAAa,EACb,OAAe,EACf,WAAW,EACX,OAAO,GACR,EAAE,WAAW,2CAgFb"}
@@ -1,123 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { Bell, Calendar, Check, ChevronDown, Menu } from 'lucide-react';
4
- import React, { useEffect, useRef, useState } from 'react';
5
- import { cn } from '../../lib/utils';
6
- const DropdownOption = React.forwardRef(({ option, isSelected, isFocused, handleSelect, index, }, ref) => {
7
- return (_jsxs("button", { ref: ref, type: "button", role: "option", id: `option-${index}`, "aria-selected": isSelected, onClick: () => handleSelect(option), className: cn('w-full px-3 py-2.5 flex items-center justify-between rounded-lg transition-all', isSelected && 'bg-violet-500/15', isFocused && !isSelected && 'bg-white/[0.04]', !isSelected && !isFocused && 'hover:bg-white/[0.04]'), children: [_jsx("span", { className: cn('text-[13px]', isSelected
8
- ? 'text-violet-200 font-medium'
9
- : 'text-gray-300 font-normal'), children: option.label }), isSelected && (_jsx(Check, { size: 14, className: "text-violet-400", strokeWidth: 2.5 }))] }));
10
- });
11
- DropdownOption.displayName = 'DropdownOption';
12
- const defaultDateRangeOptions = [
13
- { label: 'Today', value: 'today' },
14
- { label: 'Yesterday', value: 'yesterday' },
15
- { label: 'Last 7 days', value: 'last_7_days' },
16
- { label: 'Last 14 days', value: 'last_14_days' },
17
- { label: 'Last 30 days', value: 'last_30_days' },
18
- { label: 'This month', value: 'this_month' },
19
- { label: 'Last month', value: 'last_month' },
20
- { label: 'This quarter', value: 'this_quarter' },
21
- ];
22
- export function Header({ orgName = 'Global Retail Ops', dateRange = 'Last 7 days', onDateRangeChange, dateRangeOptions = defaultDateRangeOptions, userInitials = 'SJ', showNotification = true, onNotificationClick, onAvatarClick, minimal = false, onMenuClick, logoSrc, }) {
23
- const [isOpen, setIsOpen] = useState(false);
24
- const [selectedRange, setSelectedRange] = useState(dateRange);
25
- const dropdownRef = useRef(null);
26
- useEffect(() => {
27
- // eslint-disable-next-line react-hooks-extra/no-direct-set-state-in-use-effect
28
- setSelectedRange(dateRange);
29
- }, [dateRange]);
30
- useEffect(() => {
31
- const handleClickOutside = (event) => {
32
- if (dropdownRef.current &&
33
- !dropdownRef.current.contains(event.target)) {
34
- setIsOpen(false);
35
- }
36
- };
37
- document.addEventListener('mousedown', handleClickOutside);
38
- return () => document.removeEventListener('mousedown', handleClickOutside);
39
- }, []);
40
- const handleSelect = (option) => {
41
- setSelectedRange(option.label);
42
- setIsOpen(false);
43
- onDateRangeChange?.(option.value);
44
- };
45
- return (_jsxs("header", { className: "w-full h-16 sticky top-0 flex-shrink-0 z-50 flex items-center justify-between px-4 sm:px-6 lg:px-8 border-b border-white/[0.06] bg-[rgba(3,0,5,0.85)] backdrop-blur-xl", children: [_jsxs("div", { className: "flex items-center gap-3 md:hidden", children: [onMenuClick && (_jsx("button", { type: "button", onClick: onMenuClick, className: "w-8 h-8 flex items-center justify-center rounded-lg transition-colors hover:bg-white/[0.06]", "aria-label": "Toggle menu", children: _jsx(Menu, { size: 20, className: "text-gray-400", strokeWidth: 2 }) })), logoSrc && (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("img", { src: logoSrc, alt: "CROW Client logo", className: "w-6 h-6" }), _jsxs("div", { className: "flex flex-col", children: [_jsx("span", { className: "text-sm font-bold text-white leading-none", children: "CROW" }), _jsx("span", { className: "text-[8px] font-medium text-gray-500 tracking-[0.15em] uppercase leading-none", children: "CLIENT" })] })] }))] }), !minimal && (_jsx(LeftSection, { orgName: orgName, selectedRange: selectedRange, isOpen: isOpen, setIsOpen: setIsOpen, dropdownRef: dropdownRef, dateRangeOptions: dateRangeOptions, handleSelect: handleSelect })), minimal && _jsx("div", { className: "hidden md:block flex-1" }), _jsx(RightSection, { showNotification: showNotification, onNotificationClick: onNotificationClick, onAvatarClick: onAvatarClick, userInitials: userInitials })] }));
46
- }
47
- function LeftSection({ orgName, selectedRange, isOpen, setIsOpen, dropdownRef, dateRangeOptions, handleSelect, }) {
48
- return (_jsxs("div", { className: "hidden md:flex items-center gap-3 sm:gap-6 min-w-0", children: [_jsx("span", { className: "text-sm font-medium text-white tracking-wide hidden sm:block truncate max-w-[140px] lg:max-w-none", children: orgName }), _jsx("div", { className: "hidden sm:block w-px h-4 bg-white/10" }), _jsx(DatePickerDropdown, { selectedRange: selectedRange, isOpen: isOpen, setIsOpen: setIsOpen, dropdownRef: dropdownRef, dateRangeOptions: dateRangeOptions, handleSelect: handleSelect })] }));
49
- }
50
- function DatePickerDropdown({ selectedRange, isOpen, setIsOpen, dropdownRef, dateRangeOptions, handleSelect, }) {
51
- const [focusedIndex, setFocusedIndex] = useState(-1);
52
- const optionRefs = useRef([]);
53
- useEffect(() => {
54
- if (focusedIndex >= 0 && focusedIndex < optionRefs.current.length) {
55
- optionRefs.current[focusedIndex]?.scrollIntoView({ block: 'nearest' });
56
- }
57
- }, [focusedIndex]);
58
- const handleKeyDown = (e) => {
59
- if (!isOpen) {
60
- if (e.key === 'Enter' || e.key === ' ' || e.key === 'ArrowDown') {
61
- e.preventDefault();
62
- setIsOpen(true);
63
- setFocusedIndex(0);
64
- }
65
- return;
66
- }
67
- switch (e.key) {
68
- case 'Escape':
69
- e.preventDefault();
70
- setIsOpen(false);
71
- setFocusedIndex(-1);
72
- break;
73
- case 'ArrowDown':
74
- e.preventDefault();
75
- setFocusedIndex(prev => prev < dateRangeOptions.length - 1 ? prev + 1 : 0);
76
- break;
77
- case 'ArrowUp':
78
- e.preventDefault();
79
- setFocusedIndex(prev => prev > 0 ? prev - 1 : dateRangeOptions.length - 1);
80
- break;
81
- case 'Home':
82
- e.preventDefault();
83
- setFocusedIndex(0);
84
- break;
85
- case 'End':
86
- e.preventDefault();
87
- setFocusedIndex(dateRangeOptions.length - 1);
88
- break;
89
- case 'Enter':
90
- case ' ':
91
- e.preventDefault();
92
- if (focusedIndex >= 0 && focusedIndex < dateRangeOptions.length) {
93
- handleSelect(dateRangeOptions[focusedIndex]);
94
- setFocusedIndex(-1);
95
- }
96
- break;
97
- case 'Tab':
98
- setIsOpen(false);
99
- setFocusedIndex(-1);
100
- break;
101
- }
102
- };
103
- return (_jsxs("div", { ref: dropdownRef, className: "relative", children: [_jsxs("button", { type: "button", onClick: () => setIsOpen(!isOpen), onKeyDown: handleKeyDown, "aria-label": "Select date range", "aria-expanded": isOpen, "aria-haspopup": "listbox", className: cn('h-[30px] px-3 flex items-center gap-2 rounded-full transition-all', isOpen
104
- ? 'bg-violet-500/15 outline outline-1 outline-violet-500/40 -outline-offset-1'
105
- : 'bg-white/[0.03] outline outline-1 outline-white/10 -outline-offset-1'), children: [_jsx(Calendar, { size: 12, className: cn(isOpen ? 'text-violet-400' : 'text-gray-400'), strokeWidth: 2 }), _jsx("span", { className: cn('text-xs font-medium whitespace-nowrap', isOpen ? 'text-violet-200' : 'text-gray-300'), children: selectedRange }), _jsx(ChevronDown, { size: 10, className: cn('transition-transform duration-200', isOpen ? 'text-violet-400 rotate-180' : 'text-gray-500'), strokeWidth: 2 })] }), _jsx(DropdownMenu, { isOpen: isOpen, dateRangeOptions: dateRangeOptions, selectedRange: selectedRange, handleSelect: handleSelect, focusedIndex: focusedIndex, optionRefs: optionRefs })] }));
106
- }
107
- function DropdownMenu({ isOpen, dateRangeOptions, selectedRange, handleSelect, focusedIndex, optionRefs, }) {
108
- return (_jsxs("div", { role: "listbox", "aria-label": "Date range options", "aria-activedescendant": focusedIndex >= 0 ? `option-${focusedIndex}` : undefined, className: cn('absolute top-[38px] left-0 w-[200px] rounded-xl overflow-hidden z-50', 'bg-[rgba(10,5,20,0.98)] backdrop-blur-[20px]', 'border border-white/[0.08]', 'shadow-[0px_20px_40px_rgba(0,0,0,0.5),0px_0px_1px_rgba(139,92,246,0.3)]', 'transition-all duration-200 ease-[cubic-bezier(0.16,1,0.3,1)]', isOpen
109
- ? 'opacity-100 translate-y-0 scale-100 pointer-events-auto'
110
- : 'opacity-0 -translate-y-2 scale-[0.96] pointer-events-none'), children: [_jsx("div", { className: "px-4 pt-3 pb-2 border-b border-white/[0.06]", children: _jsx("span", { className: "text-[10px] font-semibold uppercase tracking-wide text-gray-500", children: "Select time range" }) }), _jsx("div", { className: "p-1.5", children: dateRangeOptions.map((option, index) => {
111
- const isSelected = selectedRange === option.label;
112
- const isFocused = focusedIndex === index;
113
- return (_jsx(DropdownOption, { option: option, isSelected: isSelected, isFocused: isFocused, handleSelect: handleSelect, index: index, ref: el => {
114
- if (optionRefs.current) {
115
- optionRefs.current[index] = el;
116
- }
117
- } }, option.value));
118
- }) }), _jsx("div", { className: "px-4 py-2 border-t border-white/[0.06] bg-gradient-to-b from-transparent to-violet-500/[0.03]", children: _jsx("span", { className: "text-[10px] text-gray-600", children: "Data refreshes every 5 min" }) })] }));
119
- }
120
- function RightSection({ showNotification, onNotificationClick, onAvatarClick, userInitials, }) {
121
- return (_jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("button", { type: "button", onClick: onNotificationClick, "aria-label": showNotification ? 'View notifications (new)' : 'View notifications', className: "w-8 h-8 flex items-center justify-center rounded-lg relative transition-colors hover:bg-white/[0.06]", children: [_jsx(Bell, { size: 16, className: "text-gray-500", strokeWidth: 2 }), showNotification && (_jsx("div", { className: "absolute top-1.5 right-1.5 w-1.5 h-1.5 rounded-full bg-violet-500 border-[1.5px] border-[rgba(3,0,5,0.9)]" }))] }), _jsx("button", { type: "button", onClick: onAvatarClick, "aria-label": "User menu", className: "w-8 h-8 rounded-full flex items-center justify-center bg-violet-900/40 outline outline-1 outline-white/10 -outline-offset-1 transition-all hover:outline-violet-500/40", children: _jsx("span", { className: "text-xs font-semibold text-white", children: userInitials }) })] }));
122
- }
123
- //# sourceMappingURL=Header.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/components/dashboard/Header.tsx"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- import type { VariantProps } from 'class-variance-authority';
2
- declare const iconBadgeVariants: (props?: ({
3
- variant?: "blue" | "gray" | "violet" | "emerald" | "rose" | null | undefined;
4
- } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
5
- export interface IconBadgeProps extends VariantProps<typeof iconBadgeVariants> {
6
- icon: string;
7
- className?: string;
8
- iconClassName?: string;
9
- }
10
- /**
11
- * An icon badge component that displays icons from lucide-react or fallback text
12
- * Supports multiple color variants for visual hierarchy
13
- * @param {IconBadgeProps} props - Component props
14
- * @param {string} props.icon - Icon name (e.g., 'grid_view', 'chat_bubble') or fallback text
15
- * @param {'gray' | 'violet' | 'blue' | 'emerald' | 'rose'} [props.variant='gray'] - Color variant
16
- * @param {string} [props.className=''] - Additional CSS classes for the badge
17
- * @param {string} [props.iconClassName=''] - Additional CSS classes for the icon
18
- * @returns {JSX.Element} The icon badge component
19
- */
20
- export declare function IconBadge({ icon, variant, className, iconClassName, }: IconBadgeProps): import("react/jsx-runtime").JSX.Element;
21
- export {};
22
- //# sourceMappingURL=IconBadge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IconBadge.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/IconBadge.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAe7D,QAAA,MAAM,iBAAiB;;mFAiBtB,CAAC;AAaF,MAAM,WAAW,cAAe,SAAQ,YAAY,CAAC,OAAO,iBAAiB,CAAC;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,OAAgB,EAChB,SAAc,EACd,aAAkB,GACnB,EAAE,cAAc,2CA2BhB"}
@@ -1,44 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- import { cva } from 'class-variance-authority';
4
- import { Bell, Home, LayoutGrid, MessageSquare, Search, Settings, TrendingUp, Users, } from 'lucide-react';
5
- import { cn } from '../../lib/utils';
6
- const iconBadgeVariants = cva('w-8 h-8 rounded-lg flex items-center justify-center border', {
7
- variants: {
8
- variant: {
9
- gray: 'bg-gray-800/50 border-white/5',
10
- violet: 'bg-violet-600 border-violet-500/50 shadow-[0_0_15px_rgba(124,58,237,0.5)]',
11
- blue: 'bg-blue-600/20 border-blue-500/20',
12
- emerald: 'bg-emerald-600/20 border-emerald-500/20',
13
- rose: 'bg-rose-600/20 border-rose-500/20',
14
- },
15
- },
16
- defaultVariants: {
17
- variant: 'gray',
18
- },
19
- });
20
- const iconMap = {
21
- grid_view: LayoutGrid,
22
- chat_bubble: MessageSquare,
23
- timeline: TrendingUp,
24
- group: Users,
25
- settings: Settings,
26
- notifications: Bell,
27
- search: Search,
28
- home: Home,
29
- };
30
- /**
31
- * An icon badge component that displays icons from lucide-react or fallback text
32
- * Supports multiple color variants for visual hierarchy
33
- * @param {IconBadgeProps} props - Component props
34
- * @param {string} props.icon - Icon name (e.g., 'grid_view', 'chat_bubble') or fallback text
35
- * @param {'gray' | 'violet' | 'blue' | 'emerald' | 'rose'} [props.variant='gray'] - Color variant
36
- * @param {string} [props.className=''] - Additional CSS classes for the badge
37
- * @param {string} [props.iconClassName=''] - Additional CSS classes for the icon
38
- * @returns {JSX.Element} The icon badge component
39
- */
40
- export function IconBadge({ icon, variant = 'gray', className = '', iconClassName = '', }) {
41
- const IconComponent = iconMap[icon];
42
- return (_jsx("div", { className: cn(iconBadgeVariants({ variant }), className), children: IconComponent ? (_jsx(IconComponent, { size: 18, className: cn(variant === 'gray' ? 'text-gray-400' : 'text-white', iconClassName), strokeWidth: 2 })) : (_jsx("span", { className: cn('text-[18px]', variant === 'gray' ? 'text-gray-400' : 'text-white', iconClassName), children: icon })) }));
43
- }
44
- //# sourceMappingURL=IconBadge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IconBadge.js","sourceRoot":"","sources":["../../../src/components/dashboard/IconBadge.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAIb,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,aAAa,EACb,MAAM,EACN,QAAQ,EACR,UAAU,EACV,KAAK,GACN,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,MAAM,iBAAiB,GAAG,GAAG,CAC3B,4DAA4D,EAC5D;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,IAAI,EAAE,+BAA+B;YACrC,MAAM,EACJ,2EAA2E;YAC7E,IAAI,EAAE,mCAAmC;YACzC,OAAO,EAAE,yCAAyC;YAClD,IAAI,EAAE,mCAAmC;SAC1C;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,MAAM;KAChB;CACF,CACF,CAAC;AAEF,MAAM,OAAO,GAA+B;IAC1C,SAAS,EAAE,UAAU;IACrB,WAAW,EAAE,aAAa;IAC1B,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,KAAK;IACZ,QAAQ,EAAE,QAAQ;IAClB,aAAa,EAAE,IAAI;IACnB,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,IAAI;CACX,CAAC;AAQF;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CAAC,EACxB,IAAI,EACJ,OAAO,GAAG,MAAM,EAChB,SAAS,GAAG,EAAE,EACd,aAAa,GAAG,EAAE,GACH;IACf,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,YAC1D,aAAa,CAAC,CAAC,CAAC,CACf,KAAC,aAAa,IACZ,IAAI,EAAE,EAAE,EACR,SAAS,EAAE,EAAE,CACX,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,EACnD,aAAa,CACd,EACD,WAAW,EAAE,CAAC,GACd,CACH,CAAC,CAAC,CAAC,CACF,eACE,SAAS,EAAE,EAAE,CACX,aAAa,EACb,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,EACnD,aAAa,CACd,YAEA,IAAI,GACA,CACR,GACG,CACP,CAAC;AACJ,CAAC"}