@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,11 @@
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 { Settings, ChevronUp, Moon, Sun, Bell, BellOff, LogOut, User } from 'lucide-react';
3
+ import { Bell, BellOff, ChevronUp, LogOut, Settings, User, } from 'lucide-react';
4
+ import { useEffect, useRef, useState } from 'react';
5
+ import { cn } from '../../lib/utils';
5
6
  import { ToggleSwitch } from './ToggleSwitch';
6
- export function SettingsDropup({ userName = 'User', userEmail = 'user@example.com', initialTheme = 'dark', initialNotifications = true, onThemeChange, onNotificationsChange, onLogout, }) {
7
+ export function SettingsDropup({ userName = 'User', userEmail = 'user@example.com', initialNotifications = true, onNotificationsChange, onLogout, }) {
7
8
  const [isOpen, setIsOpen] = useState(false);
8
- const [theme, setTheme] = useState(initialTheme);
9
9
  const [notifications, setNotifications] = useState(initialNotifications);
10
10
  const ref = useRef(null);
11
11
  useEffect(() => {
@@ -17,153 +17,13 @@ export function SettingsDropup({ userName = 'User', userEmail = 'user@example.co
17
17
  document.addEventListener('mousedown', handleClickOutside);
18
18
  return () => document.removeEventListener('mousedown', handleClickOutside);
19
19
  }, []);
20
- const handleThemeToggle = () => {
21
- const newTheme = theme === 'dark' ? 'light' : 'dark';
22
- setTheme(newTheme);
23
- onThemeChange?.(newTheme);
24
- };
25
20
  const handleNotificationsToggle = () => {
26
21
  const newValue = !notifications;
27
22
  setNotifications(newValue);
28
23
  onNotificationsChange?.(newValue);
29
24
  };
30
- return (_jsxs("div", { ref: ref, style: {
31
- width: 247,
32
- left: 16,
33
- bottom: 24,
34
- position: 'absolute',
35
- }, children: [_jsxs("div", { style: {
36
- position: 'absolute',
37
- bottom: 52,
38
- left: 0,
39
- width: 247,
40
- background: 'rgba(10, 5, 20, 0.98)',
41
- backdropFilter: 'blur(20px)',
42
- borderRadius: 12,
43
- border: '1px solid rgba(255, 255, 255, 0.08)',
44
- boxShadow: '0px -8px 32px rgba(0, 0, 0, 0.4)',
45
- overflow: 'hidden',
46
- opacity: isOpen ? 1 : 0,
47
- transform: isOpen ? 'translateY(0) scale(1)' : 'translateY(8px) scale(0.96)',
48
- pointerEvents: isOpen ? 'auto' : 'none',
49
- transition: 'all 0.2s cubic-bezier(0.16, 1, 0.3, 1)',
50
- zIndex: 50,
51
- }, children: [_jsxs("div", { style: {
52
- padding: '14px 12px',
53
- borderBottom: '1px solid rgba(255, 255, 255, 0.06)',
54
- display: 'flex',
55
- alignItems: 'center',
56
- gap: 10,
57
- }, children: [_jsx("div", { style: {
58
- width: 36,
59
- height: 36,
60
- borderRadius: 9999,
61
- background: 'rgba(139, 92, 246, 0.2)',
62
- display: 'flex',
63
- alignItems: 'center',
64
- justifyContent: 'center',
65
- border: '1px solid rgba(139, 92, 246, 0.3)',
66
- flexShrink: 0,
67
- }, children: _jsx(User, { size: 18, color: "#A78BFA", strokeWidth: 1.5 }) }), _jsxs("div", { style: { overflow: 'hidden' }, children: [_jsx("div", { style: {
68
- color: 'white',
69
- fontSize: 13,
70
- fontWeight: 500,
71
- fontFamily: 'Sora, sans-serif',
72
- whiteSpace: 'nowrap',
73
- overflow: 'hidden',
74
- textOverflow: 'ellipsis',
75
- }, children: userName }), _jsx("div", { style: {
76
- color: '#6B7280',
77
- fontSize: 11,
78
- fontFamily: 'Sora, sans-serif',
79
- whiteSpace: 'nowrap',
80
- overflow: 'hidden',
81
- textOverflow: 'ellipsis',
82
- }, children: userEmail })] })] }), _jsxs("div", { style: { padding: '6px' }, children: [_jsxs("button", { type: "button", onClick: handleThemeToggle, style: {
83
- width: '100%',
84
- padding: '10px 8px',
85
- display: 'flex',
86
- alignItems: 'center',
87
- justifyContent: 'space-between',
88
- background: 'transparent',
89
- border: 'none',
90
- borderRadius: 8,
91
- cursor: 'pointer',
92
- transition: 'background 0.15s ease',
93
- }, onMouseEnter: (e) => {
94
- e.currentTarget.style.background = 'rgba(255, 255, 255, 0.04)';
95
- }, onMouseLeave: (e) => {
96
- e.currentTarget.style.background = 'transparent';
97
- }, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 10 }, children: [theme === 'dark' ? (_jsx(Moon, { size: 15, color: "#A78BFA", strokeWidth: 2 })) : (_jsx(Sun, { size: 15, color: "#FBBF24", strokeWidth: 2 })), _jsx("span", { style: { color: '#D1D5DB', fontSize: 13, fontFamily: 'Sora, sans-serif' }, children: "Theme" })] }), _jsx("div", { style: {
98
- padding: '3px 8px',
99
- background: 'rgba(139, 92, 246, 0.15)',
100
- borderRadius: 5,
101
- color: '#C4B5FD',
102
- fontSize: 11,
103
- fontWeight: 500,
104
- fontFamily: 'Sora, sans-serif',
105
- }, children: theme === 'dark' ? 'Dark' : 'Light' })] }), _jsxs("button", { type: "button", onClick: handleNotificationsToggle, style: {
106
- width: '100%',
107
- padding: '10px 8px',
108
- display: 'flex',
109
- alignItems: 'center',
110
- justifyContent: 'space-between',
111
- background: 'transparent',
112
- border: 'none',
113
- borderRadius: 8,
114
- cursor: 'pointer',
115
- transition: 'background 0.15s ease',
116
- }, onMouseEnter: (e) => {
117
- e.currentTarget.style.background = 'rgba(255, 255, 255, 0.04)';
118
- }, onMouseLeave: (e) => {
119
- e.currentTarget.style.background = 'transparent';
120
- }, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 10 }, children: [notifications ? (_jsx(Bell, { size: 15, color: "#10B981", strokeWidth: 2 })) : (_jsx(BellOff, { size: 15, color: "#6B7280", strokeWidth: 2 })), _jsx("span", { style: { color: '#D1D5DB', fontSize: 13, fontFamily: 'Sora, sans-serif' }, children: "Notifications" })] }), _jsx(ToggleSwitch, { enabled: notifications, size: "sm" })] })] }), onLogout && (_jsx("div", { style: {
121
- padding: '6px',
122
- borderTop: '1px solid rgba(255, 255, 255, 0.06)',
123
- }, children: _jsxs("button", { type: "button", onClick: onLogout, style: {
124
- width: '100%',
125
- padding: '10px 8px',
126
- display: 'flex',
127
- alignItems: 'center',
128
- gap: 10,
129
- background: 'transparent',
130
- border: 'none',
131
- borderRadius: 8,
132
- cursor: 'pointer',
133
- transition: 'background 0.15s ease',
134
- }, onMouseEnter: (e) => {
135
- e.currentTarget.style.background = 'rgba(239, 68, 68, 0.1)';
136
- }, onMouseLeave: (e) => {
137
- e.currentTarget.style.background = 'transparent';
138
- }, children: [_jsx(LogOut, { size: 15, color: "#EF4444", strokeWidth: 2 }), _jsx("span", { style: { color: '#EF4444', fontSize: 13, fontFamily: 'Sora, sans-serif' }, children: "Sign out" })] }) }))] }), _jsx("div", { style: { borderTop: '1px rgba(255, 255, 255, 0.08) solid', paddingTop: 12 }, children: _jsxs("button", { type: "button", onClick: () => setIsOpen(!isOpen), "aria-label": "Open settings", "aria-expanded": isOpen, style: {
139
- width: 247,
140
- height: 41,
141
- borderRadius: 8,
142
- background: isOpen ? 'rgba(255, 255, 255, 0.06)' : 'transparent',
143
- border: 'none',
144
- cursor: 'pointer',
145
- transition: 'background 0.15s ease',
146
- display: 'flex',
147
- alignItems: 'center',
148
- paddingLeft: 12,
149
- gap: 12,
150
- }, onMouseEnter: (e) => {
151
- if (!isOpen)
152
- e.currentTarget.style.background = 'rgba(255, 255, 255, 0.04)';
153
- }, onMouseLeave: (e) => {
154
- if (!isOpen)
155
- e.currentTarget.style.background = 'transparent';
156
- }, children: [_jsx("div", { style: { width: 20, height: 24, display: 'flex', alignItems: 'center', justifyContent: 'center' }, children: _jsx(Settings, { size: 15, color: isOpen ? '#A78BFA' : '#6B7280', strokeWidth: 2 }) }), _jsx("span", { style: {
157
- color: isOpen ? 'white' : '#9CA3AF',
158
- fontSize: 14,
159
- fontFamily: 'Sora, sans-serif',
160
- fontWeight: 400,
161
- lineHeight: '21px',
162
- flex: 1,
163
- textAlign: 'left',
164
- }, children: "Settings" }), _jsx("div", { style: { width: 18, height: 22, display: 'flex', alignItems: 'center', justifyContent: 'center', marginRight: 12 }, children: _jsx(ChevronUp, { size: 12, color: isOpen ? '#A78BFA' : '#4B5563', strokeWidth: 2, style: {
165
- transform: isOpen ? 'rotate(180deg)' : 'rotate(0deg)',
166
- transition: 'transform 0.2s ease',
167
- } }) })] }) })] }));
25
+ return (_jsxs("div", { ref: ref, className: "w-[247px] absolute left-4 bottom-6", children: [_jsxs("div", { className: cn('absolute bottom-[52px] left-0 w-[247px]', 'bg-[rgba(10,5,20,0.98)] backdrop-blur-[20px] rounded-xl', 'border border-white/[0.08] shadow-[0px_-8px_32px_rgba(0,0,0,0.4)]', 'overflow-hidden z-50 transition-all duration-200 ease-[cubic-bezier(0.16,1,0.3,1)]', isOpen
26
+ ? 'opacity-100 translate-y-0 scale-100 pointer-events-auto'
27
+ : 'opacity-0 translate-y-2 scale-[0.96] pointer-events-none'), children: [_jsxs("div", { className: "p-3 px-3 border-b border-white/[0.06] flex items-center gap-2.5", children: [_jsx("div", { className: "w-9 h-9 rounded-full bg-violet-500/20 flex items-center justify-center border border-violet-500/30 shrink-0", children: _jsx(User, { size: 18, className: "text-violet-400", strokeWidth: 1.5 }) }), _jsxs("div", { className: "overflow-hidden", children: [_jsx("div", { className: "text-white text-[13px] font-medium font-[Sora,sans-serif] truncate", children: userName }), _jsx("div", { className: "text-gray-500 text-[11px] font-[Sora,sans-serif] truncate", children: userEmail })] })] }), _jsx("div", { className: "p-1.5", children: _jsxs("button", { type: "button", onClick: handleNotificationsToggle, className: "w-full py-2.5 px-2 flex items-center justify-between bg-transparent border-none rounded-lg cursor-pointer transition-colors hover:bg-white/[0.04]", children: [_jsxs("div", { className: "flex items-center gap-2.5", children: [notifications ? (_jsx(Bell, { size: 15, className: "text-emerald-500", strokeWidth: 2 })) : (_jsx(BellOff, { size: 15, className: "text-gray-500", strokeWidth: 2 })), _jsx("span", { className: "text-gray-300 text-[13px] font-[Sora,sans-serif]", children: "Notifications" })] }), _jsx(ToggleSwitch, { enabled: notifications, onChange: handleNotificationsToggle, size: "sm", "aria-label": "Toggle notifications" })] }) }), onLogout && (_jsx("div", { className: "p-1.5 border-t border-white/[0.06]", children: _jsxs("button", { type: "button", onClick: onLogout, className: "w-full py-2.5 px-2 flex items-center gap-2.5 bg-transparent border-none rounded-lg cursor-pointer transition-colors hover:bg-red-500/10", children: [_jsx(LogOut, { size: 15, className: "text-red-500", strokeWidth: 2 }), _jsx("span", { className: "text-red-500 text-[13px] font-[Sora,sans-serif]", children: "Sign out" })] }) }))] }), _jsx("div", { className: "border-t border-white/[0.08] pt-3", children: _jsxs("button", { type: "button", onClick: () => setIsOpen(!isOpen), "aria-label": "Open settings", "aria-expanded": isOpen, className: cn('w-[247px] h-[41px] rounded-lg border-none cursor-pointer transition-colors', 'flex items-center pl-3 gap-3', isOpen ? 'bg-white/[0.06]' : 'bg-transparent hover:bg-white/[0.04]'), children: [_jsx("div", { className: "w-5 h-6 flex items-center justify-center", children: _jsx(Settings, { size: 15, className: cn(isOpen ? 'text-violet-400' : 'text-gray-500'), strokeWidth: 2 }) }), _jsx("span", { className: cn('text-sm font-normal leading-[21px] font-[Sora,sans-serif] flex-1 text-left', isOpen ? 'text-white' : 'text-gray-400'), children: "Settings" }), _jsx("div", { className: "w-[18px] h-[22px] flex items-center justify-center mr-3", children: _jsx(ChevronUp, { size: 12, className: cn('transition-transform duration-200', isOpen ? 'text-violet-400 rotate-180' : 'text-gray-600'), strokeWidth: 2 }) })] }) })] }));
168
28
  }
