@voyantjs/crm-ui 0.62.2 → 0.63.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.
@@ -1,6 +1,6 @@
1
1
  import type { ActivityRecord, OpportunityRecord, OrganizationRecord, PersonDocumentRecord, PersonRecord, PersonRelationshipRecord, PersonTravelSnapshotRecord, UpdatePersonInput } from "@voyantjs/crm-react";
2
2
  import { type ReactNode } from "react";
3
- export type PersonDetailTab = "overview" | "opportunities" | "activities" | "relationships" | "documents" | "bookings" | "invoices" | "payments" | "contracts";
3
+ export type PersonDetailTab = "overview" | "opportunities" | "activities" | "relationships" | "documents" | "addresses" | "bookings" | "invoices" | "payments" | "contracts";
4
4
  export type PersonData = Pick<PersonRecord, "dateOfBirth" | "createdAt" | "email" | "firstName" | "id" | "jobTitle" | "lastName" | "notes" | "organizationId" | "phone" | "preferredCurrency" | "preferredLanguage" | "relation" | "source" | "status" | "tags" | "updatedAt" | "website">;
5
5
  export type PersonOrganization = Pick<OrganizationRecord, "id" | "name" | "website">;
6
6
  export type PersonOpportunity = Pick<OpportunityRecord, "expectedCloseDate" | "id" | "status" | "title" | "updatedAt" | "valueAmountCents" | "valueCurrency">;
@@ -37,9 +37,10 @@ export interface PersonDetailPageProps {
37
37
  onBack?: () => void;
38
38
  onDeleted?: () => void;
39
39
  onOrganizationOpen?: (organizationId: string) => void;
40
+ onPersonOpen?: (personId: string) => void;
40
41
  slots?: PersonDetailPageSlots;
41
42
  }
