@aiquants/contact-map 0.1.1 → 0.2.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.
package/dist/client.d.ts CHANGED
@@ -2,11 +2,12 @@ import * as react from "react";
2
2
  import { CSSProperties, ReactNode, RefObject, PointerEvent, MouseEvent } from "react";
3
3
  import { UseFuzzySearchOptions } from "@aiquants/fuzzy-search/react";
4
4
  import { C as ContactRecord, a as ContactMapStreamPhase, b as ContactMapSearchOutletContext, c as ContactMapOutletContext, d as ContactMapLogger, S as SerializedContactStreamRow } from "./wire-BxEK32O0.js";
5
+ import { DirectoryTreeLabels, DirectoryTreeVirtualScrollOptions } from "@aiquants/directory-tree";
5
6
  import * as _aiquants_virtualscroll from "@aiquants/virtualscroll";
6
- import { DirectoryTreeVirtualScrollOptions } from "@aiquants/directory-tree";
7
+ import { VirtualScrollLocale } from "@aiquants/virtualscroll";
7
8
  import * as _aiquants_fuzzy_search from "@aiquants/fuzzy-search";
8
9
  import { UseFuzzySearchOptions as UseFuzzySearchOptions$1, UnifiedWorkerStats } from "@aiquants/fuzzy-search";
9
- import { R as ResponsiveLayoutSpec, a as ResponsiveThresholds, C as ContactMapDirectoryEntry, b as ContactRecordForTree } from "./tree-types-Dl6iBQze.js";
10
+ import { R as ResponsiveLayoutSpec, a as ResponsiveThresholds, C as ContactMapDirectoryEntry, b as ContactRecordForTree, c as ContactMapTreeNaming } from "./tree-types-CDq16q63.js";
10
11
  import * as TabsPrimitive from "@radix-ui/react-tabs";
