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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/dist/components/index.d.ts +0 -1
  2. package/dist/components/index.d.ts.map +1 -1
  3. package/dist/components/index.js +0 -1
  4. package/dist/components/index.js.map +1 -1
  5. package/dist/styles.css +1 -1
  6. package/package.json +2 -8
  7. package/dist/components/dashboard/ChatHistorySection.d.ts +0 -4
  8. package/dist/components/dashboard/ChatHistorySection.d.ts.map +0 -1
  9. package/dist/components/dashboard/ChatHistorySection.js +0 -138
  10. package/dist/components/dashboard/ChatHistorySection.js.map +0 -1
  11. package/dist/components/dashboard/DashboardBackground.d.ts +0 -4
  12. package/dist/components/dashboard/DashboardBackground.d.ts.map +0 -1
  13. package/dist/components/dashboard/DashboardBackground.js +0 -85
  14. package/dist/components/dashboard/DashboardBackground.js.map +0 -1
  15. package/dist/components/dashboard/FilterDropdown.d.ts +0 -14
  16. package/dist/components/dashboard/FilterDropdown.d.ts.map +0 -1
  17. package/dist/components/dashboard/FilterDropdown.js +0 -68
  18. package/dist/components/dashboard/FilterDropdown.js.map +0 -1
  19. package/dist/components/dashboard/GlassPanel.d.ts +0 -4
  20. package/dist/components/dashboard/GlassPanel.d.ts.map +0 -1
  21. package/dist/components/dashboard/GlassPanel.js +0 -11
  22. package/dist/components/dashboard/GlassPanel.js.map +0 -1
  23. package/dist/components/dashboard/Header.d.ts +0 -4
  24. package/dist/components/dashboard/Header.d.ts.map +0 -1
  25. package/dist/components/dashboard/Header.js +0 -87
  26. package/dist/components/dashboard/Header.js.map +0 -1
  27. package/dist/components/dashboard/IconBadge.d.ts +0 -12
  28. package/dist/components/dashboard/IconBadge.d.ts.map +0 -1
  29. package/dist/components/dashboard/IconBadge.js +0 -22
  30. package/dist/components/dashboard/IconBadge.js.map +0 -1
  31. package/dist/components/dashboard/ListItem.d.ts +0 -10
  32. package/dist/components/dashboard/ListItem.d.ts.map +0 -1
  33. package/dist/components/dashboard/ListItem.js +0 -13
  34. package/dist/components/dashboard/ListItem.js.map +0 -1
  35. package/dist/components/dashboard/MetricsCard.d.ts +0 -10
  36. package/dist/components/dashboard/MetricsCard.d.ts.map +0 -1
  37. package/dist/components/dashboard/MetricsCard.js +0 -39
  38. package/dist/components/dashboard/MetricsCard.js.map +0 -1
  39. package/dist/components/dashboard/MobileSidebar.d.ts +0 -4
  40. package/dist/components/dashboard/MobileSidebar.d.ts.map +0 -1
  41. package/dist/components/dashboard/MobileSidebar.js +0 -68
  42. package/dist/components/dashboard/MobileSidebar.js.map +0 -1
  43. package/dist/components/dashboard/NavMenu.d.ts +0 -8
  44. package/dist/components/dashboard/NavMenu.d.ts.map +0 -1
  45. package/dist/components/dashboard/NavMenu.js +0 -145
  46. package/dist/components/dashboard/NavMenu.js.map +0 -1
  47. package/dist/components/dashboard/PatternCard.d.ts +0 -16
  48. package/dist/components/dashboard/PatternCard.d.ts.map +0 -1
  49. package/dist/components/dashboard/PatternCard.js +0 -75
  50. package/dist/components/dashboard/PatternCard.js.map +0 -1
  51. package/dist/components/dashboard/SearchInput.d.ts +0 -15
  52. package/dist/components/dashboard/SearchInput.d.ts.map +0 -1
  53. package/dist/components/dashboard/SearchInput.js +0 -41
  54. package/dist/components/dashboard/SearchInput.js.map +0 -1
  55. package/dist/components/dashboard/SectionHeader.d.ts +0 -13
  56. package/dist/components/dashboard/SectionHeader.d.ts.map +0 -1
  57. package/dist/components/dashboard/SectionHeader.js +0 -22
  58. package/dist/components/dashboard/SectionHeader.js.map +0 -1
  59. package/dist/components/dashboard/SettingsDropup.d.ts +0 -11
  60. package/dist/components/dashboard/SettingsDropup.d.ts.map +0 -1
  61. package/dist/components/dashboard/SettingsDropup.js +0 -169
  62. package/dist/components/dashboard/SettingsDropup.js.map +0 -1
  63. package/dist/components/dashboard/SettingsModal.d.ts +0 -4
  64. package/dist/components/dashboard/SettingsModal.d.ts.map +0 -1
  65. package/dist/components/dashboard/SettingsModal.js +0 -240
  66. package/dist/components/dashboard/SettingsModal.js.map +0 -1
  67. package/dist/components/dashboard/SidePanel.d.ts +0 -12
  68. package/dist/components/dashboard/SidePanel.d.ts.map +0 -1
  69. package/dist/components/dashboard/SidePanel.js +0 -45
  70. package/dist/components/dashboard/SidePanel.js.map +0 -1
  71. package/dist/components/dashboard/Sidebar.d.ts +0 -4
  72. package/dist/components/dashboard/Sidebar.d.ts.map +0 -1
  73. package/dist/components/dashboard/Sidebar.js +0 -52
  74. package/dist/components/dashboard/Sidebar.js.map +0 -1
  75. package/dist/components/dashboard/SidebarLogo.d.ts +0 -7
  76. package/dist/components/dashboard/SidebarLogo.d.ts.map +0 -1
  77. package/dist/components/dashboard/SidebarLogo.js +0 -46
  78. package/dist/components/dashboard/SidebarLogo.js.map +0 -1
  79. package/dist/components/dashboard/SourceIcon.d.ts +0 -7
  80. package/dist/components/dashboard/SourceIcon.d.ts.map +0 -1
  81. package/dist/components/dashboard/SourceIcon.js +0 -16
  82. package/dist/components/dashboard/SourceIcon.js.map +0 -1
  83. package/dist/components/dashboard/StatusBadge.d.ts +0 -14
  84. package/dist/components/dashboard/StatusBadge.d.ts.map +0 -1
  85. package/dist/components/dashboard/StatusBadge.js +0 -30
  86. package/dist/components/dashboard/StatusBadge.js.map +0 -1
  87. package/dist/components/dashboard/StatusIndicator.d.ts +0 -7
  88. package/dist/components/dashboard/StatusIndicator.d.ts.map +0 -1
  89. package/dist/components/dashboard/StatusIndicator.js +0 -29
  90. package/dist/components/dashboard/StatusIndicator.js.map +0 -1
  91. package/dist/components/dashboard/Tag.d.ts +0 -7
  92. package/dist/components/dashboard/Tag.d.ts.map +0 -1
  93. package/dist/components/dashboard/Tag.js +0 -9
  94. package/dist/components/dashboard/Tag.js.map +0 -1
  95. package/dist/components/dashboard/TipCard.d.ts +0 -5
  96. package/dist/components/dashboard/TipCard.d.ts.map +0 -1
  97. package/dist/components/dashboard/TipCard.js +0 -10
  98. package/dist/components/dashboard/TipCard.js.map +0 -1
  99. package/dist/components/dashboard/ToggleSwitch.d.ts +0 -8
  100. package/dist/components/dashboard/ToggleSwitch.d.ts.map +0 -1
  101. package/dist/components/dashboard/ToggleSwitch.js +0 -31
  102. package/dist/components/dashboard/ToggleSwitch.js.map +0 -1
  103. package/dist/components/dashboard/index.d.ts +0 -26
  104. package/dist/components/dashboard/index.d.ts.map +0 -1
  105. package/dist/components/dashboard/index.js +0 -26
  106. package/dist/components/dashboard/index.js.map +0 -1
  107. package/dist/components/dashboard/types.d.ts +0 -108
  108. package/dist/components/dashboard/types.d.ts.map +0 -1
  109. package/dist/components/dashboard/types.js +0 -2
  110. package/dist/components/dashboard/types.js.map +0 -1
