@b3-crow/ui-kit 0.0.34-pr30.3 → 0.0.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/cards/InvitationDetailsCard.d.ts +7 -4
- package/dist/components/cards/InvitationDetailsCard.d.ts.map +1 -1
- package/dist/components/cards/InvitationDetailsCard.js +4 -2
- package/dist/components/cards/InvitationDetailsCard.js.map +1 -1
- package/dist/components/index.d.ts +0 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +0 -1
- package/dist/components/index.js.map +1 -1
- package/dist/components/inputs/EmailTagInput.js +1 -1
- package/dist/components/inputs/EmailTagInput.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +13 -20
- package/dist/components/dashboard/ChatHistorySection.d.ts +0 -4
- package/dist/components/dashboard/ChatHistorySection.d.ts.map +0 -1
- package/dist/components/dashboard/ChatHistorySection.js +0 -119
- package/dist/components/dashboard/ChatHistorySection.js.map +0 -1
- package/dist/components/dashboard/DashboardBackground.d.ts +0 -4
- package/dist/components/dashboard/DashboardBackground.d.ts.map +0 -1
- package/dist/components/dashboard/DashboardBackground.js +0 -12
- package/dist/components/dashboard/DashboardBackground.js.map +0 -1
- package/dist/components/dashboard/FilterDropdown.d.ts +0 -14
- package/dist/components/dashboard/FilterDropdown.d.ts.map +0 -1
- package/dist/components/dashboard/FilterDropdown.js +0 -114
- package/dist/components/dashboard/FilterDropdown.js.map +0 -1
- package/dist/components/dashboard/GlassPanel.d.ts +0 -13
- package/dist/components/dashboard/GlassPanel.d.ts.map +0 -1
- package/dist/components/dashboard/GlassPanel.js +0 -20
- package/dist/components/dashboard/GlassPanel.js.map +0 -1
- package/dist/components/dashboard/Header.d.ts +0 -4
- package/dist/components/dashboard/Header.d.ts.map +0 -1
- package/dist/components/dashboard/Header.js +0 -123
- package/dist/components/dashboard/Header.js.map +0 -1
- package/dist/components/dashboard/IconBadge.d.ts +0 -22
- package/dist/components/dashboard/IconBadge.d.ts.map +0 -1
- package/dist/components/dashboard/IconBadge.js +0 -44
- package/dist/components/dashboard/IconBadge.js.map +0 -1
- package/dist/components/dashboard/ListItem.d.ts +0 -22
- package/dist/components/dashboard/ListItem.d.ts.map +0 -1
- package/dist/components/dashboard/ListItem.js +0 -25
- package/dist/components/dashboard/ListItem.js.map +0 -1
- package/dist/components/dashboard/MetricsCard.d.ts +0 -10
- package/dist/components/dashboard/MetricsCard.d.ts.map +0 -1
- package/dist/components/dashboard/MetricsCard.js +0 -41
- package/dist/components/dashboard/MetricsCard.js.map +0 -1
- package/dist/components/dashboard/MobileSidebar.d.ts +0 -4
- package/dist/components/dashboard/MobileSidebar.d.ts.map +0 -1
- package/dist/components/dashboard/MobileSidebar.js +0 -57
- package/dist/components/dashboard/MobileSidebar.js.map +0 -1
- package/dist/components/dashboard/NavMenu.d.ts +0 -8
- package/dist/components/dashboard/NavMenu.d.ts.map +0 -1
- package/dist/components/dashboard/NavMenu.js +0 -66
- package/dist/components/dashboard/NavMenu.js.map +0 -1
- package/dist/components/dashboard/PatternCard.d.ts +0 -15
- package/dist/components/dashboard/PatternCard.d.ts.map +0 -1
- package/dist/components/dashboard/PatternCard.js +0 -36
- package/dist/components/dashboard/PatternCard.js.map +0 -1
- package/dist/components/dashboard/SearchInput.d.ts +0 -30
- package/dist/components/dashboard/SearchInput.d.ts.map +0 -1
- package/dist/components/dashboard/SearchInput.js +0 -52
- package/dist/components/dashboard/SearchInput.js.map +0 -1
- package/dist/components/dashboard/SectionHeader.d.ts +0 -13
- package/dist/components/dashboard/SectionHeader.d.ts.map +0 -1
- package/dist/components/dashboard/SectionHeader.js +0 -19
- package/dist/components/dashboard/SectionHeader.js.map +0 -1
- package/dist/components/dashboard/SettingsDropup.d.ts +0 -9
- package/dist/components/dashboard/SettingsDropup.d.ts.map +0 -1
- package/dist/components/dashboard/SettingsDropup.js +0 -98
- package/dist/components/dashboard/SettingsDropup.js.map +0 -1
- package/dist/components/dashboard/SettingsModal.d.ts +0 -4
- package/dist/components/dashboard/SettingsModal.d.ts.map +0 -1
- package/dist/components/dashboard/SettingsModal.js +0 -56
- package/dist/components/dashboard/SettingsModal.js.map +0 -1
- package/dist/components/dashboard/SidePanel.d.ts +0 -12
- package/dist/components/dashboard/SidePanel.d.ts.map +0 -1
- package/dist/components/dashboard/SidePanel.js +0 -79
- package/dist/components/dashboard/SidePanel.js.map +0 -1
- package/dist/components/dashboard/Sidebar.d.ts +0 -4
- package/dist/components/dashboard/Sidebar.d.ts.map +0 -1
- package/dist/components/dashboard/Sidebar.js +0 -28
- package/dist/components/dashboard/Sidebar.js.map +0 -1
- package/dist/components/dashboard/SidebarLogo.d.ts +0 -7
- package/dist/components/dashboard/SidebarLogo.d.ts.map +0 -1
- package/dist/components/dashboard/SidebarLogo.js +0 -6
- package/dist/components/dashboard/SidebarLogo.js.map +0 -1
- package/dist/components/dashboard/SourceIcon.d.ts +0 -15
- package/dist/components/dashboard/SourceIcon.d.ts.map +0 -1
- package/dist/components/dashboard/SourceIcon.js +0 -28
- package/dist/components/dashboard/SourceIcon.js.map +0 -1
- package/dist/components/dashboard/StatusBadge.d.ts +0 -26
- package/dist/components/dashboard/StatusBadge.d.ts.map +0 -1
- package/dist/components/dashboard/StatusBadge.js +0 -42
- package/dist/components/dashboard/StatusBadge.js.map +0 -1
- package/dist/components/dashboard/StatusIndicator.d.ts +0 -16
- package/dist/components/dashboard/StatusIndicator.d.ts.map +0 -1
- package/dist/components/dashboard/StatusIndicator.js +0 -35
- package/dist/components/dashboard/StatusIndicator.js.map +0 -1
- package/dist/components/dashboard/Tag.d.ts +0 -16
- package/dist/components/dashboard/Tag.d.ts.map +0 -1
- package/dist/components/dashboard/Tag.js +0 -18
- package/dist/components/dashboard/Tag.js.map +0 -1
- package/dist/components/dashboard/TipCard.d.ts +0 -12
- package/dist/components/dashboard/TipCard.d.ts.map +0 -1
- package/dist/components/dashboard/TipCard.js +0 -17
- package/dist/components/dashboard/TipCard.js.map +0 -1
- package/dist/components/dashboard/ToggleSwitch.d.ts +0 -17
- package/dist/components/dashboard/ToggleSwitch.d.ts.map +0 -1
- package/dist/components/dashboard/ToggleSwitch.js +0 -27
- package/dist/components/dashboard/ToggleSwitch.js.map +0 -1
- package/dist/components/dashboard/constants.d.ts +0 -28
- package/dist/components/dashboard/constants.d.ts.map +0 -1
- package/dist/components/dashboard/constants.js +0 -104
- package/dist/components/dashboard/constants.js.map +0 -1
- package/dist/components/dashboard/index.d.ts +0 -27
- package/dist/components/dashboard/index.d.ts.map +0 -1
- package/dist/components/dashboard/index.js +0 -27
- package/dist/components/dashboard/index.js.map +0 -1
- package/dist/components/dashboard/types.d.ts +0 -115
- package/dist/components/dashboard/types.d.ts.map +0 -1
- package/dist/components/dashboard/types.js +0 -2
- package/dist/components/dashboard/types.js.map +0 -1
|
@@ -1,22 +0,0 @@
|
|
|
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
|
-
/**
|
|
10
|
-
* A clickable list item component with optional highlighting
|
|
11
|
-
* Shows a chevron icon on hover and supports highlighted state
|
|
12
|
-
* @param {ListItemProps} props - Component props
|
|
13
|
-
* @param {React.ReactNode} props.children - Item content
|
|
14
|
-
* @param {() => void} [props.onClick] - Click handler
|
|
15
|
-
* @param {string} [props.ariaLabel] - Accessibility label
|
|
16
|
-
* @param {boolean} [props.showChevron=false] - Whether to show chevron indicator
|
|
17
|
-
* @param {boolean} [props.highlighted=false] - Whether item is highlighted
|
|
18
|
-
* @param {string} [props.className] - Additional CSS classes
|
|
19
|
-
* @returns {JSX.Element} The list item component
|
|
20
|
-
*/
|
|
21
|
-
export declare function ListItem({ children, onClick, ariaLabel, showChevron, highlighted, className, }: ListItemProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
-
//# sourceMappingURL=ListItem.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ListItem.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/ListItem.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EACR,OAAO,EACP,SAAS,EACT,WAAmB,EACnB,WAAmB,EACnB,SAAS,GACV,EAAE,aAAa,2CAoBf"}
|
|
@@ -1,25 +0,0 @@
|
|
|
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
|
-
/**
|
|
6
|
-
* A clickable list item component with optional highlighting
|
|
7
|
-
* Shows a chevron icon on hover and supports highlighted state
|
|
8
|
-
* @param {ListItemProps} props - Component props
|
|
9
|
-
* @param {React.ReactNode} props.children - Item content
|
|
10
|
-
* @param {() => void} [props.onClick] - Click handler
|
|
11
|
-
* @param {string} [props.ariaLabel] - Accessibility label
|
|
12
|
-
* @param {boolean} [props.showChevron=false] - Whether to show chevron indicator
|
|
13
|
-
* @param {boolean} [props.highlighted=false] - Whether item is highlighted
|
|
14
|
-
* @param {string} [props.className] - Additional CSS classes
|
|
15
|
-
* @returns {JSX.Element} The list item component
|
|
16
|
-
*/
|
|
17
|
-
export function ListItem({ children, onClick, ariaLabel, showChevron = false, highlighted = false, className, }) {
|
|
18
|
-
return (_jsx("button", { type: "button", onClick: onClick, "aria-label": ariaLabel, className: cn('w-full px-2.5 sm:px-3 py-2.5 sm:py-3 rounded-lg text-left transition-all group', highlighted
|
|
19
|
-
? 'border-l-2 border-l-violet-500 bg-violet-500/[0.02] pl-3 sm:pl-3.5'
|
|
20
|
-
: '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, {})] }) }));
|
|
21
|
-
}
|
|
22
|
-
function ChevronIndicator() {
|
|
23
|
-
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 }) }));
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=ListItem.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ListItem.js","sourceRoot":"","sources":["../../../src/components/dashboard/ListItem.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAWrC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,QAAQ,CAAC,EACvB,QAAQ,EACR,OAAO,EACP,SAAS,EACT,WAAW,GAAG,KAAK,EACnB,WAAW,GAAG,KAAK,EACnB,SAAS,GACK;IACd,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,gBACJ,SAAS,EACrB,SAAS,EAAE,EAAE,CACX,gFAAgF,EAChF,WAAW;YACT,CAAC,CAAC,oEAAoE;YACtE,CAAC,CAAC,uBAAuB,EAC3B,SAAS,CACV,YAED,eAAK,SAAS,EAAC,kCAAkC,aAC/C,cAAK,SAAS,EAAC,gBAAgB,YAAE,QAAQ,GAAO,EAC/C,WAAW,IAAI,KAAC,gBAAgB,KAAG,IAChC,GACC,CACV,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO,CACL,cAAK,SAAS,EAAC,8EAA8E,YAC3F,KAAC,YAAY,IACX,IAAI,EAAE,EAAE,EACR,SAAS,EAAC,iCAAiC,EAC3C,WAAW,EAAE,CAAC,GACd,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,41 +0,0 @@
|
|
|
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
|
-
// Safeguard for empty chartData
|
|
22
|
-
const safeChartData = chartData.length > 0 ? chartData : DEFAULT_CHART_DATA;
|
|
23
|
-
const maxValue = Math.max(...safeChartData);
|
|
24
|
-
const barColor = chartColors[chartColor];
|
|
25
|
-
return (_jsx(GlassPanel, { variant: "light", className: "relative overflow-hidden", children: _jsxs("div", { className: "p-4 sm:p-5 min-h-[100px] sm:min-h-[109px] flex flex-col", children: [_jsxs("div", { className: "flex items-start justify-between gap-2 mb-auto", children: [_jsx("span", { className: "text-[10px] sm:text-xs font-semibold uppercase tracking-wider text-gray-400", children: title }), _jsx(StatusBadge, { variant: changeType, children: change })] }), _jsxs("div", { className: "flex items-end justify-between mt-4", children: [_jsx("span", { className: "text-xl sm:text-2xl font-bold text-white", children: value }), _jsx(MiniChart, { chartData: safeChartData, maxValue: maxValue, barColor: barColor })] })] }) }));
|
|
26
|
-
}
|
|
27
|
-
function MiniChart({ chartData, maxValue, barColor }) {
|
|
28
|
-
return (_jsx("div", { className: "flex items-end gap-[2px]", children: chartData.map((val, index) => {
|
|
29
|
-
const isLast = index === chartData.length - 1;
|
|
30
|
-
const height = Math.max((val / maxValue) * 20, 3);
|
|
31
|
-
return (_jsx("div", { style: {
|
|
32
|
-
width: '12px',
|
|
33
|
-
height: `${height}px`,
|
|
34
|
-
borderRadius: '2px 2px 0 0',
|
|
35
|
-
background: isLast ? barColor.bg : '#374151',
|
|
36
|
-
boxShadow: isLast ? barColor.shadow : 'none',
|
|
37
|
-
opacity: isLast ? 1 : 0.5,
|
|
38
|
-
} }, `bar-${index}-${val}`));
|
|
39
|
-
}) }));
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=MetricsCard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MetricsCard.js","sourceRoot":"","sources":["../../../src/components/dashboard/MetricsCard.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAW5C,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE;QACN,EAAE,EAAE,SAAS;QACb,MAAM,EAAE,sCAAsC;KAC/C;IACD,IAAI,EAAE;QACJ,EAAE,EAAE,SAAS;QACb,MAAM,EAAE,qCAAqC;KAC9C;IACD,IAAI,EAAE;QACJ,EAAE,EAAE,SAAS;QACb,MAAM,EAAE,MAAM;KACf;CACF,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAU,CAAC;AAE1D,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,MAAM,EACN,UAAU,EACV,SAAS,GAAG,kBAAkB,EAC9B,UAAU,GAAG,QAAQ,GACJ;IACjB,gCAAgC;IAChC,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC;IAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IAEzC,OAAO,CACL,KAAC,UAAU,IAAC,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,0BAA0B,YAC9D,eAAK,SAAS,EAAC,yDAAyD,aACtE,eAAK,SAAS,EAAC,gDAAgD,aAC7D,eAAM,SAAS,EAAC,6EAA6E,YAC1F,KAAK,GACD,EACP,KAAC,WAAW,IAAC,OAAO,EAAE,UAAU,YAAG,MAAM,GAAe,IACpD,EAEN,eAAK,SAAS,EAAC,qCAAqC,aAClD,eAAM,SAAS,EAAC,0CAA0C,YACvD,KAAK,GACD,EAEP,KAAC,SAAS,IACR,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,GAClB,IACE,IACF,GACK,CACd,CAAC;AACJ,CAAC;AAQD,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAkB;IAClE,OAAO,CACL,cAAK,SAAS,EAAC,0BAA0B,YACtC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC5B,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;YAElD,OAAO,CACL,cAEE,KAAK,EAAE;oBACL,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,GAAG,MAAM,IAAI;oBACrB,YAAY,EAAE,aAAa;oBAC3B,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;oBAC5C,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;oBAC5C,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;iBAC1B,IARI,OAAO,KAAK,IAAI,GAAG,EAAE,CAS1B,CACH,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +0,0 @@
|
|
|
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, onNotificationsChange, initialNotifications, chatHistory, activeChatId, chatHistoryExpanded, onChatClick, onChatHistoryToggle, onChatRename, onChatDelete, }: MobileSidebarProps): import("react/jsx-runtime").JSX.Element;
|
|
4
|
-
//# sourceMappingURL=MobileSidebar.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MobileSidebar.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/MobileSidebar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAW,MAAM,SAAS,CAAC;AAS3D,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAiBnC,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,OAAO,EACP,QAA0B,EAC1B,UAAgB,EAChB,UAAU,EACV,YAAmB,EACnB,OAAwB,EACxB,QAAiB,EACjB,SAA8B,EAC9B,QAAQ,EACR,qBAAqB,EACrB,oBAA2B,EAC3B,WAAW,EACX,YAAY,EACZ,mBAA0B,EAC1B,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,YAAY,GACb,EAAE,kBAAkB,2CAmHpB"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import { AnimatePresence, motion } from 'framer-motion';
|
|
4
|
-
import { X } from 'lucide-react';
|
|
5
|
-
import { useEffect } from '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, onNotificationsChange, initialNotifications = true, chatHistory, activeChatId, chatHistoryExpanded = true, onChatClick, onChatHistoryToggle, onChatRename, onChatDelete, }) {
|
|
25
|
-
// Show chat history when on Ask CROW page
|
|
26
|
-
const normalizedHref = activeHref?.replace(/\/$/, '') || '';
|
|
27
|
-
const showChatHistory = normalizedHref === '/ask-crow';
|
|
28
|
-
// Lock body scroll and handle Escape key when sidebar is open
|
|
29
|
-
useEffect(() => {
|
|
30
|
-
if (!isOpen) {
|
|
31
|
-
document.body.style.overflow = '';
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
document.body.style.overflow = 'hidden';
|
|
35
|
-
const handleEscapeKey = (e) => {
|
|
36
|
-
if (e.key === 'Escape') {
|
|
37
|
-
onClose();
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
document.addEventListener('keydown', handleEscapeKey);
|
|
41
|
-
return () => {
|
|
42
|
-
document.removeEventListener('keydown', handleEscapeKey);
|
|
43
|
-
document.body.style.overflow = '';
|
|
44
|
-
};
|
|
45
|
-
}, [isOpen, onClose]);
|
|
46
|
-
// Handle navigation - close sidebar after navigating
|
|
47
|
-
const handleNavigate = (href) => {
|
|
48
|
-
onNavigate?.(href);
|
|
49
|
-
onClose();
|
|
50
|
-
};
|
|
51
|
-
return (_jsx(AnimatePresence, { children: isOpen && (_jsxs(_Fragment, { children: [_jsx(motion.div, { initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: { duration: 0.2 }, className: "fixed inset-0 bg-black/60 z-[100] md:hidden", onClick: onClose, "aria-hidden": "true" }), _jsxs(motion.aside, { initial: { x: '-100%' }, animate: { x: 0 }, exit: { x: '-100%' }, transition: { type: 'spring', damping: 25, stiffness: 300 }, className: "fixed left-0 top-0 h-full w-[280px] bg-black border-r border-white/[0.08] z-[101] md:hidden", role: "dialog", "aria-modal": "true", "aria-label": "Navigation menu", children: [_jsx("div", { className: "absolute inset-0 w-[279px] h-full pointer-events-none", style: {
|
|
52
|
-
background: 'linear-gradient(180deg, rgba(255, 255, 255, 0.02) 0%, rgba(255, 255, 255, 0) 100%)',
|
|
53
|
-
} }), _jsx("div", { className: "absolute left-0 top-0 w-[279px] h-32 opacity-50 pointer-events-none", style: {
|
|
54
|
-
background: 'linear-gradient(180deg, #100B1A 0%, rgba(16, 11, 26, 0) 100%)',
|
|
55
|
-
} }), _jsx("button", { type: "button", onClick: onClose, className: "absolute top-4 right-4 w-8 h-8 flex items-center justify-center rounded-lg z-10 transition-colors hover:bg-white/[0.06]", "aria-label": "Close menu", children: _jsx(X, { size: 20, color: "#9CA3AF", strokeWidth: 2 }) }), _jsxs("div", { className: "flex flex-col h-full", children: [_jsx(SidebarLogo, { logoSrc: logoSrc }), _jsx(NavMenu, { items: navItems, activeHref: activeHref, onNavigate: handleNavigate }), _jsx(ChatHistorySection, { items: chatHistory, activeItemId: activeChatId, isExpanded: chatHistoryExpanded, isVisible: showChatHistory, onItemClick: onChatClick, onToggleExpanded: onChatHistoryToggle, onRename: onChatRename, onDelete: onChatDelete }), showSettings && (_jsx(SettingsDropup, { userName: userName, userEmail: userEmail, initialNotifications: initialNotifications, onNotificationsChange: onNotificationsChange, onLogout: onLogout }))] })] })] })) }));
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=MobileSidebar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MobileSidebar.js","sourceRoot":"","sources":["../../../src/components/dashboard/MobileSidebar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NavMenu.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/NavMenu.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAWvC,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAWD,wBAAgB,OAAO,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,YAAY,2CAmKtE"}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { ChevronDown, LayoutGrid, MessageSquare, TrendingUp, Users, } from 'lucide-react';
|
|
4
|
-
import { useState } from 'react';
|
|
5
|
-
import { cn } from '../../lib/utils';
|
|
6
|
-
const iconComponents = {
|
|
7
|
-
grid_view: LayoutGrid,
|
|
8
|
-
chat_bubble: MessageSquare,
|
|
9
|
-
timeline: TrendingUp,
|
|
10
|
-
group: Users,
|
|
11
|
-
};
|
|
12
|
-
export function NavMenu({ items, activeHref, onNavigate }) {
|
|
13
|
-
const [expandedMenus, setExpandedMenus] = useState([]);
|
|
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 handleKeyDown = (label, e) => {
|
|
32
|
-
if (e.key === 'Enter' || e.key === ' ') {
|
|
33
|
-
e.preventDefault();
|
|
34
|
-
toggleMenu(label);
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
const renderIcon = (iconName, active) => {
|
|
38
|
-
const IconComponent = iconComponents[iconName];
|
|
39
|
-
if (!IconComponent)
|
|
40
|
-
return null;
|
|
41
|
-
return (_jsx(IconComponent, { size: 15, className: cn('transition-colors', active ? 'text-violet-300' : 'text-gray-500'), strokeWidth: 2 }));
|
|
42
|
-
};
|
|
43
|
-
return (_jsx("nav", { className: "w-[247px] ml-4 mt-[99.5px] flex flex-col gap-1", children: items.map(item => {
|
|
44
|
-
const itemIsActive = item.submenu
|
|
45
|
-
? isSubmenuActive(item.submenu)
|
|
46
|
-
: isActive(item.href);
|
|
47
|
-
const expanded = item.submenu && isExpanded(item.label);
|
|
48
|
-
const submenuHeight = item.submenu ? item.submenu.length * 35.5 : 0;
|
|
49
|
-
return item.submenu ? (_jsxs("div", { children: [_jsxs("button", { type: "button", onClick: () => toggleMenu(item.label), onKeyDown: e => handleKeyDown(item.label, e), "aria-label": `${item.label} menu`, "aria-expanded": expanded, className: cn('w-[247px] h-[41px] relative rounded-lg border-none cursor-pointer', 'flex items-center pl-3 gap-3 transition-colors duration-150', expanded
|
|
50
|
-
? 'bg-white/[0.03]'
|
|
51
|
-
: 'bg-transparent hover:bg-white/[0.04]'), children: [_jsx("div", { className: "w-5 h-6 flex items-center justify-center shrink-0", children: renderIcon(item.icon, !!itemIsActive) }), _jsx("span", { className: cn('text-sm font-normal leading-[21px] flex-1 text-left font-[Sora,sans-serif]', itemIsActive ? 'text-white' : 'text-gray-400'), children: item.label }), _jsx("div", { className: "w-[18px] h-[22px] flex items-center justify-center mr-3", children: _jsx(ChevronDown, { size: 12, className: cn('text-gray-600 transition-transform duration-200', expanded && 'rotate-180'), strokeWidth: 2 }) })] }), _jsx("div", { className: "ml-11 overflow-hidden transition-all duration-250", style: {
|
|
52
|
-
maxHeight: expanded ? submenuHeight : 0,
|
|
53
|
-
opacity: expanded ? 1 : 0,
|
|
54
|
-
}, children: item.submenu.map(subitem => {
|
|
55
|
-
const subActive = isActive(subitem.href);
|
|
56
|
-
return (_jsx("a", { href: subitem.href, onClick: e => handleNavigate(subitem.href, e), className: cn('w-[203px] h-[35.5px] rounded-lg flex items-center pl-3', 'no-underline cursor-pointer transition-colors duration-150', subActive
|
|
57
|
-
? 'bg-violet-500/10'
|
|
58
|
-
: 'bg-transparent hover:bg-white/[0.04]'), children: _jsx("span", { className: cn('text-[13px] leading-[19.5px] font-[Sora,sans-serif] transition-colors duration-150', subActive
|
|
59
|
-
? 'text-violet-300 font-medium'
|
|
60
|
-
: 'text-gray-500 font-normal'), children: subitem.label }) }, subitem.label));
|
|
61
|
-
}) })] }, item.label)) : (_jsxs("a", { href: item.href, onClick: e => handleNavigate(item.href, e), className: cn('w-[247px] h-[41px] rounded-lg flex items-center pl-3 gap-3', 'no-underline cursor-pointer transition-all duration-150', itemIsActive
|
|
62
|
-
? 'bg-white/[0.08] shadow-[inset_0px_1px_0px_1px_rgba(255,255,255,0.05)] outline outline-1 outline-white/[0.05] -outline-offset-1'
|
|
63
|
-
: 'bg-transparent hover:bg-white/[0.04]'), children: [_jsx("div", { className: "w-5 h-6 flex items-center justify-center shrink-0", children: renderIcon(item.icon, !!itemIsActive) }), _jsx("span", { className: cn('text-sm font-normal leading-[21px] font-[Sora,sans-serif]', itemIsActive ? 'text-white' : 'text-gray-400'), children: item.label })] }, item.label));
|
|
64
|
-
}) }));
|
|
65
|
-
}
|
|
66
|
-
//# sourceMappingURL=NavMenu.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NavMenu.js","sourceRoot":"","sources":["../../../src/components/dashboard/NavMenu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { SeverityLevel, ConfidenceLevel } from './types';
|
|
2
|
-
export interface PatternCardProps {
|
|
3
|
-
id?: string;
|
|
4
|
-
title: string;
|
|
5
|
-
severity: SeverityLevel;
|
|
6
|
-
affectedStores: string;
|
|
7
|
-
lastSeen: string;
|
|
8
|
-
confidence: ConfidenceLevel;
|
|
9
|
-
onViewDetails?: () => void;
|
|
10
|
-
onViewEvidence?: () => void;
|
|
11
|
-
onCreateAlert?: () => void;
|
|
12
|
-
className?: string;
|
|
13
|
-
}
|
|
14
|
-
export declare function PatternCard({ title, severity, affectedStores, lastSeen, confidence, onViewDetails, onViewEvidence, onCreateAlert, className, }: PatternCardProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
-
//# sourceMappingURL=PatternCard.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PatternCard.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/PatternCard.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE9D,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,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;AAED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,UAAU,EACV,aAAa,EACb,cAAc,EACd,aAAa,EACb,SAAS,GACV,EAAE,gBAAgB,2CAgHlB"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { Bell, Clock, MapPin } from 'lucide-react';
|
|
4
|
-
import { cn } from '../../lib/utils';
|
|
5
|
-
import { SEVERITY_CONFIG, CONFIDENCE_CONFIG } from './constants';
|
|
6
|
-
export function PatternCard({ title, severity, affectedStores, lastSeen, confidence, onViewDetails, onViewEvidence, onCreateAlert, className, }) {
|
|
7
|
-
const severityStyle = SEVERITY_CONFIG[severity];
|
|
8
|
-
const confidenceStyle = CONFIDENCE_CONFIG[confidence];
|
|
9
|
-
return (_jsx("div", { className: cn('relative overflow-hidden rounded-xl', className), style: {
|
|
10
|
-
background: 'rgba(10, 5, 20, 0.40)',
|
|
11
|
-
boxShadow: '0px 4px 6px -4px rgba(0, 0, 0, 0.10)',
|
|
12
|
-
outline: '1px rgba(255, 255, 255, 0.08) solid',
|
|
13
|
-
outlineOffset: '-1px',
|
|
14
|
-
backdropFilter: 'blur(8px)',
|
|
15
|
-
}, children: _jsxs("div", { className: "p-6", children: [_jsxs("div", { className: "flex items-start justify-between gap-4 mb-4", children: [_jsx("h3", { className: "text-base font-semibold leading-6 flex-1", style: { color: 'white' }, children: title }), _jsx("span", { className: "shrink-0 px-2.5 py-1 rounded-lg text-[10px] font-bold uppercase tracking-wide", style: {
|
|
16
|
-
color: severityStyle.color,
|
|
17
|
-
background: severityStyle.bg,
|
|
18
|
-
outline: `1px ${severityStyle.border} solid`,
|
|
19
|
-
outlineOffset: '-1px',
|
|
20
|
-
}, children: severityStyle.label })] }), _jsxs("div", { className: "space-y-2 mb-4", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(MapPin, { size: 16, color: "#6B7280" }), _jsxs("span", { className: "text-sm leading-5", style: { color: '#9CA3AF' }, children: ["Affected stores: ", affectedStores] })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Clock, { size: 16, color: "#6B7280" }), _jsxs("span", { className: "text-sm leading-5", style: { color: '#9CA3AF' }, children: ["Last seen: ", lastSeen] })] })] }), _jsxs("div", { className: "flex items-center gap-2 mb-6", children: [_jsx("span", { className: "text-xs font-medium", style: { color: '#6B7280' }, children: "Confidence:" }), _jsx("span", { className: "px-2.5 py-1 rounded-full text-[10px] font-medium", style: {
|
|
21
|
-
color: confidenceStyle.color,
|
|
22
|
-
background: confidenceStyle.bg,
|
|
23
|
-
outline: `1px ${confidenceStyle.border} solid`,
|
|
24
|
-
outlineOffset: '-1px',
|
|
25
|
-
}, children: confidenceStyle.label })] }), _jsxs("div", { className: "pt-4 flex items-center gap-3", style: { borderTop: '1px solid rgba(255, 255, 255, 0.05)' }, children: [_jsx("button", { type: "button", onClick: onViewDetails, className: "h-[30px] px-3.5 flex items-center justify-center rounded-lg text-xs font-medium text-white transition-colors", style: {
|
|
26
|
-
background: '#7C3AED',
|
|
27
|
-
boxShadow: '0px 0px 10px rgba(124, 58, 237, 0.30)',
|
|
28
|
-
outline: '1px #8B5CF6 solid',
|
|
29
|
-
outlineOffset: '-1px',
|
|
30
|
-
}, children: "View details" }), _jsx("button", { type: "button", onClick: onViewEvidence, className: "h-[30px] px-3.5 flex items-center justify-center rounded-lg text-xs font-medium transition-colors hover:bg-white/5", style: {
|
|
31
|
-
color: '#D1D5DB',
|
|
32
|
-
outline: '1px rgba(255, 255, 255, 0.10) solid',
|
|
33
|
-
outlineOffset: '-1px',
|
|
34
|
-
}, children: "View evidence" }), _jsx("div", { className: "flex-1" }), _jsxs("button", { type: "button", onClick: onCreateAlert, className: "h-7 px-3 flex items-center gap-1.5 rounded-lg text-xs font-medium transition-colors hover:bg-white/5", style: { color: '#9CA3AF' }, children: [_jsx(Bell, { size: 14, color: "#9CA3AF" }), "Create alert"] })] })] }) }));
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=PatternCard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PatternCard.js","sourceRoot":"","sources":["../../../src/components/dashboard/PatternCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
export interface SearchInputProps {
|
|
2
|
-
placeholder?: string;
|
|
3
|
-
value?: string;
|
|
4
|
-
defaultValue?: string;
|
|
5
|
-
onChange?: (value: string) => void;
|
|
6
|
-
onSubmit?: (value: string) => void;
|
|
7
|
-
showMicButton?: boolean;
|
|
8
|
-
disabled?: boolean;
|
|
9
|
-
className?: string;
|
|
10
|
-
helperText?: string;
|
|
11
|
-
variant?: 'default' | 'transparent';
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* A search input component with optional microphone and submit button
|
|
15
|
-
* Supports controlled and uncontrolled input patterns
|
|
16
|
-
* @param {SearchInputProps} props - Component props
|
|
17
|
-
* @param {string} [props.placeholder='Search...'] - Input placeholder text
|
|
18
|
-
* @param {string} [props.value] - Controlled value for the input
|
|
19
|
-
* @param {string} [props.defaultValue=''] - Default value for uncontrolled input
|
|
20
|
-
* @param {(value: string) => void} [props.onChange] - Change event handler
|
|
21
|
-
* @param {(value: string) => void} [props.onSubmit] - Submit handler (Enter or button click)
|
|
22
|
-
* @param {boolean} [props.showMicButton=true] - Whether to show microphone button
|
|
23
|
-
* @param {boolean} [props.disabled=false] - Whether input is disabled
|
|
24
|
-
* @param {string} [props.className] - Additional CSS classes
|
|
25
|
-
* @param {string} [props.helperText] - Helper text displayed below input
|
|
26
|
-
* @param {'default' | 'transparent'} [props.variant='default'] - Visual variant
|
|
27
|
-
* @returns {JSX.Element} The search input component
|
|
28
|
-
*/
|
|
29
|
-
export declare function SearchInput({ placeholder, value: controlledValue, defaultValue, onChange, onSubmit, showMicButton, disabled, className, helperText, variant, }: SearchInputProps): import("react/jsx-runtime").JSX.Element;
|
|
30
|
-
//# sourceMappingURL=SearchInput.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SearchInput.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/SearchInput.tsx"],"names":[],"mappings":"AAMA,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;CACrC;AAQD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CAAC,EAC1B,WAAyB,EACzB,KAAK,EAAE,eAAe,EACtB,YAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,aAAoB,EACpB,QAAgB,EAChB,SAAS,EACT,UAAU,EACV,OAAmB,GACpB,EAAE,gBAAgB,2CAkElB"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { ArrowRight, Mic, Search } from 'lucide-react';
|
|
4
|
-
import { useState } from 'react';
|
|
5
|
-
import { cn } from '../../lib/utils';
|
|
6
|
-
/**
|
|
7
|
-
* A search input component with optional microphone and submit button
|
|
8
|
-
* Supports controlled and uncontrolled input patterns
|
|
9
|
-
* @param {SearchInputProps} props - Component props
|
|
10
|
-
* @param {string} [props.placeholder='Search...'] - Input placeholder text
|
|
11
|
-
* @param {string} [props.value] - Controlled value for the input
|
|
12
|
-
* @param {string} [props.defaultValue=''] - Default value for uncontrolled input
|
|
13
|
-
* @param {(value: string) => void} [props.onChange] - Change event handler
|
|
14
|
-
* @param {(value: string) => void} [props.onSubmit] - Submit handler (Enter or button click)
|
|
15
|
-
* @param {boolean} [props.showMicButton=true] - Whether to show microphone button
|
|
16
|
-
* @param {boolean} [props.disabled=false] - Whether input is disabled
|
|
17
|
-
* @param {string} [props.className] - Additional CSS classes
|
|
18
|
-
* @param {string} [props.helperText] - Helper text displayed below input
|
|
19
|
-
* @param {'default' | 'transparent'} [props.variant='default'] - Visual variant
|
|
20
|
-
* @returns {JSX.Element} The search input component
|
|
21
|
-
*/
|
|
22
|
-
export function SearchInput({ placeholder = 'Search...', value: controlledValue, defaultValue = '', onChange, onSubmit, showMicButton = true, disabled = false, className, helperText, variant = 'default', }) {
|
|
23
|
-
const [internalValue, setInternalValue] = useState(defaultValue);
|
|
24
|
-
const value = controlledValue ?? internalValue;
|
|
25
|
-
const handleChange = (e) => {
|
|
26
|
-
const newValue = e.target.value;
|
|
27
|
-
if (controlledValue === undefined) {
|
|
28
|
-
setInternalValue(newValue);
|
|
29
|
-
}
|
|
30
|
-
onChange?.(newValue);
|
|
31
|
-
};
|
|
32
|
-
const handleSubmit = () => {
|
|
33
|
-
if (onSubmit && value.trim() && !disabled) {
|
|
34
|
-
onSubmit(value);
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
const handleKeyDown = (e) => {
|
|
38
|
-
if (e.key === 'Enter') {
|
|
39
|
-
handleSubmit();
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
return (_jsxs("div", { className: cn('w-full', className), children: [_jsxs("div", { className: cn('relative flex items-center rounded-full overflow-hidden h-12 sm:h-[54px]', 'border border-white/10 shadow-[0px_4px_6px_-4px_rgba(0,0,0,0.10)]', variant === 'transparent'
|
|
43
|
-
? 'bg-[rgba(14,10,21,0.6)]'
|
|
44
|
-
: 'bg-[#0E0A15]', disabled && 'opacity-50 cursor-not-allowed'), children: [_jsx(SearchIcon, {}), _jsx("input", { type: "text", placeholder: placeholder, value: value, onChange: handleChange, onKeyDown: handleKeyDown, disabled: disabled, className: cn('w-full h-full pl-[53px] bg-transparent', 'text-white text-sm placeholder:text-gray-500', 'focus:outline-none', 'disabled:cursor-not-allowed', showMicButton ? 'pr-24' : 'pr-14') }), _jsx(ActionButtons, { showMicButton: showMicButton, disabled: disabled, onSubmit: handleSubmit })] }), helperText && (_jsx("p", { className: "text-[10px] text-gray-600 mt-2 sm:mt-3 text-center", children: helperText }))] }));
|
|
45
|
-
}
|
|
46
|
-
function SearchIcon() {
|
|
47
|
-
return (_jsx("div", { className: "absolute left-4 flex items-center justify-center", children: _jsx(Search, { size: 24, className: "text-gray-500", strokeWidth: 2 }) }));
|
|
48
|
-
}
|
|
49
|
-
function ActionButtons({ showMicButton, disabled, onSubmit, }) {
|
|
50
|
-
return (_jsxs("div", { className: "absolute right-2 sm:right-3 flex items-center gap-1 sm:gap-2", children: [showMicButton && (_jsx("button", { type: "button", disabled: disabled, className: cn('w-9 h-9 flex items-center justify-center rounded-full', 'hover:bg-white/5 transition-colors', 'disabled:cursor-not-allowed'), "aria-label": "Voice input", children: _jsx(Mic, { size: 20, className: "text-gray-500", strokeWidth: 2 }) })), _jsx("button", { type: "button", onClick: onSubmit, disabled: disabled, className: cn('w-9 h-9 flex items-center justify-center rounded-full', 'bg-violet-600 shadow-[0px_0px_10px_rgba(124,58,237,0.30)]', 'transition-colors', 'disabled:cursor-not-allowed disabled:opacity-50'), "aria-label": "Submit", children: _jsx(ArrowRight, { size: 18, className: "text-white", strokeWidth: 2 }) })] }));
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=SearchInput.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SearchInput.js","sourceRoot":"","sources":["../../../src/components/dashboard/SearchInput.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAqBrC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,WAAW,GAAG,WAAW,EACzB,KAAK,EAAE,eAAe,EACtB,YAAY,GAAG,EAAE,EACjB,QAAQ,EACR,QAAQ,EACR,aAAa,GAAG,IAAI,EACpB,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,UAAU,EACV,OAAO,GAAG,SAAS,GACF;IACjB,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,eAAe,IAAI,aAAa,CAAC;IAE/C,MAAM,YAAY,GAAG,CAAC,CAAsC,EAAE,EAAE;QAC9D,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAChC,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;QACD,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1C,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,CAAwC,EAAE,EAAE;QACjE,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;YACtB,YAAY,EAAE,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,aACrC,eACE,SAAS,EAAE,EAAE,CACX,0EAA0E,EAC1E,mEAAmE,EACnE,OAAO,KAAK,aAAa;oBACvB,CAAC,CAAC,yBAAyB;oBAC3B,CAAC,CAAC,cAAc,EAClB,QAAQ,IAAI,+BAA+B,CAC5C,aAED,KAAC,UAAU,KAAG,EACd,gBACE,IAAI,EAAC,MAAM,EACX,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,EAAE,CACX,wCAAwC,EACxC,8CAA8C,EAC9C,oBAAoB,EACpB,6BAA6B,EAC7B,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAClC,GACD,EACF,KAAC,aAAa,IACZ,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,YAAY,GACtB,IACE,EAEL,UAAU,IAAI,CACb,YAAG,SAAS,EAAC,oDAAoD,YAC9D,UAAU,GACT,CACL,IACG,CACP,CAAC;AACJ,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,CACL,cAAK,SAAS,EAAC,kDAAkD,YAC/D,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,eAAe,EAAC,WAAW,EAAE,CAAC,GAAI,GAC1D,CACP,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,EACrB,aAAa,EACb,QAAQ,EACR,QAAQ,GACW;IACnB,OAAO,CACL,eAAK,SAAS,EAAC,8DAA8D,aAC1E,aAAa,IAAI,CAChB,iBACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,EAAE,CACX,uDAAuD,EACvD,oCAAoC,EACpC,6BAA6B,CAC9B,gBACU,aAAa,YAExB,KAAC,GAAG,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,eAAe,EAAC,WAAW,EAAE,CAAC,GAAI,GACpD,CACV,EAED,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,EAAE,CACX,uDAAuD,EACvD,2DAA2D,EAC3D,mBAAmB,EACnB,iDAAiD,CAClD,gBACU,QAAQ,YAEnB,KAAC,UAAU,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,YAAY,EAAC,WAAW,EAAE,CAAC,GAAI,GACxD,IACL,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export interface SectionHeaderProps {
|
|
2
|
-
title: string;
|
|
3
|
-
viewAllHref?: string;
|
|
4
|
-
viewAllText?: string;
|
|
5
|
-
onViewAllClick?: () => void;
|
|
6
|
-
LinkComponent?: React.ComponentType<{
|
|
7
|
-
href: string;
|
|
8
|
-
className?: string;
|
|
9
|
-
children: React.ReactNode;
|
|
10
|
-
}>;
|
|
11
|
-
}
|
|
12
|
-
export declare function SectionHeader({ title, viewAllHref, viewAllText, onViewAllClick, LinkComponent, }: SectionHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
-
//# sourceMappingURL=SectionHeader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SectionHeader.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/SectionHeader.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAClC,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;KAC3B,CAAC,CAAC;CACJ;AASD,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,WAAW,EACX,WAAwB,EACxB,cAAc,EACd,aAAa,GACd,EAAE,kBAAkB,2CAiBpB"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import { ArrowRight } from 'lucide-react';
|
|
4
|
-
export function SectionHeader({ title, viewAllHref, viewAllText = 'View all', onViewAllClick, LinkComponent, }) {
|
|
5
|
-
const showViewAll = viewAllHref || onViewAllClick;
|
|
6
|
-
return (_jsxs("div", { className: "px-4 sm:px-6 py-3 sm:py-4 flex items-center justify-between bg-white/[0.01] border-b border-white/[0.06]", children: [_jsx("h3", { className: "text-xs sm:text-sm font-semibold text-white", children: title }), showViewAll && (_jsx(ViewAllLink, { href: viewAllHref, text: viewAllText, onClick: onViewAllClick, LinkComponent: LinkComponent }))] }));
|
|
7
|
-
}
|
|
8
|
-
function ViewAllLink({ href, text, onClick, LinkComponent }) {
|
|
9
|
-
const content = (_jsxs(_Fragment, { children: [_jsx("span", { className: "text-[10px] sm:text-xs text-violet-400", children: text }), _jsx(ArrowRight, { size: 12, className: "text-violet-400 sm:w-3.5 sm:h-3.5", strokeWidth: 2 })] }));
|
|
10
|
-
const className = 'flex items-center gap-1 hover:opacity-80 transition-opacity';
|
|
11
|
-
if (LinkComponent && href) {
|
|
12
|
-
return (_jsx(LinkComponent, { href: href, className: className, children: content }));
|
|
13
|
-
}
|
|
14
|
-
if (href) {
|
|
15
|
-
return (_jsx("a", { href: href, className: className, children: content }));
|
|
16
|
-
}
|
|
17
|
-
return (_jsx("button", { type: "button", onClick: onClick, className: className, children: content }));
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=SectionHeader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SectionHeader.js","sourceRoot":"","sources":["../../../src/components/dashboard/SectionHeader.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAqB1C,MAAM,UAAU,aAAa,CAAC,EAC5B,KAAK,EACL,WAAW,EACX,WAAW,GAAG,UAAU,EACxB,cAAc,EACd,aAAa,GACM;IACnB,MAAM,WAAW,GAAG,WAAW,IAAI,cAAc,CAAC;IAElD,OAAO,CACL,eAAK,SAAS,EAAC,0GAA0G,aACvH,aAAI,SAAS,EAAC,6CAA6C,YAAE,KAAK,GAAM,EAEvE,WAAW,IAAI,CACd,KAAC,WAAW,IACV,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,cAAc,EACvB,aAAa,EAAE,aAAa,GAC5B,CACH,IACG,CACP,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAoB;IAC3E,MAAM,OAAO,GAAG,CACd,8BACE,eAAM,SAAS,EAAC,wCAAwC,YAAE,IAAI,GAAQ,EACtE,KAAC,UAAU,IACT,IAAI,EAAE,EAAE,EACR,SAAS,EAAC,mCAAmC,EAC7C,WAAW,EAAE,CAAC,GACd,IACD,CACJ,CAAC;IAEF,MAAM,SAAS,GACb,6DAA6D,CAAC;IAEhE,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;QAC1B,OAAO,CACL,KAAC,aAAa,IAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,YAC5C,OAAO,GACM,CACjB,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CACL,YAAG,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,YAChC,OAAO,GACN,CACL,CAAC;IACJ,CAAC;IAED,OAAO,CACL,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,YACzD,OAAO,GACD,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export interface SettingsDropupProps {
|
|
2
|
-
userName?: string;
|
|
3
|
-
userEmail?: string;
|
|
4
|
-
initialNotifications?: boolean;
|
|
5
|
-
onNotificationsChange?: (enabled: boolean) => void;
|
|
6
|
-
onLogout?: () => void;
|
|
7
|
-
}
|
|
8
|
-
export declare function SettingsDropup({ userName, userEmail, initialNotifications, onNotificationsChange, onLogout, }: SettingsDropupProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
-
//# sourceMappingURL=SettingsDropup.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsDropup.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/SettingsDropup.tsx"],"names":[],"mappings":"AAOA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAiB,EACjB,SAA8B,EAC9B,oBAA2B,EAC3B,qBAAqB,EACrB,QAAQ,GACT,EAAE,mBAAmB,2CA0NrB"}
|