@handled-ai/design-system 0.8.0 → 0.9.0

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 (336) hide show
  1. package/README.md +14 -4
  2. package/dist/charts/bar-chart-component.d.ts +24 -0
  3. package/dist/charts/bar-chart-component.js +123 -0
  4. package/dist/charts/bar-chart-component.js.map +1 -0
  5. package/dist/charts/chart-tooltip.d.ts +26 -0
  6. package/dist/charts/chart-tooltip.js +69 -0
  7. package/dist/charts/chart-tooltip.js.map +1 -0
  8. package/dist/charts/chart.d.ts +64 -0
  9. package/dist/charts/chart.js +285 -0
  10. package/dist/charts/chart.js.map +1 -0
  11. package/dist/charts/donut-chart.d.ts +21 -0
  12. package/dist/charts/donut-chart.js +96 -0
  13. package/dist/charts/donut-chart.js.map +1 -0
  14. package/dist/charts/index.d.ts +11 -0
  15. package/dist/charts/index.js +10 -0
  16. package/dist/charts/index.js.map +1 -0
  17. package/dist/charts/pipeline-overview.d.ts +76 -0
  18. package/dist/charts/pipeline-overview.js +372 -0
  19. package/dist/charts/pipeline-overview.js.map +1 -0
  20. package/dist/charts/sankey-chart.d.ts +52 -0
  21. package/dist/charts/sankey-chart.js +219 -0
  22. package/dist/charts/sankey-chart.js.map +1 -0
  23. package/dist/charts/top-line-metrics.d.ts +26 -0
  24. package/dist/charts/top-line-metrics.js +224 -0
  25. package/dist/charts/top-line-metrics.js.map +1 -0
  26. package/dist/charts/trend-area-chart.d.ts +21 -0
  27. package/dist/charts/trend-area-chart.js +150 -0
  28. package/dist/charts/trend-area-chart.js.map +1 -0
  29. package/dist/charts/volume-analysis-chart.d.ts +19 -0
  30. package/dist/charts/volume-analysis-chart.js +121 -0
  31. package/dist/charts/volume-analysis-chart.js.map +1 -0
  32. package/dist/components/activity-detail.d.ts +38 -0
  33. package/dist/components/activity-detail.js +163 -0
  34. package/dist/components/activity-detail.js.map +1 -0
  35. package/dist/components/activity-log.d.ts +21 -0
  36. package/dist/components/activity-log.js +61 -0
  37. package/dist/components/activity-log.js.map +1 -0
  38. package/dist/components/agent-popover.d.ts +71 -0
  39. package/dist/components/agent-popover.js +282 -0
  40. package/dist/components/agent-popover.js.map +1 -0
  41. package/dist/components/agent-widget.d.ts +24 -0
  42. package/dist/components/agent-widget.js +117 -0
  43. package/dist/components/agent-widget.js.map +1 -0
  44. package/dist/components/avatar.d.ts +13 -0
  45. package/dist/components/avatar.js +140 -0
  46. package/dist/components/avatar.js.map +1 -0
  47. package/dist/components/badge.d.ts +12 -0
  48. package/dist/components/badge.js +75 -0
  49. package/dist/components/badge.js.map +1 -0
  50. package/dist/components/button.d.ts +13 -0
  51. package/dist/components/button.js +83 -0
  52. package/dist/components/button.js.map +1 -0
  53. package/dist/components/card.d.ts +11 -0
  54. package/dist/components/card.js +119 -0
  55. package/dist/components/card.js.map +1 -0
  56. package/dist/components/contact-list.d.ts +34 -0
  57. package/dist/components/contact-list.js +84 -0
  58. package/dist/components/contact-list.js.map +1 -0
  59. package/dist/components/dashboard-cards.d.ts +10 -0
  60. package/dist/components/dashboard-cards.js +164 -0
  61. package/dist/components/dashboard-cards.js.map +1 -0
  62. package/dist/components/data-table-display.d.ts +19 -0
  63. package/dist/components/data-table-display.js +109 -0
  64. package/dist/components/data-table-display.js.map +1 -0
  65. package/dist/components/data-table-filter.d.ts +18 -0
  66. package/dist/components/data-table-filter.js +107 -0
  67. package/dist/components/data-table-filter.js.map +1 -0
  68. package/dist/components/data-table-quick-views.d.ts +13 -0
  69. package/dist/components/data-table-quick-views.js +90 -0
  70. package/dist/components/data-table-quick-views.js.map +1 -0
  71. package/dist/components/data-table-toolbar.d.ts +18 -0
  72. package/dist/components/data-table-toolbar.js +45 -0
  73. package/dist/components/data-table-toolbar.js.map +1 -0
  74. package/dist/components/data-table.d.ts +39 -0
  75. package/dist/components/data-table.js +821 -0
  76. package/dist/components/data-table.js.map +1 -0
  77. package/dist/components/detail-view.d.ts +44 -0
  78. package/dist/components/detail-view.js +165 -0
  79. package/dist/components/detail-view.js.map +1 -0
  80. package/dist/components/dialog.d.ts +19 -0
  81. package/dist/components/dialog.js +188 -0
  82. package/dist/components/dialog.js.map +1 -0
  83. package/dist/components/dropdown-menu.d.ts +27 -0
  84. package/dist/components/dropdown-menu.js +279 -0
  85. package/dist/components/dropdown-menu.js.map +1 -0
  86. package/dist/components/entity-panel.d.ts +69 -0
  87. package/dist/components/entity-panel.js +584 -0
  88. package/dist/components/entity-panel.js.map +1 -0
  89. package/dist/components/inbox-row.d.ts +27 -0
  90. package/dist/components/inbox-row.js +139 -0
  91. package/dist/components/inbox-row.js.map +1 -0
  92. package/dist/components/inbox-toolbar.d.ts +21 -0
  93. package/dist/components/inbox-toolbar.js +203 -0
  94. package/dist/components/inbox-toolbar.js.map +1 -0
  95. package/dist/components/input.d.ts +5 -0
  96. package/dist/components/input.js +50 -0
  97. package/dist/components/input.js.map +1 -0
  98. package/dist/components/insights-filter-bar.d.ts +21 -0
  99. package/dist/components/insights-filter-bar.js +99 -0
  100. package/dist/components/insights-filter-bar.js.map +1 -0
  101. package/dist/components/item-list-display.d.ts +22 -0
  102. package/dist/components/item-list-display.js +240 -0
  103. package/dist/components/item-list-display.js.map +1 -0
  104. package/dist/components/item-list-filter.d.ts +16 -0
  105. package/dist/components/item-list-filter.js +87 -0
  106. package/dist/components/item-list-filter.js.map +1 -0
  107. package/dist/components/item-list-toolbar.d.ts +25 -0
  108. package/dist/components/item-list-toolbar.js +79 -0
  109. package/dist/components/item-list-toolbar.js.map +1 -0
  110. package/dist/components/item-list.d.ts +20 -0
  111. package/dist/components/item-list.js +702 -0
  112. package/dist/components/item-list.js.map +1 -0
  113. package/dist/components/label.d.ts +6 -0
  114. package/dist/components/label.js +55 -0
  115. package/dist/components/label.js.map +1 -0
  116. package/dist/components/message.d.ts +23 -0
  117. package/dist/components/message.js +117 -0
  118. package/dist/components/message.js.map +1 -0
  119. package/dist/components/metric-card.d.ts +25 -0
  120. package/dist/components/metric-card.js +107 -0
  121. package/dist/components/metric-card.js.map +1 -0
  122. package/dist/components/performance-metrics-table.d.ts +38 -0
  123. package/dist/components/performance-metrics-table.js +342 -0
  124. package/dist/components/performance-metrics-table.js.map +1 -0
  125. package/dist/components/preview-list.d.ts +14 -0
  126. package/dist/components/preview-list.js +83 -0
  127. package/dist/components/preview-list.js.map +1 -0
  128. package/dist/components/progress.d.ts +6 -0
  129. package/dist/components/progress.js +69 -0
  130. package/dist/components/progress.js.map +1 -0
  131. package/dist/components/quick-action-chat-area.d.ts +24 -0
  132. package/dist/components/quick-action-chat-area.js +178 -0
  133. package/dist/components/quick-action-chat-area.js.map +1 -0
  134. package/dist/components/quick-action-modal.d.ts +30 -0
  135. package/dist/components/quick-action-modal.js +288 -0
  136. package/dist/components/quick-action-modal.js.map +1 -0
  137. package/dist/components/quick-action-sidebar-nav.d.ts +51 -0
  138. package/dist/components/quick-action-sidebar-nav.js +528 -0
  139. package/dist/components/quick-action-sidebar-nav.js.map +1 -0
  140. package/dist/components/recommended-actions-section.d.ts +23 -0
  141. package/dist/components/recommended-actions-section.js +215 -0
  142. package/dist/components/recommended-actions-section.js.map +1 -0
  143. package/dist/components/report-card.d.ts +26 -0
  144. package/dist/components/report-card.js +69 -0
  145. package/dist/components/report-card.js.map +1 -0
  146. package/dist/components/score-analysis-modal.d.ts +26 -0
  147. package/dist/components/score-analysis-modal.js +141 -0
  148. package/dist/components/score-analysis-modal.js.map +1 -0
  149. package/dist/components/score-breakdown.d.ts +17 -0
  150. package/dist/components/score-breakdown.js +162 -0
  151. package/dist/components/score-breakdown.js.map +1 -0
  152. package/dist/components/score-feedback.d.ts +40 -0
  153. package/dist/components/score-feedback.js +209 -0
  154. package/dist/components/score-feedback.js.map +1 -0
  155. package/dist/components/score-ring.d.ts +14 -0
  156. package/dist/components/score-ring.js +79 -0
  157. package/dist/components/score-ring.js.map +1 -0
  158. package/dist/components/scroll-area.d.ts +7 -0
  159. package/dist/components/scroll-area.js +101 -0
  160. package/dist/components/scroll-area.js.map +1 -0
  161. package/dist/components/select.d.ts +17 -0
  162. package/dist/components/select.js +228 -0
  163. package/dist/components/select.js.map +1 -0
  164. package/dist/components/separator.d.ts +6 -0
  165. package/dist/components/separator.js +61 -0
  166. package/dist/components/separator.js.map +1 -0
  167. package/dist/components/sheet.d.ts +16 -0
  168. package/dist/components/sheet.js +168 -0
  169. package/dist/components/sheet.js.map +1 -0
  170. package/dist/components/sidebar.d.ts +73 -0
  171. package/dist/components/sidebar.js +723 -0
  172. package/dist/components/sidebar.js.map +1 -0
  173. package/dist/components/signal-feedback-inline.d.ts +51 -0
  174. package/dist/components/signal-feedback-inline.js +548 -0
  175. package/dist/components/signal-feedback-inline.js.map +1 -0
  176. package/dist/components/simple-data-table.d.ts +15 -0
  177. package/dist/components/simple-data-table.js +91 -0
  178. package/dist/components/simple-data-table.js.map +1 -0
  179. package/dist/components/skeleton.d.ts +5 -0
  180. package/dist/components/skeleton.js +44 -0
  181. package/dist/components/skeleton.js.map +1 -0
  182. package/dist/components/status-badge.d.ts +10 -0
  183. package/dist/components/status-badge.js +82 -0
  184. package/dist/components/status-badge.js.map +1 -0
  185. package/dist/components/styled-bar-list.d.ts +20 -0
  186. package/dist/components/styled-bar-list.js +59 -0
  187. package/dist/components/styled-bar-list.js.map +1 -0
  188. package/dist/components/suggested-actions.d.ts +110 -0
  189. package/dist/components/suggested-actions.js +1538 -0
  190. package/dist/components/suggested-actions.js.map +1 -0
  191. package/dist/components/table.d.ts +12 -0
  192. package/dist/components/table.js +147 -0
  193. package/dist/components/table.js.map +1 -0
  194. package/dist/components/tabs.d.ts +14 -0
  195. package/dist/components/tabs.js +129 -0
  196. package/dist/components/tabs.js.map +1 -0
  197. package/dist/components/textarea.d.ts +5 -0
  198. package/dist/components/textarea.js +47 -0
  199. package/dist/components/textarea.js.map +1 -0
  200. package/dist/components/timeline-activity.d.ts +34 -0
  201. package/dist/components/timeline-activity.js +181 -0
  202. package/dist/components/timeline-activity.js.map +1 -0
  203. package/dist/components/tooltip.d.ts +9 -0
  204. package/dist/components/tooltip.js +93 -0
  205. package/dist/components/tooltip.js.map +1 -0
  206. package/dist/components/view-mode-toggle.d.ts +16 -0
  207. package/dist/components/view-mode-toggle.js +24 -0
  208. package/dist/components/view-mode-toggle.js.map +1 -0
  209. package/dist/hooks/use-mobile.d.ts +3 -0
  210. package/dist/hooks/use-mobile.js +21 -0
  211. package/dist/hooks/use-mobile.js.map +1 -0
  212. package/dist/index.d.ts +68 -1878
  213. package/dist/index.js +69 -10918
  214. package/dist/index.js.map +1 -1
  215. package/dist/lib/icons.d.ts +18 -0
  216. package/dist/lib/icons.js +21 -0
  217. package/dist/lib/icons.js.map +1 -0
  218. package/dist/lib/utils.d.ts +5 -0
  219. package/dist/lib/utils.js +9 -0
  220. package/dist/lib/utils.js.map +1 -0
  221. package/dist/prototype/index.d.ts +20 -0
  222. package/dist/prototype/index.js +8 -0
  223. package/dist/prototype/index.js.map +1 -0
  224. package/dist/prototype/prototype-accounts-view.d.ts +22 -0
  225. package/dist/prototype/prototype-accounts-view.js +70 -0
  226. package/dist/prototype/prototype-accounts-view.js.map +1 -0
  227. package/dist/prototype/prototype-admin-view.d.ts +21 -0
  228. package/dist/prototype/prototype-admin-view.js +53 -0
  229. package/dist/prototype/prototype-admin-view.js.map +1 -0
  230. package/dist/prototype/prototype-config.d.ts +226 -0
  231. package/dist/prototype/prototype-config.js +1 -0
  232. package/dist/prototype/prototype-config.js.map +1 -0
  233. package/dist/prototype/prototype-inbox-view.d.ts +48 -0
  234. package/dist/prototype/prototype-inbox-view.js +701 -0
  235. package/dist/prototype/prototype-inbox-view.js.map +1 -0
  236. package/dist/prototype/prototype-insights-view.d.ts +23 -0
  237. package/dist/prototype/prototype-insights-view.js +335 -0
  238. package/dist/prototype/prototype-insights-view.js.map +1 -0
  239. package/dist/prototype/prototype-shell.d.ts +40 -0
  240. package/dist/prototype/prototype-shell.js +190 -0
  241. package/dist/prototype/prototype-shell.js.map +1 -0
  242. package/dist/prototype/prototype-work-queue-view.d.ts +8 -0
  243. package/dist/prototype/prototype-work-queue-view.js +17 -0
  244. package/dist/prototype/prototype-work-queue-view.js.map +1 -0
  245. package/dist/three/agent-orb.d.ts +39 -0
  246. package/dist/three/agent-orb.js +500 -0
  247. package/dist/three/agent-orb.js.map +1 -0
  248. package/dist/three/index.d.ts +2 -0
  249. package/dist/three/index.js +2 -0
  250. package/dist/three/index.js.map +1 -0
  251. package/package.json +98 -17
  252. package/src/charts/bar-chart-component.tsx +150 -0
  253. package/src/charts/chart-tooltip.tsx +86 -0
  254. package/src/charts/chart.tsx +371 -0
  255. package/src/charts/donut-chart.tsx +112 -0
  256. package/src/charts/index.ts +13 -0
  257. package/src/charts/pipeline-overview.tsx +476 -0
  258. package/src/charts/sankey-chart.tsx +290 -0
  259. package/src/charts/top-line-metrics.tsx +261 -0
  260. package/src/charts/trend-area-chart.tsx +150 -0
  261. package/src/charts/volume-analysis-chart.tsx +124 -0
  262. package/src/components/activity-detail.tsx +233 -0
  263. package/src/components/activity-log.tsx +89 -0
  264. package/src/components/agent-popover.tsx +373 -0
  265. package/src/components/agent-widget.tsx +163 -0
  266. package/src/components/avatar.tsx +109 -0
  267. package/src/components/badge.tsx +48 -0
  268. package/src/components/button.tsx +59 -0
  269. package/src/components/card.tsx +92 -0
  270. package/src/components/contact-list.tsx +121 -0
  271. package/src/components/dashboard-cards.tsx +170 -0
  272. package/src/components/data-table-display.tsx +139 -0
  273. package/src/components/data-table-filter.tsx +138 -0
  274. package/src/components/data-table-quick-views.tsx +103 -0
  275. package/src/components/data-table-toolbar.tsx +56 -0
  276. package/src/components/data-table.tsx +915 -0
  277. package/src/components/detail-view.tsx +237 -0
  278. package/src/components/dialog.tsx +158 -0
  279. package/src/components/dropdown-menu.tsx +257 -0
  280. package/src/components/entity-panel.tsx +767 -0
  281. package/src/components/inbox-row.tsx +132 -0
  282. package/src/components/inbox-toolbar.tsx +213 -0
  283. package/src/components/input.tsx +21 -0
  284. package/src/components/insights-filter-bar.tsx +132 -0
  285. package/src/components/item-list-display.tsx +278 -0
  286. package/src/components/item-list-filter.tsx +118 -0
  287. package/src/components/item-list-toolbar.tsx +97 -0
  288. package/src/components/item-list.tsx +843 -0
  289. package/src/components/label.tsx +24 -0
  290. package/src/components/message.tsx +83 -0
  291. package/src/components/metric-card.tsx +178 -0
  292. package/src/components/performance-metrics-table.tsx +442 -0
  293. package/src/components/preview-list.tsx +62 -0
  294. package/src/components/progress.tsx +31 -0
  295. package/src/components/quick-action-chat-area.tsx +156 -0
  296. package/src/components/quick-action-modal.tsx +331 -0
  297. package/src/components/quick-action-sidebar-nav.tsx +592 -0
  298. package/src/components/recommended-actions-section.tsx +258 -0
  299. package/src/components/report-card.tsx +106 -0
  300. package/src/components/score-analysis-modal.tsx +172 -0
  301. package/src/components/score-breakdown.tsx +179 -0
  302. package/src/components/score-feedback.tsx +288 -0
  303. package/src/components/score-ring.tsx +87 -0
  304. package/src/components/scroll-area.tsx +58 -0
  305. package/src/components/select.tsx +190 -0
  306. package/src/components/separator.tsx +28 -0
  307. package/src/components/sheet.tsx +143 -0
  308. package/src/components/sidebar.tsx +726 -0
  309. package/src/components/signal-feedback-inline.tsx +591 -0
  310. package/src/components/simple-data-table.tsx +124 -0
  311. package/src/components/skeleton.tsx +15 -0
  312. package/src/components/status-badge.tsx +63 -0
  313. package/src/components/styled-bar-list.tsx +70 -0
  314. package/src/components/suggested-actions.tsx +1985 -0
  315. package/src/components/table.tsx +116 -0
  316. package/src/components/tabs.tsx +91 -0
  317. package/src/components/textarea.tsx +18 -0
  318. package/src/components/timeline-activity.tsx +234 -0
  319. package/src/components/tooltip.tsx +57 -0
  320. package/src/components/view-mode-toggle.tsx +39 -0
  321. package/src/hooks/use-mobile.ts +21 -0
  322. package/src/index.ts +77 -0
  323. package/src/lib/icons.ts +18 -0
  324. package/src/lib/utils.ts +6 -0
  325. package/src/prototype/index.ts +11 -0
  326. package/src/prototype/prototype-accounts-view.tsx +112 -0
  327. package/src/prototype/prototype-admin-view.tsx +67 -0
  328. package/src/prototype/prototype-config.ts +243 -0
  329. package/src/prototype/prototype-inbox-view.tsx +810 -0
  330. package/src/prototype/prototype-insights-view.tsx +379 -0
  331. package/src/prototype/prototype-shell.tsx +219 -0
  332. package/src/prototype/prototype-work-queue-view.tsx +30 -0
  333. package/src/styles/globals.css +299 -0
  334. package/src/three/agent-orb.tsx +557 -0
  335. package/src/three/index.ts +5 -0
  336. package/src/types/r3f.d.ts +8 -0