42
- export declare function PersonDetailPage({ id, className, onBack, onDeleted, onOrganizationOpen, slots, }: PersonDetailPageProps): import("react/jsx-runtime").JSX.Element;
43
+ export declare function PersonDetailPage({ id, className, onBack, onDeleted, onOrganizationOpen, onPersonOpen, slots, }: PersonDetailPageProps): import("react/jsx-runtime").JSX.Element;
43
44
  export interface PersonTopBarProps {
44
45
  personName: string;
45
46
  onBack: () => void;
@@ -65,18 +66,15 @@ export interface PersonMainProps {
65
66
  activities: PersonActivity[];
66
67
  relationships: PersonRelationship[];
67
68
  documents: PersonDocument[];
68
- travelSnapshot: PersonTravelSnapshot | null;
69
69
  opportunitiesPending: boolean;
70
70
  activitiesPending: boolean;
71
71
  relationshipsPending: boolean;
72
72
  documentsPending: boolean;
73
- travelSnapshotPending: boolean;
74
- totalOpenValue: number;
75
- primaryCurrency: string | null;
76
73
  onUpdateField: (patch: UpdatePersonInput) => Promise<void>;
74
+ onPersonOpen?: (personId: string) => void;
77
75
  slots?: PersonDetailPageSlots;
78
76
  }
79
- export declare function PersonMain({ activeTab, setActiveTab, person, organization, opportunities, activities, relationships, documents, travelSnapshot, opportunitiesPending, activitiesPending, relationshipsPending, documentsPending, travelSnapshotPending, totalOpenValue, primaryCurrency, onUpdateField, slots, }: PersonMainProps): import("react/jsx-runtime").JSX.Element;
77
+ export declare function PersonMain({ activeTab, setActiveTab, person, organization, opportunities, activities, relationships, documents, opportunitiesPending, activitiesPending, relationshipsPending, documentsPending, onUpdateField, onPersonOpen, slots, }: PersonMainProps): import("react/jsx-runtime").JSX.Element;
80
78
  export interface MetricCardProps {
81
79
  label: string;
82
80
  value: ReactNode;
@@ -85,11 +83,9 @@ export declare function MetricCard({ label, value }: MetricCardProps): import("r
85
83
  export interface PersonOverviewPanelProps {
86
84
  person: PersonData;
87
85
  organization: PersonOrganization | null;
88
- travelSnapshot: PersonTravelSnapshot | null;
89
- travelSnapshotPending: boolean;
90
86
  onUpdateField: (patch: UpdatePersonInput) => Promise<void>;
91
87
  }
92
- export declare function PersonOverviewPanel({ person, organization, travelSnapshot, travelSnapshotPending, onUpdateField, }: PersonOverviewPanelProps): import("react/jsx-runtime").JSX.Element;
88
+ export declare function PersonOverviewPanel({ person, organization, onUpdateField, }: PersonOverviewPanelProps): import("react/jsx-runtime").JSX.Element;
93
89
  export interface OverviewTermProps {
94
90
  label: string;
95
91
  children: ReactNode;
@@ -110,14 +106,16 @@ export interface PersonRelationshipsPanelProps {
110
106
  personId: string;
111
107
  relationships: PersonRelationship[];
112
108
  relationshipsPending: boolean;
109
+ onPersonOpen?: (personId: string) => void;
113
110
  }
114
- export declare function PersonRelationshipsPanel({ personId, relationships, relationshipsPending, }: PersonRelationshipsPanelProps): import("react/jsx-runtime").JSX.Element;
111
+ export declare function PersonRelationshipsPanel({ personId, relationships, relationshipsPending, onPersonOpen, }: PersonRelationshipsPanelProps): import("react/jsx-runtime").JSX.Element;
115
112
  export interface PersonDocumentsPanelProps {
116
113
  documents: PersonDocument[];
117
114
  documentsPending: boolean;
118
115
  primaryCount: number;
116
+ personId?: string;
119
117
  }
120
- export declare function PersonDocumentsPanel({ documents, documentsPending, primaryCount, }: PersonDocumentsPanelProps): import("react/jsx-runtime").JSX.Element;
118
+ export declare function PersonDocumentsPanel({ documents, documentsPending, primaryCount, personId, }: PersonDocumentsPanelProps): import("react/jsx-runtime").JSX.Element;
121
119
  export interface EmptyRowProps {
122
120
  children: ReactNode;
123
121
  }
@@ -1 +1 @@
1
- {"version":3,"file":"person-detail-page.d.ts","sourceRoot":"","sources":["../../src/components/person-detail-page.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"person-detail-page.d.ts","sourceRoot":"","sources":["../../src/components/person-detail-page.tsx"],"names":[],"mappings":"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"}
@@ -1,21 +1,23 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useActivities, useOpportunities, useOrganization, usePerson, usePersonDocuments, usePersonMutation, usePersonRelationships, usePersonTravelSnapshot, } from "@voyantjs/crm-react";
3
+ import { useActivities, useOpportunities, useOrganization, usePerson, usePersonDocumentMutation, usePersonDocuments, usePersonMutation, usePersonRelationships, useRevealPersonDocument, } from "@voyantjs/crm-react";
4
4
  import { Avatar, AvatarFallback, Badge, Button, Card, CardContent, CardHeader, CardTitle, ConfirmActionButton, cn, } from "@voyantjs/ui/components";
5
5
  import { buttonVariants } from "@voyantjs/ui/components/button";
6
6
  import { Separator } from "@voyantjs/ui/components/separator";
7
7
  import { Tabs, TabsContent, TabsList, TabsTrigger } from "@voyantjs/ui/components/tabs";
8
- import { ArrowLeft, BriefcaseBusiness, Calendar, CircleDot, FileText, Globe, Languages, Loader2, Mail, Pencil, Phone, ShieldCheck, Tag, TrendingUp, User, Users, } from "lucide-react";
9
- import { useEffect, useMemo, useState } from "react";
8
+ import { ArrowLeft, BriefcaseBusiness, Calendar, CircleDot, Eye, EyeOff, FileText, Globe, Languages, Loader2, Mail, Pencil, Phone, Tag, TrendingUp, User, Users, } from "lucide-react";
9
+ import { useEffect, useState } from "react";
10
10
  import { useCrmUiI18nOrDefault, useCrmUiMessagesOrDefault } from "../i18n/index.js";
11
11
  import { formatCrmDate, formatCrmMoney, formatCrmRelative } from "./crm-format.js";
12
12
  import { InlineCurrencyField } from "./inline-currency-field.js";
13
13
  import { InlineField } from "./inline-field.js";
14
14
  import { InlineLanguageField } from "./inline-language-field.js";
15
15
  import { InlineSelectField } from "./inline-select-field.js";
16
+ import { PersonAddressesSection } from "./person-addresses-section.js";
16
17
  import { PersonDialog } from "./person-dialog.js";
18
+ import { PersonDocumentDialog } from "./person-document-dialog.js";
17
19
  import { TagsEditor } from "./tags-editor.js";
18
- export function PersonDetailPage({ id, className, onBack, onDeleted, onOrganizationOpen, slots, }) {
20
+ export function PersonDetailPage({ id, className, onBack, onDeleted, onOrganizationOpen, onPersonOpen, slots, }) {
19
21
  const messages = useCrmUiMessagesOrDefault();
20
22
  const [activeTab, setActiveTab] = useState("overview");
21
23
  const [editOpen, setEditOpen] = useState(false);
@@ -54,9 +56,6 @@ export function PersonDetailPage({ id, className, onBack, onDeleted, onOrganizat
54
56
  limit: 50,
55
57
  enabled: Boolean(person),
56
58
  });
57
- const travelSnapshotQuery = usePersonTravelSnapshot(id, {
58
- enabled: Boolean(person),
59
- });
60
59
  const updateField = async (patch) => {
61
60
  await update.mutateAsync({ id, input: patch });
62
61
  };
@@ -70,21 +69,13 @@ export function PersonDetailPage({ id, className, onBack, onDeleted, onOrganizat
70
69
  const activities = activitiesQuery.data?.data ?? [];
71
70
  const relationships = relationshipsQuery.data?.data ?? [];
72
71
  const documents = documentsQuery.data?.data ?? [];
73
- const travelSnapshot = travelSnapshotQuery.data?.data ?? null;
74
72
  const organization = organizationQuery.data ?? null;
75
73
  const displayName = personDisplayName(person, messages.personCard.unnamed);
76
- const totalOpenValue = opportunities
77
- .filter((opportunity) => opportunity.status === "open")
78
- .reduce((sum, opportunity) => sum + (opportunity.valueAmountCents ?? 0), 0);
79
- const primaryCurrency = opportunities[0]?.valueCurrency ??
80
- person.preferredCurrency ??
81
- organization?.defaultCurrency ??
82
- null;
83
74
  return (_jsxs("div", { "data-slot": "person-detail-page", className: cn("flex min-h-screen flex-col", className), children: [_jsx(PersonTopBar, { personName: displayName, onBack: () => onBack?.(), onEdit: () => setEditOpen(true), deletePending: remove.isPending, onDelete: async () => {
84
75
  await remove.mutateAsync(id);
85
76
  onDeleted?.();
86
77
  onBack?.();
87
- } }), slots?.afterTopBar, _jsxs("div", { className: "grid flex-1 grid-cols-12 gap-4 p-4 lg:p-6", children: [_jsx(PersonSidebar, { person: person, organization: organization, onOrganizationOpen: onOrganizationOpen, onUpdateField: updateField, children: slots?.sidebarEnd }), _jsx(PersonMain, { activeTab: activeTab, setActiveTab: setActiveTab, person: person, organization: organization, opportunities: opportunities, activities: activities, relationships: relationships, documents: documents, travelSnapshot: travelSnapshot, opportunitiesPending: opportunitiesQuery.isPending, activitiesPending: activitiesQuery.isPending, relationshipsPending: relationshipsQuery.isPending, documentsPending: documentsQuery.isPending, travelSnapshotPending: travelSnapshotQuery.isPending, totalOpenValue: totalOpenValue, primaryCurrency: primaryCurrency, onUpdateField: updateField, slots: slots })] }), _jsx(PersonDialog, { open: editOpen, onOpenChange: setEditOpen, person: person })] }));
78
+ } }), slots?.afterTopBar, _jsxs("div", { className: "grid flex-1 grid-cols-12 gap-4 p-4 lg:p-6", children: [_jsx(PersonSidebar, { person: person, organization: organization, onOrganizationOpen: onOrganizationOpen, onUpdateField: updateField, children: slots?.sidebarEnd }), _jsx(PersonMain, { activeTab: activeTab, setActiveTab: setActiveTab, person: person, organization: organization, opportunities: opportunities, activities: activities, relationships: relationships, documents: documents, opportunitiesPending: opportunitiesQuery.isPending, activitiesPending: activitiesQuery.isPending, relationshipsPending: relationshipsQuery.isPending, documentsPending: documentsQuery.isPending, onUpdateField: updateField, onPersonOpen: onPersonOpen, slots: slots })] }), _jsx(PersonDialog, { open: editOpen, onOpenChange: setEditOpen, person: person })] }));
88
79
  }
89
80
  export function PersonTopBar({ personName, onBack, onEdit, onDelete, deletePending, }) {
90
81
  const messages = useCrmUiMessagesOrDefault();
@@ -111,12 +102,10 @@ export function PersonSidebar({ person, organization, onOrganizationOpen, onUpda
111
102
  ];
112
103
  return (_jsxs("aside", { className: "col-span-12 flex flex-col gap-4 lg:col-span-3", children: [_jsx(Card, { children: _jsxs(CardContent, { className: "flex flex-col items-center gap-3 pt-6 text-center", children: [_jsx(Avatar, { className: "size-20", children: _jsx(AvatarFallback, { className: "text-xl", children: initialsFrom(displayName) }) }), _jsxs("div", { className: "flex max-w-full flex-col gap-1", children: [_jsx("h2", { className: "truncate text-lg font-semibold leading-tight", children: displayName }), person.jobTitle ? (_jsx("p", { className: "truncate text-sm text-muted-foreground", children: person.jobTitle })) : null, organization ? (_jsx("button", { type: "button", onClick: () => onOrganizationOpen?.(organization.id), className: "truncate text-sm text-primary hover:underline", children: organization.name })) : null] }), _jsxs("div", { className: "flex flex-wrap justify-center gap-1", children: [person.relation ? (_jsx(Badge, { variant: "secondary", children: messages.common.relationTypeLabels[person.relation] ?? person.relation })) : null, _jsx(Badge, { variant: "outline", children: messages.common.recordStatusLabels[person.status] ?? person.status })] })] }) }), _jsxs(Card, { children: [_jsx(CardHeader, { className: "pb-3", children: _jsx(CardTitle, { className: "text-sm font-semibold", children: messages.personDetail.sidebar.about }) }), _jsxs(CardContent, { className: "divide-y text-sm", children: [_jsx(InlineField, { icon: User, label: messages.personDetail.sidebar.fields.firstName, value: person.firstName, onSave: (next) => onUpdateField({ firstName: next ?? person.firstName }) }), _jsx(InlineField, { icon: User, label: messages.personDetail.sidebar.fields.lastName, value: person.lastName, onSave: (next) => onUpdateField({ lastName: next ?? person.lastName }) }), _jsx(InlineField, { icon: BriefcaseBusiness, label: messages.personDetail.sidebar.fields.jobTitle, value: person.jobTitle, onSave: (next) => onUpdateField({ jobTitle: next }) }), _jsx(InlineField, { icon: Mail, label: messages.personDetail.sidebar.fields.email, kind: "email", value: person.email, onSave: (next) => onUpdateField({ email: next }) }), _jsx(InlineField, { icon: Phone, label: messages.personDetail.sidebar.fields.phone, value: person.phone, onSave: (next) => onUpdateField({ phone: next }) }), _jsx(InlineField, { icon: Globe, label: messages.personDetail.sidebar.fields.website, kind: "url", value: person.website, onSave: (next) => onUpdateField({ website: next }) }), _jsx(InlineSelectField, { icon: Users, label: messages.personDetail.sidebar.fields.relation, value: person.relation, options: relationOptions, onSave: (next) => onUpdateField({ relation: next }) }), _jsx(InlineSelectField, { icon: CircleDot, label: messages.personDetail.sidebar.fields.status, value: person.status, options: statusOptions, allowClear: false, onSave: (next) => onUpdateField({ status: next ?? "active" }) }), _jsx(InlineCurrencyField, { label: messages.personDetail.sidebar.fields.preferredCurrency, value: person.preferredCurrency, onSave: (next) => onUpdateField({ preferredCurrency: next }) }), _jsx(InlineLanguageField, { icon: Languages, label: messages.personDetail.sidebar.fields.preferredLanguage, value: person.preferredLanguage, onSave: (next) => onUpdateField({ preferredLanguage: next }) }), _jsx(InlineField, { icon: Calendar, label: messages.personDetail.sidebar.fields.dateOfBirth, value: person.dateOfBirth, onSave: (next) => onUpdateField({ dateOfBirth: next }) }), _jsx(InlineField, { icon: Tag, label: messages.personDetail.sidebar.fields.source, value: person.source, onSave: (next) => onUpdateField({ source: next }) })] })] }), websiteHref ? (_jsxs("a", { href: websiteHref, target: "_blank", rel: "noreferrer", className: cn(buttonVariants({ variant: "outline" })), children: [_jsx(Globe, { className: "size-4", "aria-hidden": "true" }), messages.personDetail.sidebar.openWebsite] })) : null, _jsxs(Card, { children: [_jsx(CardHeader, { className: "pb-3", children: _jsx(CardTitle, { className: "text-sm font-semibold", children: messages.personDetail.sidebar.tags }) }), _jsx(CardContent, { children: _jsx(TagsEditor, { tags: person.tags, onChange: (tags) => onUpdateField({ tags }) }) })] }), children] }));
113
104
  }
114
- export function PersonMain({ activeTab, setActiveTab, person, organization, opportunities, activities, relationships, documents, travelSnapshot, opportunitiesPending, activitiesPending, relationshipsPending, documentsPending, travelSnapshotPending, totalOpenValue, primaryCurrency, onUpdateField, slots, }) {
115
- const i18n = useCrmUiI18nOrDefault();
105
+ export function PersonMain({ activeTab, setActiveTab, person, organization, opportunities, activities, relationships, documents, opportunitiesPending, activitiesPending, relationshipsPending, documentsPending, onUpdateField, onPersonOpen, slots, }) {
116
106
  const messages = useCrmUiMessagesOrDefault();
117
- const openOpportunities = opportunities.filter((opportunity) => opportunity.status === "open");
118
107
  const primaryDocuments = documents.filter((document) => document.isPrimary);
119
- return (_jsxs("main", { className: "col-span-12 flex flex-col gap-4 lg:col-span-9", children: [_jsxs("div", { className: "grid grid-cols-1 gap-3 md:grid-cols-4", children: [_jsx(MetricCard, { label: messages.personDetail.metrics.openOpportunities, value: openOpportunities.length }), _jsx(MetricCard, { label: messages.personDetail.metrics.pipelineValue, value: formatCrmMoney(i18n, totalOpenValue, primaryCurrency) }), _jsx(MetricCard, { label: messages.personDetail.metrics.documents, value: documents.length }), _jsx(MetricCard, { label: messages.personDetail.metrics.activities, value: activities.length })] }), _jsx(Card, { children: _jsxs(Tabs, { value: activeTab, onValueChange: (value) => setActiveTab(value), children: [_jsx(CardHeader, { className: "pb-0", children: _jsxs(TabsList, { className: "h-auto flex-wrap justify-start", children: [_jsx(TabsTrigger, { value: "overview", children: messages.personDetail.tabs.overview }), _jsxs(TabsTrigger, { value: "opportunities", children: [messages.personDetail.tabs.opportunities, " (", opportunities.length, ")"] }), _jsxs(TabsTrigger, { value: "activities", children: [messages.personDetail.tabs.activities, " (", activities.length, ")"] }), _jsxs(TabsTrigger, { value: "relationships", children: [messages.personDetail.tabs.relationships, " (", relationships.length, ")"] }), _jsxs(TabsTrigger, { value: "documents", children: [messages.personDetail.tabs.documents, " (", documents.length, ")"] }), slots?.bookingsTab ? (_jsx(TabsTrigger, { value: "bookings", children: formatTabLabel(messages.personDetail.tabs.bookings, slots.bookingsTab) })) : null, slots?.invoicesTab ? (_jsx(TabsTrigger, { value: "invoices", children: formatTabLabel(messages.personDetail.tabs.invoices, slots.invoicesTab) })) : null, slots?.paymentsTab ? (_jsx(TabsTrigger, { value: "payments", children: formatTabLabel(messages.personDetail.tabs.payments, slots.paymentsTab) })) : null, slots?.contractsTab ? (_jsx(TabsTrigger, { value: "contracts", children: formatTabLabel(messages.personDetail.tabs.contracts, slots.contractsTab) })) : null] }) }), _jsxs(CardContent, { className: "pt-4", children: [_jsxs(TabsContent, { value: "overview", className: "m-0", children: [slots?.overviewContent !== undefined ? (slots.overviewContent) : (_jsx(PersonOverviewPanel, { person: person, organization: organization, travelSnapshot: travelSnapshot, travelSnapshotPending: travelSnapshotPending, onUpdateField: onUpdateField })), slots?.overviewEnd] }), _jsxs(TabsContent, { value: "opportunities", className: "m-0", children: [slots?.opportunitiesContent !== undefined ? (slots.opportunitiesContent) : (_jsx(PersonOpportunitiesPanel, { opportunities: opportunities, opportunitiesPending: opportunitiesPending })), slots?.opportunitiesEnd] }), _jsxs(TabsContent, { value: "activities", className: "m-0", children: [slots?.activitiesContent !== undefined ? (slots.activitiesContent) : (_jsx(PersonActivitiesPanel, { activities: activities, activitiesPending: activitiesPending })), slots?.activitiesEnd] }), _jsxs(TabsContent, { value: "relationships", className: "m-0", children: [slots?.relationshipsContent !== undefined ? (slots.relationshipsContent) : (_jsx(PersonRelationshipsPanel, { personId: person.id, relationships: relationships, relationshipsPending: relationshipsPending })), slots?.relationshipsEnd] }), _jsxs(TabsContent, { value: "documents", className: "m-0", children: [slots?.documentsContent !== undefined ? (slots.documentsContent) : (_jsx(PersonDocumentsPanel, { documents: documents, documentsPending: documentsPending, primaryCount: primaryDocuments.length })), slots?.documentsEnd] }), slots?.bookingsTab ? (_jsx(TabsContent, { value: "bookings", className: "m-0", children: slots.bookingsTab.content })) : null, slots?.invoicesTab ? (_jsx(TabsContent, { value: "invoices", className: "m-0", children: slots.invoicesTab.content })) : null, slots?.paymentsTab ? (_jsx(TabsContent, { value: "payments", className: "m-0", children: slots.paymentsTab.content })) : null, slots?.contractsTab ? (_jsx(TabsContent, { value: "contracts", className: "m-0", children: slots.contractsTab.content })) : null] })] }) }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Pencil, { className: "size-3.5 text-muted-foreground", "aria-hidden": "true" }), _jsx("span", { className: "text-xs text-muted-foreground", children: messages.personDetail.hint })] })] }));
108
+ return (_jsx("main", { className: "col-span-12 flex flex-col gap-4 lg:col-span-9", children: _jsx(Card, { children: _jsxs(Tabs, { value: activeTab, onValueChange: (value) => setActiveTab(value), children: [_jsx(CardHeader, { className: "pb-0", children: _jsxs(TabsList, { className: "h-auto flex-wrap justify-start", children: [_jsx(TabsTrigger, { value: "overview", children: messages.personDetail.tabs.overview }), _jsxs(TabsTrigger, { value: "opportunities", children: [messages.personDetail.tabs.opportunities, " (", opportunities.length, ")"] }), _jsxs(TabsTrigger, { value: "activities", children: [messages.personDetail.tabs.activities, " (", activities.length, ")"] }), _jsxs(TabsTrigger, { value: "relationships", children: [messages.personDetail.tabs.relationships, " (", relationships.length, ")"] }), _jsxs(TabsTrigger, { value: "documents", children: [messages.personDetail.tabs.documents, " (", documents.length, ")"] }), _jsx(TabsTrigger, { value: "addresses", children: messages.personDetail.tabs.addresses }), slots?.bookingsTab ? (_jsx(TabsTrigger, { value: "bookings", children: formatTabLabel(messages.personDetail.tabs.bookings, slots.bookingsTab) })) : null, slots?.invoicesTab ? (_jsx(TabsTrigger, { value: "invoices", children: formatTabLabel(messages.personDetail.tabs.invoices, slots.invoicesTab) })) : null, slots?.paymentsTab ? (_jsx(TabsTrigger, { value: "payments", children: formatTabLabel(messages.personDetail.tabs.payments, slots.paymentsTab) })) : null, slots?.contractsTab ? (_jsx(TabsTrigger, { value: "contracts", children: formatTabLabel(messages.personDetail.tabs.contracts, slots.contractsTab) })) : null] }) }), _jsxs(CardContent, { className: "pt-4", children: [_jsxs(TabsContent, { value: "overview", className: "m-0", children: [slots?.overviewContent !== undefined ? (slots.overviewContent) : (_jsx(PersonOverviewPanel, { person: person, organization: organization, onUpdateField: onUpdateField })), slots?.overviewEnd] }), _jsxs(TabsContent, { value: "opportunities", className: "m-0", children: [slots?.opportunitiesContent !== undefined ? (slots.opportunitiesContent) : (_jsx(PersonOpportunitiesPanel, { opportunities: opportunities, opportunitiesPending: opportunitiesPending })), slots?.opportunitiesEnd] }), _jsxs(TabsContent, { value: "activities", className: "m-0", children: [slots?.activitiesContent !== undefined ? (slots.activitiesContent) : (_jsx(PersonActivitiesPanel, { activities: activities, activitiesPending: activitiesPending })), slots?.activitiesEnd] }), _jsxs(TabsContent, { value: "relationships", className: "m-0", children: [slots?.relationshipsContent !== undefined ? (slots.relationshipsContent) : (_jsx(PersonRelationshipsPanel, { personId: person.id, relationships: relationships, relationshipsPending: relationshipsPending, onPersonOpen: onPersonOpen })), slots?.relationshipsEnd] }), _jsxs(TabsContent, { value: "documents", className: "m-0", children: [slots?.documentsContent !== undefined ? (slots.documentsContent) : (_jsx(PersonDocumentsPanel, { documents: documents, documentsPending: documentsPending, primaryCount: primaryDocuments.length, personId: person.id })), slots?.documentsEnd] }), _jsx(TabsContent, { value: "addresses", className: "m-0", children: _jsx(PersonAddressesSection, { personId: person.id }) }), slots?.bookingsTab ? (_jsx(TabsContent, { value: "bookings", className: "m-0", children: slots.bookingsTab.content })) : null, slots?.invoicesTab ? (_jsx(TabsContent, { value: "invoices", className: "m-0", children: slots.invoicesTab.content })) : null, slots?.paymentsTab ? (_jsx(TabsContent, { value: "payments", className: "m-0", children: slots.paymentsTab.content })) : null, slots?.contractsTab ? (_jsx(TabsContent, { value: "contracts", className: "m-0", children: slots.contractsTab.content })) : null] })] }) }) }));
120
109
  }