169
29
  //# sourceMappingURL=SettingsDropup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsDropup.js","sourceRoot":"","sources":["../../../src/components/dashboard/SettingsDropup.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SettingsDropup.js","sourceRoot":"","sources":["../../../src/components/dashboard/SettingsDropup.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import type { SettingsModalProps } from './types';
2
2
  export type { SettingsModalProps };
3
- export declare function SettingsModal({ isOpen, onClose, userEmail, userName, onLogout, onThemeChange, onNotificationsChange, initialTheme, initialNotifications, }: SettingsModalProps): import("react/jsx-runtime").JSX.Element | null;
3
+ export declare function SettingsModal({ isOpen, onClose, userEmail, userName, onLogout, onNotificationsChange, initialNotifications, }: SettingsModalProps): import("react/jsx-runtime").JSX.Element | null;
4
4
  //# sourceMappingURL=SettingsModal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsModal.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/SettingsModal.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,OAAO,EACP,SAA8B,EAC9B,QAAiB,EACjB,QAAQ,EACR,aAAa,EACb,qBAAqB,EACrB,YAAqB,EACrB,oBAA2B,GAC5B,EAAE,kBAAkB,kDA2ZpB"}
1
+ {"version":3,"file":"SettingsModal.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/SettingsModal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAMlD,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,OAAO,EACP,SAA8B,EAC9B,QAAiB,EACjB,QAAQ,EACR,qBAAqB,EACrB,oBAA2B,GAC5B,EAAE,kBAAkB,kDA2KpB"}
@@ -1,20 +1,20 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
- import { useState, useEffect, useRef, useCallback } from 'react';
4
- import { X, Moon, Sun, Bell, BellOff, Globe, User, LogOut } from 'lucide-react';
5
- export function SettingsModal({ isOpen, onClose, userEmail = 'user@example.com', userName = 'User', onLogout, onThemeChange, onNotificationsChange, initialTheme = 'dark', initialNotifications = true, }) {
6
- const [theme, setTheme] = useState(initialTheme);
3
+ import { Bell, BellOff, Globe, LogOut, User, X } from 'lucide-react';
4
+ import { useCallback, useEffect, useRef, useState } from 'react';
5
+ import { cn } from '../../lib/utils';
6
+ import { ToggleSwitch } from './ToggleSwitch';
7
+ export function SettingsModal({ isOpen, onClose, userEmail = 'user@example.com', userName = 'User', onLogout, onNotificationsChange, initialNotifications = true, }) {
7
8
  const [notifications, setNotifications] = useState(initialNotifications);
8
9
  const [isClosing, setIsClosing] = useState(false);
9
10
  const closeTimeoutRef = useRef(null);
11
+ const modalRef = useRef(null);
10
12
  useEffect(() => {
11
13
  if (isOpen) {
12
14
  setIsClosing(false);
15
+ modalRef.current?.focus();
13
16
  }
14
17
  }, [isOpen]);
15
- useEffect(() => {
16
- setTheme(initialTheme);
17
- }, [initialTheme]);
18
18
  useEffect(() => {
19
19
  setNotifications(initialNotifications);
20
20
  }, [initialNotifications]);
@@ -42,11 +42,6 @@ export function SettingsModal({ isOpen, onClose, userEmail = 'user@example.com',
42
42
  document.addEventListener('keydown', handleKeyDown);
43
43
  return () => document.removeEventListener('keydown', handleKeyDown);
44
44
  }, [isOpen, handleClose]);
45
- const handleThemeToggle = () => {
46
- const newTheme = theme === 'dark' ? 'light' : 'dark';
47
- setTheme(newTheme);
48
- onThemeChange?.(newTheme);
49
- };
50
45
  const handleNotificationsToggle = () => {
51
46
  const newValue = !notifications;
52
47
  setNotifications(newValue);
@@ -54,187 +49,8 @@ export function SettingsModal({ isOpen, onClose, userEmail = 'user@example.com',
54
49
  };
55
50
  if (!isOpen)
56
51
  return null;
57
- return (_jsxs(_Fragment, { children: [_jsx("div", { role: "presentation", "aria-hidden": "true", onClick: handleClose, style: {
58
- position: 'fixed',
59
- inset: 0,
60
- background: 'rgba(0, 0, 0, 0.6)',
61
- backdropFilter: 'blur(4px)',
62
- zIndex: 100,
63
- opacity: isClosing ? 0 : 1,
64
- transition: 'opacity 0.2s ease',
65
- } }), _jsxs("div", { role: "dialog", "aria-modal": "true", "aria-labelledby": "settings-modal-title", style: {
66
- position: 'fixed',
67
- top: '50%',
68
- left: '50%',
69
- transform: isClosing
70
- ? 'translate(-50%, -50%) scale(0.95)'
71
- : 'translate(-50%, -50%) scale(1)',
72
- width: 400,
73
- maxWidth: '90vw',
74
- background: 'rgba(10, 5, 20, 0.98)',
75
- backdropFilter: 'blur(20px)',
76
- borderRadius: 16,
77
- border: '1px solid rgba(255, 255, 255, 0.08)',
78
- boxShadow: '0px 24px 48px rgba(0, 0, 0, 0.5), 0px 0px 1px rgba(139, 92, 246, 0.3)',
79
- zIndex: 101,
80
- opacity: isClosing ? 0 : 1,
81
- transition: 'all 0.2s cubic-bezier(0.16, 1, 0.3, 1)',
82
- }, children: [_jsxs("div", { style: {
83
- display: 'flex',
84
- alignItems: 'center',
85
- justifyContent: 'space-between',
86
- padding: '20px 24px',
87
- borderBottom: '1px solid rgba(255, 255, 255, 0.06)',
88
- }, children: [_jsx("h2", { id: "settings-modal-title", style: {
89
- color: 'white',
90
- fontSize: 18,
91
- fontWeight: 600,
92
- fontFamily: 'Sora, sans-serif',
93
- margin: 0,
94
- }, children: "Settings" }), _jsx("button", { type: "button", onClick: handleClose, "aria-label": "Close settings", style: {
95
- width: 32,
96
- height: 32,
97
- display: 'flex',
98
- alignItems: 'center',
99
- justifyContent: 'center',
100
- background: 'transparent',
101
- border: 'none',
102
- borderRadius: 8,
103
- cursor: 'pointer',
104
- transition: 'background 0.15s ease',
105
- }, onMouseEnter: (e) => {
106
- e.currentTarget.style.background = 'rgba(255, 255, 255, 0.06)';
107
- }, onMouseLeave: (e) => {
108
- e.currentTarget.style.background = 'transparent';
109
- }, children: _jsx(X, { size: 18, color: "#6B7280", strokeWidth: 2 }) })] }), _jsx("div", { style: {
110
- padding: '20px 24px',
111
- borderBottom: '1px solid rgba(255, 255, 255, 0.06)',
112
- }, children: _jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 12 }, children: [_jsx("div", { style: {
113
- width: 48,
114
- height: 48,
115
- borderRadius: 9999,
116
- background: 'rgba(139, 92, 246, 0.2)',
117
- display: 'flex',
118
- alignItems: 'center',
119
- justifyContent: 'center',
120
- border: '1px solid rgba(139, 92, 246, 0.3)',
121
- }, children: _jsx(User, { size: 24, color: "#A78BFA", strokeWidth: 1.5 }) }), _jsxs("div", { children: [_jsx("div", { style: {
122
- color: 'white',
123
- fontSize: 14,
124
- fontWeight: 500,
125
- fontFamily: 'Sora, sans-serif',
126
- }, children: userName }), _jsx("div", { style: {
127
- color: '#6B7280',
128
- fontSize: 12,
129
- fontFamily: 'Sora, sans-serif',
130
- marginTop: 2,
131
- }, children: userEmail })] })] }) }), _jsxs("div", { style: { padding: '12px 16px' }, children: [_jsxs("button", { type: "button", onClick: handleThemeToggle, style: {
132
- width: '100%',
133
- padding: '14px 12px',
134
- display: 'flex',
135
- alignItems: 'center',
136
- justifyContent: 'space-between',
137
- background: 'transparent',
138
- border: 'none',
139
- borderRadius: 10,
140
- cursor: 'pointer',
141
- transition: 'background 0.15s ease',
142
- }, onMouseEnter: (e) => {
143
- e.currentTarget.style.background = 'rgba(255, 255, 255, 0.04)';
144
- }, onMouseLeave: (e) => {
145
- e.currentTarget.style.background = 'transparent';
146
- }, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 12 }, children: [theme === 'dark' ? (_jsx(Moon, { size: 18, color: "#A78BFA", strokeWidth: 2 })) : (_jsx(Sun, { size: 18, color: "#FBBF24", strokeWidth: 2 })), _jsx("span", { style: {
147
- color: '#D1D5DB',
148
- fontSize: 14,
149
- fontFamily: 'Sora, sans-serif',
150
- }, children: "Theme" })] }), _jsx("div", { style: {
151
- padding: '4px 10px',
152
- background: 'rgba(139, 92, 246, 0.15)',
153
- borderRadius: 6,
154
- color: '#C4B5FD',
155
- fontSize: 12,
156
- fontWeight: 500,
157
- fontFamily: 'Sora, sans-serif',
158
- }, children: theme === 'dark' ? 'Dark' : 'Light' })] }), _jsxs("button", { type: "button", onClick: handleNotificationsToggle, style: {
159
- width: '100%',
160
- padding: '14px 12px',
161
- display: 'flex',
162
- alignItems: 'center',
163
- justifyContent: 'space-between',
164
- background: 'transparent',
165
- border: 'none',
166
- borderRadius: 10,
167
- cursor: 'pointer',
168
- transition: 'background 0.15s ease',
169
- }, onMouseEnter: (e) => {
170
- e.currentTarget.style.background = 'rgba(255, 255, 255, 0.04)';
171
- }, onMouseLeave: (e) => {
172
- e.currentTarget.style.background = 'transparent';
173
- }, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 12 }, children: [notifications ? (_jsx(Bell, { size: 18, color: "#10B981", strokeWidth: 2 })) : (_jsx(BellOff, { size: 18, color: "#6B7280", strokeWidth: 2 })), _jsx("span", { style: {
174
- color: '#D1D5DB',
175
- fontSize: 14,
176
- fontFamily: 'Sora, sans-serif',
177
- }, children: "Notifications" })] }), _jsx("div", { style: {
178
- width: 44,
179
- height: 24,
180
- borderRadius: 12,
181
- background: notifications ? 'rgba(16, 185, 129, 0.3)' : 'rgba(107, 114, 128, 0.3)',
182
- padding: 2,
183
- transition: 'background 0.2s ease',
184
- position: 'relative',
185
- }, children: _jsx("div", { style: {
186
- width: 20,
187
- height: 20,
188
- borderRadius: 10,
189
- background: notifications ? '#10B981' : '#4B5563',
190
- transition: 'all 0.2s ease',
191
- transform: notifications ? 'translateX(20px)' : 'translateX(0)',
192
- } }) })] }), _jsxs("button", { type: "button", disabled: true, "aria-disabled": "true", style: {
193
- width: '100%',
194
- padding: '14px 12px',
195
- display: 'flex',
196
- alignItems: 'center',
197
- justifyContent: 'space-between',
198
- background: 'transparent',
199
- border: 'none',
200
- borderRadius: 10,
201
- cursor: 'not-allowed',
202
- opacity: 0.6,
203
- transition: 'background 0.15s ease',
204
- }, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 12 }, children: [_jsx(Globe, { size: 18, color: "#6B7280", strokeWidth: 2 }), _jsx("span", { style: {
205
- color: '#D1D5DB',
206
- fontSize: 14,
207
- fontFamily: 'Sora, sans-serif',
208
- }, children: "Language" })] }), _jsx("div", { style: {
209
- color: '#6B7280',
210
- fontSize: 13,
211
- fontFamily: 'Sora, sans-serif',
212
- }, children: "English" })] })] }), onLogout && (_jsx("div", { style: {
213
- padding: '12px 16px 20px',
214
- borderTop: '1px solid rgba(255, 255, 255, 0.06)',
215
- }, children: _jsxs("button", { type: "button", onClick: onLogout, style: {
216
- width: '100%',
217
- padding: '12px',
218
- display: 'flex',
219
- alignItems: 'center',
220
- justifyContent: 'center',
221
- gap: 8,
222
- background: 'rgba(239, 68, 68, 0.1)',
223
- border: '1px solid rgba(239, 68, 68, 0.2)',
224
- borderRadius: 10,
225
- cursor: 'pointer',
226
- transition: 'all 0.15s ease',
227
- }, onMouseEnter: (e) => {
228
- e.currentTarget.style.background = 'rgba(239, 68, 68, 0.15)';
229
- e.currentTarget.style.borderColor = 'rgba(239, 68, 68, 0.3)';
230
- }, onMouseLeave: (e) => {
231
- e.currentTarget.style.background = 'rgba(239, 68, 68, 0.1)';
232
- e.currentTarget.style.borderColor = 'rgba(239, 68, 68, 0.2)';
233
- }, children: [_jsx(LogOut, { size: 16, color: "#EF4444", strokeWidth: 2 }), _jsx("span", { style: {
234
- color: '#EF4444',
235
- fontSize: 14,
236
- fontWeight: 500,
237
- fontFamily: 'Sora, sans-serif',
238
- }, children: "Sign out" })] }) }))] })] }));
52
+ return (_jsxs(_Fragment, { children: [_jsx("div", { role: "presentation", "aria-hidden": "true", onClick: handleClose, className: cn('fixed inset-0 bg-black/60 backdrop-blur-sm z-[100] transition-opacity duration-200', isClosing ? 'opacity-0' : 'opacity-100') }), _jsxs("div", { ref: modalRef, role: "dialog", "aria-modal": "true", "aria-labelledby": "settings-modal-title", tabIndex: -1, className: cn('fixed top-1/2 left-1/2 w-[400px] max-w-[90vw] z-[101]', 'bg-[rgba(10,5,20,0.98)] backdrop-blur-[20px] rounded-2xl', 'border border-white/[0.08]', 'shadow-[0px_24px_48px_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)]', isClosing
53
+ ? 'opacity-0 -translate-x-1/2 -translate-y-1/2 scale-95'
54
+ : 'opacity-100 -translate-x-1/2 -translate-y-1/2 scale-100'), children: [_jsxs("div", { className: "flex items-center justify-between px-6 py-5 border-b border-white/[0.06]", children: [_jsx("h2", { id: "settings-modal-title", className: "text-white text-lg font-semibold font-[Sora,sans-serif] m-0", children: "Settings" }), _jsx("button", { type: "button", onClick: handleClose, "aria-label": "Close settings", className: "w-8 h-8 flex items-center justify-center bg-transparent border-none rounded-lg cursor-pointer transition-colors hover:bg-white/[0.06]", children: _jsx(X, { size: 18, className: "text-gray-500", strokeWidth: 2 }) })] }), _jsx("div", { className: "px-6 py-5 border-b border-white/[0.06]", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "w-12 h-12 rounded-full bg-violet-500/20 flex items-center justify-center border border-violet-500/30", children: _jsx(User, { size: 24, className: "text-violet-400", strokeWidth: 1.5 }) }), _jsxs("div", { children: [_jsx("div", { className: "text-white text-sm font-medium font-[Sora,sans-serif]", children: userName }), _jsx("div", { className: "text-gray-500 text-xs font-[Sora,sans-serif] mt-0.5", children: userEmail })] })] }) }), _jsxs("div", { className: "p-3 px-4", children: [_jsxs("button", { type: "button", onClick: handleNotificationsToggle, className: "w-full px-3 py-3.5 flex items-center justify-between bg-transparent border-none rounded-[10px] cursor-pointer transition-colors hover:bg-white/[0.04]", children: [_jsxs("div", { className: "flex items-center gap-3", children: [notifications ? (_jsx(Bell, { size: 18, className: "text-emerald-500", strokeWidth: 2 })) : (_jsx(BellOff, { size: 18, className: "text-gray-500", strokeWidth: 2 })), _jsx("span", { className: "text-gray-300 text-sm font-[Sora,sans-serif]", children: "Notifications" })] }), _jsx(ToggleSwitch, { enabled: notifications, onChange: handleNotificationsToggle, "aria-label": "Toggle notifications" })] }), _jsxs("button", { type: "button", disabled: true, "aria-disabled": "true", className: "w-full px-3 py-3.5 flex items-center justify-between bg-transparent border-none rounded-[10px] cursor-not-allowed opacity-60", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Globe, { size: 18, className: "text-gray-500", strokeWidth: 2 }), _jsx("span", { className: "text-gray-300 text-sm font-[Sora,sans-serif]", children: "Language" })] }), _jsx("div", { className: "text-gray-500 text-[13px] font-[Sora,sans-serif]", children: "English" })] })] }), onLogout && (_jsx("div", { className: "px-4 pt-3 pb-5 border-t border-white/[0.06]", children: _jsxs("button", { type: "button", onClick: onLogout, className: "w-full p-3 flex items-center justify-center gap-2 bg-red-500/10 border border-red-500/20 rounded-[10px] cursor-pointer transition-all hover:bg-red-500/15 hover:border-red-500/30", children: [_jsx(LogOut, { size: 16, className: "text-red-500", strokeWidth: 2 }), _jsx("span", { className: "text-red-500 text-sm font-medium font-[Sora,sans-serif]", children: "Sign out" })] }) }))] })] }));
239
55
  }
