@b3-crow/ui-kit 0.0.31-pr25.10 → 0.0.31-pr30.2

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 (110) hide show
  1. package/dist/components/cards/PricingCard.d.ts +35 -0
  2. package/dist/components/cards/PricingCard.d.ts.map +1 -0
  3. package/dist/components/cards/PricingCard.js +42 -0
  4. package/dist/components/cards/PricingCard.js.map +1 -0
  5. package/dist/components/dashboard/ChatHistorySection.d.ts +1 -1
  6. package/dist/components/dashboard/ChatHistorySection.d.ts.map +1 -1
  7. package/dist/components/dashboard/ChatHistorySection.js +30 -49
  8. package/dist/components/dashboard/ChatHistorySection.js.map +1 -1
  9. package/dist/components/dashboard/DashboardBackground.d.ts +1 -1
  10. package/dist/components/dashboard/DashboardBackground.d.ts.map +1 -1
  11. package/dist/components/dashboard/DashboardBackground.js +6 -79
  12. package/dist/components/dashboard/DashboardBackground.js.map +1 -1
  13. package/dist/components/dashboard/FilterDropdown.d.ts.map +1 -1
  14. package/dist/components/dashboard/FilterDropdown.js +55 -9
  15. package/dist/components/dashboard/FilterDropdown.js.map +1 -1
  16. package/dist/components/dashboard/GlassPanel.d.ts +9 -0
  17. package/dist/components/dashboard/GlassPanel.d.ts.map +1 -1
  18. package/dist/components/dashboard/GlassPanel.js +10 -1
  19. package/dist/components/dashboard/GlassPanel.js.map +1 -1
  20. package/dist/components/dashboard/Header.d.ts.map +1 -1
  21. package/dist/components/dashboard/Header.js +60 -44
  22. package/dist/components/dashboard/Header.js.map +1 -1
  23. package/dist/components/dashboard/IconBadge.d.ts +11 -1
  24. package/dist/components/dashboard/IconBadge.d.ts.map +1 -1
  25. package/dist/components/dashboard/IconBadge.js +23 -1
  26. package/dist/components/dashboard/IconBadge.js.map +1 -1
  27. package/dist/components/dashboard/ListItem.d.ts +12 -0
  28. package/dist/components/dashboard/ListItem.d.ts.map +1 -1
  29. package/dist/components/dashboard/ListItem.js +12 -0
  30. package/dist/components/dashboard/ListItem.js.map +1 -1
  31. package/dist/components/dashboard/MetricsCard.js +4 -2
  32. package/dist/components/dashboard/MetricsCard.js.map +1 -1
  33. package/dist/components/dashboard/MobileSidebar.d.ts +1 -1
  34. package/dist/components/dashboard/MobileSidebar.d.ts.map +1 -1
  35. package/dist/components/dashboard/MobileSidebar.js +18 -25
  36. package/dist/components/dashboard/MobileSidebar.js.map +1 -1
  37. package/dist/components/dashboard/NavMenu.d.ts.map +1 -1
  38. package/dist/components/dashboard/NavMenu.js +27 -106
  39. package/dist/components/dashboard/NavMenu.js.map +1 -1
  40. package/dist/components/dashboard/PatternCard.d.ts +2 -3
  41. package/dist/components/dashboard/PatternCard.d.ts.map +1 -1
  42. package/dist/components/dashboard/PatternCard.js +4 -43
  43. package/dist/components/dashboard/PatternCard.js.map +1 -1
  44. package/dist/components/dashboard/SearchInput.d.ts +16 -1
  45. package/dist/components/dashboard/SearchInput.d.ts.map +1 -1
  46. package/dist/components/dashboard/SearchInput.js +21 -10
  47. package/dist/components/dashboard/SearchInput.js.map +1 -1
  48. package/dist/components/dashboard/SectionHeader.d.ts.map +1 -1
  49. package/dist/components/dashboard/SectionHeader.js +3 -6
  50. package/dist/components/dashboard/SectionHeader.js.map +1 -1
  51. package/dist/components/dashboard/SettingsDropup.d.ts +1 -3
  52. package/dist/components/dashboard/SettingsDropup.d.ts.map +1 -1
  53. package/dist/components/dashboard/SettingsDropup.js +7 -147
  54. package/dist/components/dashboard/SettingsDropup.js.map +1 -1
  55. package/dist/components/dashboard/SettingsModal.d.ts +1 -1
  56. package/dist/components/dashboard/SettingsModal.d.ts.map +1 -1
  57. package/dist/components/dashboard/SettingsModal.js +10 -194
  58. package/dist/components/dashboard/SettingsModal.js.map +1 -1
  59. package/dist/components/dashboard/SidePanel.d.ts.map +1 -1
  60. package/dist/components/dashboard/SidePanel.js +41 -7
  61. package/dist/components/dashboard/SidePanel.js.map +1 -1
  62. package/dist/components/dashboard/Sidebar.d.ts +1 -1
  63. package/dist/components/dashboard/Sidebar.d.ts.map +1 -1
  64. package/dist/components/dashboard/Sidebar.js +5 -29
  65. package/dist/components/dashboard/Sidebar.js.map +1 -1
  66. package/dist/components/dashboard/SidebarLogo.d.ts.map +1 -1
  67. package/dist/components/dashboard/SidebarLogo.js +1 -41
  68. package/dist/components/dashboard/SidebarLogo.js.map +1 -1
  69. package/dist/components/dashboard/SourceIcon.d.ts +8 -0
  70. package/dist/components/dashboard/SourceIcon.d.ts.map +1 -1
  71. package/dist/components/dashboard/SourceIcon.js +13 -1
  72. package/dist/components/dashboard/SourceIcon.js.map +1 -1
  73. package/dist/components/dashboard/StatusBadge.d.ts +14 -2
  74. package/dist/components/dashboard/StatusBadge.d.ts.map +1 -1
  75. package/dist/components/dashboard/StatusBadge.js +12 -0
  76. package/dist/components/dashboard/StatusBadge.js.map +1 -1
  77. package/dist/components/dashboard/StatusIndicator.d.ts +9 -0
  78. package/dist/components/dashboard/StatusIndicator.d.ts.map +1 -1
  79. package/dist/components/dashboard/StatusIndicator.js +10 -4
  80. package/dist/components/dashboard/StatusIndicator.js.map +1 -1
  81. package/dist/components/dashboard/Tag.d.ts +9 -0
  82. package/dist/components/dashboard/Tag.d.ts.map +1 -1
  83. package/dist/components/dashboard/Tag.js +9 -0
  84. package/dist/components/dashboard/Tag.js.map +1 -1
  85. package/dist/components/dashboard/TipCard.d.ts +7 -0
  86. package/dist/components/dashboard/TipCard.d.ts.map +1 -1
  87. package/dist/components/dashboard/TipCard.js +7 -0
  88. package/dist/components/dashboard/TipCard.js.map +1 -1
  89. package/dist/components/dashboard/ToggleSwitch.d.ts +11 -1
  90. package/dist/components/dashboard/ToggleSwitch.d.ts.map +1 -1
  91. package/dist/components/dashboard/ToggleSwitch.js +20 -26
  92. package/dist/components/dashboard/ToggleSwitch.js.map +1 -1
  93. package/dist/components/dashboard/constants.d.ts +28 -0
  94. package/dist/components/dashboard/constants.d.ts.map +1 -0
  95. package/dist/components/dashboard/constants.js +104 -0
  96. package/dist/components/dashboard/constants.js.map +1 -0
  97. package/dist/components/dashboard/index.d.ts +2 -1
  98. package/dist/components/dashboard/index.d.ts.map +1 -1
  99. package/dist/components/dashboard/index.js +2 -1
  100. package/dist/components/dashboard/index.js.map +1 -1
  101. package/dist/components/dashboard/types.d.ts +11 -4
  102. package/dist/components/dashboard/types.d.ts.map +1 -1
  103. package/dist/components/index.d.ts +2 -1
  104. package/dist/components/index.d.ts.map +1 -1
  105. package/dist/components/index.js +2 -1
  106. package/dist/components/index.js.map +1 -1
  107. package/dist/components/layout/Navbar.js +1 -1
  108. package/dist/components/layout/Navbar.js.map +1 -1
  109. package/dist/styles.css +1 -1
  110. package/package.json +5 -4