121
110
  function formatTabLabel(defaultLabel, slot) {
122
111
  const label = slot.label ?? defaultLabel;
@@ -128,42 +117,10 @@ function isPersonCommercialTab(tab) {
128
117
  export function MetricCard({ label, value }) {
129
118
  return (_jsx(Card, { children: _jsxs(CardContent, { className: "pt-6", children: [_jsx("p", { className: "text-xs font-medium uppercase tracking-wide text-muted-foreground", children: label }), _jsx("p", { className: "mt-1 text-2xl font-semibold", children: value })] }) }));
130
119
  }
131
- export function PersonOverviewPanel({ person, organization, travelSnapshot, travelSnapshotPending, onUpdateField, }) {
120
+ export function PersonOverviewPanel({ person, organization, onUpdateField, }) {
132
121
  const i18n = useCrmUiI18nOrDefault();
133
122
  const messages = useCrmUiMessagesOrDefault();
134
- const snapshotRows = useMemo(() => travelSnapshot
135
- ? [
136
- {
137
- label: messages.personDetail.sections.dateOfBirth,
138
- value: travelSnapshot.dateOfBirth
139
- ? formatCrmDate(i18n, travelSnapshot.dateOfBirth)
140
- : null,
141
- },
142
- {
143
- label: messages.personDetail.sections.dietaryRequirements,
144
- value: travelSnapshot.dietaryRequirements,
145
- },
146
- {
147
- label: messages.personDetail.sections.accessibilityNeeds,
148
- value: travelSnapshot.accessibilityNeeds,
149
- },
150
- {
151
- label: messages.personDetail.sections.passportExpiry,
152
- value: travelSnapshot.passportExpiry
153
- ? formatCrmDate(i18n, travelSnapshot.passportExpiry)
154
- : null,
155
- },
156
- {
157
- label: messages.personDetail.sections.passportIssuingCountry,
158
- value: travelSnapshot.passportIssuingCountry,
159
- },
160
- {
161
- label: messages.personDetail.sections.passportIssuingAuthority,
162
- value: travelSnapshot.passportIssuingAuthority,
163
- },
164
- ].filter((row) => Boolean(row.value))
165
- : [], [i18n, messages, travelSnapshot]);
166
- return (_jsxs("div", { className: "flex flex-col gap-4", children: [_jsxs("dl", { className: "grid grid-cols-1 gap-4 text-sm sm:grid-cols-2", children: [_jsx(OverviewTerm, { label: messages.personDetail.sections.created, children: formatCrmDate(i18n, person.createdAt) }), _jsx(OverviewTerm, { label: messages.personDetail.sections.updated, children: formatCrmRelative(i18n, person.updatedAt) }), organization ? (_jsx(OverviewTerm, { label: messages.personDetail.sections.organization, children: organization.name })) : null, person.dateOfBirth ? (_jsx(OverviewTerm, { label: messages.personDetail.sections.dateOfBirth, children: formatCrmDate(i18n, person.dateOfBirth) })) : null, person.notes ? (_jsx(OverviewTerm, { label: messages.personDetail.sections.notes, className: "sm:col-span-2", children: _jsx("span", { className: "whitespace-pre-wrap", children: person.notes }) })) : null] }), _jsx(Separator, {}), _jsx(InlineField, { label: messages.personDetail.sections.notes, kind: "textarea", value: person.notes, onSave: (next) => onUpdateField({ notes: next }) }), _jsxs(Card, { children: [_jsx(CardHeader, { className: "pb-3", children: _jsxs(CardTitle, { className: "flex items-center gap-2 text-sm font-semibold", children: [_jsx(ShieldCheck, { className: "size-4 text-muted-foreground", "aria-hidden": "true" }), messages.personDetail.sections.travelProfile] }) }), _jsx(CardContent, { children: travelSnapshotPending ? (_jsx("div", { className: "flex justify-center py-6", children: _jsx(Loader2, { className: "size-5 animate-spin text-muted-foreground" }) })) : snapshotRows.length === 0 ? (_jsx("p", { className: "py-4 text-center text-sm text-muted-foreground", children: messages.personDetail.empty.noTravelProfile })) : (_jsx("dl", { className: "grid grid-cols-1 gap-4 text-sm sm:grid-cols-2", children: snapshotRows.map((row) => (_jsx(OverviewTerm, { label: row.label, children: row.value }, row.label))) })) })] })] }));
123
+ return (_jsxs("div", { className: "flex flex-col gap-4", children: [_jsxs("dl", { className: "grid grid-cols-1 gap-4 text-sm sm:grid-cols-2", children: [_jsx(OverviewTerm, { label: messages.personDetail.sections.created, children: formatCrmDate(i18n, person.createdAt) }), _jsx(OverviewTerm, { label: messages.personDetail.sections.updated, children: formatCrmRelative(i18n, person.updatedAt) }), organization ? (_jsx(OverviewTerm, { label: messages.personDetail.sections.organization, children: organization.name })) : null, person.dateOfBirth ? (_jsx(OverviewTerm, { label: messages.personDetail.sections.dateOfBirth, children: formatCrmDate(i18n, person.dateOfBirth) })) : null, person.notes ? (_jsx(OverviewTerm, { label: messages.personDetail.sections.notes, className: "sm:col-span-2", children: _jsx("span", { className: "whitespace-pre-wrap", children: person.notes }) })) : null] }), _jsx(Separator, {}), _jsx(InlineField, { label: messages.personDetail.sections.notes, kind: "textarea", value: person.notes, onSave: (next) => onUpdateField({ notes: next }) })] }));
167
124
  }
168
125
  export function OverviewTerm({ label, children, className }) {
169
126
  return (_jsxs("div", { className: className, children: [_jsx("dt", { className: "text-xs font-medium uppercase text-muted-foreground", children: label }), _jsx("dd", { className: "mt-0.5", children: children })] }));
@@ -193,7 +150,7 @@ export function PersonActivitiesPanel({ activities, activitiesPending, }) {
193
150
  }
194
151
  return (_jsx("ul", { className: "divide-y", children: activities.map((activity) => (_jsx("li", { className: "py-3", children: _jsxs("div", { className: "flex items-start justify-between gap-2", children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("p", { className: "truncate text-sm font-medium", children: activity.subject }), activity.description ? (_jsx("p", { className: "line-clamp-2 text-xs text-muted-foreground", children: activity.description })) : null] }), _jsxs("div", { className: "flex flex-col items-end gap-1", children: [_jsx(Badge, { variant: "outline", children: messages.common.activityTypeLabels[(activity.type ?? "note")] ?? activity.type }), _jsx("span", { className: "text-xs text-muted-foreground", children: formatCrmRelative(i18n, activity.createdAt) })] })] }) }, activity.id))) }));