240
56
  //# sourceMappingURL=SettingsModal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsModal.js","sourceRoot":"","sources":["../../../src/components/dashboard/SettingsModal.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SettingsModal.js","sourceRoot":"","sources":["../../../src/components/dashboard/SettingsModal.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SidePanel.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/SidePanel.tsx"],"names":[],"mappings":"AAOA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD,wBAAgB,SAAS,CAAC,EACxB,MAAM,EACN,OAAO,EACP,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,KAAY,EACZ,YAAmB,EACnB,SAAS,GACV,EAAE,cAAc,2CAkGhB"}
1
+ {"version":3,"file":"SidePanel.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/SidePanel.tsx"],"names":[],"mappings":"AASA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD,wBAAgB,SAAS,CAAC,EACxB,MAAM,EACN,OAAO,EACP,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,KAAY,EACZ,YAAmB,EACnB,SAAS,GACV,EAAE,cAAc,2CA8IhB"}
@@ -3,6 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
3
3
  import { X } from 'lucide-react';
4
4
  import { useCallback, useEffect, useRef } from 'react';
5
5
  import { cn } from '../../lib/utils';
6
+ const FOCUSABLE_ELEMENTS = 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])';
6
7
  const widthClasses = {
7
8
  sm: 'w-[380px]',
8
9
  md: 'w-[480px]',
@@ -10,28 +11,61 @@ const widthClasses = {
10
11
  };
11
12
  export function SidePanel({ isOpen, onClose, title, subtitle, children, width = 'md', showBackdrop = true, className, }) {
12
13
  const scrollContainerRef = useRef(null);
13
- const handleEscape = useCallback((e) => {
14
- if (e.key === 'Escape')
14
+ const panelRef = useRef(null);
15
+ const previousActiveElement = useRef(null);
16
+ const handleKeyDown = useCallback((e) => {
17
+ if (e.key === 'Escape') {
15
18
  onClose();
19
+ return;
20
+ }
21
+ // Focus trap
22
+ if (e.key === 'Tab' && panelRef.current) {
23
+ const focusableElements = panelRef.current.querySelectorAll(FOCUSABLE_ELEMENTS);
24
+ const firstElement = focusableElements[0];
25
+ const lastElement = focusableElements[focusableElements.length - 1];
26
+ if (e.shiftKey && document.activeElement === firstElement) {
27
+ e.preventDefault();
28
+ lastElement?.focus();
29
+ }
30
+ else if (!e.shiftKey && document.activeElement === lastElement) {
31
+ e.preventDefault();
32
+ firstElement?.focus();
33
+ }
34
+ }
16
35
  }, [onClose]);
17
36
  useEffect(() => {
18
37
  if (isOpen) {
19
- document.addEventListener('keydown', handleEscape);
38
+ previousActiveElement.current = document.activeElement;
39
+ document.addEventListener('keydown', handleKeyDown);
40
+ // Focus first focusable element in panel
41
+ setTimeout(() => {
42
+ if (panelRef.current) {
43
+ const focusableElements = panelRef.current.querySelectorAll(FOCUSABLE_ELEMENTS);
44
+ focusableElements[0]?.focus();
45
+ }
46
+ }, 0);
47
+ }
48
+ else {
49
+ // Restore focus to previous element
50
+ previousActiveElement.current?.focus();
20
51
  }
21
52
  return () => {
22
- document.removeEventListener('keydown', handleEscape);
53
+ document.removeEventListener('keydown', handleKeyDown);
23
54
  };
24
- }, [isOpen, handleEscape]);
55
+ }, [isOpen, handleKeyDown]);
25
56
  useEffect(() => {
26
57
  if (isOpen && scrollContainerRef.current) {
27
58
  scrollContainerRef.current.scrollTop = 0;
28
59
  }
29
60
  }, [isOpen]);
30
- return (_jsxs(_Fragment, { children: [showBackdrop && (_jsx("div", { className: cn('fixed inset-0 z-[200] transition-opacity duration-300', isOpen ? 'opacity-100' : 'opacity-0 pointer-events-none'), style: { background: 'rgba(0, 0, 0, 0.60)', backdropFilter: 'blur(4px)' }, onClick: onClose })), _jsxs("div", { className: cn('fixed top-0 right-0 h-full z-[201] flex flex-col transition-transform duration-300 ease-out', widthClasses[width], isOpen ? 'translate-x-0' : 'translate-x-full', className), style: {
61
+ return (_jsxs(_Fragment, { children: [showBackdrop && (_jsx("div", { className: cn('fixed inset-0 z-[200] transition-opacity duration-300', isOpen ? 'opacity-100' : 'opacity-0 pointer-events-none'), style: {
62
+ background: 'rgba(0, 0, 0, 0.60)',
63
+ backdropFilter: 'blur(4px)',
64
+ }, onClick: onClose })), _jsxs("div", { ref: panelRef, role: "dialog", "aria-modal": "true", "aria-labelledby": title ? 'side-panel-title' : undefined, className: cn('fixed top-0 right-0 h-full z-[201] flex flex-col transition-transform duration-300 ease-out', widthClasses[width], isOpen ? 'translate-x-0' : 'translate-x-full', className), style: {
31
65
  background: 'linear-gradient(180deg, rgba(10, 5, 20, 0.98) 0%, rgba(5, 2, 12, 0.99) 100%)',
32
66
  borderLeft: '1px solid rgba(255, 255, 255, 0.08)',
33
67
  boxShadow: '-20px 0 60px rgba(0, 0, 0, 0.5)',
34
- }, children: [_jsxs("div", { className: "flex-shrink-0 flex items-start justify-between p-6 border-b", style: { borderColor: 'rgba(255, 255, 255, 0.08)' }, children: [_jsxs("div", { className: "flex-1 min-w-0 pr-4", children: [title && (_jsx("h2", { className: "text-lg font-semibold truncate", style: { color: '#F3F4F6' }, children: title })), subtitle && (_jsx("p", { className: "text-sm mt-1 truncate", style: { color: '#6B7280' }, children: subtitle }))] }), _jsx("button", { type: "button", onClick: onClose, className: "p-2 -m-2 rounded-lg transition-colors hover:bg-white/5", "aria-label": "Close panel", children: _jsx(X, { size: 20, color: "#6B7280" }) })] }), _jsx("div", { ref: scrollContainerRef, className: "side-panel-content flex-1 overflow-y-auto overscroll-contain", "data-lenis-prevent": true, children: children }), _jsx("style", { children: `
68
+ }, children: [_jsxs("div", { className: "flex-shrink-0 flex items-start justify-between p-6 border-b", style: { borderColor: 'rgba(255, 255, 255, 0.08)' }, children: [_jsxs("div", { className: "flex-1 min-w-0 pr-4", children: [title && (_jsx("h2", { id: "side-panel-title", className: "text-lg font-semibold truncate text-gray-100", children: title })), subtitle && (_jsx("p", { className: "text-sm mt-1 truncate text-gray-500", children: subtitle }))] }), _jsx("button", { type: "button", onClick: onClose, className: "p-2 -m-2 rounded-lg transition-colors hover:bg-white/5", "aria-label": "Close panel", children: _jsx(X, { size: 20, color: "#6B7280" }) })] }), _jsx("div", { ref: scrollContainerRef, className: "side-panel-content flex-1 overflow-y-auto overscroll-contain", "data-lenis-prevent": true, children: children }), _jsx("style", { children: `
35
69
  .side-panel-content {
36
70
  scroll-behavior: smooth;
37
71
  -ms-overflow-style: none;