@wealthx/shadcn 1.5.14 → 1.5.15
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/.turbo/turbo-build.log +83 -83
- package/CHANGELOG.md +6 -0
- package/dist/{chunk-EB626HVW.mjs → chunk-LRQSY3TP.mjs} +33 -0
- package/dist/{chunk-J7KQON2N.mjs → chunk-RKHKBEE6.mjs} +1 -1
- package/dist/components/ui/ai-conversations.js +32 -0
- package/dist/components/ui/ai-conversations.mjs +1 -1
- package/dist/components/ui/appointment-book-dialog.js +1 -1
- package/dist/components/ui/appointment-book-dialog.mjs +1 -1
- package/dist/index.js +33 -1
- package/dist/index.mjs +2 -2
- package/dist/styles.css +1 -1
- package/package.json +1 -1
- package/src/components/ui/ai-conversations.tsx +45 -0
- package/src/components/ui/appointment-book-dialog.tsx +1 -1
- package/src/styles/styles-css.ts +1 -1
package/package.json
CHANGED
|
@@ -19,6 +19,7 @@ import {
|
|
|
19
19
|
MapPin,
|
|
20
20
|
MessageSquare,
|
|
21
21
|
MoreHorizontal,
|
|
22
|
+
Navigation,
|
|
22
23
|
Paperclip,
|
|
23
24
|
Phone,
|
|
24
25
|
PhoneCall,
|
|
@@ -154,6 +155,8 @@ export interface AiConvDataField {
|
|
|
154
155
|
export interface AiConvAppointmentData {
|
|
155
156
|
datetime: string;
|
|
156
157
|
meetingType: AiConvMeetingType;
|
|
158
|
+
/** Meeting link (video), phone number (phone), or address (in-person). */
|
|
159
|
+
meetingDetail?: string;
|
|
157
160
|
status: "requested" | "confirmed" | "pending" | "cancelled";
|
|
158
161
|
}
|
|
159
162
|
|
|
@@ -1298,6 +1301,12 @@ const MEETING_LABEL: Record<AiConvMeetingType, string> = {
|
|
|
1298
1301
|
"in-person": "In Person",
|
|
1299
1302
|
};
|
|
1300
1303
|
|
|
1304
|
+
const MEETING_DETAIL_ICON: Record<AiConvMeetingType, React.ElementType> = {
|
|
1305
|
+
video: Link2,
|
|
1306
|
+
phone: PhoneCall,
|
|
1307
|
+
"in-person": Navigation,
|
|
1308
|
+
};
|
|
1309
|
+
|
|
1301
1310
|
interface AppointmentSectionProps {
|
|
1302
1311
|
appointment: AiConvAppointmentData;
|
|
1303
1312
|
contactId: string;
|
|
@@ -1307,6 +1316,36 @@ interface AppointmentSectionProps {
|
|
|
1307
1316
|
onRescheduleAppointment?: (contactId: string) => void;
|
|
1308
1317
|
}
|
|
1309
1318
|
|
|
1319
|
+
function MeetingDetailRow({
|
|
1320
|
+
meetingType,
|
|
1321
|
+
detail,
|
|
1322
|
+
}: {
|
|
1323
|
+
meetingType: AiConvMeetingType;
|
|
1324
|
+
detail: string;
|
|
1325
|
+
}) {
|
|
1326
|
+
const DetailIcon = MEETING_DETAIL_ICON[meetingType];
|
|
1327
|
+
const isLink = detail.startsWith("http");
|
|
1328
|
+
return (
|
|
1329
|
+
<div className="flex items-center gap-2">
|
|
1330
|
+
<DetailIcon className="size-4 shrink-0 text-muted-foreground" />
|
|
1331
|
+
{isLink ? (
|
|
1332
|
+
<a
|
|
1333
|
+
href={detail}
|
|
1334
|
+
target="_blank"
|
|
1335
|
+
rel="noopener noreferrer"
|
|
1336
|
+
className="text-sm text-primary underline underline-offset-2 break-all hover:text-primary/80"
|
|
1337
|
+
>
|
|
1338
|
+
{detail}
|
|
1339
|
+
</a>
|
|
1340
|
+
) : (
|
|
1341
|
+
<span className="text-sm text-muted-foreground break-all">
|
|
1342
|
+
{detail}
|
|
1343
|
+
</span>
|
|
1344
|
+
)}
|
|
1345
|
+
</div>
|
|
1346
|
+
);
|
|
1347
|
+
}
|
|
1348
|
+
|
|
1310
1349
|
function AppointmentSection({
|
|
1311
1350
|
appointment,
|
|
1312
1351
|
contactId,
|
|
@@ -1332,6 +1371,12 @@ function AppointmentSection({
|
|
|
1332
1371
|
{MEETING_LABEL[appointment.meetingType]}
|
|
1333
1372
|
</span>
|
|
1334
1373
|
</div>
|
|
1374
|
+
{appointment.meetingDetail && (
|
|
1375
|
+
<MeetingDetailRow
|
|
1376
|
+
meetingType={appointment.meetingType}
|
|
1377
|
+
detail={appointment.meetingDetail}
|
|
1378
|
+
/>
|
|
1379
|
+
)}
|
|
1335
1380
|
<span
|
|
1336
1381
|
className={cn("text-sm font-medium", {
|
|
1337
1382
|
"text-warning-text": appointment.status === "requested",
|
|
@@ -612,7 +612,7 @@ export function AppointmentBookDialog({
|
|
|
612
612
|
|
|
613
613
|
<Separator />
|
|
614
614
|
|
|
615
|
-
<div className="flex flex-col gap-4">
|
|
615
|
+
<div className="flex flex-col gap-4 overflow-y-auto max-h-[calc(90vh-200px)]">
|
|
616
616
|
{!isClientMode && (
|
|
617
617
|
<div className="flex flex-col gap-1.5">
|
|
618
618
|
<Label>Client</Label>
|