@@ -0,0 +1,584 @@
1
+ "use client"
2
+
3
+ "use client";
4
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
5
+ import * as React from "react";
6
+ import { Sheet, SheetContent, SheetHeader, SheetTitle } from "./sheet.js";
7
+ import { Badge } from "./badge.js";
8
+ import { Button } from "./button.js";
9
+ import { Input } from "./input.js";
10
+ import {
11
+ Plus,
12
+ ExternalLink,
13
+ Mail,
14
+ FileText,
15
+ MessageCircle,
16
+ Briefcase,
17
+ Building2,
18
+ Users,
19
+ X,
20
+ ChevronDown,
21
+ ChevronUp,
22
+ Link as LinkIcon,
23
+ Maximize2,
24
+ Minimize2,
25
+ CalendarDays
26
+ } from "lucide-react";
27
+ import { TimelineActivity } from "./timeline-activity.js";
28
+ function EntityPanel({
29
+ isOpen,
30
+ onClose,
31
+ children
32
+ }) {
33
+ const [isFullscreen, setIsFullscreen] = React.useState(false);
34
+ React.useEffect(() => {
35
+ if (!isOpen) setIsFullscreen(false);
36
+ }, [isOpen]);
37
+ const handleClose = React.useCallback(() => {
38
+ setIsFullscreen(false);
39
+ onClose(false);
40
+ }, [onClose]);
41
+ const panelContent = /* @__PURE__ */ jsx(EntityPanelContext.Provider, { value: { isFullscreen, setIsFullscreen, onClose: handleClose }, children });
42
+ if (isFullscreen && isOpen) {
43
+ return /* @__PURE__ */ jsx("div", { className: "fixed inset-0 z-50 flex flex-col overflow-hidden bg-background", children: /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-y-auto px-6 py-6", children: panelContent }) });
44
+ }
45
+ return /* @__PURE__ */ jsx(Sheet, { open: isOpen, onOpenChange: onClose, children: /* @__PURE__ */ jsxs(
46
+ SheetContent,
47
+ {
48
+ side: "right",
49
+ className: "w-full sm:w-[500px] sm:max-w-[600px] overflow-hidden p-0 bg-background border-l border-border flex flex-col",
50
+ showCloseButton: false,
51
+ children: [
52
+ /* @__PURE__ */ jsx(SheetHeader, { className: "sr-only p-0", children: /* @__PURE__ */ jsx(SheetTitle, { children: "Entity panel" }) }),
53
+ /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-y-auto px-6 py-6", children: panelContent })
54
+ ]
55
+ }
56
+ ) });
57
+ }
58
+ const EntityPanelContext = React.createContext({
59
+ isFullscreen: false,
60
+ setIsFullscreen: () => {
61
+ },
62
+ onClose: () => {
63
+ }
64
+ });
65
+ function useEntityPanel() {
66
+ return React.useContext(EntityPanelContext);
67
+ }
68
+ function EntityPanelHeader({
69
+ icon,
70
+ title,
71
+ badgeLabel,
72
+ subtitle: _subtitle,
73
+ headerAction
74
+ }) {
75
+ const { isFullscreen, setIsFullscreen, onClose } = useEntityPanel();
76
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-6", children: [
77
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 min-w-0", children: [
78
+ icon != null ? icon : /* @__PURE__ */ jsx(CalendarDays, { className: "w-5 h-5 text-muted-foreground shrink-0" }),
79
+ /* @__PURE__ */ jsx("h2", { className: "text-lg font-semibold text-foreground truncate", children: title }),
80
+ badgeLabel && /* @__PURE__ */ jsx(
81
+ Badge,
82
+ {
83
+ variant: "outline",
84
+ className: "text-blue-600 border-blue-300 dark:border-blue-700 dark:text-blue-400 shadow-none px-2 py-0.5 text-[11px] font-medium shrink-0",
85
+ children: badgeLabel
86
+ }
87
+ )
88
+ ] }),
89
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 shrink-0 ml-4 text-muted-foreground", children: [
90
+ headerAction,
91
+ /* @__PURE__ */ jsx(
92
+ "button",
93
+ {
94
+ type: "button",
95
+ className: "p-1.5 rounded-md hover:bg-secondary transition-colors",
96
+ title: "Copy Link",
97
+ children: /* @__PURE__ */ jsx(LinkIcon, { className: "w-4 h-4" })
98
+ }
99
+ ),
100
+ /* @__PURE__ */ jsx(
101
+ "button",
102
+ {
103
+ type: "button",
104
+ onClick: () => setIsFullscreen(!isFullscreen),
105
+ className: "p-1.5 rounded-md hover:bg-secondary transition-colors",
106
+ title: isFullscreen ? "Exit fullscreen" : "Fullscreen",
107
+ children: isFullscreen ? /* @__PURE__ */ jsx(Minimize2, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx(Maximize2, { className: "w-4 h-4" })
108
+ }
109
+ ),
110
+ /* @__PURE__ */ jsx(
111
+ "button",
112
+ {
113
+ type: "button",
114
+ onClick: onClose,
115
+ className: "p-1.5 rounded-md hover:bg-secondary transition-colors",
116
+ title: "Close",
117
+ children: /* @__PURE__ */ jsx(X, { className: "w-4 h-4" })
118
+ }
119
+ )
120
+ ] })
121
+ ] });
122
+ }
123
+ function EntityPanelTabs({
124
+ tabs,
125
+ activeTab,
126
+ onTabChange
127
+ }) {
128
+ return /* @__PURE__ */ jsx("div", { className: "flex items-center gap-6 border-b border-border mb-6", children: tabs.map((tab) => /* @__PURE__ */ jsx(
129
+ "button",
130
+ {
131
+ type: "button",
132
+ onClick: () => onTabChange(tab.id),
133
+ className: `pb-3 text-sm font-medium border-b-2 transition-colors ${activeTab === tab.id ? "border-primary text-foreground" : "border-transparent text-muted-foreground hover:text-foreground"}`,
134
+ children: tab.label
135
+ },
136
+ tab.id
137
+ )) });
138
+ }
139
+ function EntityMetadataGrid({ fields }) {
140
+ return /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 md:grid-cols-[160px_1fr] gap-y-4 gap-x-6 mb-8 text-sm", children: fields.map((field, idx) => /* @__PURE__ */ jsxs(React.Fragment, { children: [
141
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-muted-foreground font-medium", children: [
142
+ /* @__PURE__ */ jsx(field.icon, { className: "w-4 h-4" }),
143
+ /* @__PURE__ */ jsx("span", { children: field.label })
144
+ ] }),
145
+ /* @__PURE__ */ jsx("div", { className: "text-foreground", children: field.value })
146
+ ] }, idx)) });
147
+ }
148
+ function EntitySection({
149
+ title,
150
+ children,
151
+ action
152
+ }) {
153
+ return /* @__PURE__ */ jsxs("section", { className: "mb-8", children: [
154
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-3", children: [
155
+ /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-foreground", children: title }),
156
+ action
157
+ ] }),
158
+ children
159
+ ] });
160
+ }
161
+ function EntityActivityItem({
162
+ icon,
163
+ title,
164
+ description,
165
+ date
166
+ }) {
167
+ return /* @__PURE__ */ jsxs("div", { className: "flex gap-3 text-[13px]", children: [
168
+ /* @__PURE__ */ jsx("div", { className: "mt-0.5 text-muted-foreground shrink-0", children: icon != null ? icon : /* @__PURE__ */ jsx(CalendarDays, { className: "w-4 h-4" }) }),
169
+ /* @__PURE__ */ jsxs("div", { children: [
170
+ /* @__PURE__ */ jsx("p", { className: "text-foreground leading-relaxed", children: title }),
171
+ description && /* @__PURE__ */ jsx("p", { className: "text-[11px] text-muted-foreground/70 mt-0.5", children: description }),
172
+ date && /* @__PURE__ */ jsx("p", { className: "text-[11px] text-muted-foreground/70 mt-0.5", children: date })
173
+ ] })
174
+ ] });
175
+ }
176
+ function SystemActivity() {
177
+ return /* @__PURE__ */ jsx(EntitySection, { title: "System Activity", children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
178
+ /* @__PURE__ */ jsx(
179
+ EntityActivityItem,
180
+ {
181
+ title: /* @__PURE__ */ jsxs(Fragment, { children: [
182
+ /* @__PURE__ */ jsx("span", { className: "font-medium", children: "System" }),
183
+ " enriched the lead"
184
+ ] }),
185
+ date: "Today at 10:15 AM"
186
+ }
187
+ ),
188
+ /* @__PURE__ */ jsx(
189
+ EntityActivityItem,
190
+ {
191
+ icon: /* @__PURE__ */ jsx(Mail, { className: "w-4 h-4" }),
192
+ title: /* @__PURE__ */ jsxs(Fragment, { children: [
193
+ /* @__PURE__ */ jsx("span", { className: "font-medium", children: "Jackie Lee" }),
194
+ " submitted website form"
195
+ ] }),
196
+ date: "Yesterday at 3:22 PM"
197
+ }
198
+ )
199
+ ] }) });
200
+ }
201
+ function EntityPanelBrandIcon({
202
+ src,
203
+ alt,
204
+ className,
205
+ fallback
206
+ }) {
207
+ if (!src) {
208
+ return /* @__PURE__ */ jsx(Fragment, { children: fallback });
209
+ }
210
+ return /* @__PURE__ */ jsx("img", { src, alt, className });
211
+ }
212
+ function PotentialContacts({
213
+ icons
214
+ }) {
215
+ return /* @__PURE__ */ jsxs("div", { className: "space-y-3 mb-8", children: [
216
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
217
+ /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-foreground", children: "Potential Contacts" }),
218
+ /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: "3 identified" })
219
+ ] }),
220
+ /* @__PURE__ */ jsxs("div", { className: "space-y-0 pt-1", children: [
221
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3 group py-2.5 border-b border-border/30 hover:bg-muted/20 -mx-2 px-2 rounded-sm transition-colors", children: [
222
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2.5 min-w-0", children: [
223
+ /* @__PURE__ */ jsx(Badge, { variant: "outline", className: "bg-indigo-50 text-indigo-700 border-indigo-200 dark:bg-indigo-900/30 dark:text-indigo-300 dark:border-indigo-800 shadow-none px-2 py-0 text-[11px] font-medium shrink-0", children: "Primary" }),
224
+ /* @__PURE__ */ jsx("span", { className: "font-medium text-sm text-foreground truncate", children: "Jackie Lee" }),
225
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-sm shrink-0", children: "\xB7" }),
226
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-sm truncate", children: "VP Finance" })
227
+ ] }),
228
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 shrink-0", children: [
229
+ /* @__PURE__ */ jsx("button", { className: "h-7 w-7 flex items-center justify-center hover:bg-muted rounded-md transition-colors", children: /* @__PURE__ */ jsx(
230
+ EntityPanelBrandIcon,
231
+ {
232
+ src: icons == null ? void 0 : icons.linkedin,
233
+ alt: "LinkedIn",
234
+ className: "w-3.5 h-3.5 object-contain",
235
+ fallback: /* @__PURE__ */ jsx(LinkIcon, { className: "w-3.5 h-3.5 text-muted-foreground" })
236
+ }
237
+ ) }),
238
+ /* @__PURE__ */ jsx("button", { className: "h-7 w-7 flex items-center justify-center hover:bg-muted rounded-md transition-colors", children: /* @__PURE__ */ jsx(
239
+ EntityPanelBrandIcon,
240
+ {
241
+ src: icons == null ? void 0 : icons.gmail,
242
+ alt: "Gmail",
243
+ className: "w-3.5 h-3.5 object-contain",
244
+ fallback: /* @__PURE__ */ jsx(Mail, { className: "w-3.5 h-3.5 text-muted-foreground" })
245
+ }
246
+ ) }),
247
+ /* @__PURE__ */ jsxs(Button, { size: "sm", className: "bg-foreground text-background hover:bg-foreground/90 h-6 text-[11px] font-medium shadow-none ml-1", children: [
248
+ /* @__PURE__ */ jsx(Plus, { className: "w-3 h-3 mr-1" }),
249
+ " Add to SF"
250
+ ] })
251
+ ] })
252
+ ] }),
253
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3 group py-2.5 border-b border-border/30 hover:bg-muted/20 -mx-2 px-2 rounded-sm transition-colors", children: [
254
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2.5 min-w-0", children: [
255
+ /* @__PURE__ */ jsx(Badge, { variant: "outline", className: "bg-green-50 text-green-700 border-green-200 dark:bg-green-900/30 dark:text-green-300 dark:border-green-800 shadow-none px-2 py-0 text-[11px] font-medium shrink-0", children: "78%" }),
256
+ /* @__PURE__ */ jsx("span", { className: "font-medium text-sm text-foreground truncate", children: "Marcus Webb" }),
257
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-sm shrink-0", children: "\xB7" }),
258
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-sm truncate", children: "CEO" })
259
+ ] }),
260
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 shrink-0", children: [
261
+ /* @__PURE__ */ jsx("button", { className: "h-7 w-7 flex items-center justify-center hover:bg-muted rounded-md transition-colors", children: /* @__PURE__ */ jsx(
262
+ EntityPanelBrandIcon,
263
+ {
264
+ src: icons == null ? void 0 : icons.linkedin,
265
+ alt: "LinkedIn",
266
+ className: "w-3.5 h-3.5 object-contain",
267
+ fallback: /* @__PURE__ */ jsx(LinkIcon, { className: "w-3.5 h-3.5 text-muted-foreground" })
268
+ }
269
+ ) }),
270
+ /* @__PURE__ */ jsxs(Button, { size: "sm", className: "bg-foreground text-background hover:bg-foreground/90 h-6 text-[11px] font-medium shadow-none ml-1", children: [
271
+ /* @__PURE__ */ jsx(Plus, { className: "w-3 h-3 mr-1" }),
272
+ " Add to SF"
273
+ ] })
274
+ ] })
275
+ ] }),
276
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3 group py-2.5 border-b border-border/30 last:border-0 hover:bg-muted/20 -mx-2 px-2 rounded-sm transition-colors", children: [
277
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2.5 min-w-0", children: [
278
+ /* @__PURE__ */ jsx(Badge, { variant: "outline", className: "bg-amber-50 text-amber-700 border-amber-200 dark:bg-amber-900/30 dark:text-amber-300 dark:border-amber-800 shadow-none px-2 py-0 text-[11px] font-medium shrink-0", children: "65%" }),
279
+ /* @__PURE__ */ jsx("span", { className: "font-medium text-sm text-foreground truncate", children: "Priya Shah" }),
280
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-sm shrink-0", children: "\xB7" }),
281
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-sm truncate", children: "Head of Ops" })
282
+ ] }),
283
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 shrink-0", children: [
284
+ /* @__PURE__ */ jsx("button", { className: "h-7 w-7 flex items-center justify-center hover:bg-muted rounded-md transition-colors", children: /* @__PURE__ */ jsx(
285
+ EntityPanelBrandIcon,
286
+ {
287
+ src: icons == null ? void 0 : icons.linkedin,
288
+ alt: "LinkedIn",
289
+ className: "w-3.5 h-3.5 object-contain",
290
+ fallback: /* @__PURE__ */ jsx(LinkIcon, { className: "w-3.5 h-3.5 text-muted-foreground" })
291
+ }
292
+ ) }),
293
+ /* @__PURE__ */ jsx("button", { className: "h-7 w-7 flex items-center justify-center hover:bg-muted rounded-md transition-colors", children: /* @__PURE__ */ jsx(
294
+ EntityPanelBrandIcon,
295
+ {
296
+ src: icons == null ? void 0 : icons.gmail,
297
+ alt: "Gmail",
298
+ className: "w-3.5 h-3.5 object-contain",
299
+ fallback: /* @__PURE__ */ jsx(Mail, { className: "w-3.5 h-3.5 text-muted-foreground" })
300
+ }
301
+ ) }),
302
+ /* @__PURE__ */ jsxs(Button, { size: "sm", className: "bg-foreground text-background hover:bg-foreground/90 h-6 text-[11px] font-medium shadow-none ml-1", children: [
303
+ /* @__PURE__ */ jsx(Plus, { className: "w-3 h-3 mr-1" }),
304
+ " Add to SF"
305
+ ] })
306
+ ] })
307
+ ] })
308
+ ] })
309
+ ] });
310
+ }
311
+ function RecentActivity({
312
+ title = "Recent Activity",
313
+ count = "10 total events",
314
+ filters = [],
315
+ items = []
316
+ }) {
317
+ return /* @__PURE__ */ jsxs("div", { id: "entity-recent-activity", className: "space-y-4 mb-8 scroll-m-20", children: [
318
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
319
+ /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-foreground", children: title }),
320
+ count && /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: count })
321
+ ] }),
322
+ filters.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex flex-wrap items-center gap-1.5", children: filters.map((filter) => /* @__PURE__ */ jsx(
323
+ Button,
324
+ {
325
+ variant: "outline",
326
+ size: "sm",
327
+ className: "h-7 text-xs rounded-md shadow-none font-medium border-border text-muted-foreground hover:text-foreground",
328
+ children: filter
329
+ },
330
+ filter
331
+ )) }),
332
+ /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsx(
333
+ Input,
334
+ {
335
+ placeholder: "Search activity...",
336
+ className: "h-9 text-sm bg-background border-border shadow-none"
337
+ }
338
+ ) }),
339
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(TimelineActivity, { events: items }) })
340
+ ] });
341
+ }
342
+ function ConnectedApps({
343
+ icons
344
+ }) {
345
+ return /* @__PURE__ */ jsxs("div", { className: "space-y-3 mb-8", children: [
346
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
347
+ /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-foreground", children: "Connected Apps" }),
348
+ /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: "3 connected" })
349
+ ] }),
350
+ /* @__PURE__ */ jsxs("div", { className: "space-y-0 pt-1", children: [
351
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3 group py-2.5 border-b border-border/30 hover:bg-muted/20 -mx-2 px-2 rounded-sm transition-colors", children: [
352
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 min-w-0", children: [
353
+ /* @__PURE__ */ jsx("div", { className: "w-8 h-8 rounded-md border border-border/60 bg-muted/30 flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsx(
354
+ EntityPanelBrandIcon,
355
+ {
356
+ src: icons == null ? void 0 : icons.slack,
357
+ alt: "Slack",
358
+ className: "w-4 h-4 object-contain",
359
+ fallback: /* @__PURE__ */ jsx(MessageCircle, { className: "w-4 h-4 text-muted-foreground" })
360
+ }
361
+ ) }),
362
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
363
+ /* @__PURE__ */ jsx("p", { className: "font-medium text-sm text-foreground leading-snug truncate", children: "#lunchclub-acmeco" }),
364
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground/60", children: "Slack Channel" })
365
+ ] })
366
+ ] }),
367
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 shrink-0", children: [
368
+ /* @__PURE__ */ jsx(ExternalLink, { className: "w-3 h-3 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity" }),
369
+ /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity cursor-pointer hover:text-foreground", children: "Open" })
370
+ ] })
371
+ ] }),
372
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3 group py-2.5 border-b border-border/30 hover:bg-muted/20 -mx-2 px-2 rounded-sm transition-colors", children: [
373
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 min-w-0", children: [
374
+ /* @__PURE__ */ jsx("div", { className: "w-8 h-8 rounded-md border border-border/60 bg-muted/30 flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsx(
375
+ EntityPanelBrandIcon,
376
+ {
377
+ src: icons == null ? void 0 : icons.gdoc,
378
+ alt: "Google Docs",
379
+ className: "w-4 h-4 object-contain",
380
+ fallback: /* @__PURE__ */ jsx(FileText, { className: "w-4 h-4 text-muted-foreground" })
381
+ }
382
+ ) }),
383
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
384
+ /* @__PURE__ */ jsx("p", { className: "font-medium text-sm text-foreground leading-snug truncate", children: "Account Strategy Document" }),
385
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground/60", children: "Google Document" })
386
+ ] })
387
+ ] }),
388
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 shrink-0", children: [
389
+ /* @__PURE__ */ jsx(ExternalLink, { className: "w-3 h-3 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity" }),
390
+ /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity cursor-pointer hover:text-foreground", children: "Open" })
391
+ ] })
392
+ ] }),
393
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3 group py-2.5 border-b border-border/30 last:border-0 hover:bg-muted/20 -mx-2 px-2 rounded-sm transition-colors", children: [
394
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 min-w-0", children: [
395
+ /* @__PURE__ */ jsx("div", { className: "w-8 h-8 rounded-md border border-border/60 bg-muted/30 flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsx(FileText, { className: "w-4 h-4 text-foreground" }) }),
396
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
397
+ /* @__PURE__ */ jsx("p", { className: "font-medium text-sm text-foreground leading-snug truncate", children: "Customer Success Playbook" }),
398
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground/60", children: "Notion Page" })
399
+ ] })
400
+ ] }),
401
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 shrink-0", children: [
402
+ /* @__PURE__ */ jsx(ExternalLink, { className: "w-3 h-3 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity" }),
403
+ /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity cursor-pointer hover:text-foreground", children: "Open" })
404
+ ] })
405
+ ] })
406
+ ] })
407
+ ] });
408
+ }
409
+ function EntityDetails({ onClose: _onClose }) {
410
+ const [activeTab, setActiveTab] = React.useState("overview");
411
+ const [showMore, setShowMore] = React.useState(false);
412
+ const leadFields = [
413
+ { icon: Users, label: "Lead Name", value: /* @__PURE__ */ jsx("span", { className: "font-medium", children: "Jackie Lee" }) },
414
+ { icon: Briefcase, label: "Title", value: /* @__PURE__ */ jsx("span", { className: "font-medium", children: "VP Finance" }) },
415
+ { icon: Building2, label: "Company", value: /* @__PURE__ */ jsx("span", { className: "font-medium", children: "CloudKitchen" }) },
416
+ { icon: Mail, label: "Lead Source", value: /* @__PURE__ */ jsx("span", { className: "font-medium", children: "Inbound \u2014 Website form" }) },
417
+ {
418
+ icon: ({ className }) => /* @__PURE__ */ jsx("div", { className, children: /* @__PURE__ */ jsx("div", { className: "w-3 h-3 rounded-full border-[2px] border-amber-500" }) }),
419
+ label: "Lead Status",
420
+ value: /* @__PURE__ */ jsx(Badge, { variant: "outline", className: "text-amber-700 border-amber-200 bg-amber-50 dark:bg-amber-950 dark:text-amber-300 dark:border-amber-800 shadow-none font-medium px-2 py-0 text-[11px]", children: "New \u2014 Not Contacted" })
421
+ },
422
+ { icon: Users, label: "Lead Owner", value: /* @__PURE__ */ jsx("span", { className: "font-medium", children: "Sarah Johnson (SDR)" }) },
423
+ {
424
+ icon: Building2,
425
+ label: "Industry",
426
+ value: /* @__PURE__ */ jsx(Badge, { variant: "outline", className: "text-blue-700 border-blue-200 bg-blue-50 dark:bg-blue-950 dark:text-blue-300 dark:border-blue-800 shadow-none font-medium px-2 py-0 text-[11px]", children: "Food Tech / Logistics" })
427
+ },
428
+ { icon: Users, label: "Company Size", value: /* @__PURE__ */ jsx("span", { className: "font-medium", children: "200-500 employees" }) }
429
+ ];
430
+ const visibleFields = showMore ? leadFields : leadFields.slice(0, 6);
431
+ return /* @__PURE__ */ jsxs("div", { className: "space-y-0", children: [
432
+ /* @__PURE__ */ jsx(
433
+ EntityPanelHeader,
434
+ {
435
+ icon: /* @__PURE__ */ jsx("div", { className: "w-10 h-10 rounded-lg bg-muted flex items-center justify-center text-sm font-medium text-muted-foreground shrink-0", children: "CK" }),
436
+ title: "CloudKitchen",
437
+ badgeLabel: "Lead",
438
+ subtitle: "Last enriched: Today at 10:15 AM"
439
+ }
440
+ ),
441
+ /* @__PURE__ */ jsx(
442
+ EntityPanelTabs,
443
+ {
444
+ tabs: [
445
+ { id: "overview", label: "Overview" },
446
+ { id: "details", label: "Details" }
447
+ ],
448
+ activeTab,
449
+ onTabChange: (id) => setActiveTab(id)
450
+ }
451
+ ),
452
+ activeTab === "overview" ? /* @__PURE__ */ jsxs("div", { className: "space-y-0", children: [
453
+ /* @__PURE__ */ jsx(EntityMetadataGrid, { fields: visibleFields }),
454
+ leadFields.length > 6 && /* @__PURE__ */ jsxs(
455
+ "button",
456
+ {
457
+ onClick: () => setShowMore(!showMore),
458
+ className: "flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors mb-8",
459
+ children: [
460
+ showMore ? "See less" : "See more",
461
+ showMore ? /* @__PURE__ */ jsx(ChevronUp, { className: "w-3 h-3" }) : /* @__PURE__ */ jsx(ChevronDown, { className: "w-3 h-3" })
462
+ ]
463
+ }
464
+ ),
465
+ /* @__PURE__ */ jsx(EntitySection, { title: "Company Signals", children: /* @__PURE__ */ jsxs("ul", { className: "space-y-2", children: [
466
+ /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-2 text-sm text-muted-foreground", children: [
467
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground/50 mt-1 shrink-0", children: "\u2022" }),
468
+ /* @__PURE__ */ jsxs("span", { children: [
469
+ "Recent funding: $45M Series B, 3 months ago",
470
+ /* @__PURE__ */ jsx("span", { className: "inline-flex items-center justify-center w-4 h-4 ml-1.5 align-text-top text-[9px] font-medium text-muted-foreground bg-muted/30 border border-border/50 rounded-full", children: "1" })
471
+ ] })
472
+ ] }),
473
+ /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-2 text-sm text-muted-foreground", children: [
474
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground/50 mt-1 shrink-0", children: "\u2022" }),
475
+ /* @__PURE__ */ jsxs("span", { children: [
476
+ "Hiring: 3 finance/treasury roles in last 30 days",
477
+ /* @__PURE__ */ jsx("span", { className: "inline-flex items-center justify-center w-4 h-4 ml-1.5 align-text-top text-[9px] font-medium text-muted-foreground bg-muted/30 border border-border/50 rounded-full", children: "2" })
478
+ ] })
479
+ ] }),
480
+ /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-2 text-sm text-muted-foreground", children: [
481
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground/50 mt-1 shrink-0", children: "\u2022" }),
482
+ /* @__PURE__ */ jsxs("span", { children: [
483
+ "Market expansion: 8 \u2192 15 US markets planned",
484
+ /* @__PURE__ */ jsx("span", { className: "inline-flex items-center justify-center w-4 h-4 ml-1.5 align-text-top text-[9px] font-medium text-muted-foreground bg-muted/30 border border-border/50 rounded-full", children: "3" })
485
+ ] })
486
+ ] })
487
+ ] }) }),
488
+ /* @__PURE__ */ jsx(EntitySection, { title: "Contact Signals (Jackie Lee)", children: /* @__PURE__ */ jsxs("ul", { className: "space-y-2", children: [
489
+ /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-2 text-sm text-muted-foreground", children: [
490
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground/50 mt-1 shrink-0", children: "\u2022" }),
491
+ /* @__PURE__ */ jsxs("span", { children: [
492
+ "Started role: 12 days ago",
493
+ /* @__PURE__ */ jsx("span", { className: "inline-flex items-center justify-center w-4 h-4 ml-1.5 align-text-top text-[9px] font-medium text-muted-foreground bg-muted/30 border border-border/50 rounded-full", children: "4" })
494
+ ] })
495
+ ] }),
496
+ /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-2 text-sm text-muted-foreground", children: [
497
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground/50 mt-1 shrink-0", children: "\u2022" }),
498
+ /* @__PURE__ */ jsxs("span", { children: [
499
+ "Previous: Deel \u2014 operations/finance",
500
+ /* @__PURE__ */ jsx("span", { className: "inline-flex items-center justify-center w-4 h-4 ml-1.5 align-text-top text-[9px] font-medium text-muted-foreground bg-muted/30 border border-border/50 rounded-full", children: "4" })
501
+ ] })
502
+ ] }),
503
+ /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-2 text-sm text-muted-foreground", children: [
504
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground/50 mt-1 shrink-0", children: "\u2022" }),
505
+ /* @__PURE__ */ jsxs("span", { children: [
506
+ "LinkedIn connections to existing customers: 2 detected",
507
+ /* @__PURE__ */ jsx("span", { className: "inline-flex items-center justify-center w-4 h-4 ml-1.5 align-text-top text-[9px] font-medium text-muted-foreground bg-muted/30 border border-border/50 rounded-full", children: "4" })
508
+ ] })
509
+ ] })
510
+ ] }) }),
511
+ /* @__PURE__ */ jsx(SourcesToggle, {})
512
+ ] }) : /* @__PURE__ */ jsx("div", { className: "space-y-0", children: /* @__PURE__ */ jsx(EntitySection, { title: "Estimated Tech Stack", children: /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
513
+ /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2 text-sm", children: [
514
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground/50 mt-1 shrink-0", children: "\u2022" }),
515
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground min-w-[100px] shrink-0", children: "Banking:" }),
516
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground/50 italic", children: "Unknown" })
517
+ ] }),
518
+ /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2 text-sm", children: [
519
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground/50 mt-1 shrink-0", children: "\u2022" }),
520
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground min-w-[100px] shrink-0", children: "Corporate Cards:" }),
521
+ /* @__PURE__ */ jsxs("span", { className: "text-foreground font-medium", children: [
522
+ "Brex ",
523
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground font-normal", children: "(from job posting requirements)" }),
524
+ /* @__PURE__ */ jsx("span", { className: "inline-flex items-center justify-center w-4 h-4 ml-1.5 align-text-top text-[9px] font-medium text-muted-foreground bg-muted/30 border border-border/50 rounded-full", children: "2" })
525
+ ] })
526
+ ] }),
527
+ /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2 text-sm", children: [
528
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground/50 mt-1 shrink-0", children: "\u2022" }),
529
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground min-w-[100px] shrink-0", children: "Payroll:" }),
530
+ /* @__PURE__ */ jsxs("span", { className: "text-foreground font-medium", children: [
531
+ "Gusto ",
532
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground font-normal", children: "(from LinkedIn integrations)" }),
533
+ /* @__PURE__ */ jsx("span", { className: "inline-flex items-center justify-center w-4 h-4 ml-1.5 align-text-top text-[9px] font-medium text-muted-foreground bg-muted/30 border border-border/50 rounded-full", children: "5" })
534
+ ] })
535
+ ] })
536
+ ] }) }) })
537
+ ] });
538
+ }
539
+ function SourcesToggle() {
540
+ const [expanded, setExpanded] = React.useState(false);
541
+ const sources = [
542
+ { name: "Crunchbase", type: "Funding data", lastPull: "2h ago" },
543
+ { name: "LinkedIn", type: "People & company", lastPull: "12h ago" },
544
+ { name: "LinkedIn Jobs", type: "Hiring signals", lastPull: "1d ago" },
545
+ { name: "PR Newswire", type: "News & press", lastPull: "6h ago" },
546
+ { name: "Clearbit", type: "Tech stack & firmographics", lastPull: "2h ago" }
547
+ ];
548
+ return /* @__PURE__ */ jsxs("div", { className: "mb-8", children: [
549
+ /* @__PURE__ */ jsxs(
550
+ "button",
551
+ {
552
+ onClick: () => setExpanded(!expanded),
553
+ className: "flex items-center gap-1.5 text-xs font-semibold text-muted-foreground hover:text-foreground transition-colors",
554
+ children: [
555
+ "Sources",
556
+ /* @__PURE__ */ jsx(ChevronDown, { className: `w-3.5 h-3.5 transition-transform duration-200 ${expanded ? "rotate-180" : ""}` })
557
+ ]
558
+ }
559
+ ),
560
+ expanded && /* @__PURE__ */ jsx("div", { className: "pt-3 space-y-2 animate-in fade-in slide-in-from-top-1 duration-200", children: sources.map((src, idx) => /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between text-xs text-muted-foreground py-1", children: [
561
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
562
+ /* @__PURE__ */ jsx("span", { className: "inline-flex items-center justify-center w-4 h-4 text-[9px] font-medium text-muted-foreground/50 border border-border rounded-full", children: idx + 1 }),
563
+ /* @__PURE__ */ jsx("span", { className: "font-medium text-foreground", children: src.name }),
564
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground/60", children: "\xB7" }),
565
+ /* @__PURE__ */ jsx("span", { children: src.type })
566
+ ] }),
567
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground/50", children: src.lastPull })
568
+ ] }, idx)) })
569
+ ] });
570
+ }
571
+ export {
572
+ ConnectedApps,
573
+ EntityActivityItem,
574
+ EntityDetails,
575
+ EntityMetadataGrid,
576
+ EntityPanel,
577
+ EntityPanelHeader,
578
+ EntityPanelTabs,
579
+ EntitySection,
580
+ PotentialContacts,
581
+ RecentActivity,
582
+ SystemActivity
583
+ };
584
+ //# sourceMappingURL=entity-panel.js.map