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

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 (291) hide show
  1. package/dist/components/backgrounds/AnimatedBackground.d.ts.map +1 -0
  2. package/dist/components/backgrounds/AnimatedBackground.js.map +1 -0
  3. package/dist/components/backgrounds/Globe.d.ts.map +1 -0
  4. package/dist/components/backgrounds/Globe.js.map +1 -0
  5. package/dist/components/backgrounds/GradientBackground.d.ts.map +1 -0
  6. package/dist/components/backgrounds/GradientBackground.js.map +1 -0
  7. package/dist/components/{Button.d.ts → buttons/Button.d.ts} +5 -2
  8. package/dist/components/buttons/Button.d.ts.map +1 -0
  9. package/dist/components/buttons/Button.js +41 -0
  10. package/dist/components/buttons/Button.js.map +1 -0
  11. package/dist/components/buttons/CompanyPageButton.d.ts +10 -0
  12. package/dist/components/buttons/CompanyPageButton.d.ts.map +1 -0
  13. package/dist/components/buttons/CompanyPageButton.js +8 -0
  14. package/dist/components/buttons/CompanyPageButton.js.map +1 -0
  15. package/dist/components/cards/Card.d.ts.map +1 -0
  16. package/dist/components/{Card.js → cards/Card.js} +1 -1
  17. package/dist/components/cards/Card.js.map +1 -0
  18. package/dist/components/cards/CheckoutSummary.d.ts +38 -0
  19. package/dist/components/cards/CheckoutSummary.d.ts.map +1 -0
  20. package/dist/components/cards/CheckoutSummary.js +54 -0
  21. package/dist/components/cards/CheckoutSummary.js.map +1 -0
  22. package/dist/components/cards/ConnectionOption.d.ts +13 -0
  23. package/dist/components/cards/ConnectionOption.d.ts.map +1 -0
  24. package/dist/components/cards/ConnectionOption.js +22 -0
  25. package/dist/components/cards/ConnectionOption.js.map +1 -0
  26. package/dist/components/cards/InvitationDetailsCard.d.ts +8 -0
  27. package/dist/components/cards/InvitationDetailsCard.d.ts.map +1 -0
  28. package/dist/components/cards/InvitationDetailsCard.js +5 -0
  29. package/dist/components/cards/InvitationDetailsCard.js.map +1 -0
  30. package/dist/components/cards/OrderSummaryCard.d.ts +29 -0
  31. package/dist/components/cards/OrderSummaryCard.d.ts.map +1 -0
  32. package/dist/components/cards/OrderSummaryCard.js +8 -0
  33. package/dist/components/cards/OrderSummaryCard.js.map +1 -0
  34. package/dist/components/cards/PendingInviteCard.d.ts +26 -0
  35. package/dist/components/cards/PendingInviteCard.d.ts.map +1 -0
  36. package/dist/components/cards/PendingInviteCard.js +63 -0
  37. package/dist/components/cards/PendingInviteCard.js.map +1 -0
  38. package/dist/components/cards/PlanCard.d.ts +50 -0
  39. package/dist/components/cards/PlanCard.d.ts.map +1 -0
  40. package/dist/components/cards/PlanCard.js +40 -0
  41. package/dist/components/cards/PlanCard.js.map +1 -0
  42. package/dist/components/cards/RunAgentCard.d.ts +9 -0
  43. package/dist/components/cards/RunAgentCard.d.ts.map +1 -0
  44. package/dist/components/cards/RunAgentCard.js +15 -0
  45. package/dist/components/cards/RunAgentCard.js.map +1 -0
  46. package/dist/components/cards/SyncStatusCard.d.ts +8 -0
  47. package/dist/components/cards/SyncStatusCard.d.ts.map +1 -0
  48. package/dist/components/cards/SyncStatusCard.js +29 -0
  49. package/dist/components/cards/SyncStatusCard.js.map +1 -0
  50. package/dist/components/dashboard/ChatHistorySection.d.ts +4 -0
  51. package/dist/components/dashboard/ChatHistorySection.d.ts.map +1 -0
  52. package/dist/components/dashboard/ChatHistorySection.js +138 -0
  53. package/dist/components/dashboard/ChatHistorySection.js.map +1 -0
  54. package/dist/components/dashboard/DashboardBackground.d.ts +4 -0
  55. package/dist/components/dashboard/DashboardBackground.d.ts.map +1 -0
  56. package/dist/components/dashboard/DashboardBackground.js +85 -0
  57. package/dist/components/dashboard/DashboardBackground.js.map +1 -0
  58. package/dist/components/dashboard/FilterDropdown.d.ts +14 -0
  59. package/dist/components/dashboard/FilterDropdown.d.ts.map +1 -0
  60. package/dist/components/dashboard/FilterDropdown.js +68 -0
  61. package/dist/components/dashboard/FilterDropdown.js.map +1 -0
  62. package/dist/components/dashboard/GlassPanel.d.ts +4 -0
  63. package/dist/components/dashboard/GlassPanel.d.ts.map +1 -0
  64. package/dist/components/dashboard/GlassPanel.js +11 -0
  65. package/dist/components/dashboard/GlassPanel.js.map +1 -0
  66. package/dist/components/dashboard/Header.d.ts +4 -0
  67. package/dist/components/dashboard/Header.d.ts.map +1 -0
  68. package/dist/components/dashboard/Header.js +87 -0
  69. package/dist/components/dashboard/Header.js.map +1 -0
  70. package/dist/components/dashboard/IconBadge.d.ts +12 -0
  71. package/dist/components/dashboard/IconBadge.d.ts.map +1 -0
  72. package/dist/components/dashboard/IconBadge.js +22 -0
  73. package/dist/components/dashboard/IconBadge.js.map +1 -0
  74. package/dist/components/dashboard/ListItem.d.ts +10 -0
  75. package/dist/components/dashboard/ListItem.d.ts.map +1 -0
  76. package/dist/components/dashboard/ListItem.js +13 -0
  77. package/dist/components/dashboard/ListItem.js.map +1 -0
  78. package/dist/components/dashboard/MetricsCard.d.ts +10 -0
  79. package/dist/components/dashboard/MetricsCard.d.ts.map +1 -0
  80. package/dist/components/dashboard/MetricsCard.js +39 -0
  81. package/dist/components/dashboard/MetricsCard.js.map +1 -0
  82. package/dist/components/dashboard/MobileSidebar.d.ts +4 -0
  83. package/dist/components/dashboard/MobileSidebar.d.ts.map +1 -0
  84. package/dist/components/dashboard/MobileSidebar.js +68 -0
  85. package/dist/components/dashboard/MobileSidebar.js.map +1 -0
  86. package/dist/components/dashboard/NavMenu.d.ts +8 -0
  87. package/dist/components/dashboard/NavMenu.d.ts.map +1 -0
  88. package/dist/components/dashboard/NavMenu.js +145 -0
  89. package/dist/components/dashboard/NavMenu.js.map +1 -0
  90. package/dist/components/dashboard/PatternCard.d.ts +16 -0
  91. package/dist/components/dashboard/PatternCard.d.ts.map +1 -0
  92. package/dist/components/dashboard/PatternCard.js +75 -0
  93. package/dist/components/dashboard/PatternCard.js.map +1 -0
  94. package/dist/components/dashboard/SearchInput.d.ts +15 -0
  95. package/dist/components/dashboard/SearchInput.d.ts.map +1 -0
  96. package/dist/components/dashboard/SearchInput.js +41 -0
  97. package/dist/components/dashboard/SearchInput.js.map +1 -0
  98. package/dist/components/dashboard/SectionHeader.d.ts +13 -0
  99. package/dist/components/dashboard/SectionHeader.d.ts.map +1 -0
  100. package/dist/components/dashboard/SectionHeader.js +22 -0
  101. package/dist/components/dashboard/SectionHeader.js.map +1 -0
  102. package/dist/components/dashboard/SettingsDropup.d.ts +11 -0
  103. package/dist/components/dashboard/SettingsDropup.d.ts.map +1 -0
  104. package/dist/components/dashboard/SettingsDropup.js +169 -0
  105. package/dist/components/dashboard/SettingsDropup.js.map +1 -0
  106. package/dist/components/dashboard/SettingsModal.d.ts +4 -0
  107. package/dist/components/dashboard/SettingsModal.d.ts.map +1 -0
  108. package/dist/components/dashboard/SettingsModal.js +240 -0
  109. package/dist/components/dashboard/SettingsModal.js.map +1 -0
  110. package/dist/components/dashboard/SidePanel.d.ts +12 -0
  111. package/dist/components/dashboard/SidePanel.d.ts.map +1 -0
  112. package/dist/components/dashboard/SidePanel.js +45 -0
  113. package/dist/components/dashboard/SidePanel.js.map +1 -0
  114. package/dist/components/dashboard/Sidebar.d.ts +4 -0
  115. package/dist/components/dashboard/Sidebar.d.ts.map +1 -0
  116. package/dist/components/dashboard/Sidebar.js +52 -0
  117. package/dist/components/dashboard/Sidebar.js.map +1 -0
  118. package/dist/components/dashboard/SidebarLogo.d.ts +7 -0
  119. package/dist/components/dashboard/SidebarLogo.d.ts.map +1 -0
  120. package/dist/components/dashboard/SidebarLogo.js +46 -0
  121. package/dist/components/dashboard/SidebarLogo.js.map +1 -0
  122. package/dist/components/dashboard/SourceIcon.d.ts +7 -0
  123. package/dist/components/dashboard/SourceIcon.d.ts.map +1 -0
  124. package/dist/components/dashboard/SourceIcon.js +16 -0
  125. package/dist/components/dashboard/SourceIcon.js.map +1 -0
  126. package/dist/components/dashboard/StatusBadge.d.ts +14 -0
  127. package/dist/components/dashboard/StatusBadge.d.ts.map +1 -0
  128. package/dist/components/dashboard/StatusBadge.js +30 -0
  129. package/dist/components/dashboard/StatusBadge.js.map +1 -0
  130. package/dist/components/dashboard/StatusIndicator.d.ts +7 -0
  131. package/dist/components/dashboard/StatusIndicator.d.ts.map +1 -0
  132. package/dist/components/dashboard/StatusIndicator.js +29 -0
  133. package/dist/components/dashboard/StatusIndicator.js.map +1 -0
  134. package/dist/components/dashboard/Tag.d.ts +7 -0
  135. package/dist/components/dashboard/Tag.d.ts.map +1 -0
  136. package/dist/components/dashboard/Tag.js +9 -0
  137. package/dist/components/dashboard/Tag.js.map +1 -0
  138. package/dist/components/dashboard/TipCard.d.ts +5 -0
  139. package/dist/components/dashboard/TipCard.d.ts.map +1 -0
  140. package/dist/components/dashboard/TipCard.js +10 -0
  141. package/dist/components/dashboard/TipCard.js.map +1 -0
  142. package/dist/components/dashboard/ToggleSwitch.d.ts +8 -0
  143. package/dist/components/dashboard/ToggleSwitch.d.ts.map +1 -0
  144. package/dist/components/dashboard/ToggleSwitch.js +31 -0
  145. package/dist/components/dashboard/ToggleSwitch.js.map +1 -0
  146. package/dist/components/dashboard/index.d.ts +26 -0
  147. package/dist/components/dashboard/index.d.ts.map +1 -0
  148. package/dist/components/dashboard/index.js +26 -0
  149. package/dist/components/dashboard/index.js.map +1 -0
  150. package/dist/components/dashboard/types.d.ts +108 -0
  151. package/dist/components/dashboard/types.d.ts.map +1 -0
  152. package/dist/components/dashboard/types.js +2 -0
  153. package/dist/components/dashboard/types.js.map +1 -0
  154. package/dist/components/display/CodeBlock.d.ts +10 -0
  155. package/dist/components/display/CodeBlock.d.ts.map +1 -0
  156. package/dist/components/display/CodeBlock.js +20 -0
  157. package/dist/components/display/CodeBlock.js.map +1 -0
  158. package/dist/components/display/ConnectionStatus.d.ts +8 -0
  159. package/dist/components/display/ConnectionStatus.d.ts.map +1 -0
  160. package/dist/components/display/ConnectionStatus.js +5 -0
  161. package/dist/components/display/ConnectionStatus.js.map +1 -0
  162. package/dist/components/display/Logo.d.ts +16 -0
  163. package/dist/components/display/Logo.d.ts.map +1 -0
  164. package/dist/components/display/Logo.js +43 -0
  165. package/dist/components/display/Logo.js.map +1 -0
  166. package/dist/components/display/PackageManagerSelector.d.ts +8 -0
  167. package/dist/components/display/PackageManagerSelector.d.ts.map +1 -0
  168. package/dist/components/display/PackageManagerSelector.js +20 -0
  169. package/dist/components/display/PackageManagerSelector.js.map +1 -0
  170. package/dist/components/index.d.ts +40 -11
  171. package/dist/components/index.d.ts.map +1 -1
  172. package/dist/components/index.js +40 -11
  173. package/dist/components/index.js.map +1 -1
  174. package/dist/components/inputs/ApiKeyInput.d.ts +8 -0
  175. package/dist/components/inputs/ApiKeyInput.d.ts.map +1 -0
  176. package/dist/components/inputs/ApiKeyInput.js +22 -0
  177. package/dist/components/inputs/ApiKeyInput.js.map +1 -0
  178. package/dist/components/inputs/Checkbox.d.ts +11 -0
  179. package/dist/components/inputs/Checkbox.d.ts.map +1 -0
  180. package/dist/components/inputs/Checkbox.js +19 -0
  181. package/dist/components/inputs/Checkbox.js.map +1 -0
  182. package/dist/components/inputs/EmailTagInput.d.ts +9 -0
  183. package/dist/components/inputs/EmailTagInput.d.ts.map +1 -0
  184. package/dist/components/inputs/EmailTagInput.js +61 -0
  185. package/dist/components/inputs/EmailTagInput.js.map +1 -0
  186. package/dist/components/inputs/Input.d.ts +16 -0
  187. package/dist/components/inputs/Input.d.ts.map +1 -0
  188. package/dist/components/inputs/Input.js +42 -0
  189. package/dist/components/inputs/Input.js.map +1 -0
  190. package/dist/components/inputs/InputField.d.ts.map +1 -0
  191. package/dist/components/{InputField.js → inputs/InputField.js} +1 -1
  192. package/dist/components/inputs/InputField.js.map +1 -0
  193. package/dist/components/inputs/NumberStepper.d.ts +15 -0
  194. package/dist/components/inputs/NumberStepper.d.ts.map +1 -0
  195. package/dist/components/inputs/NumberStepper.js +49 -0
  196. package/dist/components/inputs/NumberStepper.js.map +1 -0
  197. package/dist/components/inputs/PermissionToggle.d.ts +15 -0
  198. package/dist/components/inputs/PermissionToggle.d.ts.map +1 -0
  199. package/dist/components/inputs/PermissionToggle.js +18 -0
  200. package/dist/components/inputs/PermissionToggle.js.map +1 -0
  201. package/dist/components/inputs/Select.d.ts +24 -0
  202. package/dist/components/inputs/Select.d.ts.map +1 -0
  203. package/dist/components/inputs/Select.js +156 -0
  204. package/dist/components/inputs/Select.js.map +1 -0
  205. package/dist/components/inputs/TagInput.d.ts +10 -0
  206. package/dist/components/inputs/TagInput.d.ts.map +1 -0
  207. package/dist/components/inputs/TagInput.js +20 -0
  208. package/dist/components/inputs/TagInput.js.map +1 -0
  209. package/dist/components/inputs/ToggleOption.d.ts +20 -0
  210. package/dist/components/inputs/ToggleOption.d.ts.map +1 -0
  211. package/dist/components/inputs/ToggleOption.js +70 -0
  212. package/dist/components/inputs/ToggleOption.js.map +1 -0
  213. package/dist/components/layout/Divider.d.ts +11 -0
  214. package/dist/components/layout/Divider.d.ts.map +1 -0
  215. package/dist/components/layout/Divider.js +15 -0
  216. package/dist/components/layout/Divider.js.map +1 -0
  217. package/dist/components/layout/Footer.d.ts +37 -0
  218. package/dist/components/layout/Footer.d.ts.map +1 -0
  219. package/dist/components/layout/Footer.js +49 -0
  220. package/dist/components/layout/Footer.js.map +1 -0
  221. package/dist/components/layout/FormSection.d.ts +9 -0
  222. package/dist/components/layout/FormSection.d.ts.map +1 -0
  223. package/dist/components/layout/FormSection.js +7 -0
  224. package/dist/components/layout/FormSection.js.map +1 -0
  225. package/dist/components/layout/LinkGroup.d.ts +15 -0
  226. package/dist/components/layout/LinkGroup.d.ts.map +1 -0
  227. package/dist/components/layout/LinkGroup.js +28 -0
  228. package/dist/components/layout/LinkGroup.js.map +1 -0
  229. package/dist/components/layout/Navbar.d.ts +32 -0
  230. package/dist/components/layout/Navbar.d.ts.map +1 -0
  231. package/dist/components/layout/Navbar.js +35 -0
  232. package/dist/components/layout/Navbar.js.map +1 -0
  233. package/dist/components/layout/PageHeader.d.ts +17 -0
  234. package/dist/components/layout/PageHeader.d.ts.map +1 -0
  235. package/dist/components/layout/PageHeader.js +86 -0
  236. package/dist/components/layout/PageHeader.js.map +1 -0
  237. package/dist/components/layout/SegmentedControl.d.ts +16 -0
  238. package/dist/components/layout/SegmentedControl.d.ts.map +1 -0
  239. package/dist/components/layout/SegmentedControl.js +24 -0
  240. package/dist/components/layout/SegmentedControl.js.map +1 -0
  241. package/dist/components/typography/HeroText.d.ts.map +1 -0
  242. package/dist/components/typography/HeroText.js.map +1 -0
  243. package/dist/components/typography/SectionLabel.d.ts.map +1 -0
  244. package/dist/components/typography/SectionLabel.js.map +1 -0
  245. package/dist/components/typography/Subtitle.d.ts.map +1 -0
  246. package/dist/components/typography/Subtitle.js.map +1 -0
  247. package/dist/components/typography/TypewriterText.d.ts.map +1 -0
  248. package/dist/components/typography/TypewriterText.js.map +1 -0
  249. package/dist/styles.css +1 -1
  250. package/package.json +9 -2
  251. package/dist/components/AnimatedBackground.d.ts.map +0 -1
  252. package/dist/components/AnimatedBackground.js.map +0 -1
  253. package/dist/components/Button.d.ts.map +0 -1
  254. package/dist/components/Button.js +0 -26
  255. package/dist/components/Button.js.map +0 -1
  256. package/dist/components/Card.d.ts.map +0 -1
  257. package/dist/components/Card.js.map +0 -1
  258. package/dist/components/Globe.d.ts.map +0 -1
  259. package/dist/components/Globe.js.map +0 -1
  260. package/dist/components/GradientBackground.d.ts.map +0 -1
  261. package/dist/components/GradientBackground.js.map +0 -1
  262. package/dist/components/HeroText.d.ts.map +0 -1
  263. package/dist/components/HeroText.js.map +0 -1
  264. package/dist/components/InputField.d.ts.map +0 -1
  265. package/dist/components/InputField.js.map +0 -1
  266. package/dist/components/Logo.d.ts +0 -6
  267. package/dist/components/Logo.d.ts.map +0 -1
  268. package/dist/components/Logo.js +0 -7
  269. package/dist/components/Logo.js.map +0 -1
  270. package/dist/components/SectionLabel.d.ts.map +0 -1
  271. package/dist/components/SectionLabel.js.map +0 -1
  272. package/dist/components/Subtitle.d.ts.map +0 -1
  273. package/dist/components/Subtitle.js.map +0 -1
  274. package/dist/components/TypewriterText.d.ts.map +0 -1
  275. package/dist/components/TypewriterText.js.map +0 -1
  276. /package/dist/components/{AnimatedBackground.d.ts → backgrounds/AnimatedBackground.d.ts} +0 -0
  277. /package/dist/components/{AnimatedBackground.js → backgrounds/AnimatedBackground.js} +0 -0
  278. /package/dist/components/{Globe.d.ts → backgrounds/Globe.d.ts} +0 -0
  279. /package/dist/components/{Globe.js → backgrounds/Globe.js} +0 -0
  280. /package/dist/components/{GradientBackground.d.ts → backgrounds/GradientBackground.d.ts} +0 -0
  281. /package/dist/components/{GradientBackground.js → backgrounds/GradientBackground.js} +0 -0
  282. /package/dist/components/{Card.d.ts → cards/Card.d.ts} +0 -0
  283. /package/dist/components/{InputField.d.ts → inputs/InputField.d.ts} +0 -0
  284. /package/dist/components/{HeroText.d.ts → typography/HeroText.d.ts} +0 -0
  285. /package/dist/components/{HeroText.js → typography/HeroText.js} +0 -0
  286. /package/dist/components/{SectionLabel.d.ts → typography/SectionLabel.d.ts} +0 -0
  287. /package/dist/components/{SectionLabel.js → typography/SectionLabel.js} +0 -0
  288. /package/dist/components/{Subtitle.d.ts → typography/Subtitle.d.ts} +0 -0
  289. /package/dist/components/{Subtitle.js → typography/Subtitle.js} +0 -0
  290. /package/dist/components/{TypewriterText.d.ts → typography/TypewriterText.d.ts} +0 -0
  291. /package/dist/components/{TypewriterText.js → typography/TypewriterText.js} +0 -0