@@ -1,11 +1,20 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
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
+ */
4
13
  export function GlassPanel({ children, variant = 'light', className = '', }) {
5
14
  const baseClasses = 'rounded-xl border';
6
15
  const variantClasses = variant === 'light'
7
16
  ? 'bg-white/[0.02] border-white/[0.06] backdrop-blur-sm'
8
- : 'border-white/[0.06] bg-white/[0.01]';
17
+ : 'bg-white/[0.02] border-white/[0.08] backdrop-blur-md';
9
18
  return (_jsx("div", { className: cn(baseClasses, variantClasses, className), children: children }));
10
19
  }
11
20
  //# sourceMappingURL=GlassPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GlassPanel.js","sourceRoot":"","sources":["../../../src/components/dashboard/GlassPanel.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAKrC,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,qCAAqC,CAAC;IAE5C,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,SAAS,CAAC,YAAG,QAAQ,GAAO,CAC7E,CAAC;AACJ,CAAC"}
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 +1 @@
1
- {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/Header.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE5D,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;AAa7C,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,2CAyEb"}
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;AAyE7C,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,2CA+Eb"}
@@ -1,7 +1,8 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useState, useRef, useEffect } from 'react';
4
- import { Calendar, ChevronDown, Bell, Check, Menu } from 'lucide-react';
3
+ import { Bell, Calendar, Check, ChevronDown, Menu } from 'lucide-react';
4
+ import { useEffect, useRef, useState } from 'react';
5
+ import { cn } from '../../lib/utils';
5
6
  const defaultDateRangeOptions = [
6
7
  { label: 'Today', value: 'today' },
7
8
  { label: 'Yesterday', value: 'yesterday' },
@@ -16,6 +17,9 @@ export function Header({ orgName = 'Global Retail Ops', dateRange = 'Last 7 days
16
17
  const [isOpen, setIsOpen] = useState(false);
17
18
  const [selectedRange, setSelectedRange] = useState(dateRange);
18
19
  const dropdownRef = useRef(null);
20
+ useEffect(() => {
21
+ setSelectedRange(dateRange);
22
+ }, [dateRange]);
19
23
  useEffect(() => {
20
24
  const handleClickOutside = (event) => {
21
25
  if (dropdownRef.current &&
@@ -31,57 +35,69 @@ export function Header({ orgName = 'Global Retail Ops', dateRange = 'Last 7 days
31
35
  setIsOpen(false);
32
36
  onDateRangeChange?.(option.value);
33
37
  };
34
- return (_jsxs("header", { className: `w-full h-16 sticky top-0 flex-shrink-0 z-50 flex items-center ${minimal ? 'justify-between' : '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, color: "#9CA3AF", strokeWidth: 2 }) })), logoSrc && (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("img", { src: logoSrc, alt: "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 })] }));
38
+ 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 })] }));
35
39
  }
36
40
  function LeftSection({ orgName, selectedRange, isOpen, setIsOpen, dropdownRef, dateRangeOptions, handleSelect, }) {
37
41
  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 })] }));
38
42
  }
39
43
  function DatePickerDropdown({ selectedRange, isOpen, setIsOpen, dropdownRef, dateRangeOptions, handleSelect, }) {
40
- return (_jsxs("div", { ref: dropdownRef, className: "relative", children: [_jsxs("button", { type: "button", onClick: () => setIsOpen(!isOpen), "aria-label": "Select date range", "aria-expanded": isOpen, "aria-haspopup": "listbox", className: "h-[30px] px-3 flex items-center gap-2 rounded-full transition-all", style: {
41
- background: isOpen
42
- ? 'rgba(139, 92, 246, 0.15)'
43
- : 'rgba(255, 255, 255, 0.03)',
44
- outline: isOpen
45
- ? '1px rgba(139, 92, 246, 0.40) solid'
46
- : '1px rgba(255, 255, 255, 0.10) solid',
47
- outlineOffset: '-1px',
48
- }, children: [_jsx(Calendar, { size: 12, color: isOpen ? '#A78BFA' : '#9CA3AF', strokeWidth: 2 }), _jsx("span", { className: "text-xs font-medium whitespace-nowrap", style: { color: isOpen ? '#E9D5FF' : '#D1D5DB' }, children: selectedRange }), _jsx(ChevronDown, { size: 10, color: isOpen ? '#A78BFA' : '#6B7280', strokeWidth: 2, className: "transition-transform", style: { transform: isOpen ? 'rotate(180deg)' : 'rotate(0deg)' } })] }), _jsx(DropdownMenu, { isOpen: isOpen, dateRangeOptions: dateRangeOptions, selectedRange: selectedRange, handleSelect: handleSelect })] }));
44
+ const [focusedIndex, setFocusedIndex] = useState(-1);
45
+ const handleKeyDown = (e) => {
46
+ if (!isOpen) {
47
+ if (e.key === 'Enter' || e.key === ' ' || e.key === 'ArrowDown') {
48
+ e.preventDefault();
49
+ setIsOpen(true);
50
+ setFocusedIndex(0);
51
+ }
52
+ return;
53
+ }
54
+ switch (e.key) {
55
+ case 'Escape':
56
+ e.preventDefault();
57
+ setIsOpen(false);
58
+ setFocusedIndex(-1);
59
+ break;
60
+ case 'ArrowDown':
61
+ e.preventDefault();
62
+ setFocusedIndex(prev => prev < dateRangeOptions.length - 1 ? prev + 1 : 0);
63
+ break;
64
+ case 'ArrowUp':
65
+ e.preventDefault();
66
+ setFocusedIndex(prev => prev > 0 ? prev - 1 : dateRangeOptions.length - 1);
67
+ break;
68
+ case 'Enter':
69
+ case ' ':
70
+ e.preventDefault();
71
+ if (focusedIndex >= 0 && focusedIndex < dateRangeOptions.length) {
72
+ handleSelect(dateRangeOptions[focusedIndex]);
73
+ setFocusedIndex(-1);
74
+ }
75
+ break;
76
+ case 'Tab':
77
+ setIsOpen(false);
78
+ setFocusedIndex(-1);
79
+ break;
80
+ }
81
+ };
82
+ 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
83
+ ? 'bg-violet-500/15 outline outline-1 outline-violet-500/40 -outline-offset-1'
84
+ : '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, _setFocusedIndex: setFocusedIndex, _onClose: () => setIsOpen(false) })] }));
49
85
  }
50
- function DropdownMenu({ isOpen, dateRangeOptions, selectedRange, handleSelect, }) {
51
- return (_jsxs("div", { className: "absolute top-[38px] left-0 w-[200px] rounded-xl overflow-hidden z-50", style: {
52
- background: 'rgba(10, 5, 20, 0.98)',
53
- backdropFilter: 'blur(20px)',
54
- border: '1px solid rgba(255, 255, 255, 0.08)',
55
- boxShadow: '0px 20px 40px rgba(0, 0, 0, 0.5), 0px 0px 1px rgba(139, 92, 246, 0.3)',
56
- opacity: isOpen ? 1 : 0,
57
- transform: isOpen
58
- ? 'translateY(0) scale(1)'
59
- : 'translateY(-8px) scale(0.96)',
60
- pointerEvents: isOpen ? 'auto' : 'none',
61
- transition: 'all 0.2s cubic-bezier(0.16, 1, 0.3, 1)',
62
- }, 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", { role: "listbox", "aria-label": "Date range options", className: "p-1.5", children: dateRangeOptions.map((option) => {
86
+ function DropdownMenu({ isOpen, dateRangeOptions, selectedRange, handleSelect, focusedIndex, _setFocusedIndex, _onClose, }) {
87
+ return (_jsxs("div", { role: "listbox", "aria-label": "Date range options", 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
88
+ ? 'opacity-100 translate-y-0 scale-100 pointer-events-auto'
89
+ : '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) => {
63
90
  const isSelected = selectedRange === option.label;
64
- return (_jsx(DropdownOption, { option: option, isSelected: isSelected, handleSelect: handleSelect }, option.value));
65
- }) }), _jsx("div", { className: "px-4 py-2 border-t border-white/[0.06]", style: {
66
- background: 'linear-gradient(180deg, transparent 0%, rgba(139, 92, 246, 0.03) 100%)',
67
- }, children: _jsx("span", { className: "text-[10px] text-gray-600", children: "Data refreshes every 5 min" }) })] }));
91
+ const isFocused = focusedIndex === index;
92
+ return (_jsx(DropdownOption, { option: option, isSelected: isSelected, isFocused: isFocused, handleSelect: handleSelect }, option.value));
93
+ }) }), _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" }) })] }));
68
94
  }
69
- function DropdownOption({ option, isSelected, handleSelect, }) {
70
- return (_jsxs("button", { type: "button", role: "option", "aria-selected": isSelected, onClick: () => handleSelect(option), className: "w-full px-3 py-2.5 flex items-center justify-between rounded-lg transition-all hover:bg-white/[0.04]", style: {
71
- background: isSelected ? 'rgba(139, 92, 246, 0.15)' : 'transparent',
72
- }, children: [_jsx("span", { className: "text-[13px]", style: {
73
- color: isSelected ? '#E9D5FF' : '#D1D5DB',
74
- fontWeight: isSelected ? 500 : 400,
75
- }, children: option.label }), isSelected && _jsx(Check, { size: 14, color: "#A78BFA", strokeWidth: 2.5 })] }));
95
+ function DropdownOption({ option, isSelected, isFocused, handleSelect, }) {
96
+ return (_jsxs("button", { type: "button", role: "option", "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
97
+ ? 'text-violet-200 font-medium'
98
+ : 'text-gray-300 font-normal'), children: option.label }), isSelected && (_jsx(Check, { size: 14, className: "text-violet-400", strokeWidth: 2.5 }))] }));
76
99
  }
77
100
  function RightSection({ showNotification, onNotificationClick, onAvatarClick, userInitials, }) {
78
- 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, color: "#6B7280", strokeWidth: 2 }), showNotification && (_jsx("div", { className: "absolute top-1.5 right-1.5 w-1.5 h-1.5 rounded-full", style: {
79
- background: '#8B5CF6',
80
- border: '1.5px solid rgba(3, 0, 5, 0.9)',
81
- } }))] }), _jsx("button", { type: "button", onClick: onAvatarClick, "aria-label": "User menu", className: "w-8 h-8 rounded-full flex items-center justify-center transition-all hover:outline-violet-500/40", style: {
82
- background: 'rgba(76, 29, 149, 0.40)',
83
- outline: '1px rgba(255, 255, 255, 0.10) solid',
84
- outlineOffset: '-1px',
85
- }, children: _jsx("span", { className: "text-xs font-semibold text-white", children: userInitials }) })] }));
101
+ 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 }) })] }));
86
102
  }
87
103
  //# sourceMappingURL=Header.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/components/dashboard/Header.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/components/dashboard/Header.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type VariantProps } from 'class-variance-authority';
1
+ import type { VariantProps } from 'class-variance-authority';
2
2
  declare const iconBadgeVariants: (props?: ({
3
3
  variant?: "blue" | "gray" | "violet" | "emerald" | "rose" | null | undefined;
4
4
  } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
@@ -7,6 +7,16 @@ export interface IconBadgeProps extends VariantProps<typeof iconBadgeVariants> {
7
7
  className?: string;
8
8
  iconClassName?: string;
9
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
+ */
10
20
  export declare function IconBadge({ icon, variant, className, iconClassName, }: IconBadgeProps): import("react/jsx-runtime").JSX.Element;
11
21
  export {};
12
22
  //# sourceMappingURL=IconBadge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IconBadge.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/IconBadge.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,QAAA,MAAM,iBAAiB;;mFAgBtB,CAAC;AAEF,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,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,OAAgB,EAChB,SAAc,EACd,aAAkB,GACnB,EAAE,cAAc,2CAchB"}
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,6 +1,7 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { cva } from 'class-variance-authority';
4
+ import { Bell, Home, LayoutGrid, MessageSquare, Search, Settings, TrendingUp, Users, } from 'lucide-react';
4
5
  import { cn } from '../../lib/utils';
5
6
  const iconBadgeVariants = cva('w-8 h-8 rounded-lg flex items-center justify-center border', {
6
7
  variants: {
@@ -16,7 +17,28 @@ const iconBadgeVariants = cva('w-8 h-8 rounded-lg flex items-center justify-cent
16
17
  variant: 'gray',
17
18
  },
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
+ */
19
40
  export function IconBadge({ icon, variant = 'gray', className = '', iconClassName = '', }) {
20
- return (_jsx("div", { className: cn(iconBadgeVariants({ variant }), className), children: _jsx("span", { className: cn('material-symbols-outlined text-[18px]', variant === 'gray' ? 'text-gray-400' : 'text-white', iconClassName), children: icon }) }));
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 })) }));
21
43
  }
22
44
  //# sourceMappingURL=IconBadge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IconBadge.js","sourceRoot":"","sources":["../../../src/components/dashboard/IconBadge.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,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,EAAE,2EAA2E;YACnF,IAAI,EAAE,mCAAmC;YACzC,OAAO,EAAE,yCAAyC;YAClD,IAAI,EAAE,mCAAmC;SAC1C;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,MAAM;KAChB;CACF,CACF,CAAC;AAQF,MAAM,UAAU,SAAS,CAAC,EACxB,IAAI,EACJ,OAAO,GAAG,MAAM,EAChB,SAAS,GAAG,EAAE,EACd,aAAa,GAAG,EAAE,GACH;IACf,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,YAC3D,eACE,SAAS,EAAE,EAAE,CACX,uCAAuC,EACvC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,EACnD,aAAa,CACd,YAEA,IAAI,GACA,GACH,CACP,CAAC;AACJ,CAAC"}
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"}
@@ -6,5 +6,17 @@ export interface ListItemProps {
6
6
  highlighted?: boolean;
7
7
  className?: string;
8
8
  }
9
+ /**
10
+ * A clickable list item component with optional highlighting
11
+ * Shows a chevron icon on hover and supports highlighted state
12
+ * @param {ListItemProps} props - Component props
13
+ * @param {React.ReactNode} props.children - Item content
14
+ * @param {() => void} [props.onClick] - Click handler
15
+ * @param {string} [props.ariaLabel] - Accessibility label
16
+ * @param {boolean} [props.showChevron=false] - Whether to show chevron indicator
17
+ * @param {boolean} [props.highlighted=false] - Whether item is highlighted
18
+ * @param {string} [props.className] - Additional CSS classes
19
+ * @returns {JSX.Element} The list item component
20
+ */
9
21
  export declare function ListItem({ children, onClick, ariaLabel, showChevron, highlighted, className, }: ListItemProps): import("react/jsx-runtime").JSX.Element;
10
22
  //# sourceMappingURL=ListItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListItem.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/ListItem.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EACR,OAAO,EACP,SAAS,EACT,WAAmB,EACnB,WAAmB,EACnB,SAAS,GACV,EAAE,aAAa,2CAoBf"}
1
+ {"version":3,"file":"ListItem.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/ListItem.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EACR,OAAO,EACP,SAAS,EACT,WAAmB,EACnB,WAAmB,EACnB,SAAS,GACV,EAAE,aAAa,2CAoBf"}
@@ -2,6 +2,18 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { ChevronRight } from 'lucide-react';
4
4
  import { cn } from '../../lib/utils';
5
+ /**
6
+ * A clickable list item component with optional highlighting
7
+ * Shows a chevron icon on hover and supports highlighted state
8
+ * @param {ListItemProps} props - Component props
9
+ * @param {React.ReactNode} props.children - Item content
10
+ * @param {() => void} [props.onClick] - Click handler
11
+ * @param {string} [props.ariaLabel] - Accessibility label
12
+ * @param {boolean} [props.showChevron=false] - Whether to show chevron indicator
13
+ * @param {boolean} [props.highlighted=false] - Whether item is highlighted
14
+ * @param {string} [props.className] - Additional CSS classes
15
+ * @returns {JSX.Element} The list item component
16
+ */
5
17
  export function ListItem({ children, onClick, ariaLabel, showChevron = false, highlighted = false, className, }) {
6
18
  return (_jsx("button", { type: "button", onClick: onClick, "aria-label": ariaLabel, className: cn('w-full px-2.5 sm:px-3 py-2.5 sm:py-3 rounded-lg text-left transition-all group', highlighted
7
19
  ? 'border-l-2 border-l-violet-500 bg-violet-500/[0.02] pl-3 sm:pl-3.5'
@@ -1 +1 @@
1
- {"version":3,"file":"ListItem.js","sourceRoot":"","sources":["../../../src/components/dashboard/ListItem.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAWrC,MAAM,UAAU,QAAQ,CAAC,EACvB,QAAQ,EACR,OAAO,EACP,SAAS,EACT,WAAW,GAAG,KAAK,EACnB,WAAW,GAAG,KAAK,EACnB,SAAS,GACK;IACd,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,gBACJ,SAAS,EACrB,SAAS,EAAE,EAAE,CACX,gFAAgF,EAChF,WAAW;YACT,CAAC,CAAC,oEAAoE;YACtE,CAAC,CAAC,uBAAuB,EAC3B,SAAS,CACV,YAED,eAAK,SAAS,EAAC,kCAAkC,aAC/C,cAAK,SAAS,EAAC,gBAAgB,YAAE,QAAQ,GAAO,EAC/C,WAAW,IAAI,KAAC,gBAAgB,KAAG,IAChC,GACC,CACV,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO,CACL,cAAK,SAAS,EAAC,8EAA8E,YAC3F,KAAC,YAAY,IACX,IAAI,EAAE,EAAE,EACR,SAAS,EAAC,iCAAiC,EAC3C,WAAW,EAAE,CAAC,GACd,GACE,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ListItem.js","sourceRoot":"","sources":["../../../src/components/dashboard/ListItem.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAWrC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,QAAQ,CAAC,EACvB,QAAQ,EACR,OAAO,EACP,SAAS,EACT,WAAW,GAAG,KAAK,EACnB,WAAW,GAAG,KAAK,EACnB,SAAS,GACK;IACd,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,gBACJ,SAAS,EACrB,SAAS,EAAE,EAAE,CACX,gFAAgF,EAChF,WAAW;YACT,CAAC,CAAC,oEAAoE;YACtE,CAAC,CAAC,uBAAuB,EAC3B,SAAS,CACV,YAED,eAAK,SAAS,EAAC,kCAAkC,aAC/C,cAAK,SAAS,EAAC,gBAAgB,YAAE,QAAQ,GAAO,EAC/C,WAAW,IAAI,KAAC,gBAAgB,KAAG,IAChC,GACC,CACV,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO,CACL,cAAK,SAAS,EAAC,8EAA8E,YAC3F,KAAC,YAAY,IACX,IAAI,EAAE,EAAE,EACR,SAAS,EAAC,iCAAiC,EAC3C,WAAW,EAAE,CAAC,GACd,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -18,9 +18,11 @@ const chartColors = {
18
18
  };
19
19
  const DEFAULT_CHART_DATA = [25, 50, 35, 70, 100];
20
20
  export function MetricsCard({ title, value, change, changeType, chartData = DEFAULT_CHART_DATA, chartColor = 'violet', }) {
21
- const maxValue = Math.max(...chartData);
21
+ // Safeguard for empty chartData
22
+ const safeChartData = chartData.length > 0 ? chartData : DEFAULT_CHART_DATA;
23
+ const maxValue = Math.max(...safeChartData);
22
24
  const barColor = chartColors[chartColor];
23
- return (_jsx(GlassPanel, { variant: "light", className: "relative overflow-hidden", children: _jsxs("div", { className: "p-4 sm:p-5 min-h-[100px] sm:min-h-[109px] flex flex-col", children: [_jsxs("div", { className: "flex items-start justify-between gap-2 mb-auto", children: [_jsx("span", { className: "text-[10px] sm:text-xs font-semibold uppercase tracking-wider text-gray-400", children: title }), _jsx(StatusBadge, { variant: changeType, children: change })] }), _jsxs("div", { className: "flex items-end justify-between mt-4", children: [_jsx("span", { className: "text-xl sm:text-2xl font-bold text-white", children: value }), _jsx(MiniChart, { chartData: chartData, maxValue: maxValue, barColor: barColor })] })] }) }));
25
+ return (_jsx(GlassPanel, { variant: "light", className: "relative overflow-hidden", children: _jsxs("div", { className: "p-4 sm:p-5 min-h-[100px] sm:min-h-[109px] flex flex-col", children: [_jsxs("div", { className: "flex items-start justify-between gap-2 mb-auto", children: [_jsx("span", { className: "text-[10px] sm:text-xs font-semibold uppercase tracking-wider text-gray-400", children: title }), _jsx(StatusBadge, { variant: changeType, children: change })] }), _jsxs("div", { className: "flex items-end justify-between mt-4", children: [_jsx("span", { className: "text-xl sm:text-2xl font-bold text-white", children: value }), _jsx(MiniChart, { chartData: safeChartData, maxValue: maxValue, barColor: barColor })] })] }) }));
24
26
  }
25
27
  function MiniChart({ chartData, maxValue, barColor }) {
26
28
  return (_jsx("div", { className: "flex items-end gap-[2px]", children: chartData.map((val, index) => {
@@ -1 +1 @@
1
- {"version":3,"file":"MetricsCard.js","sourceRoot":"","sources":["../../../src/components/dashboard/MetricsCard.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAW5C,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE;QACN,EAAE,EAAE,SAAS;QACb,MAAM,EAAE,sCAAsC;KAC/C;IACD,IAAI,EAAE;QACJ,EAAE,EAAE,SAAS;QACb,MAAM,EAAE,qCAAqC;KAC9C;IACD,IAAI,EAAE;QACJ,EAAE,EAAE,SAAS;QACb,MAAM,EAAE,MAAM;KACf;CACF,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAU,CAAC;AAE1D,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,MAAM,EACN,UAAU,EACV,SAAS,GAAG,kBAAkB,EAC9B,UAAU,GAAG,QAAQ,GACJ;IACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IAEzC,OAAO,CACL,KAAC,UAAU,IAAC,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,0BAA0B,YAC9D,eAAK,SAAS,EAAC,yDAAyD,aAEtE,eAAK,SAAS,EAAC,gDAAgD,aAC7D,eAAM,SAAS,EAAC,6EAA6E,YAC1F,KAAK,GACD,EACP,KAAC,WAAW,IAAC,OAAO,EAAE,UAAU,YAAG,MAAM,GAAe,IACpD,EAGN,eAAK,SAAS,EAAC,qCAAqC,aAClD,eAAM,SAAS,EAAC,0CAA0C,YACvD,KAAK,GACD,EAEP,KAAC,SAAS,IACR,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,GAClB,IACE,IACF,GACK,CACd,CAAC;AACJ,CAAC;AAQD,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAkB;IAClE,OAAO,CACL,cAAK,SAAS,EAAC,0BAA0B,YACtC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC5B,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;YAElD,OAAO,CACL,cAEE,KAAK,EAAE;oBACL,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,GAAG,MAAM,IAAI;oBACrB,YAAY,EAAE,aAAa;oBAC3B,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;oBAC5C,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;oBAC5C,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;iBAC1B,IARI,OAAO,KAAK,IAAI,GAAG,EAAE,CAS1B,CACH,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"MetricsCard.js","sourceRoot":"","sources":["../../../src/components/dashboard/MetricsCard.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAW5C,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE;QACN,EAAE,EAAE,SAAS;QACb,MAAM,EAAE,sCAAsC;KAC/C;IACD,IAAI,EAAE;QACJ,EAAE,EAAE,SAAS;QACb,MAAM,EAAE,qCAAqC;KAC9C;IACD,IAAI,EAAE;QACJ,EAAE,EAAE,SAAS;QACb,MAAM,EAAE,MAAM;KACf;CACF,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAU,CAAC;AAE1D,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,MAAM,EACN,UAAU,EACV,SAAS,GAAG,kBAAkB,EAC9B,UAAU,GAAG,QAAQ,GACJ;IACjB,gCAAgC;IAChC,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC;IAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IAEzC,OAAO,CACL,KAAC,UAAU,IAAC,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,0BAA0B,YAC9D,eAAK,SAAS,EAAC,yDAAyD,aACtE,eAAK,SAAS,EAAC,gDAAgD,aAC7D,eAAM,SAAS,EAAC,6EAA6E,YAC1F,KAAK,GACD,EACP,KAAC,WAAW,IAAC,OAAO,EAAE,UAAU,YAAG,MAAM,GAAe,IACpD,EAEN,eAAK,SAAS,EAAC,qCAAqC,aAClD,eAAM,SAAS,EAAC,0CAA0C,YACvD,KAAK,GACD,EAEP,KAAC,SAAS,IACR,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,GAClB,IACE,IACF,GACK,CACd,CAAC;AACJ,CAAC;AAQD,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAkB;IAClE,OAAO,CACL,cAAK,SAAS,EAAC,0BAA0B,YACtC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC5B,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;YAElD,OAAO,CACL,cAEE,KAAK,EAAE;oBACL,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,GAAG,MAAM,IAAI;oBACrB,YAAY,EAAE,aAAa;oBAC3B,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;oBAC5C,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;oBAC5C,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;iBAC1B,IARI,OAAO,KAAK,IAAI,GAAG,EAAE,CAS1B,CACH,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import type { MobileSidebarProps } from './types';
2
2
  export type { MobileSidebarProps };
3
- export declare function MobileSidebar({ isOpen, onClose, navItems, activeHref, onNavigate, showSettings, logoSrc, userName, userEmail, onLogout, onThemeChange, onNotificationsChange, initialTheme, initialNotifications, chatHistory, activeChatId, chatHistoryExpanded, onChatClick, onChatHistoryToggle, onChatRename, onChatDelete, }: MobileSidebarProps): import("react/jsx-runtime").JSX.Element;
3
+ export declare function MobileSidebar({ isOpen, onClose, navItems, activeHref, onNavigate, showSettings, logoSrc, userName, userEmail, onLogout, onNotificationsChange, initialNotifications, chatHistory, activeChatId, chatHistoryExpanded, onChatClick, onChatHistoryToggle, onChatRename, onChatDelete, }: MobileSidebarProps): import("react/jsx-runtime").JSX.Element;
4
4
  //# sourceMappingURL=MobileSidebar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MobileSidebar.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/MobileSidebar.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAW,MAAM,SAAS,CAAC;AAM3D,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAiBnC,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,OAAO,EACP,QAA0B,EAC1B,UAAgB,EAChB,UAAU,EACV,YAAmB,EACnB,OAAwB,EACxB,QAAiB,EACjB,SAA8B,EAC9B,QAAQ,EACR,aAAa,EACb,qBAAqB,EACrB,YAAqB,EACrB,oBAA2B,EAC3B,WAAW,EACX,YAAY,EACZ,mBAA0B,EAC1B,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,YAAY,GACb,EAAE,kBAAkB,2CA6HpB"}
1
+ {"version":3,"file":"MobileSidebar.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/MobileSidebar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAW,MAAM,SAAS,CAAC;AAS3D,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAiBnC,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,OAAO,EACP,QAA0B,EAC1B,UAAgB,EAChB,UAAU,EACV,YAAmB,EACnB,OAAwB,EACxB,QAAiB,EACjB,SAA8B,EAC9B,QAAQ,EACR,qBAAqB,EACrB,oBAA2B,EAC3B,WAAW,EACX,YAAY,EACZ,mBAA0B,EAC1B,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,YAAY,GACb,EAAE,kBAAkB,2CAoHpB"}
@@ -1,8 +1,8 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
- import { useEffect } from 'react';
4
3
  import { AnimatePresence, motion } from 'framer-motion';
5
4
  import { X } from 'lucide-react';
5
+ import { useEffect } from 'react';
6
6
  import { ChatHistorySection } from './ChatHistorySection';
7
7
  import { NavMenu } from './NavMenu';
8
8
  import { SettingsDropup } from './SettingsDropup';
@@ -21,14 +21,24 @@ const defaultNavItems = [
21
21
  },
22
22
  { icon: 'group', label: 'Team', href: '/team' },
23
23
  ];
24
- export function MobileSidebar({ isOpen, onClose, navItems = defaultNavItems, activeHref = '/', onNavigate, showSettings = true, logoSrc = '/favicon.png', userName = 'User', userEmail = 'user@example.com', onLogout, onThemeChange, onNotificationsChange, initialTheme = 'dark', initialNotifications = true, chatHistory, activeChatId, chatHistoryExpanded = true, onChatClick, onChatHistoryToggle, onChatRename, onChatDelete, }) {
25
- // Show chat history only on Ask CROW page
24
+ export function MobileSidebar({ isOpen, onClose, navItems = defaultNavItems, activeHref = '/', onNavigate, showSettings = true, logoSrc = '/favicon.png', userName = 'User', userEmail = 'user@example.com', onLogout, onNotificationsChange, initialNotifications = true, chatHistory, activeChatId, chatHistoryExpanded = true, onChatClick, onChatHistoryToggle, onChatRename, onChatDelete, }) {
25
+ // Show chat history when on Ask CROW page
26
26
  const normalizedHref = activeHref?.replace(/\/$/, '') || '';
27
27
  const showChatHistory = normalizedHref === '/ask-crow';
28
- // Lock body scroll when sidebar is open
28
+ // Lock body scroll and handle Escape key when sidebar is open
29
29
  useEffect(() => {
30
30
  if (isOpen) {
31
31
  document.body.style.overflow = 'hidden';
32
+ const handleEscapeKey = (e) => {
33
+ if (e.key === 'Escape') {
34
+ onClose();
35
+ }
36
+ };
37
+ document.addEventListener('keydown', handleEscapeKey);
38
+ return () => {
39
+ document.removeEventListener('keydown', handleEscapeKey);
40
+ document.body.style.overflow = '';
41
+ };
32
42
  }
33
43
  else {
34
44
  document.body.style.overflow = '';
@@ -36,33 +46,16 @@ export function MobileSidebar({ isOpen, onClose, navItems = defaultNavItems, act
36
46
  return () => {
37
47
  document.body.style.overflow = '';
38
48
  };
39
- }, [isOpen]);
49
+ }, [isOpen, onClose]);
40
50
  // Handle navigation - close sidebar after navigating
41
51
  const handleNavigate = (href) => {
42
52
  onNavigate?.(href);
43
53
  onClose();
44
54
  };
45
- return (_jsx(AnimatePresence, { children: isOpen && (_jsxs(_Fragment, { children: [_jsx(motion.div, { initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: { duration: 0.2 }, className: "fixed inset-0 bg-black/60 z-[100] md:hidden", onClick: onClose, "aria-hidden": "true" }), _jsxs(motion.aside, { initial: { x: '-100%' }, animate: { x: 0 }, exit: { x: '-100%' }, transition: { type: 'spring', damping: 25, stiffness: 300 }, className: "fixed left-0 top-0 h-full z-[101] md:hidden", style: {
46
- width: 280,
47
- background: 'black',
48
- borderRight: '1px rgba(255, 255, 255, 0.08) solid',
49
- }, children: [_jsx("div", { style: {
50
- width: 279,
51
- height: '100%',
52
- left: 0,
53
- top: 0,
54
- position: 'absolute',
55
+ return (_jsx(AnimatePresence, { children: isOpen && (_jsxs(_Fragment, { children: [_jsx(motion.div, { initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: { duration: 0.2 }, className: "fixed inset-0 bg-black/60 z-[100] md:hidden", onClick: onClose, "aria-hidden": "true" }), _jsxs(motion.aside, { initial: { x: '-100%' }, animate: { x: 0 }, exit: { x: '-100%' }, transition: { type: 'spring', damping: 25, stiffness: 300 }, className: "fixed left-0 top-0 h-full w-[280px] bg-black border-r border-white/[0.08] z-[101] md:hidden", role: "dialog", "aria-modal": "true", "aria-label": "Navigation menu", children: [_jsx("div", { className: "absolute inset-0 w-[279px] h-full pointer-events-none", style: {
55
56
  background: 'linear-gradient(180deg, rgba(255, 255, 255, 0.02) 0%, rgba(255, 255, 255, 0) 100%)',
56
- pointerEvents: 'none',
57
- } }), _jsx("div", { style: {
58
- width: 279,
59
- height: 128,
60
- left: 0,
61
- top: 0,
62
- position: 'absolute',
63
- opacity: 0.50,
57
+ } }), _jsx("div", { className: "absolute left-0 top-0 w-[279px] h-32 opacity-50 pointer-events-none", style: {
64
58
  background: 'linear-gradient(180deg, #100B1A 0%, rgba(16, 11, 26, 0) 100%)',
65
- pointerEvents: 'none',
66
- } }), _jsx("button", { type: "button", onClick: onClose, className: "absolute top-4 right-4 w-8 h-8 flex items-center justify-center rounded-lg z-10 transition-colors hover:bg-white/[0.06]", "aria-label": "Close menu", children: _jsx(X, { size: 20, color: "#9CA3AF", strokeWidth: 2 }) }), _jsxs("div", { className: "flex flex-col h-full", children: [_jsx(SidebarLogo, { logoSrc: logoSrc }), _jsx(NavMenu, { items: navItems, activeHref: activeHref, onNavigate: handleNavigate }), _jsx(ChatHistorySection, { items: chatHistory, activeItemId: activeChatId, isExpanded: chatHistoryExpanded, isVisible: showChatHistory, onItemClick: onChatClick, onToggleExpanded: onChatHistoryToggle, onRename: onChatRename, onDelete: onChatDelete }), showSettings && (_jsx(SettingsDropup, { userName: userName, userEmail: userEmail, initialTheme: initialTheme, initialNotifications: initialNotifications, onThemeChange: onThemeChange, onNotificationsChange: onNotificationsChange, onLogout: onLogout }))] })] })] })) }));
59
+ } }), _jsx("button", { type: "button", onClick: onClose, className: "absolute top-4 right-4 w-8 h-8 flex items-center justify-center rounded-lg z-10 transition-colors hover:bg-white/[0.06]", "aria-label": "Close menu", children: _jsx(X, { size: 20, color: "#9CA3AF", strokeWidth: 2 }) }), _jsxs("div", { className: "flex flex-col h-full", children: [_jsx(SidebarLogo, { logoSrc: logoSrc }), _jsx(NavMenu, { items: navItems, activeHref: activeHref, onNavigate: handleNavigate }), _jsx(ChatHistorySection, { items: chatHistory, activeItemId: activeChatId, isExpanded: chatHistoryExpanded, isVisible: showChatHistory, onItemClick: onChatClick, onToggleExpanded: onChatHistoryToggle, onRename: onChatRename, onDelete: onChatDelete }), showSettings && (_jsx(SettingsDropup, { userName: userName, userEmail: userEmail, initialNotifications: initialNotifications, onNotificationsChange: onNotificationsChange, onLogout: onLogout }))] })] })] })) }));
67
60
  }
68
61
  //# sourceMappingURL=MobileSidebar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MobileSidebar.js","sourceRoot":"","sources":["../../../src/components/dashboard/MobileSidebar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MobileSidebar.js","sourceRoot":"","sources":["../../../src/components/dashboard/MobileSidebar.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavMenu.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/NavMenu.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAWD,wBAAgB,OAAO,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,YAAY,2CAwNtE"}
1
+ {"version":3,"file":"NavMenu.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/NavMenu.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAWvC,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAWD,wBAAgB,OAAO,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,YAAY,2CAmKtE"}