11
12
  interface AdvancedSearchSettingsProps {
12
13
  searchOptions: UseFuzzySearchOptions;
@@ -71,12 +72,318 @@ interface ContactMapAnnotationProps {
71
72
  onRetry?: () => void;
72
73
  }
73
74
  declare const ContactMapAnnotation: react.NamedExoticComponent<ContactMapAnnotationProps>;
75
+ type ContactMapLocale = VirtualScrollLocale;
76
+ type ContactMapStreamProgress = {
77
+ readonly loaded: number;
78
+ readonly total: number;
79
+ readonly percent: number;
80
+ };
81
+ type ContactMapQueryLengthStat = {
82
+ readonly count: number;
83
+ readonly averagePercent: string;
84
+ };
85
+ type ContactMapHistoryEntry = {
86
+ readonly processingTimeMs: string;
87
+ readonly resultCount: number;
88
+ };
89
+ type ContactMapOwnLabels = {
90
+ readonly appTitle: string;
91
+ readonly annotationTotalLabel: string;
92
+ readonly annotationCompaniesLabel: string;
93
+ readonly annotationStreamingProgress: (progress: ContactMapStreamProgress) => string;
94
+ readonly annotationStreamingCount: (loaded: number) => string;
95
+ readonly annotationLoadFailed: (loaded: number) => string;
96
+ readonly annotationRetry: string;
97
+ readonly recordUnit: (displayed: string) => string;
98
+ readonly companyUnit: (displayed: string) => string;
99
+ readonly searchTab: string;
100
+ readonly searchSettings: string;
101
+ readonly searchStatistics: string;
102
+ readonly operatorAndTitle: string;
103
+ readonly operatorOrTitle: string;
104
+ readonly operatorAnd: string;
105
+ readonly operatorOr: string;
106
+ readonly operatorAndHint: string;
107
+ readonly operatorOrHint: string;
108
+ readonly searchPlaceholder: string;
109
+ readonly searchBusyTitle: string;
110
+ readonly clearSearch: string;
111
+ readonly searching: string;
112
+ readonly registeredCountLabel: string;
113
+ readonly rebuildingIndex: string;
114
+ readonly errorLabel: string;
115
+ readonly resultCountLabel: string;
116
+ readonly resultUnit: (displayed: string) => string;
117
+ readonly listViewTab: string;
118
+ readonly treeViewTab: string;
119
+ readonly columnNo: string;
120
+ readonly columnId: string;
121
+ readonly columnScore: string;
122
+ readonly columnName: string;
123
+ readonly columnTitle: string;
124
+ readonly columnCompany: string;
125
+ readonly columnDepartment: string;
126
+ readonly columnPhone: string;
127
+ readonly columnEmail: string;
128
+ readonly columnUpdatedAt: string;
129
+ readonly listRowNumber: (rowNumber: number) => string;
130
+ readonly listNoSearchResults: string;
131
+ readonly listNoData: string;
132
+ readonly listResizeHandle: string;
133
+ readonly detailHeading: string;
134
+ readonly close: string;
135
+ readonly noName: string;
136
+ readonly treeNodeCountTitle: string;
137
+ readonly treeNodeCountLabel: string;
138
+ readonly treeNodeCount: (count: number) => string;
139
+ readonly uncategorizedCompany: string;
140
+ readonly treeDirectoryName: (name: string, memberCount: number) => string;
141
+ readonly treeStreamInterruptedTitle: string;
142
+ readonly treeStreamInterrupted: string;
143
+ readonly treeStreamLoadingTitle: string;
144
+ readonly treeStreamLoading: string;
145
+ readonly treeBuildingTitle: string;
146
+ readonly treeBuilding: string;
147
+ readonly treeCompleteTitle: string;
148
+ readonly treeComplete: string;
149
+ readonly treeShowEntireCompanyTitle: string;
150
+ readonly treeShowEntireCompany: string;
151
+ readonly treeExpandAll: string;
152
+ readonly treeExpandAllTitle: string;
153
+ readonly treeCollapseAll: string;
154
+ readonly treeCollapseAllTitle: string;
155
+ readonly treeNoMatches: string;
156
+ readonly treeEmpty: string;
157
+ readonly treeResizeHandle: string;
158
+ readonly copyField: (fieldLabel: string) => string;
159
+ readonly detailEmptyTitle: string;
160
+ readonly detailEmptyHint: string;
161
+ readonly detailTabSummary: string;
162
+ readonly detailTabBasic: string;
163
+ readonly detailBasicProfile: string;
164
+ readonly detailTabContact: string;
165
+ readonly detailTabMeta: string;
166
+ readonly preferred: string;
167
+ readonly summaryEmail: string;
168
+ readonly summaryPhone: string;
169
+ readonly summaryLastContact: string;
170
+ readonly sectionEmail: string;
171
+ readonly sectionEmailEmpty: string;
172
+ readonly sectionPhone: string;
173
+ readonly sectionPhoneEmpty: string;
174
+ readonly fieldFullName: string;
175
+ readonly fieldFullNameReading: string;
176
+ readonly fieldTitle: string;
177
+ readonly fieldDepartment: string;
178
+ readonly fieldCompanyName: string;
179
+ readonly fieldCompanyNameReading: string;
180
+ readonly fieldAddress: string;
181
+ readonly fieldPostalCode: string;
182
+ readonly fieldUrl: string;
183
+ readonly fieldCustomEmail: string;
184
+ readonly fieldEmail: string;
185
+ readonly fieldCustomMobilePhone: string;
186
+ readonly fieldMobilePhone: string;
187
+ readonly fieldCompanyPhone: string;
188
+ readonly fieldCompanyFax: string;
189
+ readonly fieldCreatedBy: string;
190
+ readonly fieldCreatedAt: string;
191
+ readonly fieldUpdatedBy: string;
192
+ readonly fieldUpdatedAt: string;
193
+ readonly popupCustomMobilePhone: string;
194
+ readonly popupMobilePhone: string;
195
+ readonly popupCustomCompanyPhone: string;
196
+ readonly popupCompanyPhone: string;
197
+ readonly popupCustomEmail: string;
198
+ readonly popupEmail: string;
199
+ readonly popupGmailHint: string;
200
+ readonly popupLastContactDate: string;
201
+ readonly popupNoContactMethods: string;
202
+ readonly overlayTitle: string;
203
+ readonly overlayBackdrop: string;
204
+ readonly settingsResetAllTitle: string;
205
+ readonly settingsResetAll: string;
206
+ readonly settingsTabsLabel: string;
207
+ readonly settingsBasicTab: string;
208
+ readonly settingsAdvancedTab: string;
209
+ readonly indexWorkerName: string;
210
+ readonly levenshteinWorkerName: string;
211
+ readonly currentValueLabel: string;
212
+ readonly resetToDefaultsTitle: string;
213
+ readonly reset: string;
214
+ readonly relevanceOnlyNotice: string;
215
+ readonly relevanceWeightsHeading: string;
216
+ readonly fieldWeight: string;
217
+ readonly scoreTuningHeading: string;
218
+ readonly maxResults: string;
219
+ readonly basicThresholdHeading: string;
220
+ readonly basicThresholdLabel: string;
221
+ readonly basicThresholdRangeRelevance: string;
222
+ readonly basicThresholdRange: string;
223
+ readonly basicDisplayHeading: string;
224
+ readonly basicCaseSensitive: string;
225
+ readonly basicHighlight: string;
226
+ readonly basicOpenEmailsWithGmail: string;
227
+ readonly basicMultiTermOperator: string;
228
+ readonly basicOperatorOr: string;
229
+ readonly basicOperatorAnd: string;
230
+ readonly basicMultiTermHint: string;
231
+ readonly basicSortHeading: string;
232
+ readonly basicSortBy: string;
233
+ readonly basicSortByScore: string;
234
+ readonly basicSortByRelevance: string;
235
+ readonly basicSortByOriginal: string;
236
+ readonly basicSortOrder: string;
237
+ readonly basicSortDescending: string;
238
+ readonly basicSortAscending: string;
239
+ readonly basicEngineHeading: string;
240
+ readonly basicStrategy: string;
241
+ readonly basicStrategyBalanced: string;
242
+ readonly basicStrategyIndexFirst: string;
243
+ readonly basicStrategyLevenshteinFirst: string;
244
+ readonly basicIndexFiltering: string;
245
+ readonly basicLevenshtein: string;
246
+ readonly advancedLearningHeading: string;
247
+ readonly advancedLearningLabel: string;
248
+ readonly advancedLearningHint: string;
249
+ readonly advancedDebounceHeading: string;
250
+ readonly advancedDebounceLabel: string;
251
+ readonly advancedDebounceHint: string;
252
+ readonly indexSettingsHeading: string;
253
+ readonly indexBuildHeading: string;
254
+ readonly indexNgramSize: string;
255
+ readonly indexNgramSizeHint: string;
256
+ readonly indexMinNgramOverlap: string;
257
+ readonly indexMinNgramOverlapHint: string;
258
+ readonly indexCandidateHeading: string;
259
+ readonly indexThreshold: string;
260
+ readonly indexThresholdHint: string;
261
+ readonly indexNgramOverlapThreshold: string;
262
+ readonly indexNgramOverlapThresholdHint: string;
263
+ readonly indexStrategyHeading: string;
264
+ readonly indexStrategy: string;
265
+ readonly indexStrategyFast: string;
266
+ readonly indexStrategyAccurate: string;
267
+ readonly indexStrategyHybrid: string;
268
+ readonly indexStrategyHint: string;
269
+ readonly indexMinCandidatesRatio: string;
270
+ readonly indexMinCandidatesRatioHint: string;
271
+ readonly indexMaxCandidatesRatio: string;
272
+ readonly indexMaxCandidatesRatioHint: string;
273
+ readonly indexJaroWinklerPrefix: string;
274
+ readonly indexJaroWinklerPrefixHint: string;
275
+ readonly indexMaxResultsHint: string;
276
+ readonly indexFieldWeightHint: string;
277
+ readonly indexPerfectMatchBonus: string;
278
+ readonly indexPerfectMatchBonusHint: string;
279
+ readonly indexContainmentHeading: string;
280
+ readonly indexContainmentBase: string;
281
+ readonly indexContainmentBaseHint: string;
282
+ readonly indexContainmentCoverage: string;
283
+ readonly indexContainmentCoverageHint: string;
284
+ readonly levenshteinSettingsHeading: string;
285
+ readonly levenshteinCandidateHeading: string;
286
+ readonly levenshteinThreshold: string;
287
+ readonly levenshteinThresholdHintRelevance: string;
288
+ readonly levenshteinThresholdHint: string;
289
+ readonly levenshteinLengthSimilarity: string;
290
+ readonly levenshteinLengthSimilarityHint: string;
291
+ readonly levenshteinLengthPenalty: string;
292
+ readonly levenshteinLengthPenaltyHint: string;
293
+ readonly levenshteinResultsHeading: string;
294
+ readonly levenshteinMaxResultsHint: string;
295
+ readonly levenshteinFieldWeightHint: string;
296
+ readonly levenshteinPartialBonus: string;
297
+ readonly levenshteinPartialBonusHint: string;
298
+ readonly statsRebuildingTitle: string;
299
+ readonly statsRebuildIndexTabOnlyTitle: string;
300
+ readonly statsRebuildTitle: string;
301
+ readonly statsRebuilding: string;
302
+ readonly statsRebuild: string;
303
+ readonly statsResetTitle: string;
304
+ readonly statsOverviewTab: string;
305
+ readonly statsIndexTab: string;
306
+ readonly statsLevenshteinTab: string;
307
+ readonly statTotalSearches: string;
308
+ readonly statAverageSearchTime: string;
309
+ readonly statDataCount: string;
310
+ readonly statResultCount: string;
311
+ readonly statDisplayedCount: string;
312
+ readonly statsNoData: string;
313
+ readonly statsBasicHeading: string;
314
+ readonly statTotalProcessingTime: string;
315
+ readonly statLastSearchTime: string;
316
+ readonly statErrorCount: string;
317
+ readonly statUpdatedAt: string;
318
+ readonly statsOperationsHeading: string;
319
+ readonly statTotalOperations: string;
320
+ readonly statsIndexHeading: string;
321
+ readonly statIndexBuilds: string;
322
+ readonly statDataSize: string;
323
+ readonly statLastBuildTime: string;
324
+ readonly statsCacheHeading: string;
325
+ readonly statCacheNgram: string;
326
+ readonly statCacheWord: string;
327
+ readonly statCachePhonetic: string;
328
+ readonly statsIndexMetadataHeading: string;
329
+ readonly statsCalculationsHeading: string;
330
+ readonly statTotalCalculations: string;
331
+ readonly statDistanceCalculations: string;
332
+ readonly statAverageDistance: string;
333
+ readonly statMinDistance: string;
334
+ readonly statMaxDistance: string;
335
+ readonly notAvailable: string;
336
+ readonly statsMatchesHeading: string;
337
+ readonly statPartialMatches: string;
338
+ readonly statPerfectMatches: string;
339
+ readonly statEarlyTerminations: string;
340
+ readonly statsSimilarityHeading: string;
341
+ readonly statAbove80: string;
342
+ readonly statAbove60: string;
343
+ readonly statAbove40: string;
344
+ readonly statBelow40: string;
345
+ readonly statsDistanceHeading: string;
346
+ readonly statDistance: (distance: string) => string;
347
+ readonly statsQueryLengthHeading: string;
348
+ readonly statQueryLength: (length: string) => string;
349
+ readonly statQueryLengthValue: (stat: ContactMapQueryLengthStat) => string;
350
+ readonly statsFieldPerformanceHeading: string;
351
+ readonly statAverageScore: string;
352
+ readonly statMatchCount: string;
353
+ readonly statBestWorstScore: string;
354
+ readonly statsInsightsHeading: string;
355
+ readonly statBestField: string;
356
+ readonly statRecentAverageTime: string;
357
+ readonly statRecentAverageResults: string;
358
+ readonly statThroughput: string;
359
+ readonly statCommonQueryLength: string;
360
+ readonly statHistoryEntries: string;
361
+ readonly statHighSimilarity: string;
362
+ readonly statMediumSimilarity: string;
363
+ readonly statLowSimilarity: string;
364
+ readonly statVeryLowSimilarity: string;
365
+ readonly statsRecentHistoryHeading: string;
366
+ readonly statsHistoryEntry: (entry: ContactMapHistoryEntry) => string;
367
+ readonly timesUnit: (displayed: string) => string;
368
+ readonly itemsUnit: (displayed: string) => string;
369
+ readonly charactersUnit: (displayed: string) => string;
370
+ readonly throughputUnit: string;
371
+ };
372
+ type ContactMapLabels = DirectoryTreeLabels & ContactMapOwnLabels;
373
+ type ContactMapLabelOverrides = {
374
+ readonly [K in keyof ContactMapLabels]?: ContactMapLabels[K];
375
+ };
376
+ declare const CONTACT_MAP_LABEL_KEYS: readonly (keyof ContactMapLabels)[];
377
+ declare const CONTACT_MAP_LABEL_CATALOGS: Readonly<Record<ContactMapLocale, ContactMapLabels>>;
378
+ declare const resolveContactMapLabels: (locale: ContactMapLocale | undefined, overrides: ContactMapLabelOverrides | undefined) => ContactMapLabels;
74
379
  interface ContactMapAppViewProps {
75
380
  renderHeader?: (props: {
76
381
  title: string;
77
382
  annotation: ReactNode;
78
383
  }) => ReactNode;
79
384
  title?: string;
385
+ locale?: ContactMapLocale;
386
+ labels?: ContactMapLabelOverrides;
80
387
  streamEndpoint?: string;
81
388
  workerUrls?: {
82
389
  indexWorker?: string;
@@ -205,8 +512,9 @@ interface StatisticsPanelProps {
205
512
  }
206
513
  type StatisticsPanelTab = "overview" | "index" | "levenshtein";
207
514
  declare const StatisticsPanel: react.NamedExoticComponent<StatisticsPanelProps>;
515
+ type WorkerStatsKind = "index" | "levenshtein";
208
516
  interface WorkerStatsSectionProps {
209
- title: string;
517
+ kind: WorkerStatsKind;
210
518
  icon: string;
211
519
  stats: UnifiedWorkerStats | undefined;
212
520
  color: string;
@@ -226,6 +534,8 @@ interface ContactMapConfig {
226
534
  levenshteinWorkerUrl?: string;
227
535
  };
228
536
  layoutSpec?: Partial<ResponsiveLayoutSpec>;
537
+ locale?: ContactMapLocale;
538
+ labels?: ContactMapLabelOverrides;
229
539
  }
230
540
  declare function ContactMapConfigProvider({ config, children }: {
231
541
  config?: ContactMapConfig;
@@ -353,6 +663,8 @@ declare class TreeWorkerSession {
353
663
  private latestSnapshot;
354
664
  private workerNeedsReset;
355
665
  private lastSyncedRecords;
666
+ private postedNaming;
667
+ private lastSyncedNaming;
356
668
  private consecutiveFailures;
357
669
  private finalizeRequested;
358
670
  private retryTimer;
@@ -367,15 +679,16 @@ declare class TreeWorkerSession {
367
679
  private ensureWorker;
368
680
  private readonly handleMessage;
369
681
  private readonly handleFailure;
370
- syncRecords(records: readonly ContactRecordForTree[]): void;
682
+ syncRecords(records: readonly ContactRecordForTree[], naming: ContactMapTreeNaming): void;
371
683
  finalize(): void;
372
684
  dispose(): void;
373
685
  }
374
686
  declare const getTreeWorkerSession: (factory?: () => Worker, treeWorkerUrl?: string) => TreeWorkerSession;
375
- declare const syncTreeWorkerRecords: (records: readonly ContactRecordForTree[]) => void;
687
+ declare const syncTreeWorkerRecords: (records: readonly ContactRecordForTree[], naming: ContactMapTreeNaming) => void;
376
688
  declare const finalizeTreeWorker: () => void;
377
689
  declare const resetTreeWorkerSessionForTesting: () => void;
378
690
  declare function useTreeWorker(records: readonly ContactRecordForTree[], isComplete?: boolean): TreeWorkerState;
691
+ declare const useContactMapLabels: () => ContactMapLabels;
379
692
  declare function contactMapShouldRevalidate(): boolean;
380
693
  type ProgressProps = react.ComponentPropsWithoutRef<"div"> & {
381
694
  value?: number;
@@ -396,4 +709,4 @@ declare const Tabs: react.ForwardRefExoticComponent<TabsPrimitive.TabsProps & re
396
709
  declare const TabsList: react.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsListProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
397
710
  declare const TabsTrigger: react.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & react.RefAttributes<HTMLButtonElement>, "ref"> & react.RefAttributes<HTMLButtonElement>>;
398
711
  declare const TabsContent: react.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
399
- export { AdvancedSearchSettings, type AdvancedSearchSettingsProps, BasicSearchSettings, type BasicSearchSettingsProps, ContactDetailGrid, type ContactDetailGridProps, type ContactDetailGridSkeletonProps, ContactDetailPanel, type ContactDetailPanelProps, ContactDetailPopup, type ContactDetailPopupProps, ContactDetailRowLayout, type ContactDetailRowLayoutProps, ContactMapAnnotation, type ContactMapAnnotationProps, ContactMapAppView, type ContactMapAppViewProps, type ContactMapConfig, ContactMapConfigProvider, ContactMapSearchListView, ContactMapSearchPage, type ContactMapSearchPageProps, ContactMapSearchTabGroup, type ContactMapSearchTabGroupProps, ContactMapSearchTreeView, type ContactMapSearchTreeViewProps, ContactMapStreamClient, type ContactMapStreamClientDeps, ContactMapStreamPhase, type ContactMapStreamState, type ContactMapTab, HighlightedText, type HighlightedTextProps, type HorizontalDragScrollHandlers, IndexWorkerSettings, type IndexWorkerSettingsProps, LIST_COLLAPSE_THRESHOLD, LIST_DETAIL_PANEL_MIN_WIDTH, LIST_EXPAND_THRESHOLD, LIST_PANEL_MIN_WIDTH, LIST_RESIZE_HANDLE_THICKNESS, LevenshteinWorkerSettings, type LevenshteinWorkerSettingsProps, type PopupCloseOptions, Progress, type ProgressProps, SearchOptionsPanel, type SearchOptionsPanelProps, type SearchOptionsPanelTab, StatItem, type StatItemProps, StatisticsPanel, type StatisticsPanelProps, type StatisticsPanelTab, SwipeOverlay, type SwipeOverlayProps, TREE_COLLAPSE_THRESHOLD, TREE_DETAIL_PANEL_MIN_WIDTH, TREE_EXPAND_THRESHOLD, TREE_PANEL_MIN_WIDTH, TREE_RESIZE_HANDLE_THICKNESS, Tabs, TabsContent, TabsList, TabsTrigger, TreeWorkerSession, type TreeWorkerSnapshot, type TreeWorkerState, type UseDynamicViewportHeightOptions, type UseDynamicViewportHeightResult, type UseHorizontalDragScrollOptions, type UseLongPressPopupOptions, type UseLongPressPopupReturn, type UseResponsiveTwoColumnLayoutOptions, type UseResponsiveTwoColumnLayoutResult, WorkerStatsSection, type WorkerStatsSectionProps, composeTreeVirtualScrollOptions, contactMapShouldRevalidate, deserializeStreamRecord, finalizeTreeWorker, getContactMapRecordMap, getContactMapStreamClient, getTreeWorkerSession, resetContactMapStreamClientForTesting, resetTreeWorkerSessionForTesting, syncTreeWorkerRecords, useAnimatedNumber, useContactMapConfig, useContactMapStream, useContactPanelSizing, useDynamicViewportHeight, useHorizontalDragScroll, useLongPressPopup, useReportPopupVisibility, useResponsiveTwoColumnLayout, useRowPopupRegistry, useTreeWorker };
712
+ export { AdvancedSearchSettings, type AdvancedSearchSettingsProps, BasicSearchSettings, type BasicSearchSettingsProps, CONTACT_MAP_LABEL_CATALOGS, CONTACT_MAP_LABEL_KEYS, ContactDetailGrid, type ContactDetailGridProps, type ContactDetailGridSkeletonProps, ContactDetailPanel, type ContactDetailPanelProps, ContactDetailPopup, type ContactDetailPopupProps, ContactDetailRowLayout, type ContactDetailRowLayoutProps, ContactMapAnnotation, type ContactMapAnnotationProps, ContactMapAppView, type ContactMapAppViewProps, type ContactMapConfig, ContactMapConfigProvider, type ContactMapHistoryEntry, type ContactMapLabelOverrides, type ContactMapLabels, type ContactMapLocale, type ContactMapOwnLabels, type ContactMapQueryLengthStat, ContactMapSearchListView, ContactMapSearchPage, type ContactMapSearchPageProps, ContactMapSearchTabGroup, type ContactMapSearchTabGroupProps, ContactMapSearchTreeView, type ContactMapSearchTreeViewProps, ContactMapStreamClient, type ContactMapStreamClientDeps, ContactMapStreamPhase, type ContactMapStreamProgress, type ContactMapStreamState, type ContactMapTab, HighlightedText, type HighlightedTextProps, type HorizontalDragScrollHandlers, IndexWorkerSettings, type IndexWorkerSettingsProps, LIST_COLLAPSE_THRESHOLD, LIST_DETAIL_PANEL_MIN_WIDTH, LIST_EXPAND_THRESHOLD, LIST_PANEL_MIN_WIDTH, LIST_RESIZE_HANDLE_THICKNESS, LevenshteinWorkerSettings, type LevenshteinWorkerSettingsProps, type PopupCloseOptions, Progress, type ProgressProps, SearchOptionsPanel, type SearchOptionsPanelProps, type SearchOptionsPanelTab, StatItem, type StatItemProps, StatisticsPanel, type StatisticsPanelProps, type StatisticsPanelTab, SwipeOverlay, type SwipeOverlayProps, TREE_COLLAPSE_THRESHOLD, TREE_DETAIL_PANEL_MIN_WIDTH, TREE_EXPAND_THRESHOLD, TREE_PANEL_MIN_WIDTH, TREE_RESIZE_HANDLE_THICKNESS, Tabs, TabsContent, TabsList, TabsTrigger, TreeWorkerSession, type TreeWorkerSnapshot, type TreeWorkerState, type UseDynamicViewportHeightOptions, type UseDynamicViewportHeightResult, type UseHorizontalDragScrollOptions, type UseLongPressPopupOptions, type UseLongPressPopupReturn, type UseResponsiveTwoColumnLayoutOptions, type UseResponsiveTwoColumnLayoutResult, type WorkerStatsKind, WorkerStatsSection, type WorkerStatsSectionProps, composeTreeVirtualScrollOptions, contactMapShouldRevalidate, deserializeStreamRecord, finalizeTreeWorker, getContactMapRecordMap, getContactMapStreamClient, getTreeWorkerSession, resetContactMapStreamClientForTesting, resetTreeWorkerSessionForTesting, resolveContactMapLabels, syncTreeWorkerRecords, useAnimatedNumber, useContactMapConfig, useContactMapLabels, useContactMapStream, useContactPanelSizing, useDynamicViewportHeight, useHorizontalDragScroll, useLongPressPopup, useReportPopupVisibility, useResponsiveTwoColumnLayout, useRowPopupRegistry, useTreeWorker };