@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.
- package/dist/components/backgrounds/AnimatedBackground.d.ts.map +1 -0
- package/dist/components/backgrounds/AnimatedBackground.js.map +1 -0
- package/dist/components/backgrounds/Globe.d.ts.map +1 -0
- package/dist/components/backgrounds/Globe.js.map +1 -0
- package/dist/components/backgrounds/GradientBackground.d.ts.map +1 -0
- package/dist/components/backgrounds/GradientBackground.js.map +1 -0
- package/dist/components/{Button.d.ts → buttons/Button.d.ts} +5 -2
- package/dist/components/buttons/Button.d.ts.map +1 -0
- package/dist/components/buttons/Button.js +41 -0
- package/dist/components/buttons/Button.js.map +1 -0
- package/dist/components/buttons/CompanyPageButton.d.ts +10 -0
- package/dist/components/buttons/CompanyPageButton.d.ts.map +1 -0
- package/dist/components/buttons/CompanyPageButton.js +8 -0
- package/dist/components/buttons/CompanyPageButton.js.map +1 -0
- package/dist/components/cards/Card.d.ts.map +1 -0
- package/dist/components/{Card.js → cards/Card.js} +1 -1
- package/dist/components/cards/Card.js.map +1 -0
- package/dist/components/cards/CheckoutSummary.d.ts +38 -0
- package/dist/components/cards/CheckoutSummary.d.ts.map +1 -0
- package/dist/components/cards/CheckoutSummary.js +54 -0
- package/dist/components/cards/CheckoutSummary.js.map +1 -0
- package/dist/components/cards/ConnectionOption.d.ts +13 -0
- package/dist/components/cards/ConnectionOption.d.ts.map +1 -0
- package/dist/components/cards/ConnectionOption.js +22 -0
- package/dist/components/cards/ConnectionOption.js.map +1 -0
- package/dist/components/cards/InvitationDetailsCard.d.ts +8 -0
- package/dist/components/cards/InvitationDetailsCard.d.ts.map +1 -0
- package/dist/components/cards/InvitationDetailsCard.js +5 -0
- package/dist/components/cards/InvitationDetailsCard.js.map +1 -0
- package/dist/components/cards/OrderSummaryCard.d.ts +29 -0
- package/dist/components/cards/OrderSummaryCard.d.ts.map +1 -0
- package/dist/components/cards/OrderSummaryCard.js +8 -0
- package/dist/components/cards/OrderSummaryCard.js.map +1 -0
- package/dist/components/cards/PendingInviteCard.d.ts +26 -0
- package/dist/components/cards/PendingInviteCard.d.ts.map +1 -0
- package/dist/components/cards/PendingInviteCard.js +63 -0
- package/dist/components/cards/PendingInviteCard.js.map +1 -0
- package/dist/components/cards/PlanCard.d.ts +50 -0
- package/dist/components/cards/PlanCard.d.ts.map +1 -0
- package/dist/components/cards/PlanCard.js +40 -0
- package/dist/components/cards/PlanCard.js.map +1 -0
- package/dist/components/cards/RunAgentCard.d.ts +9 -0
- package/dist/components/cards/RunAgentCard.d.ts.map +1 -0
- package/dist/components/cards/RunAgentCard.js +15 -0
- package/dist/components/cards/RunAgentCard.js.map +1 -0
- package/dist/components/cards/SyncStatusCard.d.ts +8 -0
- package/dist/components/cards/SyncStatusCard.d.ts.map +1 -0
- package/dist/components/cards/SyncStatusCard.js +29 -0
- package/dist/components/cards/SyncStatusCard.js.map +1 -0
- package/dist/components/dashboard/ChatHistorySection.d.ts +4 -0
- package/dist/components/dashboard/ChatHistorySection.d.ts.map +1 -0
- package/dist/components/dashboard/ChatHistorySection.js +138 -0
- package/dist/components/dashboard/ChatHistorySection.js.map +1 -0
- package/dist/components/dashboard/DashboardBackground.d.ts +4 -0
- package/dist/components/dashboard/DashboardBackground.d.ts.map +1 -0
- package/dist/components/dashboard/DashboardBackground.js +85 -0
- package/dist/components/dashboard/DashboardBackground.js.map +1 -0
- package/dist/components/dashboard/FilterDropdown.d.ts +14 -0
- package/dist/components/dashboard/FilterDropdown.d.ts.map +1 -0
- package/dist/components/dashboard/FilterDropdown.js +68 -0
- package/dist/components/dashboard/FilterDropdown.js.map +1 -0
- package/dist/components/dashboard/GlassPanel.d.ts +4 -0
- package/dist/components/dashboard/GlassPanel.d.ts.map +1 -0
- package/dist/components/dashboard/GlassPanel.js +11 -0
- package/dist/components/dashboard/GlassPanel.js.map +1 -0
- package/dist/components/dashboard/Header.d.ts +4 -0
- package/dist/components/dashboard/Header.d.ts.map +1 -0
- package/dist/components/dashboard/Header.js +87 -0
- package/dist/components/dashboard/Header.js.map +1 -0
- package/dist/components/dashboard/IconBadge.d.ts +12 -0
- package/dist/components/dashboard/IconBadge.d.ts.map +1 -0
- package/dist/components/dashboard/IconBadge.js +22 -0
- package/dist/components/dashboard/IconBadge.js.map +1 -0
- package/dist/components/dashboard/ListItem.d.ts +10 -0
- package/dist/components/dashboard/ListItem.d.ts.map +1 -0
- package/dist/components/dashboard/ListItem.js +13 -0
- package/dist/components/dashboard/ListItem.js.map +1 -0
- package/dist/components/dashboard/MetricsCard.d.ts +10 -0
- package/dist/components/dashboard/MetricsCard.d.ts.map +1 -0
- package/dist/components/dashboard/MetricsCard.js +39 -0
- package/dist/components/dashboard/MetricsCard.js.map +1 -0
- package/dist/components/dashboard/MobileSidebar.d.ts +4 -0
- package/dist/components/dashboard/MobileSidebar.d.ts.map +1 -0
- package/dist/components/dashboard/MobileSidebar.js +68 -0
- package/dist/components/dashboard/MobileSidebar.js.map +1 -0
- package/dist/components/dashboard/NavMenu.d.ts +8 -0
- package/dist/components/dashboard/NavMenu.d.ts.map +1 -0
- package/dist/components/dashboard/NavMenu.js +145 -0
- package/dist/components/dashboard/NavMenu.js.map +1 -0
- package/dist/components/dashboard/PatternCard.d.ts +16 -0
- package/dist/components/dashboard/PatternCard.d.ts.map +1 -0
- package/dist/components/dashboard/PatternCard.js +75 -0
- package/dist/components/dashboard/PatternCard.js.map +1 -0
- package/dist/components/dashboard/SearchInput.d.ts +15 -0
- package/dist/components/dashboard/SearchInput.d.ts.map +1 -0
- package/dist/components/dashboard/SearchInput.js +41 -0
- package/dist/components/dashboard/SearchInput.js.map +1 -0
- package/dist/components/dashboard/SectionHeader.d.ts +13 -0
- package/dist/components/dashboard/SectionHeader.d.ts.map +1 -0
- package/dist/components/dashboard/SectionHeader.js +22 -0
- package/dist/components/dashboard/SectionHeader.js.map +1 -0
- package/dist/components/dashboard/SettingsDropup.d.ts +11 -0
- package/dist/components/dashboard/SettingsDropup.d.ts.map +1 -0
- package/dist/components/dashboard/SettingsDropup.js +169 -0
- package/dist/components/dashboard/SettingsDropup.js.map +1 -0
- package/dist/components/dashboard/SettingsModal.d.ts +4 -0
- package/dist/components/dashboard/SettingsModal.d.ts.map +1 -0
- package/dist/components/dashboard/SettingsModal.js +240 -0
- package/dist/components/dashboard/SettingsModal.js.map +1 -0
- package/dist/components/dashboard/SidePanel.d.ts +12 -0
- package/dist/components/dashboard/SidePanel.d.ts.map +1 -0
- package/dist/components/dashboard/SidePanel.js +45 -0
- package/dist/components/dashboard/SidePanel.js.map +1 -0
- package/dist/components/dashboard/Sidebar.d.ts +4 -0
- package/dist/components/dashboard/Sidebar.d.ts.map +1 -0
- package/dist/components/dashboard/Sidebar.js +52 -0
- package/dist/components/dashboard/Sidebar.js.map +1 -0
- package/dist/components/dashboard/SidebarLogo.d.ts +7 -0
- package/dist/components/dashboard/SidebarLogo.d.ts.map +1 -0
- package/dist/components/dashboard/SidebarLogo.js +46 -0
- package/dist/components/dashboard/SidebarLogo.js.map +1 -0
- package/dist/components/dashboard/SourceIcon.d.ts +7 -0
- package/dist/components/dashboard/SourceIcon.d.ts.map +1 -0
- package/dist/components/dashboard/SourceIcon.js +16 -0
- package/dist/components/dashboard/SourceIcon.js.map +1 -0
- package/dist/components/dashboard/StatusBadge.d.ts +14 -0
- package/dist/components/dashboard/StatusBadge.d.ts.map +1 -0
- package/dist/components/dashboard/StatusBadge.js +30 -0
- package/dist/components/dashboard/StatusBadge.js.map +1 -0
- package/dist/components/dashboard/StatusIndicator.d.ts +7 -0
- package/dist/components/dashboard/StatusIndicator.d.ts.map +1 -0
- package/dist/components/dashboard/StatusIndicator.js +29 -0
- package/dist/components/dashboard/StatusIndicator.js.map +1 -0
- package/dist/components/dashboard/Tag.d.ts +7 -0
- package/dist/components/dashboard/Tag.d.ts.map +1 -0
- package/dist/components/dashboard/Tag.js +9 -0
- package/dist/components/dashboard/Tag.js.map +1 -0
- package/dist/components/dashboard/TipCard.d.ts +5 -0
- package/dist/components/dashboard/TipCard.d.ts.map +1 -0
- package/dist/components/dashboard/TipCard.js +10 -0
- package/dist/components/dashboard/TipCard.js.map +1 -0
- package/dist/components/dashboard/ToggleSwitch.d.ts +8 -0
- package/dist/components/dashboard/ToggleSwitch.d.ts.map +1 -0
- package/dist/components/dashboard/ToggleSwitch.js +31 -0
- package/dist/components/dashboard/ToggleSwitch.js.map +1 -0
- package/dist/components/dashboard/index.d.ts +26 -0
- package/dist/components/dashboard/index.d.ts.map +1 -0
- package/dist/components/dashboard/index.js +26 -0
- package/dist/components/dashboard/index.js.map +1 -0
- package/dist/components/dashboard/types.d.ts +108 -0
- package/dist/components/dashboard/types.d.ts.map +1 -0
- package/dist/components/dashboard/types.js +2 -0
- package/dist/components/dashboard/types.js.map +1 -0
- package/dist/components/display/CodeBlock.d.ts +10 -0
- package/dist/components/display/CodeBlock.d.ts.map +1 -0
- package/dist/components/display/CodeBlock.js +20 -0
- package/dist/components/display/CodeBlock.js.map +1 -0
- package/dist/components/display/ConnectionStatus.d.ts +8 -0
- package/dist/components/display/ConnectionStatus.d.ts.map +1 -0
- package/dist/components/display/ConnectionStatus.js +5 -0
- package/dist/components/display/ConnectionStatus.js.map +1 -0
- package/dist/components/display/Logo.d.ts +16 -0
- package/dist/components/display/Logo.d.ts.map +1 -0
- package/dist/components/display/Logo.js +43 -0
- package/dist/components/display/Logo.js.map +1 -0
- package/dist/components/display/PackageManagerSelector.d.ts +8 -0
- package/dist/components/display/PackageManagerSelector.d.ts.map +1 -0
- package/dist/components/display/PackageManagerSelector.js +20 -0
- package/dist/components/display/PackageManagerSelector.js.map +1 -0
- package/dist/components/index.d.ts +40 -11
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +40 -11
- package/dist/components/index.js.map +1 -1
- package/dist/components/inputs/ApiKeyInput.d.ts +8 -0
- package/dist/components/inputs/ApiKeyInput.d.ts.map +1 -0
- package/dist/components/inputs/ApiKeyInput.js +22 -0
- package/dist/components/inputs/ApiKeyInput.js.map +1 -0
- package/dist/components/inputs/Checkbox.d.ts +11 -0
- package/dist/components/inputs/Checkbox.d.ts.map +1 -0
- package/dist/components/inputs/Checkbox.js +19 -0
- package/dist/components/inputs/Checkbox.js.map +1 -0
- package/dist/components/inputs/EmailTagInput.d.ts +9 -0
- package/dist/components/inputs/EmailTagInput.d.ts.map +1 -0
- package/dist/components/inputs/EmailTagInput.js +61 -0
- package/dist/components/inputs/EmailTagInput.js.map +1 -0
- package/dist/components/inputs/Input.d.ts +16 -0
- package/dist/components/inputs/Input.d.ts.map +1 -0
- package/dist/components/inputs/Input.js +42 -0
- package/dist/components/inputs/Input.js.map +1 -0
- package/dist/components/inputs/InputField.d.ts.map +1 -0
- package/dist/components/{InputField.js → inputs/InputField.js} +1 -1
- package/dist/components/inputs/InputField.js.map +1 -0
- package/dist/components/inputs/NumberStepper.d.ts +15 -0
- package/dist/components/inputs/NumberStepper.d.ts.map +1 -0
- package/dist/components/inputs/NumberStepper.js +49 -0
- package/dist/components/inputs/NumberStepper.js.map +1 -0
- package/dist/components/inputs/PermissionToggle.d.ts +15 -0
- package/dist/components/inputs/PermissionToggle.d.ts.map +1 -0
- package/dist/components/inputs/PermissionToggle.js +18 -0
- package/dist/components/inputs/PermissionToggle.js.map +1 -0
- package/dist/components/inputs/Select.d.ts +24 -0
- package/dist/components/inputs/Select.d.ts.map +1 -0
- package/dist/components/inputs/Select.js +156 -0
- package/dist/components/inputs/Select.js.map +1 -0
- package/dist/components/inputs/TagInput.d.ts +10 -0
- package/dist/components/inputs/TagInput.d.ts.map +1 -0
- package/dist/components/inputs/TagInput.js +20 -0
- package/dist/components/inputs/TagInput.js.map +1 -0
- package/dist/components/inputs/ToggleOption.d.ts +20 -0
- package/dist/components/inputs/ToggleOption.d.ts.map +1 -0
- package/dist/components/inputs/ToggleOption.js +70 -0
- package/dist/components/inputs/ToggleOption.js.map +1 -0
- package/dist/components/layout/Divider.d.ts +11 -0
- package/dist/components/layout/Divider.d.ts.map +1 -0
- package/dist/components/layout/Divider.js +15 -0
- package/dist/components/layout/Divider.js.map +1 -0
- package/dist/components/layout/Footer.d.ts +37 -0
- package/dist/components/layout/Footer.d.ts.map +1 -0
- package/dist/components/layout/Footer.js +49 -0
- package/dist/components/layout/Footer.js.map +1 -0
- package/dist/components/layout/FormSection.d.ts +9 -0
- package/dist/components/layout/FormSection.d.ts.map +1 -0
- package/dist/components/layout/FormSection.js +7 -0
- package/dist/components/layout/FormSection.js.map +1 -0
- package/dist/components/layout/LinkGroup.d.ts +15 -0
- package/dist/components/layout/LinkGroup.d.ts.map +1 -0
- package/dist/components/layout/LinkGroup.js +28 -0
- package/dist/components/layout/LinkGroup.js.map +1 -0
- package/dist/components/layout/Navbar.d.ts +32 -0
- package/dist/components/layout/Navbar.d.ts.map +1 -0
- package/dist/components/layout/Navbar.js +35 -0
- package/dist/components/layout/Navbar.js.map +1 -0
- package/dist/components/layout/PageHeader.d.ts +17 -0
- package/dist/components/layout/PageHeader.d.ts.map +1 -0
- package/dist/components/layout/PageHeader.js +86 -0
- package/dist/components/layout/PageHeader.js.map +1 -0
- package/dist/components/layout/SegmentedControl.d.ts +16 -0
- package/dist/components/layout/SegmentedControl.d.ts.map +1 -0
- package/dist/components/layout/SegmentedControl.js +24 -0
- package/dist/components/layout/SegmentedControl.js.map +1 -0
- package/dist/components/typography/HeroText.d.ts.map +1 -0
- package/dist/components/typography/HeroText.js.map +1 -0
- package/dist/components/typography/SectionLabel.d.ts.map +1 -0
- package/dist/components/typography/SectionLabel.js.map +1 -0
- package/dist/components/typography/Subtitle.d.ts.map +1 -0
- package/dist/components/typography/Subtitle.js.map +1 -0
- package/dist/components/typography/TypewriterText.d.ts.map +1 -0
- package/dist/components/typography/TypewriterText.js.map +1 -0
- package/dist/styles.css +1 -1
- package/package.json +9 -2
- package/dist/components/AnimatedBackground.d.ts.map +0 -1
- package/dist/components/AnimatedBackground.js.map +0 -1
- package/dist/components/Button.d.ts.map +0 -1
- package/dist/components/Button.js +0 -26
- package/dist/components/Button.js.map +0 -1
- package/dist/components/Card.d.ts.map +0 -1
- package/dist/components/Card.js.map +0 -1
- package/dist/components/Globe.d.ts.map +0 -1
- package/dist/components/Globe.js.map +0 -1
- package/dist/components/GradientBackground.d.ts.map +0 -1
- package/dist/components/GradientBackground.js.map +0 -1
- package/dist/components/HeroText.d.ts.map +0 -1
- package/dist/components/HeroText.js.map +0 -1
- package/dist/components/InputField.d.ts.map +0 -1
- package/dist/components/InputField.js.map +0 -1
- package/dist/components/Logo.d.ts +0 -6
- package/dist/components/Logo.d.ts.map +0 -1
- package/dist/components/Logo.js +0 -7
- package/dist/components/Logo.js.map +0 -1
- package/dist/components/SectionLabel.d.ts.map +0 -1
- package/dist/components/SectionLabel.js.map +0 -1
- package/dist/components/Subtitle.d.ts.map +0 -1
- package/dist/components/Subtitle.js.map +0 -1
- package/dist/components/TypewriterText.d.ts.map +0 -1
- package/dist/components/TypewriterText.js.map +0 -1
- /package/dist/components/{AnimatedBackground.d.ts → backgrounds/AnimatedBackground.d.ts} +0 -0
- /package/dist/components/{AnimatedBackground.js → backgrounds/AnimatedBackground.js} +0 -0
- /package/dist/components/{Globe.d.ts → backgrounds/Globe.d.ts} +0 -0
- /package/dist/components/{Globe.js → backgrounds/Globe.js} +0 -0
- /package/dist/components/{GradientBackground.d.ts → backgrounds/GradientBackground.d.ts} +0 -0
- /package/dist/components/{GradientBackground.js → backgrounds/GradientBackground.js} +0 -0
- /package/dist/components/{Card.d.ts → cards/Card.d.ts} +0 -0
- /package/dist/components/{InputField.d.ts → inputs/InputField.d.ts} +0 -0
- /package/dist/components/{HeroText.d.ts → typography/HeroText.d.ts} +0 -0
- /package/dist/components/{HeroText.js → typography/HeroText.js} +0 -0
- /package/dist/components/{SectionLabel.d.ts → typography/SectionLabel.d.ts} +0 -0
- /package/dist/components/{SectionLabel.js → typography/SectionLabel.js} +0 -0
- /package/dist/components/{Subtitle.d.ts → typography/Subtitle.d.ts} +0 -0
- /package/dist/components/{Subtitle.js → typography/Subtitle.js} +0 -0
- /package/dist/components/{TypewriterText.d.ts → typography/TypewriterText.d.ts} +0 -0
- /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"}
|