@@ -1,85 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- const DEFAULT_NOISE_TEXTURE = 'https://api.builder.io/api/v1/image/assets/TEMP/01cf5743ccbc8becbbc870a231ecce44d240df94?width=3840';
4
- // Sidebar width for centering calculations
5
- const SIDEBAR_WIDTH = 280;
6
- export function DashboardBackground({ variant = 'default', noiseTextureSrc = DEFAULT_NOISE_TEXTURE, }) {
7
- if (variant === 'minimal') {
8
- return (_jsx("div", { style: { position: 'fixed', inset: 0, pointerEvents: 'none', zIndex: 0 }, children: _jsx("div", { style: { position: 'absolute', inset: 0, background: '#030005' } }) }));
9
- }
10
- return (_jsxs("div", { style: { position: 'fixed', inset: 0, pointerEvents: 'none', zIndex: 0, overflow: 'hidden' }, children: [_jsx("style", { children: `
11
- @keyframes riseFromBelow {
12
- 0% {
13
- opacity: 0;
14
- transform: translate(-50%, 100%);
15
- }
16
- 100% {
17
- opacity: 1;
18
- transform: translate(-50%, 85%);
19
- }
20
- }
21
-
22
- @keyframes fadeInHalf {
23
- 0% { opacity: 0; }
24
- 100% { opacity: 0.5; }
25
- }
26
-
27
- @keyframes fadeIn {
28
- 0% { opacity: 0; }
29
- 100% { opacity: 1; }
30
- }
31
-
32
- .dashboard-bg-blob {
33
- left: 50%;
34
- transform: translate(-50%, 85%);
35
- animation: riseFromBelow 0.7s cubic-bezier(0.22, 1, 0.36, 1) forwards;
36
- }
37
-
38
- .dashboard-bg-gradient {
39
- animation: fadeInHalf 0.6s cubic-bezier(0.22, 1, 0.36, 1) forwards;
40
- opacity: 0;
41
- }
42
-
43
- .dashboard-bg-vignette {
44
- animation: fadeIn 0.6s cubic-bezier(0.22, 1, 0.36, 1) forwards;
45
- opacity: 0;
46
- }
47
-
48
- @media (min-width: 768px) {
49
- .dashboard-bg-blob {
50
- left: calc(50% + ${SIDEBAR_WIDTH / 2}px);
51
- }
52
- }
53
- ` }), _jsx("div", { style: {
54
- position: 'absolute',
55
- inset: 0,
56
- background: '#030005',
57
- } }), _jsx("div", { className: "dashboard-bg-gradient", style: {
58
- position: 'absolute',
59
- top: 0,
60
- bottom: 0,
61
- right: 0,
62
- left: `calc(${SIDEBAR_WIDTH}px + 25%)`,
63
- background: 'linear-gradient(270deg, #1E1035 0%, #0A0515 50%, rgba(10, 5, 21, 0) 100%)',
64
- } }), _jsx("img", { src: noiseTextureSrc, alt: "", role: "presentation", style: {
65
- position: 'absolute',
66
- inset: 0,
67
- width: '100%',
68
- height: '100%',
69
- opacity: 0.07,
70
- mixBlendMode: 'overlay',
71
- objectFit: 'cover',
72
- } }), _jsx("div", { className: "dashboard-bg-vignette", style: {
73
- position: 'absolute',
74
- inset: 0,
75
- background: `radial-gradient(ellipse 55% 90% at calc(50% + ${SIDEBAR_WIDTH / 2}px) 50%, rgba(3, 0, 5, 0) 0%, rgba(3, 0, 5, 0.50) 100%)`,
76
- } }), _jsx("div", { className: "dashboard-bg-blob", style: {
77
- position: 'absolute',
78
- width: 950,
79
- height: 450,
80
- bottom: 0,
81
- background: 'rgba(133, 78, 210, 0.45)',
82
- filter: 'blur(150px)',
83
- } })] }));
84
- }
85
- //# sourceMappingURL=DashboardBackground.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DashboardBackground.js","sourceRoot":"","sources":["../../../src/components/dashboard/DashboardBackground.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAMb,MAAM,qBAAqB,GAAG,qGAAqG,CAAC;AAEpI,2CAA2C;AAC3C,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B,MAAM,UAAU,mBAAmB,CAAC,EAClC,OAAO,GAAG,SAAS,EACnB,eAAe,GAAG,qBAAqB,GACd;IACzB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,CACL,cAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,YAC3E,cAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,GAAI,GACrE,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,eAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAG/F,0BACG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAwCwB,aAAa,GAAG,CAAC;;;SAGzC,GACK,EAGR,cACE,KAAK,EAAE;oBACL,QAAQ,EAAE,UAAU;oBACpB,KAAK,EAAE,CAAC;oBACR,UAAU,EAAE,SAAS;iBACtB,GACD,EAGF,cACE,SAAS,EAAC,uBAAuB,EACjC,KAAK,EAAE;oBACL,QAAQ,EAAE,UAAU;oBACpB,GAAG,EAAE,CAAC;oBACN,MAAM,EAAE,CAAC;oBACT,KAAK,EAAE,CAAC;oBACR,IAAI,EAAE,QAAQ,aAAa,WAAW;oBACtC,UAAU,EAAE,2EAA2E;iBACxF,GACD,EAGF,cACE,GAAG,EAAE,eAAe,EACpB,GAAG,EAAC,EAAE,EACN,IAAI,EAAC,cAAc,EACnB,KAAK,EAAE;oBACL,QAAQ,EAAE,UAAU;oBACpB,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,IAAI;oBACb,YAAY,EAAE,SAAS;oBACvB,SAAS,EAAE,OAAO;iBACnB,GACD,EAGF,cACE,SAAS,EAAC,uBAAuB,EACjC,KAAK,EAAE;oBACL,QAAQ,EAAE,UAAU;oBACpB,KAAK,EAAE,CAAC;oBACR,UAAU,EAAE,iDAAiD,aAAa,GAAG,CAAC,yDAAyD;iBACxI,GACD,EAGF,cACE,SAAS,EAAC,mBAAmB,EAC7B,KAAK,EAAE;oBACL,QAAQ,EAAE,UAAU;oBACpB,KAAK,EAAE,GAAG;oBACV,MAAM,EAAE,GAAG;oBACX,MAAM,EAAE,CAAC;oBACT,UAAU,EAAE,0BAA0B;oBACtC,MAAM,EAAE,aAAa;iBACtB,GACD,IACE,CACP,CAAC;AACJ,CAAC"}
@@ -1,14 +0,0 @@
1
- export interface FilterOption {
2
- label: string;
3
- value: string;
4
- }
5
- export interface FilterDropdownProps {
6
- label: string;
7
- options: FilterOption[];
8
- value?: string;
9
- onChange?: (value: string) => void;
10
- className?: string;
11
- showBorder?: boolean;
12
- }
13
- export declare function FilterDropdown({ label, options, value, onChange, className, showBorder, }: FilterDropdownProps): import("react/jsx-runtime").JSX.Element;
14
- //# sourceMappingURL=FilterDropdown.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FilterDropdown.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/FilterDropdown.tsx"],"names":[],"mappings":"AAQA,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,OAAO,EACP,KAAK,EACL,QAAQ,EACR,SAAS,EACT,UAAkB,GACnB,EAAE,mBAAmB,2CAsHrB"}
@@ -1,68 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { Check, ChevronDown } from 'lucide-react';
4
- import { useCallback, useEffect, useRef, useState } from 'react';
5
- import { createPortal } from 'react-dom';
6
- import { cn } from '../../lib/utils';
7
- export function FilterDropdown({ label, options, value, onChange, className, showBorder = false, }) {
8
- const [isOpen, setIsOpen] = useState(false);
9
- const [selectedValue, setSelectedValue] = useState(value || options[0]?.value);
10
- const [dropdownPosition, setDropdownPosition] = useState({ top: 0, left: 0 });
11
- const buttonRef = useRef(null);
12
- const dropdownRef = useRef(null);
13
- const selectedOption = options.find((opt) => opt.value === selectedValue);
14
- const updatePosition = useCallback(() => {
15
- if (buttonRef.current) {
16
- const rect = buttonRef.current.getBoundingClientRect();
17
- setDropdownPosition({
18
- top: rect.bottom + 4,
19
- left: rect.left,
20
- });
21
- }
22
- }, []);
23
- useEffect(() => {
24
- function handleClickOutside(event) {
25
- const target = event.target;
26
- if (buttonRef.current &&
27
- !buttonRef.current.contains(target) &&
28
- dropdownRef.current &&
29
- !dropdownRef.current.contains(target)) {
30
- setIsOpen(false);
31
- }
32
- }
33
- document.addEventListener('mousedown', handleClickOutside);
34
- return () => document.removeEventListener('mousedown', handleClickOutside);
35
- }, []);
36
- useEffect(() => {
37
- if (isOpen) {
38
- updatePosition();
39
- window.addEventListener('scroll', updatePosition, true);
40
- window.addEventListener('resize', updatePosition);
41
- return () => {
42
- window.removeEventListener('scroll', updatePosition, true);
43
- window.removeEventListener('resize', updatePosition);
44
- };
45
- }
46
- }, [isOpen, updatePosition]);
47
- const handleSelect = (optionValue) => {
48
- setSelectedValue(optionValue);
49
- onChange?.(optionValue);
50
- setIsOpen(false);
51
- };
52
- const handleToggle = () => {
53
- if (!isOpen) {
54
- updatePosition();
55
- }
56
- setIsOpen(!isOpen);
57
- };
58
- return (_jsxs("div", { className: cn('relative', className), children: [_jsxs("button", { ref: buttonRef, type: "button", onClick: handleToggle, className: cn('h-[34px] px-3 flex items-center gap-2 rounded-lg transition-colors hover:bg-white/5', showBorder && 'border-r border-white/10 rounded-r-none pr-4'), style: { background: isOpen ? 'rgba(255, 255, 255, 0.05)' : 'transparent' }, children: [_jsx("span", { className: "text-xs font-medium text-gray-300", children: selectedOption?.label || label }), _jsx(ChevronDown, { size: 12, className: cn('text-gray-500 transition-transform', isOpen && 'rotate-180') })] }), isOpen &&
59
- typeof document !== 'undefined' &&
60
- createPortal(_jsx("div", { ref: dropdownRef, className: "fixed min-w-[160px] py-1 rounded-lg z-[9999]", style: {
61
- top: dropdownPosition.top,
62
- left: dropdownPosition.left,
63
- background: 'rgba(20, 10, 35, 0.98)',
64
- border: '1px solid rgba(255, 255, 255, 0.10)',
65
- boxShadow: '0 10px 40px rgba(0, 0, 0, 0.5)',
66
- }, children: options.map((option) => (_jsxs("button", { type: "button", onClick: () => handleSelect(option.value), className: "w-full px-3 py-2 flex items-center justify-between text-left hover:bg-white/5 transition-colors", children: [_jsx("span", { className: cn('text-xs', selectedValue === option.value ? 'text-white' : 'text-gray-400'), children: option.label }), selectedValue === option.value && _jsx(Check, { size: 12, className: "text-purple-400" })] }, option.value))) }), document.body)] }));
67
- }
68
- //# sourceMappingURL=FilterDropdown.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FilterDropdown.js","sourceRoot":"","sources":["../../../src/components/dashboard/FilterDropdown.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import type { GlassPanelProps } from './types';
2
- export type { GlassPanelProps };
3
- export declare function GlassPanel({ children, variant, className, }: GlassPanelProps): import("react/jsx-runtime").JSX.Element;
4
- //# sourceMappingURL=GlassPanel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GlassPanel.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/GlassPanel.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,YAAY,EAAE,eAAe,EAAE,CAAC;AAEhC,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,OAAiB,EACjB,SAAc,GACf,EAAE,eAAe,2CAUjB"}
@@ -1,11 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- import { cn } from '../../lib/utils';
4
- export function GlassPanel({ children, variant = 'light', className = '', }) {
5
- const baseClasses = 'rounded-xl border';
6
- const variantClasses = variant === 'light'
7
- ? 'bg-white/[0.02] border-white/[0.06] backdrop-blur-sm'
8
- : 'border-white/[0.06] bg-white/[0.01]';
9
- return (_jsx("div", { className: cn(baseClasses, variantClasses, className), children: children }));
10
- }
11
- //# sourceMappingURL=GlassPanel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GlassPanel.js","sourceRoot":"","sources":["../../../src/components/dashboard/GlassPanel.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAKrC,MAAM,UAAU,UAAU,CAAC,EACzB,QAAQ,EACR,OAAO,GAAG,OAAO,EACjB,SAAS,GAAG,EAAE,GACE;IAChB,MAAM,WAAW,GAAG,mBAAmB,CAAC;IACxC,MAAM,cAAc,GAClB,OAAO,KAAK,OAAO;QACjB,CAAC,CAAC,sDAAsD;QACxD,CAAC,CAAC,qCAAqC,CAAC;IAE5C,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,SAAS,CAAC,YAAG,QAAQ,GAAO,CAC7E,CAAC;AACJ,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { DateRangeOption, HeaderProps } from './types';
2
- export type { DateRangeOption, HeaderProps };
3
- export declare function Header({ orgName, dateRange, onDateRangeChange, dateRangeOptions, userInitials, showNotification, onNotificationClick, onAvatarClick, minimal, onMenuClick, logoSrc, }: HeaderProps): import("react/jsx-runtime").JSX.Element;
4
- //# sourceMappingURL=Header.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/Header.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE5D,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;AAa7C,wBAAgB,MAAM,CAAC,EACrB,OAA6B,EAC7B,SAAyB,EACzB,iBAAiB,EACjB,gBAA0C,EAC1C,YAAmB,EACnB,gBAAuB,EACvB,mBAAmB,EACnB,aAAa,EACb,OAAe,EACf,WAAW,EACX,OAAO,GACR,EAAE,WAAW,2CAyEb"}
@@ -1,87 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/components/dashboard/Header.tsx"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"IconBadge.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/IconBadge.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,QAAA,MAAM,iBAAiB;;mFAgBtB,CAAC;AAEF,MAAM,WAAW,cAAe,SAAQ,YAAY,CAAC,OAAO,iBAAiB,CAAC;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,OAAgB,EAChB,SAAc,EACd,aAAkB,GACnB,EAAE,cAAc,2CAchB"}
@@ -1,22 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"IconBadge.js","sourceRoot":"","sources":["../../../src/components/dashboard/IconBadge.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,MAAM,iBAAiB,GAAG,GAAG,CAC3B,4DAA4D,EAC5D;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,IAAI,EAAE,+BAA+B;YACrC,MAAM,EAAE,2EAA2E;YACnF,IAAI,EAAE,mCAAmC;YACzC,OAAO,EAAE,yCAAyC;YAClD,IAAI,EAAE,mCAAmC;SAC1C;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,MAAM;KAChB;CACF,CACF,CAAC;AAQF,MAAM,UAAU,SAAS,CAAC,EACxB,IAAI,EACJ,OAAO,GAAG,MAAM,EAChB,SAAS,GAAG,EAAE,EACd,aAAa,GAAG,EAAE,GACH;IACf,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,YAC3D,eACE,SAAS,EAAE,EAAE,CACX,uCAAuC,EACvC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,EACnD,aAAa,CACd,YAEA,IAAI,GACA,GACH,CACP,CAAC;AACJ,CAAC"}
@@ -1,10 +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
- export declare function ListItem({ children, onClick, ariaLabel, showChevron, highlighted, className, }: ListItemProps): import("react/jsx-runtime").JSX.Element;
10
- //# 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,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EACR,OAAO,EACP,SAAS,EACT,WAAmB,EACnB,WAAmB,EACnB,SAAS,GACV,EAAE,aAAa,2CAoBf"}
@@ -1,13 +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
- 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
@@ -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,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,39 +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
- 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
@@ -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,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IAEzC,OAAO,CACL,KAAC,UAAU,IAAC,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,0BAA0B,YAC9D,eAAK,SAAS,EAAC,yDAAyD,aAEtE,eAAK,SAAS,EAAC,gDAAgD,aAC7D,eAAM,SAAS,EAAC,6EAA6E,YAC1F,KAAK,GACD,EACP,KAAC,WAAW,IAAC,OAAO,EAAE,UAAU,YAAG,MAAM,GAAe,IACpD,EAGN,eAAK,SAAS,EAAC,qCAAqC,aAClD,eAAM,SAAS,EAAC,0CAA0C,YACvD,KAAK,GACD,EAEP,KAAC,SAAS,IACR,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,GAClB,IACE,IACF,GACK,CACd,CAAC;AACJ,CAAC;AAQD,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAkB;IAClE,OAAO,CACL,cAAK,SAAS,EAAC,0BAA0B,YACtC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC5B,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;YAElD,OAAO,CACL,cAEE,KAAK,EAAE;oBACL,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,GAAG,MAAM,IAAI;oBACrB,YAAY,EAAE,aAAa;oBAC3B,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;oBAC5C,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;oBAC5C,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;iBAC1B,IARI,OAAO,KAAK,IAAI,GAAG,EAAE,CAS1B,CACH,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -1,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, onThemeChange, onNotificationsChange, initialTheme, 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":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAW,MAAM,SAAS,CAAC;AAM3D,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAiBnC,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,OAAO,EACP,QAA0B,EAC1B,UAAgB,EAChB,UAAU,EACV,YAAmB,EACnB,OAAwB,EACxB,QAAiB,EACjB,SAA8B,EAC9B,QAAQ,EACR,aAAa,EACb,qBAAqB,EACrB,YAAqB,EACrB,oBAA2B,EAC3B,WAAW,EACX,YAAY,EACZ,mBAA0B,EAC1B,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,YAAY,GACb,EAAE,kBAAkB,2CA6HpB"}
@@ -1,68 +0,0 @@
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
@@ -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":"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"}