195
152
  }
196
- export function PersonRelationshipsPanel({ personId, relationships, relationshipsPending, }) {
153
+ export function PersonRelationshipsPanel({ personId, relationships, relationshipsPending, onPersonOpen, }) {
197
154
  const i18n = useCrmUiI18nOrDefault();
198
155
  const messages = useCrmUiMessagesOrDefault();
199
156
  if (relationshipsPending) {
@@ -207,10 +164,24 @@ export function PersonRelationshipsPanel({ personId, relationships, relationship
207
164
  ? relationship.toPersonId
208
165
  : relationship.fromPersonId;
209
166
  const kindLabel = messages.personDetail.relationshipKindLabels[relationship.kind] ?? relationship.kind;
210
- return (_jsxs("li", { className: "flex items-start justify-between gap-3 py-3", children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("p", { className: "truncate text-sm font-medium", children: relatedPersonId }), _jsxs("p", { className: "text-xs text-muted-foreground", children: [kindLabel, relationship.startDate ? ` - ${formatCrmDate(i18n, relationship.startDate)}` : ""] }), relationship.notes ? (_jsx("p", { className: "line-clamp-2 text-xs text-muted-foreground", children: relationship.notes })) : null] }), _jsxs("div", { className: "flex flex-col items-end gap-1", children: [relationship.isPrimary ? (_jsx(Badge, { variant: "secondary", children: messages.personDetail.sections.primary })) : null, _jsx(Badge, { variant: "outline", children: kindLabel })] })] }, relationship.id));
167
+ return (_jsxs("li", { className: "flex items-start justify-between gap-3 py-3", children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsx(RelatedPersonName, { personId: relatedPersonId, onPersonOpen: onPersonOpen }), _jsxs("p", { className: "text-xs text-muted-foreground", children: [kindLabel, relationship.startDate ? ` - ${formatCrmDate(i18n, relationship.startDate)}` : ""] }), relationship.notes ? (_jsx("p", { className: "line-clamp-2 text-xs text-muted-foreground", children: relationship.notes })) : null] }), _jsxs("div", { className: "flex flex-col items-end gap-1", children: [relationship.isPrimary ? (_jsx(Badge, { variant: "secondary", children: messages.personDetail.sections.primary })) : null, _jsx(Badge, { variant: "outline", children: kindLabel })] })] }, relationship.id));
211
168
  }) }));
