@axtec/components 0.1.8 → 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/components/AgentChat/AgentChat.d.ts +32 -0
- package/dist/components/AgentChat/index.d.ts +1 -0
- package/dist/components/AgentPanel/AgentPanel.d.ts +44 -0
- package/dist/components/AgentPanel/index.d.ts +1 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/index.css +1 -1
- package/dist/index.js +161 -157
- package/dist/index.js.map +1 -1
- package/dist/index10.js +77 -99
- package/dist/index10.js.map +1 -1
- package/dist/index11.js +91 -36
- package/dist/index11.js.map +1 -1
- package/dist/index12.js +97 -75
- package/dist/index12.js.map +1 -1
- package/dist/index13.js +38 -24
- package/dist/index13.js.map +1 -1
- package/dist/index14.js +76 -16
- package/dist/index14.js.map +1 -1
- package/dist/index15.js +24 -38
- package/dist/index15.js.map +1 -1
- package/dist/index16.js +18 -72
- package/dist/index16.js.map +1 -1
- package/dist/index17.js +36 -47
- package/dist/index17.js.map +1 -1
- package/dist/index18.js +73 -13
- package/dist/index18.js.map +1 -1
- package/dist/index19.js +47 -151
- package/dist/index19.js.map +1 -1
- package/dist/index20.js +12 -17
- package/dist/index20.js.map +1 -1
- package/dist/index21.js +148 -40
- package/dist/index21.js.map +1 -1
- package/dist/index22.js +18 -50
- package/dist/index22.js.map +1 -1
- package/dist/index23.js +41 -74
- package/dist/index23.js.map +1 -1
- package/dist/index24.js +46 -216
- package/dist/index24.js.map +1 -1
- package/dist/index25.js +73 -46
- package/dist/index25.js.map +1 -1
- package/dist/index26.js +212 -70
- package/dist/index26.js.map +1 -1
- package/dist/index27.js +51 -23
- package/dist/index27.js.map +1 -1
- package/dist/index28.js +74 -74
- package/dist/index28.js.map +1 -1
- package/dist/index29.js +19 -28
- package/dist/index29.js.map +1 -1
- package/dist/index3.js +2 -2
- package/dist/index30.js +62 -76
- package/dist/index30.js.map +1 -1
- package/dist/index31.js +28 -55
- package/dist/index31.js.map +1 -1
- package/dist/index32.js +87 -40
- package/dist/index32.js.map +1 -1
- package/dist/index33.js +57 -45
- package/dist/index33.js.map +1 -1
- package/dist/index34.js +40 -47
- package/dist/index34.js.map +1 -1
- package/dist/index35.js +47 -27
- package/dist/index35.js.map +1 -1
- package/dist/index36.js +52 -54
- package/dist/index36.js.map +1 -1
- package/dist/index37.js +28 -49
- package/dist/index37.js.map +1 -1
- package/dist/index38.js +54 -13
- package/dist/index38.js.map +1 -1
- package/dist/index39.js +46 -79
- package/dist/index39.js.map +1 -1
- package/dist/index40.js +13 -49
- package/dist/index40.js.map +1 -1
- package/dist/index41.js +80 -17
- package/dist/index41.js.map +1 -1
- package/dist/index42.js +48 -33
- package/dist/index42.js.map +1 -1
- package/dist/index43.js +18 -17
- package/dist/index43.js.map +1 -1
- package/dist/index44.js +34 -15
- package/dist/index44.js.map +1 -1
- package/dist/index45.js +16 -89
- package/dist/index45.js.map +1 -1
- package/dist/index46.js +15 -69
- package/dist/index46.js.map +1 -1
- package/dist/index47.js +85 -116
- package/dist/index47.js.map +1 -1
- package/dist/index48.js +69 -40
- package/dist/index48.js.map +1 -1
- package/dist/index49.js +120 -42
- package/dist/index49.js.map +1 -1
- package/dist/index5.js +1 -1
- package/dist/index50.js +39 -55
- package/dist/index50.js.map +1 -1
- package/dist/index51.js +39 -11
- package/dist/index51.js.map +1 -1
- package/dist/index52.js +53 -62
- package/dist/index52.js.map +1 -1
- package/dist/index53.js +16 -54
- package/dist/index53.js.map +1 -1
- package/dist/index54.js +64 -36
- package/dist/index54.js.map +1 -1
- package/dist/index55.js +54 -66
- package/dist/index55.js.map +1 -1
- package/dist/index56.js +37 -22
- package/dist/index56.js.map +1 -1
- package/dist/index57.js +63 -101
- package/dist/index57.js.map +1 -1
- package/dist/index58.js +16 -67
- package/dist/index58.js.map +1 -1
- package/dist/index59.js +99 -213
- package/dist/index59.js.map +1 -1
- package/dist/index6.js +1 -1
- package/dist/index60.js +67 -62
- package/dist/index60.js.map +1 -1
- package/dist/index61.js +206 -224
- package/dist/index61.js.map +1 -1
- package/dist/index62.js +62 -96
- package/dist/index62.js.map +1 -1
- package/dist/index63.js +233 -33
- package/dist/index63.js.map +1 -1
- package/dist/index64.js +98 -14
- package/dist/index64.js.map +1 -1
- package/dist/index65.js +35 -59
- package/dist/index65.js.map +1 -1
- package/dist/index66.js +16 -59
- package/dist/index66.js.map +1 -1
- package/dist/index67.js +57 -72
- package/dist/index67.js.map +1 -1
- package/dist/index68.js +58 -106
- package/dist/index68.js.map +1 -1
- package/dist/index69.js +70 -43
- package/dist/index69.js.map +1 -1
- package/dist/index7.js +157 -69
- package/dist/index7.js.map +1 -1
- package/dist/index70.js +101 -40
- package/dist/index70.js.map +1 -1
- package/dist/index71.js +44 -72
- package/dist/index71.js.map +1 -1
- package/dist/index72.js +47 -53
- package/dist/index72.js.map +1 -1
- package/dist/index73.js +70 -62
- package/dist/index73.js.map +1 -1
- package/dist/index74.js +46 -28
- package/dist/index74.js.map +1 -1
- package/dist/index75.js +67 -13
- package/dist/index75.js.map +1 -1
- package/dist/index76.js +35 -2263
- package/dist/index76.js.map +1 -1
- package/dist/index77.js +17 -0
- package/dist/index77.js.map +1 -0
- package/dist/index78.js +2267 -0
- package/dist/index78.js.map +1 -0
- package/dist/index8.js +377 -70
- package/dist/index8.js.map +1 -1
- package/dist/index9.js +60 -77
- package/dist/index9.js.map +1 -1
- package/package.json +1 -1
package/dist/index11.js
CHANGED
|
@@ -1,42 +1,97 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { jsx as e, jsxs as r } from "react/jsx-runtime";
|
|
2
|
+
import { Fragment as s } from "react";
|
|
3
|
+
import { Transition as h, Dialog as p, TransitionChild as o, DialogPanel as v, DialogTitle as C } from "@headlessui/react";
|
|
4
|
+
import { InformationCircleIcon as y, ExclamationTriangleIcon as N, XCircleIcon as T, CheckCircleIcon as w } from "@heroicons/react/24/outline";
|
|
5
|
+
import { cn as i } from "./index3.js";
|
|
6
|
+
import { Button as I } from "./index19.js";
|
|
7
|
+
const F = {
|
|
8
|
+
success: {
|
|
9
|
+
icon: w,
|
|
10
|
+
iconClass: "text-green-600",
|
|
11
|
+
bgClass: "bg-green-100"
|
|
12
|
+
},
|
|
13
|
+
error: {
|
|
14
|
+
icon: T,
|
|
15
|
+
iconClass: "text-red-600",
|
|
16
|
+
bgClass: "bg-red-100"
|
|
17
|
+
},
|
|
18
|
+
warning: {
|
|
19
|
+
icon: N,
|
|
20
|
+
iconClass: "text-amber-600",
|
|
21
|
+
bgClass: "bg-amber-100"
|
|
22
|
+
},
|
|
23
|
+
info: {
|
|
24
|
+
icon: y,
|
|
25
|
+
iconClass: "text-blue-600",
|
|
26
|
+
bgClass: "bg-blue-100"
|
|
27
|
+
}
|
|
9
28
|
};
|
|
10
|
-
function
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
29
|
+
function B({
|
|
30
|
+
open: m,
|
|
31
|
+
onClose: l,
|
|
32
|
+
title: d,
|
|
33
|
+
message: n,
|
|
34
|
+
htmlMessage: c,
|
|
35
|
+
variant: x = "success",
|
|
36
|
+
confirmText: u = "OK",
|
|
37
|
+
onConfirm: t,
|
|
38
|
+
className: b
|
|
16
39
|
}) {
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
"
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
40
|
+
const a = F[x], g = a.icon, f = () => {
|
|
41
|
+
t == null || t(), l();
|
|
42
|
+
};
|
|
43
|
+
return /* @__PURE__ */ e(h, { show: m, as: s, children: /* @__PURE__ */ r(p, { onClose: l, className: "relative z-50", children: [
|
|
44
|
+
/* @__PURE__ */ e(
|
|
45
|
+
o,
|
|
46
|
+
{
|
|
47
|
+
as: s,
|
|
48
|
+
enter: "ease-out duration-300",
|
|
49
|
+
enterFrom: "opacity-0",
|
|
50
|
+
enterTo: "opacity-100",
|
|
51
|
+
leave: "ease-in duration-200",
|
|
52
|
+
leaveFrom: "opacity-100",
|
|
53
|
+
leaveTo: "opacity-0",
|
|
54
|
+
children: /* @__PURE__ */ e("div", { className: "fixed inset-0 bg-black/50", "aria-hidden": "true" })
|
|
55
|
+
}
|
|
56
|
+
),
|
|
57
|
+
/* @__PURE__ */ e("div", { className: "fixed inset-0 flex items-center justify-center p-4", children: /* @__PURE__ */ e(
|
|
58
|
+
o,
|
|
59
|
+
{
|
|
60
|
+
as: s,
|
|
61
|
+
enter: "ease-out duration-300",
|
|
62
|
+
enterFrom: "opacity-0 scale-95",
|
|
63
|
+
enterTo: "opacity-100 scale-100",
|
|
64
|
+
leave: "ease-in duration-200",
|
|
65
|
+
leaveFrom: "opacity-100 scale-100",
|
|
66
|
+
leaveTo: "opacity-0 scale-95",
|
|
67
|
+
children: /* @__PURE__ */ r(
|
|
68
|
+
v,
|
|
69
|
+
{
|
|
70
|
+
className: i(
|
|
71
|
+
"w-full max-w-sm bg-white rounded-2xl shadow-xl p-6",
|
|
72
|
+
"transform transition-all",
|
|
73
|
+
b
|
|
74
|
+
),
|
|
75
|
+
children: [
|
|
76
|
+
/* @__PURE__ */ e("div", { className: "flex justify-center mb-4", children: /* @__PURE__ */ e("div", { className: i("rounded-full p-3", a.bgClass), children: /* @__PURE__ */ e(g, { className: i("h-8 w-8", a.iconClass) }) }) }),
|
|
77
|
+
/* @__PURE__ */ e(C, { className: "text-lg font-semibold text-slate-900 text-center mb-2", children: d }),
|
|
78
|
+
n && /* @__PURE__ */ e("p", { className: "text-sm text-slate-600 text-center mb-6", children: n }),
|
|
79
|
+
c && /* @__PURE__ */ e(
|
|
80
|
+
"div",
|
|
81
|
+
{
|
|
82
|
+
className: "text-sm text-slate-600 text-center mb-6",
|
|
83
|
+
dangerouslySetInnerHTML: { __html: c }
|
|
84
|
+
}
|
|
85
|
+
),
|
|
86
|
+
/* @__PURE__ */ e(I, { onClick: f, className: "w-full", children: u })
|
|
87
|
+
]
|
|
88
|
+
}
|
|
89
|
+
)
|
|
90
|
+
}
|
|
91
|
+
) })
|
|
92
|
+
] }) });
|
|
38
93
|
}
|
|
39
94
|
export {
|
|
40
|
-
|
|
95
|
+
B as AlertModal
|
|
41
96
|
};
|
|
42
97
|
//# sourceMappingURL=index11.js.map
|
package/dist/index11.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index11.js","sources":["../src/components/
|
|
1
|
+
{"version":3,"file":"index11.js","sources":["../src/components/AlertModal/AlertModal.tsx"],"sourcesContent":["import { Fragment } from 'react'\nimport {\n Dialog,\n DialogPanel,\n DialogTitle,\n Transition,\n TransitionChild,\n} from '@headlessui/react'\nimport {\n CheckCircleIcon,\n ExclamationTriangleIcon,\n XCircleIcon,\n InformationCircleIcon,\n} from '@heroicons/react/24/outline'\nimport { cn } from '@/lib/utils'\nimport { Button } from '../Button/Button'\n\nexport type AlertModalVariant = 'success' | 'error' | 'warning' | 'info'\n\nexport interface AlertModalProps {\n open: boolean\n onClose: () => void\n title: string\n message?: string\n /** HTML content (use with caution) */\n htmlMessage?: string\n variant?: AlertModalVariant\n confirmText?: string\n onConfirm?: () => void\n className?: string\n}\n\nconst variantConfig: Record<\n AlertModalVariant,\n { icon: typeof CheckCircleIcon; iconClass: string; bgClass: string }\n> = {\n success: {\n icon: CheckCircleIcon,\n iconClass: 'text-green-600',\n bgClass: 'bg-green-100',\n },\n error: {\n icon: XCircleIcon,\n iconClass: 'text-red-600',\n bgClass: 'bg-red-100',\n },\n warning: {\n icon: ExclamationTriangleIcon,\n iconClass: 'text-amber-600',\n bgClass: 'bg-amber-100',\n },\n info: {\n icon: InformationCircleIcon,\n iconClass: 'text-blue-600',\n bgClass: 'bg-blue-100',\n },\n}\n\nexport function AlertModal({\n open,\n onClose,\n title,\n message,\n htmlMessage,\n variant = 'success',\n confirmText = 'OK',\n onConfirm,\n className,\n}: AlertModalProps) {\n const config = variantConfig[variant]\n const Icon = config.icon\n\n const handleConfirm = () => {\n onConfirm?.()\n onClose()\n }\n\n return (\n <Transition show={open} as={Fragment}>\n <Dialog onClose={onClose} className=\"relative z-50\">\n {/* Backdrop */}\n <TransitionChild\n as={Fragment}\n enter=\"ease-out duration-300\"\n enterFrom=\"opacity-0\"\n enterTo=\"opacity-100\"\n leave=\"ease-in duration-200\"\n leaveFrom=\"opacity-100\"\n leaveTo=\"opacity-0\"\n >\n <div className=\"fixed inset-0 bg-black/50\" aria-hidden=\"true\" />\n </TransitionChild>\n\n {/* Modal */}\n <div className=\"fixed inset-0 flex items-center justify-center p-4\">\n <TransitionChild\n as={Fragment}\n enter=\"ease-out duration-300\"\n enterFrom=\"opacity-0 scale-95\"\n enterTo=\"opacity-100 scale-100\"\n leave=\"ease-in duration-200\"\n leaveFrom=\"opacity-100 scale-100\"\n leaveTo=\"opacity-0 scale-95\"\n >\n <DialogPanel\n className={cn(\n 'w-full max-w-sm bg-white rounded-2xl shadow-xl p-6',\n 'transform transition-all',\n className\n )}\n >\n {/* Icon */}\n <div className=\"flex justify-center mb-4\">\n <div className={cn('rounded-full p-3', config.bgClass)}>\n <Icon className={cn('h-8 w-8', config.iconClass)} />\n </div>\n </div>\n\n {/* Title */}\n <DialogTitle className=\"text-lg font-semibold text-slate-900 text-center mb-2\">\n {title}\n </DialogTitle>\n\n {/* Message */}\n {message && (\n <p className=\"text-sm text-slate-600 text-center mb-6\">\n {message}\n </p>\n )}\n {htmlMessage && (\n <div\n className=\"text-sm text-slate-600 text-center mb-6\"\n dangerouslySetInnerHTML={{ __html: htmlMessage }}\n />\n )}\n\n {/* Button */}\n <Button onClick={handleConfirm} className=\"w-full\">\n {confirmText}\n </Button>\n </DialogPanel>\n </TransitionChild>\n </div>\n </Dialog>\n </Transition>\n )\n}\n"],"names":["variantConfig","CheckCircleIcon","XCircleIcon","ExclamationTriangleIcon","InformationCircleIcon","AlertModal","open","onClose","title","message","htmlMessage","variant","confirmText","onConfirm","className","config","Icon","handleConfirm","jsx","Transition","Fragment","jsxs","Dialog","TransitionChild","DialogPanel","cn","DialogTitle","Button"],"mappings":";;;;;;AAgCA,MAAMA,IAGF;AAAA,EACF,SAAS;AAAA,IACP,MAAMC;AAAA,IACN,WAAW;AAAA,IACX,SAAS;AAAA,EAAA;AAAA,EAEX,OAAO;AAAA,IACL,MAAMC;AAAA,IACN,WAAW;AAAA,IACX,SAAS;AAAA,EAAA;AAAA,EAEX,SAAS;AAAA,IACP,MAAMC;AAAA,IACN,WAAW;AAAA,IACX,SAAS;AAAA,EAAA;AAAA,EAEX,MAAM;AAAA,IACJ,MAAMC;AAAA,IACN,WAAW;AAAA,IACX,SAAS;AAAA,EAAA;AAEb;AAEO,SAASC,EAAW;AAAA,EACzB,MAAAC;AAAA,EACA,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,aAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,aAAAC,IAAc;AAAA,EACd,WAAAC;AAAA,EACA,WAAAC;AACF,GAAoB;AAClB,QAAMC,IAASf,EAAcW,CAAO,GAC9BK,IAAOD,EAAO,MAEdE,IAAgB,MAAM;AAC1B,IAAAJ,KAAA,QAAAA,KACAN,EAAA;AAAA,EACF;AAEA,SACE,gBAAAW,EAACC,GAAA,EAAW,MAAMb,GAAM,IAAIc,GAC1B,UAAA,gBAAAC,EAACC,GAAA,EAAO,SAAAf,GAAkB,WAAU,iBAElC,UAAA;AAAA,IAAA,gBAAAW;AAAA,MAACK;AAAA,MAAA;AAAA,QACC,IAAIH;AAAA,QACJ,OAAM;AAAA,QACN,WAAU;AAAA,QACV,SAAQ;AAAA,QACR,OAAM;AAAA,QACN,WAAU;AAAA,QACV,SAAQ;AAAA,QAER,UAAA,gBAAAF,EAAC,OAAA,EAAI,WAAU,6BAA4B,eAAY,OAAA,CAAO;AAAA,MAAA;AAAA,IAAA;AAAA,IAIhE,gBAAAA,EAAC,OAAA,EAAI,WAAU,sDACb,UAAA,gBAAAA;AAAA,MAACK;AAAA,MAAA;AAAA,QACC,IAAIH;AAAA,QACJ,OAAM;AAAA,QACN,WAAU;AAAA,QACV,SAAQ;AAAA,QACR,OAAM;AAAA,QACN,WAAU;AAAA,QACV,SAAQ;AAAA,QAER,UAAA,gBAAAC;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,WAAWC;AAAA,cACT;AAAA,cACA;AAAA,cACAX;AAAA,YAAA;AAAA,YAIF,UAAA;AAAA,cAAA,gBAAAI,EAAC,OAAA,EAAI,WAAU,4BACb,UAAA,gBAAAA,EAAC,SAAI,WAAWO,EAAG,oBAAoBV,EAAO,OAAO,GACnD,UAAA,gBAAAG,EAACF,GAAA,EAAK,WAAWS,EAAG,WAAWV,EAAO,SAAS,GAAG,GACpD,EAAA,CACF;AAAA,cAGA,gBAAAG,EAACQ,GAAA,EAAY,WAAU,yDACpB,UAAAlB,GACH;AAAA,cAGCC,KACC,gBAAAS,EAAC,KAAA,EAAE,WAAU,2CACV,UAAAT,GACH;AAAA,cAEDC,KACC,gBAAAQ;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,yBAAyB,EAAE,QAAQR,EAAA;AAAA,gBAAY;AAAA,cAAA;AAAA,gCAKlDiB,GAAA,EAAO,SAASV,GAAe,WAAU,UACvC,UAAAL,EAAA,CACH;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA,EACF,CACF;AAAA,EAAA,EAAA,CACF,EAAA,CACF;AAEJ;"}
|
package/dist/index12.js
CHANGED
|
@@ -1,82 +1,104 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
showContactInfo: c = !1,
|
|
17
|
-
showArrow: p = !1,
|
|
18
|
-
onClick: l,
|
|
19
|
-
className: f
|
|
1
|
+
import { jsxs as O, jsx as d } from "react/jsx-runtime";
|
|
2
|
+
import { useState as m, useRef as p, useEffect as h } from "react";
|
|
3
|
+
import { cn as b } from "./index3.js";
|
|
4
|
+
import { Input as N } from "./index35.js";
|
|
5
|
+
const L = ({
|
|
6
|
+
options: r,
|
|
7
|
+
value: a,
|
|
8
|
+
onChange: x,
|
|
9
|
+
onSearch: s,
|
|
10
|
+
label: y,
|
|
11
|
+
placeholder: D,
|
|
12
|
+
disabled: E = !1,
|
|
13
|
+
error: I,
|
|
14
|
+
debounceMs: g = 300,
|
|
15
|
+
className: C
|
|
20
16
|
}) => {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
17
|
+
const [o, i] = m(""), [w, l] = m(!1), [u, c] = m(-1), f = p(null), n = p();
|
|
18
|
+
h(() => {
|
|
19
|
+
const e = r.find((t) => t.value === a);
|
|
20
|
+
e && i(e.label);
|
|
21
|
+
}, [a, r]), h(() => (n.current && clearTimeout(n.current), n.current = setTimeout(() => {
|
|
22
|
+
s == null || s(o);
|
|
23
|
+
}, g), () => {
|
|
24
|
+
n.current && clearTimeout(n.current);
|
|
25
|
+
}), [o, g, s]), h(() => {
|
|
26
|
+
const e = (t) => {
|
|
27
|
+
f.current && !f.current.contains(t.target) && l(!1);
|
|
28
|
+
};
|
|
29
|
+
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
30
|
+
}, []);
|
|
31
|
+
const v = (e) => {
|
|
32
|
+
i(e), l(!0), c(-1);
|
|
33
|
+
}, k = (e) => {
|
|
34
|
+
i(e.label), x(e.value, e.label), l(!1);
|
|
35
|
+
}, A = (e) => {
|
|
36
|
+
if (!w) {
|
|
37
|
+
(e.key === "ArrowDown" || e.key === "Enter") && l(!0);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
switch (e.key) {
|
|
41
|
+
case "ArrowDown":
|
|
42
|
+
e.preventDefault(), c(
|
|
43
|
+
(t) => t < r.length - 1 ? t + 1 : t
|
|
44
|
+
);
|
|
45
|
+
break;
|
|
46
|
+
case "ArrowUp":
|
|
47
|
+
e.preventDefault(), c((t) => t > 0 ? t - 1 : t);
|
|
48
|
+
break;
|
|
49
|
+
case "Enter":
|
|
50
|
+
e.preventDefault(), u >= 0 && r[u] && k(r[u]);
|
|
51
|
+
break;
|
|
52
|
+
case "Escape":
|
|
53
|
+
l(!1);
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
return /* @__PURE__ */ O("div", { ref: f, className: b("relative", C), children: [
|
|
58
|
+
/* @__PURE__ */ d(
|
|
59
|
+
N,
|
|
60
|
+
{
|
|
61
|
+
label: y,
|
|
62
|
+
value: o,
|
|
63
|
+
onChange: (e) => v(e.target.value),
|
|
64
|
+
onFocus: () => l(!0),
|
|
65
|
+
onKeyDown: A,
|
|
66
|
+
placeholder: D,
|
|
67
|
+
disabled: E,
|
|
68
|
+
error: I
|
|
69
|
+
}
|
|
70
|
+
),
|
|
71
|
+
w && r.length > 0 && /* @__PURE__ */ d(
|
|
72
|
+
"ul",
|
|
73
|
+
{
|
|
74
|
+
className: b(
|
|
75
|
+
"absolute z-50 w-full mt-1 py-1",
|
|
76
|
+
"bg-white border border-slate-200 rounded-lg shadow-lg",
|
|
77
|
+
"max-h-60 overflow-auto"
|
|
40
78
|
),
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
79
|
+
role: "listbox",
|
|
80
|
+
children: r.map((e, t) => /* @__PURE__ */ d(
|
|
81
|
+
"li",
|
|
82
|
+
{
|
|
83
|
+
role: "option",
|
|
84
|
+
"aria-selected": e.value === a,
|
|
85
|
+
onClick: () => k(e),
|
|
86
|
+
onMouseEnter: () => c(t),
|
|
87
|
+
className: b(
|
|
88
|
+
"px-4 py-2 cursor-pointer text-sm",
|
|
89
|
+
"transition-colors",
|
|
90
|
+
u === t && "bg-slate-100",
|
|
91
|
+
e.value === a && "text-primary-500 font-medium"
|
|
52
92
|
),
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
)
|
|
62
|
-
] }),
|
|
63
|
-
c && /* @__PURE__ */ r("div", { className: "flex items-center gap-6 mt-2", children: [
|
|
64
|
-
(e.mobile || e.phone) && /* @__PURE__ */ r("div", { className: "flex items-center gap-2 text-sm text-slate-600", children: [
|
|
65
|
-
/* @__PURE__ */ s(v, { className: "w-4 h-4" }),
|
|
66
|
-
/* @__PURE__ */ s("span", { children: e.mobile || e.phone })
|
|
67
|
-
] }),
|
|
68
|
-
e.email && /* @__PURE__ */ r("div", { className: "flex items-center gap-2 text-sm text-slate-600", children: [
|
|
69
|
-
/* @__PURE__ */ s(N, { className: "w-4 h-4" }),
|
|
70
|
-
/* @__PURE__ */ s("span", { children: e.email })
|
|
71
|
-
] })
|
|
72
|
-
] })
|
|
73
|
-
] }),
|
|
74
|
-
p && /* @__PURE__ */ s(u, { className: "w-5 h-5 text-slate-400 flex-shrink-0" })
|
|
75
|
-
]
|
|
76
|
-
}
|
|
77
|
-
);
|
|
93
|
+
children: e.label
|
|
94
|
+
},
|
|
95
|
+
e.value
|
|
96
|
+
))
|
|
97
|
+
}
|
|
98
|
+
)
|
|
99
|
+
] });
|
|
78
100
|
};
|
|
79
101
|
export {
|
|
80
|
-
|
|
102
|
+
L as AutoComplete
|
|
81
103
|
};
|
|
82
104
|
//# sourceMappingURL=index12.js.map
|
package/dist/index12.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index12.js","sources":["../src/components/
|
|
1
|
+
{"version":3,"file":"index12.js","sources":["../src/components/AutoComplete/AutoComplete.tsx"],"sourcesContent":["import { useState, useEffect, useRef } from 'react'\nimport { cn } from '@/lib/utils'\nimport { Input } from '../Input/Input'\n\nexport interface AutoCompleteOption {\n value: string\n label: string\n}\n\nexport interface AutoCompleteProps {\n options: AutoCompleteOption[]\n value?: string\n onChange: (value: string, label: string) => void\n onSearch?: (query: string) => void\n label?: string\n placeholder?: string\n disabled?: boolean\n error?: string\n debounceMs?: number\n className?: string\n}\n\nexport const AutoComplete = ({\n options,\n value,\n onChange,\n onSearch,\n label,\n placeholder,\n disabled = false,\n error,\n debounceMs = 300,\n className,\n}: AutoCompleteProps) => {\n const [inputValue, setInputValue] = useState('')\n const [isOpen, setIsOpen] = useState(false)\n const [highlightedIndex, setHighlightedIndex] = useState(-1)\n const containerRef = useRef<HTMLDivElement>(null)\n const debounceRef = useRef<ReturnType<typeof setTimeout>>()\n\n // Sync input value with selected option\n useEffect(() => {\n const selectedOption = options.find((opt) => opt.value === value)\n if (selectedOption) {\n setInputValue(selectedOption.label)\n }\n }, [value, options])\n\n // Handle debounced search\n useEffect(() => {\n if (debounceRef.current) {\n clearTimeout(debounceRef.current)\n }\n\n debounceRef.current = setTimeout(() => {\n onSearch?.(inputValue)\n }, debounceMs)\n\n return () => {\n if (debounceRef.current) {\n clearTimeout(debounceRef.current)\n }\n }\n }, [inputValue, debounceMs, onSearch])\n\n // Handle click outside\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (containerRef.current && !containerRef.current.contains(event.target as Node)) {\n setIsOpen(false)\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside)\n return () => document.removeEventListener('mousedown', handleClickOutside)\n }, [])\n\n const handleInputChange = (newValue: string) => {\n setInputValue(newValue)\n setIsOpen(true)\n setHighlightedIndex(-1)\n }\n\n const handleSelect = (option: AutoCompleteOption) => {\n setInputValue(option.label)\n onChange(option.value, option.label)\n setIsOpen(false)\n }\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (!isOpen) {\n if (event.key === 'ArrowDown' || event.key === 'Enter') {\n setIsOpen(true)\n }\n return\n }\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault()\n setHighlightedIndex((prev) =>\n prev < options.length - 1 ? prev + 1 : prev\n )\n break\n case 'ArrowUp':\n event.preventDefault()\n setHighlightedIndex((prev) => (prev > 0 ? prev - 1 : prev))\n break\n case 'Enter':\n event.preventDefault()\n if (highlightedIndex >= 0 && options[highlightedIndex]) {\n handleSelect(options[highlightedIndex])\n }\n break\n case 'Escape':\n setIsOpen(false)\n break\n }\n }\n\n return (\n <div ref={containerRef} className={cn('relative', className)}>\n <Input\n label={label}\n value={inputValue}\n onChange={(e) => handleInputChange(e.target.value)}\n onFocus={() => setIsOpen(true)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n disabled={disabled}\n error={error}\n />\n\n {isOpen && options.length > 0 && (\n <ul\n className={cn(\n 'absolute z-50 w-full mt-1 py-1',\n 'bg-white border border-slate-200 rounded-lg shadow-lg',\n 'max-h-60 overflow-auto'\n )}\n role=\"listbox\"\n >\n {options.map((option, index) => (\n <li\n key={option.value}\n role=\"option\"\n aria-selected={option.value === value}\n onClick={() => handleSelect(option)}\n onMouseEnter={() => setHighlightedIndex(index)}\n className={cn(\n 'px-4 py-2 cursor-pointer text-sm',\n 'transition-colors',\n highlightedIndex === index && 'bg-slate-100',\n option.value === value && 'text-primary-500 font-medium'\n )}\n >\n {option.label}\n </li>\n ))}\n </ul>\n )}\n </div>\n )\n}\n"],"names":["AutoComplete","options","value","onChange","onSearch","label","placeholder","disabled","error","debounceMs","className","inputValue","setInputValue","useState","isOpen","setIsOpen","highlightedIndex","setHighlightedIndex","containerRef","useRef","debounceRef","useEffect","selectedOption","opt","handleClickOutside","event","handleInputChange","newValue","handleSelect","option","handleKeyDown","prev","jsxs","cn","jsx","Input","index"],"mappings":"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"}
|
package/dist/index13.js
CHANGED
|
@@ -1,28 +1,42 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { cn as
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
sm:
|
|
6
|
-
md:
|
|
7
|
-
lg:
|
|
8
|
-
|
|
9
|
-
average: i = "0",
|
|
10
|
-
numberOfRatings: e,
|
|
11
|
-
showNumberOfRatings: n = !1,
|
|
12
|
-
size: r = "md",
|
|
13
|
-
className: c
|
|
14
|
-
}) => {
|
|
15
|
-
const l = `${e} Rating${e === "1" || e === 1 ? "" : "s"}`, s = d[r];
|
|
16
|
-
return /* @__PURE__ */ a("div", { className: t("flex items-center", c), children: [
|
|
17
|
-
/* @__PURE__ */ o(x, { className: t(s.icon, "text-primary-500 mr-2") }),
|
|
18
|
-
/* @__PURE__ */ o("span", { className: t(s.text, "font-semibold text-primary-500"), children: String(i) }),
|
|
19
|
-
n && e !== void 0 && /* @__PURE__ */ a(m, { children: [
|
|
20
|
-
/* @__PURE__ */ o("span", { className: t(s.text, "font-semibold text-slate-600 mx-2"), children: "•" }),
|
|
21
|
-
/* @__PURE__ */ o("span", { className: t(s.text, "font-semibold text-slate-600"), children: l })
|
|
22
|
-
] })
|
|
23
|
-
] });
|
|
1
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { cn as a } from "./index3.js";
|
|
3
|
+
const n = {
|
|
4
|
+
xs: "h-6 w-6 text-xs",
|
|
5
|
+
sm: "h-8 w-8 text-sm",
|
|
6
|
+
md: "h-10 w-10 text-base",
|
|
7
|
+
lg: "h-12 w-12 text-lg",
|
|
8
|
+
xl: "h-16 w-16 text-xl"
|
|
24
9
|
};
|
|
10
|
+
function d({
|
|
11
|
+
src: r,
|
|
12
|
+
alt: l,
|
|
13
|
+
initials: e,
|
|
14
|
+
size: s = "md",
|
|
15
|
+
className: o
|
|
16
|
+
}) {
|
|
17
|
+
const m = e == null ? void 0 : e.slice(0, 2).toUpperCase();
|
|
18
|
+
return /* @__PURE__ */ t(
|
|
19
|
+
"div",
|
|
20
|
+
{
|
|
21
|
+
className: a(
|
|
22
|
+
"relative inline-flex items-center justify-center",
|
|
23
|
+
"rounded-full overflow-hidden",
|
|
24
|
+
"bg-primary-100 text-primary-700 font-semibold",
|
|
25
|
+
n[s],
|
|
26
|
+
o
|
|
27
|
+
),
|
|
28
|
+
children: r ? /* @__PURE__ */ t(
|
|
29
|
+
"img",
|
|
30
|
+
{
|
|
31
|
+
src: r,
|
|
32
|
+
alt: l || "Avatar",
|
|
33
|
+
className: "h-full w-full object-cover"
|
|
34
|
+
}
|
|
35
|
+
) : /* @__PURE__ */ t("span", { children: m })
|
|
36
|
+
}
|
|
37
|
+
);
|
|
38
|
+
}
|
|
25
39
|
export {
|
|
26
|
-
|
|
40
|
+
d as Avatar
|
|
27
41
|
};
|
|
28
42
|
//# sourceMappingURL=index13.js.map
|
package/dist/index13.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index13.js","sources":["../src/components/
|
|
1
|
+
{"version":3,"file":"index13.js","sources":["../src/components/Avatar/Avatar.tsx"],"sourcesContent":["import { cn } from '@/lib/utils'\n\nexport interface AvatarProps {\n src?: string\n alt?: string\n initials?: string\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n className?: string\n}\n\nconst sizeStyles = {\n xs: 'h-6 w-6 text-xs',\n sm: 'h-8 w-8 text-sm',\n md: 'h-10 w-10 text-base',\n lg: 'h-12 w-12 text-lg',\n xl: 'h-16 w-16 text-xl',\n}\n\nexport function Avatar({\n src,\n alt,\n initials,\n size = 'md',\n className,\n}: AvatarProps) {\n const displayInitials = initials?.slice(0, 2).toUpperCase()\n\n return (\n <div\n className={cn(\n 'relative inline-flex items-center justify-center',\n 'rounded-full overflow-hidden',\n 'bg-primary-100 text-primary-700 font-semibold',\n sizeStyles[size],\n className\n )}\n >\n {src ? (\n <img\n src={src}\n alt={alt || 'Avatar'}\n className=\"h-full w-full object-cover\"\n />\n ) : (\n <span>{displayInitials}</span>\n )}\n </div>\n )\n}\n"],"names":["sizeStyles","Avatar","src","alt","initials","size","className","displayInitials","jsx","cn"],"mappings":";;AAUA,MAAMA,IAAa;AAAA,EACjB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEO,SAASC,EAAO;AAAA,EACrB,KAAAC;AAAA,EACA,KAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,WAAAC;AACF,GAAgB;AACd,QAAMC,IAAkBH,KAAA,gBAAAA,EAAU,MAAM,GAAG,GAAG;AAE9C,SACE,gBAAAI;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACAT,EAAWK,CAAI;AAAA,QACfC;AAAA,MAAA;AAAA,MAGD,UAAAJ,IACC,gBAAAM;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAAN;AAAA,UACA,KAAKC,KAAO;AAAA,UACZ,WAAU;AAAA,QAAA;AAAA,MAAA,IAGZ,gBAAAK,EAAC,QAAA,EAAM,UAAAD,EAAA,CAAgB;AAAA,IAAA;AAAA,EAAA;AAI/B;"}
|
package/dist/index14.js
CHANGED
|
@@ -1,22 +1,82 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { cn as
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import { jsxs as r, jsx as s } from "react/jsx-runtime";
|
|
2
|
+
import { cn as h } from "./index3.js";
|
|
3
|
+
import { Avatar as g } from "./index13.js";
|
|
4
|
+
import { PhoneIcon as v, EnvelopeIcon as N, ChevronRightIcon as u } from "@heroicons/react/24/outline";
|
|
5
|
+
import { Pill as b } from "./index50.js";
|
|
6
|
+
import { AverageRating as w } from "./index15.js";
|
|
7
|
+
const d = (e) => e.name ? e.name : [e.firstName, e.lastName].filter(Boolean).join(" ") || "Unknown", j = (e) => e.split(" ").map((t) => t[0]).slice(0, 2).join("").toUpperCase(), z = {
|
|
8
|
+
sm: "sm",
|
|
9
|
+
md: "md",
|
|
10
|
+
lg: "lg"
|
|
11
|
+
}, O = ({
|
|
12
|
+
data: e,
|
|
13
|
+
avatarSize: t = "md",
|
|
14
|
+
showRole: n = !1,
|
|
15
|
+
showRating: i = !1,
|
|
16
|
+
showContactInfo: c = !1,
|
|
17
|
+
showArrow: p = !1,
|
|
18
|
+
onClick: l,
|
|
19
|
+
className: f
|
|
20
|
+
}) => {
|
|
21
|
+
var m, o;
|
|
22
|
+
const a = d(e), x = ((m = e.profile) == null ? void 0 : m.avatar) || e.avatar;
|
|
23
|
+
return /* @__PURE__ */ r(
|
|
24
|
+
"div",
|
|
12
25
|
{
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
26
|
+
className: h(
|
|
27
|
+
"flex items-center gap-4 p-4",
|
|
28
|
+
l && "cursor-pointer hover:bg-slate-50 rounded-lg transition-colors",
|
|
29
|
+
f
|
|
30
|
+
),
|
|
31
|
+
onClick: l,
|
|
32
|
+
children: [
|
|
33
|
+
/* @__PURE__ */ s(
|
|
34
|
+
g,
|
|
35
|
+
{
|
|
36
|
+
src: x,
|
|
37
|
+
initials: j(a),
|
|
38
|
+
size: z[t]
|
|
39
|
+
}
|
|
40
|
+
),
|
|
41
|
+
/* @__PURE__ */ r("div", { className: "flex-1 min-w-0", children: [
|
|
42
|
+
/* @__PURE__ */ s("h4", { className: "text-base font-semibold text-primary-500 truncate max-w-[280px]", children: a }),
|
|
43
|
+
e.companyName && /* @__PURE__ */ s("p", { className: "text-xs text-slate-500 truncate max-w-[280px]", children: e.companyName }),
|
|
44
|
+
(n || i) && /* @__PURE__ */ r("div", { className: "flex items-center gap-2 mt-1", children: [
|
|
45
|
+
n && ((o = e.role) == null ? void 0 : o[0]) && /* @__PURE__ */ s(
|
|
46
|
+
b,
|
|
47
|
+
{
|
|
48
|
+
label: e.role[0].charAt(0).toUpperCase() + e.role[0].slice(1),
|
|
49
|
+
variant: "info",
|
|
50
|
+
size: "sm"
|
|
51
|
+
}
|
|
52
|
+
),
|
|
53
|
+
i && /* @__PURE__ */ s(
|
|
54
|
+
w,
|
|
55
|
+
{
|
|
56
|
+
average: e.averageRating || "0",
|
|
57
|
+
numberOfRatings: e.ratingCount,
|
|
58
|
+
showNumberOfRatings: !0,
|
|
59
|
+
size: "sm"
|
|
60
|
+
}
|
|
61
|
+
)
|
|
62
|
+
] }),
|
|
63
|
+
c && /* @__PURE__ */ r("div", { className: "flex items-center gap-6 mt-2", children: [
|
|
64
|
+
(e.mobile || e.phone) && /* @__PURE__ */ r("div", { className: "flex items-center gap-2 text-sm text-slate-600", children: [
|
|
65
|
+
/* @__PURE__ */ s(v, { className: "w-4 h-4" }),
|
|
66
|
+
/* @__PURE__ */ s("span", { children: e.mobile || e.phone })
|
|
67
|
+
] }),
|
|
68
|
+
e.email && /* @__PURE__ */ r("div", { className: "flex items-center gap-2 text-sm text-slate-600", children: [
|
|
69
|
+
/* @__PURE__ */ s(N, { className: "w-4 h-4" }),
|
|
70
|
+
/* @__PURE__ */ s("span", { children: e.email })
|
|
71
|
+
] })
|
|
72
|
+
] })
|
|
73
|
+
] }),
|
|
74
|
+
p && /* @__PURE__ */ s(u, { className: "w-5 h-5 text-slate-400 flex-shrink-0" })
|
|
75
|
+
]
|
|
16
76
|
}
|
|
17
77
|
);
|
|
18
|
-
}
|
|
78
|
+
};
|
|
19
79
|
export {
|
|
20
|
-
|
|
80
|
+
O as AvatarCard
|
|
21
81
|
};
|
|
22
82
|
//# sourceMappingURL=index14.js.map
|
package/dist/index14.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index14.js","sources":["../src/components/
|
|
1
|
+
{"version":3,"file":"index14.js","sources":["../src/components/AvatarCard/AvatarCard.tsx"],"sourcesContent":["import { cn } from '@/lib/utils'\nimport { Avatar } from '../Avatar/Avatar'\nimport { ChevronRightIcon, EnvelopeIcon, PhoneIcon } from '@heroicons/react/24/outline'\nimport { Pill } from '../Pill/Pill'\nimport { AverageRating } from '../AverageRating/AverageRating'\n\nexport interface AvatarCardData {\n firstName?: string\n lastName?: string\n name?: string\n companyName?: string\n email?: string\n mobile?: string\n phone?: string\n role?: string[]\n averageRating?: number | string\n ratingCount?: number | string\n profile?: {\n avatar?: string\n }\n avatar?: string\n}\n\nexport interface AvatarCardProps {\n data: AvatarCardData\n avatarSize?: 'sm' | 'md' | 'lg'\n showRole?: boolean\n showRating?: boolean\n showContactInfo?: boolean\n showArrow?: boolean\n onClick?: () => void\n className?: string\n}\n\nconst getFullName = (data: AvatarCardData): string => {\n if (data.name) return data.name\n const parts = [data.firstName, data.lastName].filter(Boolean)\n return parts.join(' ') || 'Unknown'\n}\n\nconst getInitials = (name: string): string => {\n return name\n .split(' ')\n .map((word) => word[0])\n .slice(0, 2)\n .join('')\n .toUpperCase()\n}\n\nconst avatarSizeMap = {\n sm: 'sm' as const,\n md: 'md' as const,\n lg: 'lg' as const,\n}\n\nexport const AvatarCard = ({\n data,\n avatarSize = 'md',\n showRole = false,\n showRating = false,\n showContactInfo = false,\n showArrow = false,\n onClick,\n className,\n}: AvatarCardProps) => {\n const contactName = getFullName(data)\n const avatar = data.profile?.avatar || data.avatar\n\n return (\n <div\n className={cn(\n 'flex items-center gap-4 p-4',\n onClick && 'cursor-pointer hover:bg-slate-50 rounded-lg transition-colors',\n className\n )}\n onClick={onClick}\n >\n <Avatar\n src={avatar}\n initials={getInitials(contactName)}\n size={avatarSizeMap[avatarSize]}\n />\n\n <div className=\"flex-1 min-w-0\">\n <h4 className=\"text-base font-semibold text-primary-500 truncate max-w-[280px]\">\n {contactName}\n </h4>\n\n {data.companyName && (\n <p className=\"text-xs text-slate-500 truncate max-w-[280px]\">\n {data.companyName}\n </p>\n )}\n\n {(showRole || showRating) && (\n <div className=\"flex items-center gap-2 mt-1\">\n {showRole && data.role?.[0] && (\n <Pill\n label={data.role[0].charAt(0).toUpperCase() + data.role[0].slice(1)}\n variant=\"info\"\n size=\"sm\"\n />\n )}\n {showRating && (\n <AverageRating\n average={data.averageRating || '0'}\n numberOfRatings={data.ratingCount}\n showNumberOfRatings\n size=\"sm\"\n />\n )}\n </div>\n )}\n\n {showContactInfo && (\n <div className=\"flex items-center gap-6 mt-2\">\n {(data.mobile || data.phone) && (\n <div className=\"flex items-center gap-2 text-sm text-slate-600\">\n <PhoneIcon className=\"w-4 h-4\" />\n <span>{data.mobile || data.phone}</span>\n </div>\n )}\n {data.email && (\n <div className=\"flex items-center gap-2 text-sm text-slate-600\">\n <EnvelopeIcon className=\"w-4 h-4\" />\n <span>{data.email}</span>\n </div>\n )}\n </div>\n )}\n </div>\n\n {showArrow && (\n <ChevronRightIcon className=\"w-5 h-5 text-slate-400 flex-shrink-0\" />\n )}\n </div>\n )\n}\n"],"names":["getFullName","data","getInitials","name","word","avatarSizeMap","AvatarCard","avatarSize","showRole","showRating","showContactInfo","showArrow","onClick","className","contactName","avatar","_a","jsxs","cn","jsx","Avatar","_b","Pill","AverageRating","PhoneIcon","EnvelopeIcon","ChevronRightIcon"],"mappings":"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"}
|