@@ -0,0 +1,87 @@
1
+ 'use client';
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';
5
+ const defaultDateRangeOptions = [
6
+ { label: 'Today', value: 'today' },
7
+ { label: 'Yesterday', value: 'yesterday' },
8
+ { label: 'Last 7 days', value: 'last_7_days' },
9
+ { label: 'Last 14 days', value: 'last_14_days' },
10
+ { label: 'Last 30 days', value: 'last_30_days' },
11
+ { label: 'This month', value: 'this_month' },
12
+ { label: 'Last month', value: 'last_month' },
13
+ { label: 'This quarter', value: 'this_quarter' },
14
+ ];
15
+ export function Header({ orgName = 'Global Retail Ops', dateRange = 'Last 7 days', onDateRangeChange, dateRangeOptions = defaultDateRangeOptions, userInitials = 'SJ', showNotification = true, onNotificationClick, onAvatarClick, minimal = false, onMenuClick, logoSrc, }) {
16
+ const [isOpen, setIsOpen] = useState(false);
17
+ const [selectedRange, setSelectedRange] = useState(dateRange);
18
+ const dropdownRef = useRef(null);
19
+ useEffect(() => {
20
+ const handleClickOutside = (event) => {
21
+ if (dropdownRef.current &&
22
+ !dropdownRef.current.contains(event.target)) {
23
+ setIsOpen(false);
24
+ }
25
+ };
26
+ document.addEventListener('mousedown', handleClickOutside);
27
+ return () => document.removeEventListener('mousedown', handleClickOutside);
28
+ }, []);
29
+ const handleSelect = (option) => {
30
+ setSelectedRange(option.label);
31
+ setIsOpen(false);
32
+ onDateRangeChange?.(option.value);
33
+ };
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 })] }));
35
+ }
36
+ function LeftSection({ orgName, selectedRange, isOpen, setIsOpen, dropdownRef, dateRangeOptions, handleSelect, }) {
37
+ 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
+ }
39
+ 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 })] }));
49
+ }
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) => {
63
+ 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" }) })] }));
68
+ }
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 })] }));
76
+ }
77
+ 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 }) })] }));
86
+ }
87
+ //# sourceMappingURL=Header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/components/dashboard/Header.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { type VariantProps } from 'class-variance-authority';
2
+ declare const iconBadgeVariants: (props?: ({
3
+ variant?: "blue" | "gray" | "violet" | "emerald" | "rose" | null | undefined;
4
+ } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
5
+ export interface IconBadgeProps extends VariantProps<typeof iconBadgeVariants> {
6
+ icon: string;
7
+ className?: string;
8
+ iconClassName?: string;
9
+ }
10
+ export declare function IconBadge({ icon, variant, className, iconClassName, }: IconBadgeProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
12
+ //# sourceMappingURL=IconBadge.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,22 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { cva } from 'class-variance-authority';
4
+ import { cn } from '../../lib/utils';
5
+ const iconBadgeVariants = cva('w-8 h-8 rounded-lg flex items-center justify-center border', {
6
+ variants: {
7
+ variant: {
8
+ gray: 'bg-gray-800/50 border-white/5',
9
+ violet: 'bg-violet-600 border-violet-500/50 shadow-[0_0_15px_rgba(124,58,237,0.5)]',
10
+ blue: 'bg-blue-600/20 border-blue-500/20',
11
+ emerald: 'bg-emerald-600/20 border-emerald-500/20',
12
+ rose: 'bg-rose-600/20 border-rose-500/20',
13
+ },
14
+ },
15
+ defaultVariants: {
16
+ variant: 'gray',
17
+ },
18
+ });
19
+ 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 }) }));
21
+ }
22
+ //# sourceMappingURL=IconBadge.js.map
@@ -0,0 +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"}
@@ -0,0 +1,10 @@
1
+ export interface ListItemProps {
2
+ children: React.ReactNode;
3
+ onClick?: () => void;
4
+ ariaLabel?: string;
5
+ showChevron?: boolean;
6
+ highlighted?: boolean;
7
+ className?: string;
8
+ }
9
+ export declare function ListItem({ children, onClick, ariaLabel, showChevron, highlighted, className, }: ListItemProps): import("react/jsx-runtime").JSX.Element;
10
+ //# sourceMappingURL=ListItem.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,13 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { ChevronRight } from 'lucide-react';
4
+ import { cn } from '../../lib/utils';
5
+ export function ListItem({ children, onClick, ariaLabel, showChevron = false, highlighted = false, className, }) {
6
+ 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
+ ? 'border-l-2 border-l-violet-500 bg-violet-500/[0.02] pl-3 sm:pl-3.5'
8
+ : 'hover:bg-white/[0.02]', className), children: _jsxs("div", { className: "flex items-start justify-between", children: [_jsx("div", { className: "flex-1 min-w-0", children: children }), showChevron && _jsx(ChevronIndicator, {})] }) }));
9
+ }
10
+ function ChevronIndicator() {
11
+ return (_jsx("div", { className: "ml-2 opacity-0 group-hover:opacity-100 transition-opacity mt-1 flex-shrink-0", children: _jsx(ChevronRight, { size: 12, className: "text-gray-600 sm:w-3.5 sm:h-3.5", strokeWidth: 2 }) }));
12
+ }
13
+ //# sourceMappingURL=ListItem.js.map
@@ -0,0 +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"}
@@ -0,0 +1,10 @@
1
+ export interface MetricsCardProps {
2
+ title: string;
3
+ value: string;
4
+ change: string;
5
+ changeType: 'positive' | 'negative' | 'neutral' | 'info';
6
+ chartData?: readonly number[];
7
+ chartColor?: 'violet' | 'rose' | 'gray';
8
+ }
9
+ export declare function MetricsCard({ title, value, change, changeType, chartData, chartColor, }: MetricsCardProps): import("react/jsx-runtime").JSX.Element;
10
+ //# sourceMappingURL=MetricsCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetricsCard.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/MetricsCard.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;IACzD,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;CACzC;AAmBD,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,MAAM,EACN,UAAU,EACV,SAA8B,EAC9B,UAAqB,GACtB,EAAE,gBAAgB,2CA8BlB"}
@@ -0,0 +1,39 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { GlassPanel } from './GlassPanel';
4
+ import { StatusBadge } from './StatusBadge';
5
+ const chartColors = {
6
+ violet: {
7
+ bg: '#8B5CF6',
8
+ shadow: '0px 0px 8px rgba(124, 58, 237, 0.50)',
9
+ },
10
+ rose: {
11
+ bg: '#F43F5E',
12
+ shadow: '0px 0px 8px rgba(244, 63, 94, 0.50)',
13
+ },
14
+ gray: {
15
+ bg: '#6B7280',
16
+ shadow: 'none',
17
+ },
18
+ };
19
+ const DEFAULT_CHART_DATA = [25, 50, 35, 70, 100];
20
+ export function MetricsCard({ title, value, change, changeType, chartData = DEFAULT_CHART_DATA, chartColor = 'violet', }) {
21
+ const maxValue = Math.max(...chartData);
22
+ 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 })] })] }) }));
24
+ }
25
+ function MiniChart({ chartData, maxValue, barColor }) {
26
+ return (_jsx("div", { className: "flex items-end gap-[2px]", children: chartData.map((val, index) => {
27
+ const isLast = index === chartData.length - 1;
28
+ const height = Math.max((val / maxValue) * 20, 3);
29
+ return (_jsx("div", { style: {
30
+ width: '12px',
31
+ height: `${height}px`,
32
+ borderRadius: '2px 2px 0 0',
33
+ background: isLast ? barColor.bg : '#374151',
34
+ boxShadow: isLast ? barColor.shadow : 'none',
35
+ opacity: isLast ? 1 : 0.5,
36
+ } }, `bar-${index}-${val}`));
37
+ }) }));
38
+ }
39
+ //# sourceMappingURL=MetricsCard.js.map
@@ -0,0 +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"}
@@ -0,0 +1,4 @@
1
+ import type { MobileSidebarProps } from './types';
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;
4
+ //# sourceMappingURL=MobileSidebar.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,68 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { useEffect } from 'react';
4
+ import { AnimatePresence, motion } from 'framer-motion';
5
+ import { X } from 'lucide-react';
6
+ import { ChatHistorySection } from './ChatHistorySection';
7
+ import { NavMenu } from './NavMenu';
8
+ import { SettingsDropup } from './SettingsDropup';
9
+ import { SidebarLogo } from './SidebarLogo';
10
+ const defaultNavItems = [
11
+ { icon: 'grid_view', label: 'Overview', href: '/' },
12
+ { icon: 'chat_bubble', label: 'Ask CROW', href: '/ask-crow' },
13
+ {
14
+ icon: 'timeline',
15
+ label: 'Analysis',
16
+ href: '#',
17
+ submenu: [
18
+ { icon: '', label: 'Interactions', href: '/analysis/interactions' },
19
+ { icon: '', label: 'Patterns', href: '/analysis/patterns' },
20
+ ],
21
+ },
22
+ { icon: 'group', label: 'Team', href: '/team' },
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
26
+ const normalizedHref = activeHref?.replace(/\/$/, '') || '';
27
+ const showChatHistory = normalizedHref === '/ask-crow';
28
+ // Lock body scroll when sidebar is open
29
+ useEffect(() => {
30
+ if (isOpen) {
31
+ document.body.style.overflow = 'hidden';
32
+ }
33
+ else {
34
+ document.body.style.overflow = '';
35
+ }
36
+ return () => {
37
+ document.body.style.overflow = '';
38
+ };
39
+ }, [isOpen]);
40
+ // Handle navigation - close sidebar after navigating
41
+ const handleNavigate = (href) => {
42
+ onNavigate?.(href);
43
+ onClose();
44
+ };
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
+ 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,
64
+ 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 }))] })] })] })) }));
67
+ }
68
+ //# sourceMappingURL=MobileSidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MobileSidebar.js","sourceRoot":"","sources":["../../../src/components/dashboard/MobileSidebar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { NavItem } from './types';
2
+ export interface NavMenuProps {
3
+ items: NavItem[];
4
+ activeHref: string;
5
+ onNavigate?: (href: string) => void;
6
+ }
7
+ export declare function NavMenu({ items, activeHref, onNavigate }: NavMenuProps): import("react/jsx-runtime").JSX.Element;
8
+ //# sourceMappingURL=NavMenu.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,145 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState } from 'react';
4
+ import { LayoutGrid, MessageSquare, TrendingUp, Users, ChevronDown } from 'lucide-react';
5
+ const iconComponents = {
6
+ grid_view: LayoutGrid,
7
+ chat_bubble: MessageSquare,
8
+ timeline: TrendingUp,
9
+ group: Users,
10
+ };
11
+ export function NavMenu({ items, activeHref, onNavigate }) {
12
+ const [expandedMenus, setExpandedMenus] = useState([]);
13
+ // Normalize paths for comparison (handle trailing slashes)
14
+ const normalizePath = (path) => path.replace(/\/$/, '') || '/';
15
+ const isActive = (href) => {
16
+ const normalizedActive = normalizePath(activeHref);
17
+ const normalizedHref = normalizePath(href);
18
+ return normalizedActive === normalizedHref;
19
+ };
20
+ const isSubmenuActive = (subItems) => subItems?.some((item) => isActive(item.href));
21
+ const isExpanded = (label) => expandedMenus.includes(label);
22
+ const toggleMenu = (label) => {
23
+ setExpandedMenus((prev) => prev.includes(label) ? prev.filter((l) => l !== label) : [...prev, label]);
24
+ };
25
+ const handleNavigate = (href, e) => {
26
+ if (onNavigate) {
27
+ e.preventDefault();
28
+ onNavigate(href);
29
+ }
30
+ };
31
+ const renderIcon = (iconName, active) => {
32
+ const IconComponent = iconComponents[iconName];
33
+ if (!IconComponent)
34
+ return null;
35
+ return (_jsx(IconComponent, { size: 15, color: active ? '#C4B5FD' : '#6B7280', strokeWidth: 2 }));
36
+ };
37
+ return (_jsx("nav", { style: {
38
+ width: 247,
39
+ marginLeft: 16,
40
+ marginTop: 99.50,
41
+ display: 'flex',
42
+ flexDirection: 'column',
43
+ gap: 4,
44
+ }, children: items.map((item) => {
45
+ const itemIsActive = item.submenu ? isSubmenuActive(item.submenu) : isActive(item.href);
46
+ const expanded = item.submenu && isExpanded(item.label);
47
+ const submenuHeight = item.submenu ? item.submenu.length * 35.5 : 0;
48
+ return item.submenu ? (_jsxs("div", { children: [_jsxs("button", { type: "button", onClick: () => toggleMenu(item.label), "aria-label": `${item.label} menu`, "aria-expanded": expanded, style: {
49
+ width: 247,
50
+ height: 41,
51
+ position: 'relative',
52
+ borderRadius: 8,
53
+ background: expanded ? 'rgba(255, 255, 255, 0.03)' : 'transparent',
54
+ border: 'none',
55
+ cursor: 'pointer',
56
+ display: 'flex',
57
+ alignItems: 'center',
58
+ paddingLeft: 12,
59
+ gap: 12,
60
+ transition: 'background 0.15s ease',
61
+ }, onMouseEnter: (e) => {
62
+ if (!expanded)
63
+ e.currentTarget.style.background = 'rgba(255, 255, 255, 0.04)';
64
+ }, onMouseLeave: (e) => {
65
+ if (!expanded)
66
+ e.currentTarget.style.background = 'transparent';
67
+ }, children: [_jsx("div", { style: { width: 20, height: 24, display: 'flex', alignItems: 'center', justifyContent: 'center', flexShrink: 0 }, children: renderIcon(item.icon, !!itemIsActive) }), _jsx("span", { style: {
68
+ color: itemIsActive ? 'white' : '#9CA3AF',
69
+ fontSize: 14,
70
+ fontFamily: 'Sora, sans-serif',
71
+ fontWeight: 400,
72
+ lineHeight: '21px',
73
+ flex: 1,
74
+ textAlign: 'left',
75
+ }, children: item.label }), _jsx("div", { style: { width: 18, height: 22, display: 'flex', alignItems: 'center', justifyContent: 'center', marginRight: 12, transition: 'transform 0.2s ease' }, children: _jsx(ChevronDown, { size: 12, color: "#4B5563", strokeWidth: 2, style: {
76
+ transform: expanded ? 'rotate(180deg)' : 'rotate(0deg)',
77
+ transition: 'transform 0.2s ease',
78
+ } }) })] }), _jsx("div", { style: {
79
+ marginLeft: 44,
80
+ overflow: 'hidden',
81
+ maxHeight: expanded ? submenuHeight : 0,
82
+ opacity: expanded ? 1 : 0,
83
+ transition: 'max-height 0.25s ease, opacity 0.2s ease',
84
+ }, children: item.submenu.map((subitem) => {
85
+ const subActive = isActive(subitem.href);
86
+ return (_jsx("a", { href: subitem.href, onClick: (e) => handleNavigate(subitem.href, e), style: {
87
+ width: 203,
88
+ height: 35.50,
89
+ borderRadius: 8,
90
+ display: 'flex',
91
+ alignItems: 'center',
92
+ paddingLeft: 12,
93
+ textDecoration: 'none',
94
+ cursor: 'pointer',
95
+ transition: 'background 0.15s ease',
96
+ background: subActive ? 'rgba(139, 92, 246, 0.10)' : 'transparent',
97
+ }, onMouseEnter: (e) => {
98
+ if (!subActive)
99
+ e.currentTarget.style.background = 'rgba(255, 255, 255, 0.04)';
100
+ }, onMouseLeave: (e) => {
101
+ if (!subActive)
102
+ e.currentTarget.style.background = 'transparent';
103
+ }, children: _jsx("span", { style: {
104
+ color: subActive ? '#C4B5FD' : '#6B7280',
105
+ fontSize: 13,
106
+ fontFamily: 'Sora, sans-serif',
107
+ fontWeight: subActive ? 500 : 400,
108
+ lineHeight: '19.5px',
109
+ transition: 'color 0.15s ease',
110
+ }, children: subitem.label }) }, subitem.label));
111
+ }) })] }, item.label)) : (_jsxs("a", { href: item.href, onClick: (e) => handleNavigate(item.href, e), style: {
112
+ width: 247,
113
+ height: 41,
114
+ borderRadius: 8,
115
+ display: 'flex',
116
+ alignItems: 'center',
117
+ paddingLeft: 12,
118
+ gap: 12,
119
+ textDecoration: 'none',
120
+ transition: 'all 0.15s ease',
121
+ cursor: 'pointer',
122
+ ...(itemIsActive ? {
123
+ background: 'rgba(255, 255, 255, 0.08)',
124
+ boxShadow: '0px 1px 0px 1px rgba(255, 255, 255, 0.05) inset',
125
+ outline: '1px rgba(255, 255, 255, 0.05) solid',
126
+ outlineOffset: '-1px',
127
+ } : {
128
+ background: 'transparent',
129
+ }),
130
+ }, onMouseEnter: (e) => {
131
+ if (!itemIsActive)
132
+ e.currentTarget.style.background = 'rgba(255, 255, 255, 0.04)';
133
+ }, onMouseLeave: (e) => {
134
+ if (!itemIsActive)
135
+ e.currentTarget.style.background = 'transparent';
136
+ }, children: [_jsx("div", { style: { width: 20, height: 24, display: 'flex', alignItems: 'center', justifyContent: 'center', flexShrink: 0 }, children: renderIcon(item.icon, !!itemIsActive) }), _jsx("span", { style: {
137
+ color: itemIsActive ? 'white' : '#9CA3AF',
138
+ fontSize: 14,
139
+ fontFamily: 'Sora, sans-serif',
140
+ fontWeight: 400,
141
+ lineHeight: '21px',
142
+ }, children: item.label })] }, item.label));
143
+ }) }));
144
+ }
145
+ //# sourceMappingURL=NavMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavMenu.js","sourceRoot":"","sources":["../../../src/components/dashboard/NavMenu.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export type SeverityLevel = 'high' | 'medium' | 'low';
2
+ export type ConfidenceLevel = 'high' | 'medium' | 'low';
3
+ export interface PatternCardProps {
4
+ id: string;
5
+ title: string;
6
+ severity: SeverityLevel;
7
+ affectedStores: string;
8
+ lastSeen: string;
9
+ confidence: ConfidenceLevel;
10
+ onViewDetails?: () => void;
11
+ onViewEvidence?: () => void;
12
+ onCreateAlert?: () => void;
13
+ className?: string;
14
+ }
15
+ export declare function PatternCard({ title, severity, affectedStores, lastSeen, confidence, onViewDetails, onViewEvidence, onCreateAlert, className, }: PatternCardProps): import("react/jsx-runtime").JSX.Element;
16
+ //# sourceMappingURL=PatternCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PatternCard.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/PatternCard.tsx"],"names":[],"mappings":"AAKA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AACtD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,aAAa,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,eAAe,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA4CD,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,UAAU,EACV,aAAa,EACb,cAAc,EACd,aAAa,EACb,SAAS,GACV,EAAE,gBAAgB,2CAkIlB"}