212
169
  }
213
- export function PersonDocumentsPanel({ documents, documentsPending, primaryCount, }) {
170
+ function RelatedPersonName({ personId, onPersonOpen, }) {
171
+ const messages = useCrmUiMessagesOrDefault();
172
+ const personQuery = usePerson(personId);
173
+ const person = personQuery.data;
174
+ const label = person
175
+ ? personDisplayName(person, messages.personCard.unnamed)
176
+ : personQuery.isPending
177
+ ? "…"
178
+ : personId;
179
+ if (!onPersonOpen) {
180
+ return _jsx("p", { className: "truncate text-sm font-medium", children: label });
181
+ }
182
+ return (_jsx("button", { type: "button", onClick: () => onPersonOpen(personId), className: "truncate text-left text-sm font-medium text-foreground hover:underline", children: label }));
183
+ }
184
+ export function PersonDocumentsPanel({ documents, documentsPending, primaryCount, personId, }) {
214
185
  const i18n = useCrmUiI18nOrDefault();
215
186
  const messages = useCrmUiMessagesOrDefault();
216
187
  if (documentsPending) {
@@ -219,10 +190,22 @@ export function PersonDocumentsPanel({ documents, documentsPending, primaryCount
219
190
  if (documents.length === 0) {
220
191
  return _jsx(EmptyRow, { children: messages.personDetail.empty.noDocuments });
221
192
  }
222
- return (_jsxs("div", { className: "flex flex-col gap-3", children: [_jsxs("div", { className: "flex items-center gap-2 text-xs text-muted-foreground", children: [_jsx(FileText, { className: "size-3.5", "aria-hidden": "true" }), _jsxs("span", { children: [primaryCount, " ", messages.personDetail.sections.primary] })] }), _jsx("ul", { className: "divide-y", children: documents.map((document) => {
223
- const typeLabel = messages.personDetail.documentTypeLabels[document.type] ?? document.type;
224
- return (_jsxs("li", { className: "flex items-start justify-between gap-3 py-3", children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("p", { className: "truncate text-sm font-medium", children: typeLabel }), _jsxs("p", { className: "text-xs text-muted-foreground", children: [document.issuingCountry ?? messages.common.none, " -", " ", formatCrmDate(i18n, document.expiryDate)] }), document.issuingAuthority ? (_jsx("p", { className: "truncate text-xs text-muted-foreground", children: document.issuingAuthority })) : null] }), _jsxs("div", { className: "flex flex-col items-end gap-1", children: [document.isPrimary ? (_jsx(Badge, { variant: "secondary", children: messages.personDetail.sections.primary })) : null, _jsx(Badge, { variant: "outline", children: typeLabel })] })] }, document.id));
225
- }) })] }));
193
+ return (_jsxs("div", { className: "flex flex-col gap-3", children: [_jsxs("div", { className: "flex items-center gap-2 text-xs text-muted-foreground", children: [_jsx(FileText, { className: "size-3.5", "aria-hidden": "true" }), _jsxs("span", { children: [primaryCount, " ", messages.personDetail.sections.primary] })] }), _jsx("ul", { className: "divide-y", children: documents.map((document) => (_jsx(PersonDocumentRow, { document: document, personId: personId, typeLabel: messages.personDetail.documentTypeLabels[document.type] ?? document.type, formattedExpiry: formatCrmDate(i18n, document.expiryDate), noneLabel: messages.common.none, primaryLabel: messages.personDetail.sections.primary }, document.id))) })] }));
194
+ }
195
+ function PersonDocumentRow({ document, personId, typeLabel, formattedExpiry, noneLabel, primaryLabel, }) {
196
+ const [revealed, setRevealed] = useState(false);
197
+ const [editOpen, setEditOpen] = useState(false);
198
+ const revealQuery = useRevealPersonDocument(document.id, { enabled: revealed });
199
+ const mutation = usePersonDocumentMutation(personId);
200
+ const docMessages = useCrmUiMessagesOrDefault().personDocument;
201
+ const editable = Boolean(personId);
202
+ const revealError = revealed && revealQuery.error;
203
+ const revealedNumber = revealQuery.data?.data.number ?? null;
204
+ return (_jsxs("li", { className: "flex items-start justify-between gap-3 py-3", children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("p", { className: "truncate text-sm font-medium", children: typeLabel }), _jsxs("p", { className: "text-xs text-muted-foreground", children: [document.issuingCountry ?? noneLabel, " - ", formattedExpiry] }), document.issuingAuthority ? (_jsx("p", { className: "truncate text-xs text-muted-foreground", children: document.issuingAuthority })) : null, revealed ? (_jsx("p", { className: "mt-1 font-mono text-xs", children: revealQuery.isLoading
205
+ ? docMessages.row.decrypting
206
+ : (revealedNumber ?? docMessages.row.noNumberOnFile) })) : null, revealError ? (_jsx("p", { className: "mt-1 text-[10px] text-destructive", children: revealError instanceof Error ? revealError.message : docMessages.row.revealFailed })) : null] }), _jsxs("div", { className: "flex items-start gap-2", children: [_jsxs("div", { className: "flex flex-col items-end gap-1", children: [document.isPrimary ? _jsx(Badge, { variant: "secondary", children: primaryLabel }) : null, _jsx(Badge, { variant: "outline", children: typeLabel })] }), _jsxs("div", { className: "flex items-center gap-1", children: [_jsx("button", { type: "button", onClick: () => setRevealed((prev) => !prev), className: "text-muted-foreground hover:text-foreground", "aria-label": revealed ? docMessages.row.hideAria : docMessages.row.revealAria, children: revealed ? _jsx(EyeOff, { className: "size-3.5" }) : _jsx(Eye, { className: "size-3.5" }) }), editable ? (_jsx("button", { type: "button", onClick: () => setEditOpen(true), className: "text-muted-foreground hover:text-foreground", "aria-label": docMessages.row.editAria, children: _jsx(Pencil, { className: "size-3.5" }) })) : null, editable ? (_jsx(ConfirmActionButton, { buttonLabel: docMessages.row.deleteButton, title: docMessages.row.deleteTitle, description: docMessages.row.deleteDescription, confirmLabel: docMessages.row.deleteConfirm, variant: "ghost", confirmVariant: "destructive", disabled: mutation.remove.isPending, onConfirm: async () => {
207
+ await mutation.remove.mutateAsync(document.id);
208
+ } })) : null] })] }), editable && personId ? (_jsx(PersonDocumentDialog, { open: editOpen, onOpenChange: setEditOpen, personId: personId, document: document })) : null] }));
226
209
  }
227
210
  export function EmptyRow({ children }) {
228
211
  return _jsx("p", { className: "py-6 text-center text-sm text-muted-foreground", children: children });
@@ -0,0 +1,19 @@
1
+ import { type PersonDocumentType } from "@voyantjs/crm-react";
2
+ export interface PersonDocumentDialogDocument {
3
+ id: string;
4
+ type: PersonDocumentType;
5
+ issuingCountry: string | null;
6
+ issuingAuthority: string | null;
7
+ issueDate: string | null;
8
+ expiryDate: string | null;
9
+ isPrimary: boolean;
10
+ notes: string | null;
11
+ }
12
+ export interface PersonDocumentDialogProps {
13
+ open: boolean;
14
+ onOpenChange: (open: boolean) => void;
15
+ personId: string;
16
+ document: PersonDocumentDialogDocument;
17
+ }
18
+ export declare function PersonDocumentDialog({ open, onOpenChange, personId, document, }: PersonDocumentDialogProps): import("react/jsx-runtime").JSX.Element;
19
+ //# sourceMappingURL=person-document-dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"person-document-dialog.d.ts","sourceRoot":"","sources":["../../src/components/person-document-dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,kBAAkB,EAGxB,MAAM,qBAAqB,CAAA;AAiC5B,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,kBAAkB,CAAA;IACxB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,4BAA4B,CAAA;CACvC;AA6BD,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,QAAQ,GACT,EAAE,yBAAyB,2CAoK3B"}
@@ -0,0 +1,71 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { usePersonDocumentMutation, useRevealPersonDocument, } from "@voyantjs/crm-react";
4
+ import { Button, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "@voyantjs/ui/components";
5
+ import { Checkbox } from "@voyantjs/ui/components/checkbox";
6
+ import { Input } from "@voyantjs/ui/components/input";
7
+ import { Label } from "@voyantjs/ui/components/label";
8
+ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@voyantjs/ui/components/select";
9
+ import { Textarea } from "@voyantjs/ui/components/textarea";
10
+ import * as React from "react";
11
+ import { useCrmUiMessagesOrDefault } from "../i18n/index.js";
12
+ const DOCUMENT_TYPES = [
13
+ "passport",
14
+ "id_card",
15
+ "driver_license",
16
+ "visa",
17
+ "other",
18
+ ];
19
+ function buildInitialState(document, revealedNumber) {
20
+ return {
21
+ type: document.type,
22
+ number: revealedNumber ?? "",
23
+ issuingCountry: document.issuingCountry ?? "",
24
+ issuingAuthority: document.issuingAuthority ?? "",
25
+ issueDate: document.issueDate ?? "",
26
+ expiryDate: document.expiryDate ?? "",
27
+ isPrimary: document.isPrimary,
28
+ notes: document.notes ?? "",
29
+ };
30
+ }
31
+ export function PersonDocumentDialog({ open, onOpenChange, personId, document, }) {
32
+ const revealQuery = useRevealPersonDocument(document.id, { enabled: open });
33
+ const revealedNumber = revealQuery.data?.data.number ?? null;
34
+ const { updateFromPlaintext } = usePersonDocumentMutation(personId);
35
+ const messages = useCrmUiMessagesOrDefault();
36
+ const dialog = messages.personDocument.dialog;
37
+ const typeLabels = messages.personDetail.documentTypeLabels;
38
+ const [state, setState] = React.useState(() => buildInitialState(document, null));
39
+ const initializedRef = React.useRef(false);
40
+ React.useEffect(() => {
41
+ if (!open) {
42
+ initializedRef.current = false;
43
+ return;
44
+ }
45
+ if (!initializedRef.current && !revealQuery.isLoading) {
46
+ setState(buildInitialState(document, revealedNumber));
47
+ initializedRef.current = true;
48
+ }
49
+ }, [open, document, revealedNumber, revealQuery.isLoading]);
50
+ const set = (key, value) => setState((prev) => ({ ...prev, [key]: value }));
51
+ const handleSubmit = async (event) => {
52
+ event.preventDefault();
53
+ await updateFromPlaintext.mutateAsync({
54
+ id: document.id,
55
+ input: {
56
+ type: state.type,
57
+ number: state.number.trim() === "" ? null : state.number.trim(),
58
+ issuingCountry: state.issuingCountry.trim() === "" ? null : state.issuingCountry.trim(),
59
+ issuingAuthority: state.issuingAuthority.trim() === "" ? null : state.issuingAuthority.trim(),
60
+ issueDate: state.issueDate === "" ? null : state.issueDate,
61
+ expiryDate: state.expiryDate === "" ? null : state.expiryDate,
62
+ isPrimary: state.isPrimary,
63
+ notes: state.notes.trim() === "" ? null : state.notes.trim(),
64
+ },
65
+ });
66
+ onOpenChange(false);
67
+ };
68
+ const revealError = revealQuery.error;
69
+ const updateError = updateFromPlaintext.error;
70
+ return (_jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: _jsxs(DialogContent, { className: "sm:max-w-[520px]", children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: dialog.title }), _jsx(DialogDescription, { children: dialog.description })] }), revealQuery.isLoading ? (_jsx("p", { className: "py-6 text-center text-sm text-muted-foreground", children: dialog.loading })) : revealError ? (_jsx("p", { className: "py-4 text-sm text-destructive", children: revealError instanceof Error ? revealError.message : dialog.revealFailed })) : null, _jsxs("form", { onSubmit: handleSubmit, className: "flex flex-col gap-4", children: [_jsxs("div", { className: "grid grid-cols-2 gap-3", children: [_jsxs("div", { className: "col-span-2 flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "doc-type", children: dialog.fields.type }), _jsxs(Select, { value: state.type, onValueChange: (value) => set("type", value), children: [_jsx(SelectTrigger, { id: "doc-type", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: DOCUMENT_TYPES.map((type) => (_jsx(SelectItem, { value: type, children: typeLabels[type] }, type))) })] })] }), _jsxs("div", { className: "col-span-2 flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "doc-number", children: dialog.fields.number }), _jsx(Input, { id: "doc-number", value: state.number, onChange: (event) => set("number", event.target.value), placeholder: dialog.placeholders.number, autoComplete: "off" })] }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "doc-country", children: dialog.fields.issuingCountry }), _jsx(Input, { id: "doc-country", value: state.issuingCountry, onChange: (event) => set("issuingCountry", event.target.value), placeholder: dialog.placeholders.issuingCountry, maxLength: 3 })] }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "doc-authority", children: dialog.fields.issuingAuthority }), _jsx(Input, { id: "doc-authority", value: state.issuingAuthority, onChange: (event) => set("issuingAuthority", event.target.value) })] }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "doc-issued", children: dialog.fields.issueDate }), _jsx(Input, { id: "doc-issued", type: "date", value: state.issueDate, onChange: (event) => set("issueDate", event.target.value) })] }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "doc-expiry", children: dialog.fields.expiryDate }), _jsx(Input, { id: "doc-expiry", type: "date", value: state.expiryDate, onChange: (event) => set("expiryDate", event.target.value) })] }), _jsxs("div", { className: "col-span-2 flex items-center gap-2", children: [_jsx(Checkbox, { id: "doc-primary", checked: state.isPrimary, onCheckedChange: (checked) => set("isPrimary", checked === true) }), _jsx(Label, { htmlFor: "doc-primary", className: "cursor-pointer", children: dialog.fields.primary })] }), _jsxs("div", { className: "col-span-2 flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "doc-notes", children: dialog.fields.notes }), _jsx(Textarea, { id: "doc-notes", value: state.notes, onChange: (event) => set("notes", event.target.value), rows: 3 })] })] }), updateError ? (_jsx("p", { className: "text-sm text-destructive", children: updateError instanceof Error ? updateError.message : dialog.saveFailed })) : null, _jsxs(DialogFooter, { children: [_jsx(Button, { type: "button", variant: "outline", onClick: () => onOpenChange(false), children: dialog.cancel }), _jsx(Button, { type: "submit", disabled: updateFromPlaintext.isPending, children: updateFromPlaintext.isPending ? dialog.saving : dialog.save })] })] })] }) }));
71
+ }
package/dist/i18n/en.d.ts CHANGED
@@ -417,6 +417,7 @@ export declare const crmUiEn: {
417
417
  activities: string;
418
418
  relationships: string;
419
419
  documents: string;
420
+ addresses: string;
420
421
  bookings: string;
421
422
  invoices: string;
422
423
  payments: string;
@@ -465,6 +466,44 @@ export declare const crmUiEn: {
465
466
  };
466
467
  hint: string;
467
468
  };
469
+ personDocument: {
470
+ row: {
471
+ decrypting: string;
472
+ noNumberOnFile: string;
473
+ revealFailed: string;
474
+ revealAria: string;
475
+ hideAria: string;
476
+ editAria: string;
477
+ deleteButton: string;
478
+ deleteTitle: string;
479
+ deleteDescription: string;
480
+ deleteConfirm: string;
481
+ };
482
+ dialog: {
483
+ title: string;
484
+ description: string;
485
+ revealFailed: string;
486
+ fields: {
487
+ type: string;
488
+ number: string;
489
+ issuingCountry: string;
490
+ issuingAuthority: string;
491
+ issueDate: string;
492
+ expiryDate: string;
493
+ primary: string;
494
+ notes: string;
495
+ };
496
+ placeholders: {
497
+ number: string;
498
+ issuingCountry: string;
499
+ };
500
+ loading: string;
501
+ saveFailed: string;
502
+ cancel: string;
503
+ save: string;
504
+ saving: string;
505
+ };
506
+ };
468
507
  createQuoteDialog: {
469
508
  title: string;
470
509
  fields: {
@@ -1 +1 @@
1
- {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0hBK,CAAA"}
1
+ {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkkBK,CAAA"}
package/dist/i18n/en.js CHANGED
@@ -417,6 +417,7 @@ export const crmUiEn = {
417
417
  activities: "Activities",
418
418
  relationships: "Relationships",
419
419
  documents: "Documents",
420
+ addresses: "Addresses",
420
421
  bookings: "Bookings",
421
422
  invoices: "Invoices",
422
423
  payments: "Payments",
@@ -465,6 +466,44 @@ export const crmUiEn = {
465
466
  },
466
467
  hint: "Fields update on the left panel. Hover to reveal the edit icon.",
467
468
  },
469
+ personDocument: {
470
+ row: {
471
+ decrypting: "Decrypting…",
472
+ noNumberOnFile: "(no number on file)",
473
+ revealFailed: "Failed to reveal.",
474
+ revealAria: "Reveal number",
475
+ hideAria: "Hide number",
476
+ editAria: "Edit document",
477
+ deleteButton: "Delete",
478
+ deleteTitle: "Delete document",
479
+ deleteDescription: "This will permanently remove this document.",
480
+ deleteConfirm: "Delete",
481
+ },
482
+ dialog: {
483
+ title: "Edit document",
484
+ description: "Update document details. Numbers are encrypted at rest and audit-logged on reveal.",
485
+ revealFailed: "Failed to reveal document.",
486
+ fields: {
487
+ type: "Type",
488
+ number: "Number",
489
+ issuingCountry: "Issuing country",
490
+ issuingAuthority: "Issuing authority",
491
+ issueDate: "Issue date",
492
+ expiryDate: "Expiry date",
493
+ primary: "Set as primary for this type",
494
+ notes: "Notes",
495
+ },
496
+ placeholders: {
497
+ number: "Document number",
498
+ issuingCountry: "ISO code (e.g. RO)",
499
+ },
500
+ loading: "Loading document…",
501
+ saveFailed: "Failed to save document.",
502
+ cancel: "Cancel",
503
+ save: "Save",
504
+ saving: "Saving…",
505
+ },
506
+ },
468
507
  createQuoteDialog: {
469
508
  title: "New quote",
470
509
  fields: {
@@ -393,6 +393,7 @@ export type CrmUiMessages = {
393
393
  activities: string;
394
394
  relationships: string;
395
395
  documents: string;
396
+ addresses: string;
396
397
  bookings: string;
397
398
  invoices: string;
398
399
  payments: string;
@@ -441,6 +442,46 @@ export type CrmUiMessages = {
441
442
  };
442
443
  hint: string;
443
444
  };
445
+ personDocument: {
446
+ /** Row-level inline reveal panel + per-row action icons. */
447
+ row: {
448
+ decrypting: string;
449
+ noNumberOnFile: string;
450
+ revealFailed: string;
451
+ revealAria: string;
452
+ hideAria: string;
453
+ editAria: string;
454
+ deleteButton: string;
455
+ deleteTitle: string;
456
+ deleteDescription: string;
457
+ deleteConfirm: string;
458
+ };
459
+ /** Edit dialog (opens when the operator clicks the pencil). */
460
+ dialog: {
461
+ title: string;
462
+ description: string;
463
+ revealFailed: string;
464
+ fields: {
465
+ type: string;
466
+ number: string;
467
+ issuingCountry: string;
468
+ issuingAuthority: string;
469
+ issueDate: string;
470
+ expiryDate: string;
471
+ primary: string;
472
+ notes: string;
473
+ };
474
+ placeholders: {
475
+ number: string;
476
+ issuingCountry: string;
477
+ };
478
+ loading: string;
479
+ saveFailed: string;
480
+ cancel: string;
481
+ save: string;
482
+ saving: string;
483
+ };
484
+ };
444
485
  createQuoteDialog: {
445
486
  title: string;
446
487
  fields: {
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":"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"}
@@ -421,6 +421,7 @@ export declare const crmUiMessageDefinitions: {
421
421
  activities: string;
422
422
  relationships: string;
423
423
  documents: string;
424
+ addresses: string;
424
425
  bookings: string;
425
426
  invoices: string;
426
427
  payments: string;
@@ -469,6 +470,44 @@ export declare const crmUiMessageDefinitions: {
469
470
  };
470
471
  hint: string;
471
472
  };
473
+ personDocument: {
474
+ row: {
475
+ decrypting: string;
476
+ noNumberOnFile: string;
477
+ revealFailed: string;
478
+ revealAria: string;
479
+ hideAria: string;
480
+ editAria: string;
481
+ deleteButton: string;
482
+ deleteTitle: string;
483
+ deleteDescription: string;
484
+ deleteConfirm: string;
485
+ };
486
+ dialog: {
487
+ title: string;
488
+ description: string;
489
+ revealFailed: string;
490
+ fields: {
491
+ type: string;
492
+ number: string;
493
+ issuingCountry: string;
494
+ issuingAuthority: string;
495
+ issueDate: string;
496
+ expiryDate: string;
497
+ primary: string;
498
+ notes: string;
499
+ };
500
+ placeholders: {
501
+ number: string;
502
+ issuingCountry: string;
503
+ };
504
+ loading: string;
505
+ saveFailed: string;
506
+ cancel: string;
507
+ save: string;
508
+ saving: string;
509
+ };
510
+ };
472
511
  createQuoteDialog: {
473
512
  title: string;
474
513
  fields: {
@@ -958,6 +997,7 @@ export declare const crmUiMessageDefinitions: {
958
997
  activities: string;
959
998
  relationships: string;
960
999
  documents: string;
1000
+ addresses: string;
961
1001
  bookings: string;
962
1002
  invoices: string;
963
1003
  payments: string;
@@ -1006,6 +1046,44 @@ export declare const crmUiMessageDefinitions: {
1006
1046
  };
1007
1047
  hint: string;
1008
1048
  };
1049
+ personDocument: {
1050
+ row: {
1051
+ decrypting: string;
1052
+ noNumberOnFile: string;
1053
+ revealFailed: string;
1054
+ revealAria: string;
1055
+ hideAria: string;
1056
+ editAria: string;
1057
+ deleteButton: string;
1058
+ deleteTitle: string;
1059
+ deleteDescription: string;
1060
+ deleteConfirm: string;
1061
+ };
1062
+ dialog: {
1063
+ title: string;
1064
+ description: string;
1065
+ revealFailed: string;
1066
+ fields: {
1067
+ type: string;
1068
+ number: string;
1069
+ issuingCountry: string;
1070
+ issuingAuthority: string;
1071
+ issueDate: string;
1072
+ expiryDate: string;
1073
+ primary: string;
1074
+ notes: string;
1075
+ };
1076
+ placeholders: {
1077
+ number: string;
1078
+ issuingCountry: string;
1079
+ };
1080
+ loading: string;
1081
+ saveFailed: string;
1082
+ cancel: string;
1083
+ save: string;
1084
+ saving: string;
1085
+ };
1086
+ };
1009
1087
  createQuoteDialog: {
1010
1088
  title: string;
1011
1089
  fields: {
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/i18n/provider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EAEtB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAKlD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGe,CAAA;AAEnD,MAAM,MAAM,qBAAqB,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAA;AASzE,wBAAgB,oBAAoB,CAAC,EACnC,MAAM,EACN,SAAS,GACV,EAAE;IACD,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACjC,SAAS,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAA;CACzC,iBAOA;AAED,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,SAAS,GACV,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAClC,SAAS,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAA;CACzC,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAUlC;AAED,wBAAgB,qBAAqB,CAAC,EACpC,QAAQ,EACR,MAAM,EACN,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,SAAS,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACjC,SAAS,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAA;CACzC,2CAWA;AAED,eAAO,MAAM,YAAY,uCAAuB,CAAA;AAChD,eAAO,MAAM,gBAAgB,qBAA2B,CAAA;AAExD,wBAAgB,qBAAqB,oCAEpC;AAED,wBAAgB,yBAAyB,kBAExC"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/i18n/provider.tsx"],"names":[],"mappings":"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"}
package/dist/i18n/ro.d.ts CHANGED
@@ -417,6 +417,7 @@ export declare const crmUiRo: {
417
417
  activities: string;
418
418
  relationships: string;
419
419
  documents: string;
420
+ addresses: string;
420
421
  bookings: string;
421
422
  invoices: string;
422
423
  payments: string;
@@ -465,6 +466,44 @@ export declare const crmUiRo: {
465
466
  };
466
467
  hint: string;
467
468
  };
469
+ personDocument: {
470
+ row: {
471
+ decrypting: string;
472
+ noNumberOnFile: string;
473
+ revealFailed: string;
474
+ revealAria: string;
475
+ hideAria: string;
476
+ editAria: string;
477
+ deleteButton: string;
478
+ deleteTitle: string;
479
+ deleteDescription: string;
480
+ deleteConfirm: string;
481
+ };
482
+ dialog: {
483
+ title: string;
484
+ description: string;
485
+ revealFailed: string;
486
+ fields: {
487
+ type: string;
488
+ number: string;
489
+ issuingCountry: string;
490
+ issuingAuthority: string;
491
+ issueDate: string;
492
+ expiryDate: string;
493
+ primary: string;
494
+ notes: string;
495
+ };
496
+ placeholders: {
497
+ number: string;
498
+ issuingCountry: string;
499
+ };
500
+ loading: string;
501
+ saveFailed: string;
502
+ cancel: string;
503
+ save: string;
504
+ saving: string;
505
+ };
506
+ };
468
507
  createQuoteDialog: {
469
508
  title: string;
470
509
  fields: {
@@ -1 +1 @@
1
- {"version":3,"file":"ro.d.ts","sourceRoot":"","sources":["../../src/i18n/ro.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0hBK,CAAA"}
1
+ {"version":3,"file":"ro.d.ts","sourceRoot":"","sources":["../../src/i18n/ro.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkkBK,CAAA"}
package/dist/i18n/ro.js CHANGED
@@ -417,6 +417,7 @@ export const crmUiRo = {
417
417
  activities: "Activitati",
418
418
  relationships: "Relatii",
419
419
  documents: "Documente",
420
+ addresses: "Adrese",
420
421
  bookings: "Rezervari",
421
422
  invoices: "Facturi",
422
423
  payments: "Plati",
@@ -465,6 +466,44 @@ export const crmUiRo = {
465
466
  },
466
467
  hint: "Campurile se actualizeaza din panoul din stanga. Treci cu mouse-ul pentru a vedea iconita de editare.",
467
468
  },
469
+ personDocument: {
470
+ row: {
471
+ decrypting: "Se decripteaza…",
472
+ noNumberOnFile: "(niciun numar inregistrat)",
473
+ revealFailed: "Afisarea a esuat.",
474
+ revealAria: "Afiseaza numarul",
475
+ hideAria: "Ascunde numarul",
476
+ editAria: "Editeaza documentul",
477
+ deleteButton: "Sterge",
478
+ deleteTitle: "Stergi documentul?",
479
+ deleteDescription: "Aceasta actiune sterge definitiv documentul.",
480
+ deleteConfirm: "Sterge",
481
+ },
482
+ dialog: {
483
+ title: "Editeaza documentul",
484
+ description: "Actualizeaza detaliile documentului. Numerele sunt criptate si fiecare dezvaluire este auditata.",
485
+ revealFailed: "Dezvaluirea documentului a esuat.",
486
+ fields: {
487
+ type: "Tip",
488
+ number: "Numar",
489
+ issuingCountry: "Tara emitenta",
490
+ issuingAuthority: "Autoritatea emitenta",
491
+ issueDate: "Data emiterii",
492
+ expiryDate: "Data expirarii",
493
+ primary: "Marcheaza ca document principal pentru acest tip",
494
+ notes: "Note",
495
+ },
496
+ placeholders: {
497
+ number: "Numarul documentului",
498
+ issuingCountry: "Cod ISO (ex. RO)",
499
+ },
500
+ loading: "Se incarca documentul…",
501
+ saveFailed: "Salvarea documentului a esuat.",
502
+ cancel: "Anuleaza",
503
+ save: "Salveaza",
504
+ saving: "Se salveaza…",
505
+ },
506
+ },
468
507
  createQuoteDialog: {
469
508
  title: "Oferta noua",
470
509
  fields: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voyantjs/crm-ui",
3
- "version": "0.62.2",
3
+ "version": "0.63.0",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -43,9 +43,9 @@
43
43
  "@tanstack/react-query": "^5.0.0",
44
44
  "react": "^19.0.0",
45
45
  "react-dom": "^19.0.0",
46
- "@voyantjs/crm-react": "0.62.2",
47
- "@voyantjs/identity-react": "0.62.2",
48
- "@voyantjs/ui": "0.62.2"
46
+ "@voyantjs/crm-react": "0.63.0",
47
+ "@voyantjs/identity-react": "0.63.0",
48
+ "@voyantjs/ui": "0.63.0"
49
49
  },
50
50
  "devDependencies": {
51
51
  "@tanstack/react-query": "^5.100.11",
@@ -56,15 +56,15 @@
56
56
  "react-dom": "^19.2.4",
57
57
  "typescript": "^6.0.2",
58
58
  "vitest": "^4.1.2",
59
- "@voyantjs/crm-react": "0.62.2",
60
- "@voyantjs/i18n": "0.62.2",
61
- "@voyantjs/identity-react": "0.62.2",
62
- "@voyantjs/ui": "0.62.2",
59
+ "@voyantjs/crm-react": "0.63.0",
60
+ "@voyantjs/i18n": "0.63.0",
61
+ "@voyantjs/identity-react": "0.63.0",
62
+ "@voyantjs/ui": "0.63.0",
63
63
  "@voyantjs/voyant-typescript-config": "0.1.0"
64
64
  },
65
65
  "dependencies": {
66
- "@voyantjs/i18n": "0.62.2",
67
- "@voyantjs/utils": "0.62.2"
66
+ "@voyantjs/i18n": "0.63.0",
67
+ "@voyantjs/utils": "0.63.0"
68
68
  },
69
69
  "files": [
70
70
  "dist",