@semiont/react-ui 0.4.20 → 0.4.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -5
- package/dist/{PdfAnnotationCanvas.client-CHDCGQBR.mjs → PdfAnnotationCanvas.client-6ZGFEN2N.mjs} +9 -13
- package/dist/PdfAnnotationCanvas.client-6ZGFEN2N.mjs.map +1 -0
- package/dist/TranslationManager-9Xj3MIWQ.d.mts +16 -0
- package/dist/chunk-KEDFYI6N.mjs +7788 -0
- package/dist/chunk-KEDFYI6N.mjs.map +1 -0
- package/dist/index.d.mts +171 -1140
- package/dist/index.mjs +3263 -13644
- package/dist/index.mjs.map +1 -1
- package/dist/test-utils.d.mts +46 -21
- package/dist/test-utils.mjs +2499 -87
- package/dist/test-utils.mjs.map +1 -1
- package/package.json +1 -2
- package/src/components/AnnotateReferencesProgressWidget.tsx +21 -28
- package/src/components/CodeMirrorRenderer.tsx +9 -11
- package/src/components/StatusDisplay.tsx +42 -16
- package/src/components/Toolbar.tsx +4 -4
- package/src/components/__tests__/AnnotateReferencesProgressWidget.test.tsx +34 -20
- package/src/components/__tests__/StatusDisplay.test.tsx +47 -64
- package/src/components/__tests__/Toolbar.test.tsx +4 -4
- package/src/components/annotation/AnnotateToolbar.tsx +8 -7
- package/src/components/annotation/__tests__/AnnotateToolbar.test.tsx +31 -77
- package/src/components/annotation-popups/__tests__/JsonLdView.test.tsx +0 -1
- package/src/components/image-annotation/AnnotationOverlay.tsx +12 -13
- package/src/components/image-annotation/SvgDrawingCanvas.tsx +7 -7
- package/src/components/modals/PermissionDeniedModal.tsx +11 -11
- package/src/components/modals/ReferenceWizardModal.tsx +14 -18
- package/src/components/modals/ResourceSearchModal.tsx +10 -6
- package/src/components/modals/SearchModal.tsx +10 -6
- package/src/components/modals/SessionExpiredModal.tsx +11 -11
- package/src/components/modals/__tests__/PermissionDeniedModal.test.tsx +7 -7
- package/src/components/modals/__tests__/ResourceSearchModal.test.tsx +10 -8
- package/src/components/modals/__tests__/SearchModal.search-wiring.test.tsx +10 -7
- package/src/components/modals/__tests__/SessionExpiredModal.test.tsx +5 -5
- package/src/components/navigation/CollapsibleResourceNavigation.tsx +10 -10
- package/src/components/navigation/ObservableLink.tsx +6 -6
- package/src/components/navigation/SimpleNavigation.tsx +4 -4
- package/src/components/navigation/__tests__/ObservableLink.test.tsx +4 -4
- package/src/components/navigation/__tests__/SimpleNavigation.test.tsx +4 -4
- package/src/components/pdf-annotation/PdfAnnotationCanvas.tsx +9 -11
- package/src/components/pdf-annotation/__tests__/PdfAnnotationCanvas.test.tsx +0 -1
- package/src/components/resource/AnnotateView.tsx +7 -6
- package/src/components/resource/AnnotationHistory.tsx +9 -12
- package/src/components/resource/BrowseView.tsx +8 -7
- package/src/components/resource/ResourceViewer.tsx +17 -25
- package/src/components/resource/__tests__/AnnotationHistory.test.tsx +54 -192
- package/src/components/resource/__tests__/BrowseView.test.tsx +34 -83
- package/src/components/resource/__tests__/ResourceViewer.mode-switch.test.tsx +40 -31
- package/src/components/resource/panels/AssessmentEntry.tsx +5 -4
- package/src/components/resource/panels/AssessmentPanel.tsx +19 -15
- package/src/components/resource/panels/AssistSection.tsx +11 -13
- package/src/components/resource/panels/CollaborationPanel.tsx +29 -7
- package/src/components/resource/panels/CommentEntry.tsx +5 -4
- package/src/components/resource/panels/CommentsPanel.tsx +9 -11
- package/src/components/resource/panels/HighlightEntry.tsx +5 -4
- package/src/components/resource/panels/HighlightPanel.tsx +10 -11
- package/src/components/resource/panels/ReferenceEntry.tsx +8 -8
- package/src/components/resource/panels/ReferencesPanel.tsx +13 -12
- package/src/components/resource/panels/ResourceInfoPanel.tsx +7 -6
- package/src/components/resource/panels/TagEntry.tsx +5 -4
- package/src/components/resource/panels/TaggingPanel.tsx +10 -16
- package/src/components/resource/panels/UnifiedAnnotationsPanel.tsx +3 -2
- package/src/components/resource/panels/__tests__/AssessmentPanel.test.tsx +18 -52
- package/src/components/resource/panels/__tests__/CollaborationPanel.test.tsx +51 -20
- package/src/components/resource/panels/__tests__/CommentsPanel.test.tsx +18 -56
- package/src/components/resource/panels/__tests__/HighlightPanel.annotationProgress.test.tsx +0 -1
- package/src/components/resource/panels/__tests__/ReferenceEntry.test.tsx +4 -5
- package/src/components/resource/panels/__tests__/ReferencesPanel.observable-flow.test.tsx +153 -0
- package/src/components/resource/panels/__tests__/ReferencesPanel.test.tsx +51 -106
- package/src/components/resource/panels/__tests__/ResourceInfoPanel.test.tsx +15 -47
- package/src/components/resource/panels/__tests__/TaggingPanel.test.tsx +15 -47
- package/src/components/settings/SettingsPanel.tsx +8 -8
- package/src/components/settings/__tests__/SettingsPanel.test.tsx +12 -12
- package/src/features/admin-devops/components/AdminDevOpsPage.tsx +1 -1
- package/src/features/admin-exchange/components/AdminExchangePage.tsx +1 -1
- package/src/features/admin-exchange/components/ImportCard.tsx +2 -6
- package/src/features/admin-security/components/AdminSecurityPage.tsx +1 -1
- package/src/features/admin-users/components/AdminUsersPage.tsx +1 -1
- package/src/features/moderate-entity-tags/components/EntityTagsPage.tsx +1 -1
- package/src/features/moderate-recent/components/RecentDocumentsPage.tsx +1 -1
- package/src/features/moderate-tag-schemas/components/TagSchemasPage.tsx +1 -1
- package/src/features/moderation-linked-data/components/LinkedDataPage.tsx +1 -1
- package/src/features/resource-compose/__tests__/ResourceComposePage.test.tsx +5 -3
- package/src/features/resource-compose/components/ResourceComposePage.tsx +5 -22
- package/src/features/resource-discovery/__tests__/ResourceDiscoveryPage.test.tsx +4 -3
- package/src/features/resource-discovery/components/ResourceDiscoveryPage.tsx +1 -1
- package/src/features/resource-viewer/__tests__/ResourceViewerPage.test.tsx +38 -45
- package/src/features/resource-viewer/components/ResourceViewerPage.tsx +123 -192
- package/dist/KnowledgeBaseSessionContext-BNNunwzO.d.mts +0 -175
- package/dist/PdfAnnotationCanvas.client-CHDCGQBR.mjs.map +0 -1
- package/dist/chunk-OZICDVH7.mjs +0 -62
- package/dist/chunk-OZICDVH7.mjs.map +0 -1
- package/dist/chunk-R4CCMFJH.mjs +0 -877
- package/dist/chunk-R4CCMFJH.mjs.map +0 -1
- package/dist/chunk-VN5NY4SN.mjs +0 -200
- package/dist/chunk-VN5NY4SN.mjs.map +0 -1
- package/src/components/modals/ProposeEntitiesModal.tsx +0 -179
- package/src/components/modals/__tests__/ProposeEntitiesModal.test.tsx +0 -129
- package/src/features/resource-viewer/__tests__/AnnotationCreationPending.test.tsx +0 -323
- package/src/features/resource-viewer/__tests__/AnnotationDeletionIntegration.test.tsx +0 -245
- package/src/features/resource-viewer/__tests__/AnnotationProgressDismissal.test.tsx +0 -303
- package/src/features/resource-viewer/__tests__/BindFlowIntegration.test.tsx +0 -150
- package/src/features/resource-viewer/__tests__/DetectionFlowBug.test.tsx +0 -243
- package/src/features/resource-viewer/__tests__/DetectionFlowIntegration.test.tsx +0 -383
- package/src/features/resource-viewer/__tests__/ResourceMutations.test.tsx +0 -299
- package/src/features/resource-viewer/__tests__/ToastNotifications.test.tsx +0 -186
- package/src/features/resource-viewer/__tests__/YieldFlowIntegration.test.tsx +0 -429
- package/src/features/resource-viewer/__tests__/annotation-progress-flow.test.tsx +0 -348
package/dist/index.d.mts
CHANGED
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { components, ResourceId, Selector, AnnotationId, PersistedEvent, EventBus, EventMap, MarkProgress, StoredEventLike, paths, GatheredContext, Motivation as Motivation$9, YieldProgress } from '@semiont/core';
|
|
1
|
+
import { components, ResourceId, Selector, EventMap, AnnotationId, StoredEventLike, GatheredContext } from '@semiont/core';
|
|
3
2
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
3
|
import * as React$1 from 'react';
|
|
5
4
|
import React__default, { ComponentType, ReactNode, KeyboardEvent as KeyboardEvent$1, Component, ErrorInfo, Ref } from 'react';
|
|
6
|
-
import {
|
|
7
|
-
export { A as AuthSession, c as KnowledgeBaseSessionContext, d as KnowledgeBaseSessionProvider, e as KnowledgeBaseSessionValue, N as NewKnowledgeBase, u as useKnowledgeBaseSession } from './KnowledgeBaseSessionContext-BNNunwzO.mjs';
|
|
8
|
-
import * as _tanstack_react_query from '@tanstack/react-query';
|
|
9
|
-
import { UseQueryOptions } from '@tanstack/react-query';
|
|
10
|
-
import { SemiontApiClient, ValidationResult, TokenRefresher } from '@semiont/api-client';
|
|
5
|
+
import { T as TranslationManager } from './TranslationManager-9Xj3MIWQ.mjs';
|
|
11
6
|
import * as _codemirror_state from '@codemirror/state';
|
|
12
7
|
import { HighlightStyle } from '@codemirror/language';
|
|
13
8
|
import { WidgetType } from '@codemirror/view';
|
|
14
|
-
import {
|
|
9
|
+
import { ValidationResult, ViewModel, SemiontBrowser, SessionStorage, SemiontSession, ConnectionState, OpenResource, ImportPreview, CloneData, ReferenceData, ShellVM } from '@semiont/api-client';
|
|
10
|
+
export { ActiveJob, AdminSecurityVM, AdminUsersVM, AnnotationGroups, BeckonVM, COMMON_PANELS, CloneData, ComposeMode, ComposePageVM, ComposeParams, DiscoverVM, EntityTagsVM, ExchangeVM, GatherVM, GenerateDocumentOptions, HOVER_DELAY_MS, HoverHandlers, ImportPreview, Job, JobAssignment, JobClaimAdapter, JobClaimAdapterOptions, JobQueueVM, MarkVM, MatchVM, PendingAnnotation, RESOURCE_PANELS, ReferenceData, ResourceLoaderVM, ResourceViewerPageVM, SaveResourceParams, SearchPipeline, SearchPipelineOptions, SearchState, SessionVM, ShellVM, ShellVMOptions, ToolbarPanelType, WelcomeVM, WizardState, YieldVM, createAdminSecurityVM, createAdminUsersVM, createBeckonVM, createComposePageVM, createDiscoverVM, createEntityTagsVM, createExchangeVM, createGatherVM, createHoverHandlers, createJobClaimAdapter, createJobQueueVM, createMarkVM, createMatchVM, createResourceLoaderVM, createResourceViewerPageVM, createSearchPipeline, createSessionVM, createShellVM, createWelcomeVM, createYieldVM } from '@semiont/api-client';
|
|
15
11
|
import { TagSchema } from '@semiont/ontology';
|
|
16
12
|
export { TAG_SCHEMAS, TagCategory, TagSchema, getAllTagSchemas, getSchemaCategory as getTagCategory, getTagSchema, getTagSchemasByDomain, isValidCategory } from '@semiont/ontology';
|
|
13
|
+
import { Observable } from 'rxjs';
|
|
17
14
|
|
|
18
15
|
type Annotation$m = components['schemas']['Annotation'];
|
|
19
16
|
/**
|
|
@@ -138,19 +135,16 @@ interface DeleteAnnotationParams {
|
|
|
138
135
|
* Framework-agnostic interface for annotation mutations.
|
|
139
136
|
* Apps provide implementations via AnnotationProvider.
|
|
140
137
|
*
|
|
141
|
-
* Example implementation
|
|
138
|
+
* Example implementation:
|
|
142
139
|
* ```typescript
|
|
143
|
-
* function useAnnotationManager(): AnnotationManager {
|
|
144
|
-
* const createMutation = useAnnotations().create.useMutation();
|
|
145
|
-
* const deleteMutation = useAnnotations().delete.useMutation();
|
|
146
|
-
*
|
|
140
|
+
* function useAnnotationManager(client: SemiontApiClient): AnnotationManager {
|
|
147
141
|
* return {
|
|
148
142
|
* markAnnotation: async (params) => {
|
|
149
|
-
* const result = await
|
|
143
|
+
* const result = await client.markAnnotation(params.rUri, {...});
|
|
150
144
|
* return result.annotation;
|
|
151
145
|
* },
|
|
152
146
|
* deleteAnnotation: async (params) => {
|
|
153
|
-
* await
|
|
147
|
+
* await client.deleteAnnotation(params.rUri, params.annotationId);
|
|
154
148
|
* }
|
|
155
149
|
* };
|
|
156
150
|
* }
|
|
@@ -171,62 +165,6 @@ interface AnnotationManager {
|
|
|
171
165
|
deleteAnnotation: (params: DeleteAnnotationParams) => Promise<void>;
|
|
172
166
|
}
|
|
173
167
|
|
|
174
|
-
/**
|
|
175
|
-
* Cache Manager Interface
|
|
176
|
-
*
|
|
177
|
-
* Framework-agnostic interface for cache invalidation.
|
|
178
|
-
* Apps provide implementations via CacheProvider.
|
|
179
|
-
*
|
|
180
|
-
* This abstraction allows react-ui to trigger cache invalidation
|
|
181
|
-
* without depending on a specific data fetching library (React Query, SWR, Apollo, etc.)
|
|
182
|
-
*
|
|
183
|
-
* Example implementation (React Query):
|
|
184
|
-
* ```typescript
|
|
185
|
-
* function useCacheManager(): CacheManager {
|
|
186
|
-
* const queryClient = useQueryClient();
|
|
187
|
-
*
|
|
188
|
-
* return {
|
|
189
|
-
* invalidateAnnotations: (rUri) => {
|
|
190
|
-
* queryClient.invalidateQueries({ queryKey: ['annotations', rUri] });
|
|
191
|
-
* },
|
|
192
|
-
* invalidateEvents: (rUri) => {
|
|
193
|
-
* queryClient.invalidateQueries({ queryKey: ['documents', 'events', rUri] });
|
|
194
|
-
* }
|
|
195
|
-
* };
|
|
196
|
-
* }
|
|
197
|
-
* ```
|
|
198
|
-
*
|
|
199
|
-
* Example implementation (SWR):
|
|
200
|
-
* ```typescript
|
|
201
|
-
* function useCacheManager(): CacheManager {
|
|
202
|
-
* const { mutate } = useSWRConfig();
|
|
203
|
-
*
|
|
204
|
-
* return {
|
|
205
|
-
* invalidateAnnotations: (rUri) => {
|
|
206
|
-
* mutate((key) => Array.isArray(key) && key[0] === 'annotations' && key[1] === rUri);
|
|
207
|
-
* },
|
|
208
|
-
* invalidateEvents: (rUri) => {
|
|
209
|
-
* mutate((key) => Array.isArray(key) && key[0] === 'events' && key[1] === rUri);
|
|
210
|
-
* }
|
|
211
|
-
* };
|
|
212
|
-
* }
|
|
213
|
-
* ```
|
|
214
|
-
*/
|
|
215
|
-
interface CacheManager {
|
|
216
|
-
/**
|
|
217
|
-
* Invalidate annotation cache for a resource
|
|
218
|
-
* @param rUri - Resource URI
|
|
219
|
-
* @returns Promise or void (synchronous invalidation is acceptable)
|
|
220
|
-
*/
|
|
221
|
-
invalidateAnnotations: (rUri: ResourceId) => void | Promise<void>;
|
|
222
|
-
/**
|
|
223
|
-
* Invalidate events cache for a resource
|
|
224
|
-
* @param rUri - Resource URI
|
|
225
|
-
* @returns Promise or void (synchronous invalidation is acceptable)
|
|
226
|
-
*/
|
|
227
|
-
invalidateEvents: (rUri: ResourceId) => void | Promise<void>;
|
|
228
|
-
}
|
|
229
|
-
|
|
230
168
|
/**
|
|
231
169
|
* Represents a single navigation item
|
|
232
170
|
*/
|
|
@@ -341,369 +279,6 @@ interface Annotator {
|
|
|
341
279
|
*/
|
|
342
280
|
declare const ANNOTATORS: Record<string, Annotator>;
|
|
343
281
|
|
|
344
|
-
/**
|
|
345
|
-
* Resource operations
|
|
346
|
-
*/
|
|
347
|
-
declare function useResources(): {
|
|
348
|
-
list: {
|
|
349
|
-
useQuery: (options?: {
|
|
350
|
-
limit?: number;
|
|
351
|
-
archived?: boolean;
|
|
352
|
-
query?: string;
|
|
353
|
-
}) => _tanstack_react_query.UseQueryResult<{
|
|
354
|
-
resources: _semiont_core.components["schemas"]["ResourceDescriptor"][];
|
|
355
|
-
total: number;
|
|
356
|
-
offset: number;
|
|
357
|
-
limit: number;
|
|
358
|
-
}, Error>;
|
|
359
|
-
};
|
|
360
|
-
get: {
|
|
361
|
-
useQuery: (id: ResourceId, options?: Omit<UseQueryOptions, "queryKey" | "queryFn">) => _tanstack_react_query.UseQueryResult<unknown, Error>;
|
|
362
|
-
};
|
|
363
|
-
events: {
|
|
364
|
-
useQuery: (id: ResourceId) => _tanstack_react_query.UseQueryResult<{
|
|
365
|
-
events: _semiont_core.components["schemas"]["StoredEventResponse"][];
|
|
366
|
-
total: number;
|
|
367
|
-
resourceId: string;
|
|
368
|
-
}, Error>;
|
|
369
|
-
};
|
|
370
|
-
annotations: {
|
|
371
|
-
useQuery: (id: ResourceId) => _tanstack_react_query.UseQueryResult<{
|
|
372
|
-
resource: _semiont_core.components["schemas"]["ResourceDescriptor"];
|
|
373
|
-
annotations: _semiont_core.components["schemas"]["Annotation"][];
|
|
374
|
-
}, Error>;
|
|
375
|
-
};
|
|
376
|
-
referencedBy: {
|
|
377
|
-
useQuery: (id: ResourceId) => _tanstack_react_query.UseQueryResult<{
|
|
378
|
-
referencedBy: {
|
|
379
|
-
id: string;
|
|
380
|
-
resourceName: string;
|
|
381
|
-
target: {
|
|
382
|
-
source: string;
|
|
383
|
-
selector: {
|
|
384
|
-
exact: string;
|
|
385
|
-
};
|
|
386
|
-
};
|
|
387
|
-
}[];
|
|
388
|
-
}, Error>;
|
|
389
|
-
};
|
|
390
|
-
representation: {
|
|
391
|
-
useQuery: (id: ResourceId, mediaType: string) => _tanstack_react_query.UseQueryResult<string, Error>;
|
|
392
|
-
};
|
|
393
|
-
mediaToken: {
|
|
394
|
-
useQuery: (id: ResourceId) => _tanstack_react_query.UseQueryResult<{
|
|
395
|
-
token: string;
|
|
396
|
-
}, Error>;
|
|
397
|
-
};
|
|
398
|
-
create: {
|
|
399
|
-
useMutation: () => _tanstack_react_query.UseMutationResult<{
|
|
400
|
-
resourceId: string;
|
|
401
|
-
}, Error, {
|
|
402
|
-
name: string;
|
|
403
|
-
file: File | Buffer;
|
|
404
|
-
format: string;
|
|
405
|
-
entityTypes?: string[];
|
|
406
|
-
language?: string;
|
|
407
|
-
creationMethod?: string;
|
|
408
|
-
sourceAnnotationId?: string;
|
|
409
|
-
sourceResourceId?: string;
|
|
410
|
-
storageUri: string;
|
|
411
|
-
}, unknown>;
|
|
412
|
-
};
|
|
413
|
-
update: {
|
|
414
|
-
useMutation: () => _tanstack_react_query.UseMutationResult<void, Error, {
|
|
415
|
-
id: ResourceId;
|
|
416
|
-
data: Parameters<SemiontApiClient["updateResource"]>[1];
|
|
417
|
-
}, unknown>;
|
|
418
|
-
};
|
|
419
|
-
generateCloneToken: {
|
|
420
|
-
useMutation: () => _tanstack_react_query.UseMutationResult<{
|
|
421
|
-
token: string;
|
|
422
|
-
expiresAt: string;
|
|
423
|
-
resource: _semiont_core.components["schemas"]["ResourceDescriptor"];
|
|
424
|
-
}, Error, ResourceId, unknown>;
|
|
425
|
-
};
|
|
426
|
-
getByToken: {
|
|
427
|
-
useQuery: (cloneTokenStr: string) => _tanstack_react_query.UseQueryResult<{
|
|
428
|
-
sourceResource: _semiont_core.components["schemas"]["ResourceDescriptor"];
|
|
429
|
-
expiresAt: string;
|
|
430
|
-
}, Error>;
|
|
431
|
-
};
|
|
432
|
-
createFromToken: {
|
|
433
|
-
useMutation: () => _tanstack_react_query.UseMutationResult<{
|
|
434
|
-
resourceId: string;
|
|
435
|
-
}, Error, {
|
|
436
|
-
token: string;
|
|
437
|
-
name: string;
|
|
438
|
-
content: string;
|
|
439
|
-
archiveOriginal?: boolean;
|
|
440
|
-
}, unknown>;
|
|
441
|
-
};
|
|
442
|
-
};
|
|
443
|
-
/**
|
|
444
|
-
* Annotation operations
|
|
445
|
-
*/
|
|
446
|
-
declare function useAnnotations(): {
|
|
447
|
-
get: {
|
|
448
|
-
useQuery: (id: AnnotationId) => _tanstack_react_query.UseQueryResult<never, Error>;
|
|
449
|
-
};
|
|
450
|
-
browseAnnotation: {
|
|
451
|
-
useQuery: (resourceId: ResourceId, annotationId: AnnotationId) => _tanstack_react_query.UseQueryResult<{
|
|
452
|
-
annotation: _semiont_core.components["schemas"]["Annotation"];
|
|
453
|
-
resource: _semiont_core.components["schemas"]["ResourceDescriptor"] | null;
|
|
454
|
-
resolvedResource: _semiont_core.components["schemas"]["ResourceDescriptor"] | null;
|
|
455
|
-
}, Error>;
|
|
456
|
-
};
|
|
457
|
-
history: {
|
|
458
|
-
useQuery: (resourceId: ResourceId, annotationId: AnnotationId) => _tanstack_react_query.UseQueryResult<{
|
|
459
|
-
events: _semiont_core.components["schemas"]["StoredEventResponse"][];
|
|
460
|
-
total: number;
|
|
461
|
-
annotationId: string;
|
|
462
|
-
resourceId: string;
|
|
463
|
-
}, Error>;
|
|
464
|
-
};
|
|
465
|
-
create: {
|
|
466
|
-
useMutation: () => _tanstack_react_query.UseMutationResult<{
|
|
467
|
-
annotationId: string;
|
|
468
|
-
}, Error, {
|
|
469
|
-
resourceId: ResourceId;
|
|
470
|
-
data: Parameters<SemiontApiClient["markAnnotation"]>[1];
|
|
471
|
-
}, unknown>;
|
|
472
|
-
};
|
|
473
|
-
delete: {
|
|
474
|
-
useMutation: () => _tanstack_react_query.UseMutationResult<void, Error, {
|
|
475
|
-
resourceId: ResourceId;
|
|
476
|
-
annotationId: AnnotationId;
|
|
477
|
-
}, unknown>;
|
|
478
|
-
};
|
|
479
|
-
updateBody: {
|
|
480
|
-
useMutation: () => _tanstack_react_query.UseMutationResult<{
|
|
481
|
-
correlationId: string;
|
|
482
|
-
}, Error, {
|
|
483
|
-
resourceId: ResourceId;
|
|
484
|
-
annotationId: AnnotationId;
|
|
485
|
-
data: Parameters<SemiontApiClient["bindAnnotation"]>[2];
|
|
486
|
-
}, unknown>;
|
|
487
|
-
};
|
|
488
|
-
};
|
|
489
|
-
/**
|
|
490
|
-
* Entity type operations
|
|
491
|
-
*/
|
|
492
|
-
declare function useEntityTypes(): {
|
|
493
|
-
list: {
|
|
494
|
-
useQuery: (options?: Omit<UseQueryOptions<{
|
|
495
|
-
entityTypes: string[];
|
|
496
|
-
}>, "queryKey" | "queryFn">) => _tanstack_react_query.UseQueryResult<{
|
|
497
|
-
entityTypes: string[];
|
|
498
|
-
}, Error>;
|
|
499
|
-
};
|
|
500
|
-
add: {
|
|
501
|
-
useMutation: () => _tanstack_react_query.UseMutationResult<void, Error, string, unknown>;
|
|
502
|
-
};
|
|
503
|
-
addBulk: {
|
|
504
|
-
useMutation: () => _tanstack_react_query.UseMutationResult<void, Error, string[], unknown>;
|
|
505
|
-
};
|
|
506
|
-
};
|
|
507
|
-
/**
|
|
508
|
-
* Admin operations
|
|
509
|
-
*/
|
|
510
|
-
declare function useAdmin(): {
|
|
511
|
-
users: {
|
|
512
|
-
list: {
|
|
513
|
-
useQuery: () => _tanstack_react_query.UseQueryResult<{
|
|
514
|
-
success: boolean;
|
|
515
|
-
users: {
|
|
516
|
-
id: string;
|
|
517
|
-
email: string;
|
|
518
|
-
name: string | null;
|
|
519
|
-
image: string | null;
|
|
520
|
-
domain: string;
|
|
521
|
-
provider: string;
|
|
522
|
-
isAdmin: boolean;
|
|
523
|
-
isActive: boolean;
|
|
524
|
-
lastLogin: string | null;
|
|
525
|
-
created: string;
|
|
526
|
-
updatedAt: string;
|
|
527
|
-
}[];
|
|
528
|
-
}, Error>;
|
|
529
|
-
};
|
|
530
|
-
stats: {
|
|
531
|
-
useQuery: () => _tanstack_react_query.UseQueryResult<{
|
|
532
|
-
success: boolean;
|
|
533
|
-
stats: {
|
|
534
|
-
totalUsers: number;
|
|
535
|
-
activeUsers: number;
|
|
536
|
-
adminUsers: number;
|
|
537
|
-
regularUsers: number;
|
|
538
|
-
domainBreakdown: {
|
|
539
|
-
domain: string;
|
|
540
|
-
count: number;
|
|
541
|
-
}[];
|
|
542
|
-
recentSignups: {
|
|
543
|
-
id: string;
|
|
544
|
-
email: string;
|
|
545
|
-
name: string | null;
|
|
546
|
-
created: string;
|
|
547
|
-
}[];
|
|
548
|
-
};
|
|
549
|
-
}, Error>;
|
|
550
|
-
};
|
|
551
|
-
update: {
|
|
552
|
-
useMutation: () => _tanstack_react_query.UseMutationResult<{
|
|
553
|
-
success: boolean;
|
|
554
|
-
user: {
|
|
555
|
-
id: string;
|
|
556
|
-
email: string;
|
|
557
|
-
name: string | null;
|
|
558
|
-
image: string | null;
|
|
559
|
-
domain: string;
|
|
560
|
-
provider: string;
|
|
561
|
-
isAdmin: boolean;
|
|
562
|
-
isActive: boolean;
|
|
563
|
-
lastLogin: string | null;
|
|
564
|
-
created: string;
|
|
565
|
-
updatedAt: string;
|
|
566
|
-
};
|
|
567
|
-
}, Error, {
|
|
568
|
-
id: string;
|
|
569
|
-
data: Parameters<SemiontApiClient["updateUser"]>[1];
|
|
570
|
-
}, unknown>;
|
|
571
|
-
};
|
|
572
|
-
};
|
|
573
|
-
oauth: {
|
|
574
|
-
config: {
|
|
575
|
-
useQuery: () => _tanstack_react_query.UseQueryResult<{
|
|
576
|
-
providers: {
|
|
577
|
-
name: string;
|
|
578
|
-
isConfigured: boolean;
|
|
579
|
-
clientId: string;
|
|
580
|
-
}[];
|
|
581
|
-
allowedDomains: string[];
|
|
582
|
-
}, Error>;
|
|
583
|
-
};
|
|
584
|
-
};
|
|
585
|
-
exchange: {
|
|
586
|
-
backup: {
|
|
587
|
-
useMutation: () => _tanstack_react_query.UseMutationResult<{
|
|
588
|
-
filename: string;
|
|
589
|
-
size: number;
|
|
590
|
-
}, Error, void, unknown>;
|
|
591
|
-
};
|
|
592
|
-
restore: {
|
|
593
|
-
useMutation: () => _tanstack_react_query.UseMutationResult<{
|
|
594
|
-
phase: string;
|
|
595
|
-
message?: string;
|
|
596
|
-
result?: Record<string, unknown>;
|
|
597
|
-
}, Error, {
|
|
598
|
-
file: File;
|
|
599
|
-
onProgress?: (event: {
|
|
600
|
-
phase: string;
|
|
601
|
-
message?: string;
|
|
602
|
-
result?: Record<string, unknown>;
|
|
603
|
-
}) => void;
|
|
604
|
-
}, unknown>;
|
|
605
|
-
};
|
|
606
|
-
};
|
|
607
|
-
};
|
|
608
|
-
/**
|
|
609
|
-
* Moderation operations (moderator or admin role required)
|
|
610
|
-
*/
|
|
611
|
-
declare function useModeration(): {
|
|
612
|
-
exchange: {
|
|
613
|
-
export: {
|
|
614
|
-
useMutation: () => _tanstack_react_query.UseMutationResult<{
|
|
615
|
-
filename: string;
|
|
616
|
-
size: number;
|
|
617
|
-
}, Error, {
|
|
618
|
-
includeArchived?: boolean;
|
|
619
|
-
} | undefined, unknown>;
|
|
620
|
-
};
|
|
621
|
-
import: {
|
|
622
|
-
useMutation: () => _tanstack_react_query.UseMutationResult<{
|
|
623
|
-
phase: string;
|
|
624
|
-
message?: string;
|
|
625
|
-
result?: Record<string, unknown>;
|
|
626
|
-
}, Error, {
|
|
627
|
-
file: File;
|
|
628
|
-
onProgress?: (event: {
|
|
629
|
-
phase: string;
|
|
630
|
-
message?: string;
|
|
631
|
-
result?: Record<string, unknown>;
|
|
632
|
-
}) => void;
|
|
633
|
-
}, unknown>;
|
|
634
|
-
};
|
|
635
|
-
};
|
|
636
|
-
};
|
|
637
|
-
/**
|
|
638
|
-
* Authentication and user operations via API
|
|
639
|
-
*/
|
|
640
|
-
declare function useAuthApi(): {
|
|
641
|
-
me: {
|
|
642
|
-
useQuery: () => _tanstack_react_query.UseQueryResult<{
|
|
643
|
-
id: string;
|
|
644
|
-
email: string;
|
|
645
|
-
name: string | null;
|
|
646
|
-
image: string | null;
|
|
647
|
-
domain: string;
|
|
648
|
-
provider: string;
|
|
649
|
-
isAdmin: boolean;
|
|
650
|
-
isModerator: boolean;
|
|
651
|
-
isActive: boolean;
|
|
652
|
-
termsAcceptedAt: string | null;
|
|
653
|
-
lastLogin: string | null;
|
|
654
|
-
created: string;
|
|
655
|
-
token: string;
|
|
656
|
-
}, Error>;
|
|
657
|
-
};
|
|
658
|
-
acceptTerms: {
|
|
659
|
-
useMutation: () => _tanstack_react_query.UseMutationResult<{
|
|
660
|
-
success: boolean;
|
|
661
|
-
message: string;
|
|
662
|
-
}, Error, void, unknown>;
|
|
663
|
-
};
|
|
664
|
-
generateMCPToken: {
|
|
665
|
-
useMutation: () => _tanstack_react_query.UseMutationResult<{
|
|
666
|
-
refresh_token: string;
|
|
667
|
-
}, Error, void, unknown>;
|
|
668
|
-
};
|
|
669
|
-
logout: {
|
|
670
|
-
useMutation: () => _tanstack_react_query.UseMutationResult<{
|
|
671
|
-
success: boolean;
|
|
672
|
-
message: string;
|
|
673
|
-
}, Error, void, unknown>;
|
|
674
|
-
};
|
|
675
|
-
};
|
|
676
|
-
/**
|
|
677
|
-
* Health check and system status
|
|
678
|
-
*/
|
|
679
|
-
declare function useHealth(): {
|
|
680
|
-
check: {
|
|
681
|
-
useQuery: () => _tanstack_react_query.UseQueryResult<{
|
|
682
|
-
status: string;
|
|
683
|
-
message: string;
|
|
684
|
-
version: string;
|
|
685
|
-
timestamp: string;
|
|
686
|
-
database: "connected" | "disconnected" | "unknown";
|
|
687
|
-
environment: string;
|
|
688
|
-
}, Error>;
|
|
689
|
-
};
|
|
690
|
-
status: {
|
|
691
|
-
useQuery: (refetchInterval?: number) => _tanstack_react_query.UseQueryResult<{
|
|
692
|
-
status: string;
|
|
693
|
-
version: string;
|
|
694
|
-
features: {
|
|
695
|
-
semanticContent: string;
|
|
696
|
-
collaboration: string;
|
|
697
|
-
rbac: string;
|
|
698
|
-
};
|
|
699
|
-
message: string;
|
|
700
|
-
authenticatedAs?: string;
|
|
701
|
-
projectName?: string;
|
|
702
|
-
gitBranch?: string;
|
|
703
|
-
}, Error>;
|
|
704
|
-
};
|
|
705
|
-
};
|
|
706
|
-
|
|
707
282
|
/**
|
|
708
283
|
* Centralized button styles matching Figma design
|
|
709
284
|
* Two primary styles from authenticated home page:
|
|
@@ -848,90 +423,6 @@ declare function getSelectedShapeForSelectorType(selectorType: SelectorType): Sh
|
|
|
848
423
|
*/
|
|
849
424
|
declare function saveSelectedShapeForSelectorType(selectorType: SelectorType, shape: ShapeType): void;
|
|
850
425
|
|
|
851
|
-
/**
|
|
852
|
-
* Centralized query keys for React Query
|
|
853
|
-
* Following TanStack Query best practices for type-safe cache invalidation
|
|
854
|
-
* @see https://tanstack.com/query/latest/docs/framework/react/guides/query-keys
|
|
855
|
-
*
|
|
856
|
-
* Keys use semantic names (not URL paths) and are properly typed with 'as const'
|
|
857
|
-
*/
|
|
858
|
-
|
|
859
|
-
declare const QUERY_KEYS: {
|
|
860
|
-
users: {
|
|
861
|
-
me: () => readonly ["users", "me"];
|
|
862
|
-
};
|
|
863
|
-
health: () => readonly ["health"];
|
|
864
|
-
status: () => readonly ["status"];
|
|
865
|
-
resources: {
|
|
866
|
-
all: (limit?: number, archived?: boolean) => readonly ["resources", {
|
|
867
|
-
readonly limit: number | undefined;
|
|
868
|
-
readonly archived: boolean | undefined;
|
|
869
|
-
}];
|
|
870
|
-
detail: (id: ResourceId) => readonly ["resources", ResourceId];
|
|
871
|
-
byToken: (token: string) => readonly ["resources", "by-token", string];
|
|
872
|
-
events: (id: ResourceId) => readonly ["resources", ResourceId, "events"];
|
|
873
|
-
annotations: (id: ResourceId) => readonly ["resources", ResourceId, "annotations"];
|
|
874
|
-
referencedBy: (id: ResourceId) => readonly ["resources", ResourceId, "referenced-by"];
|
|
875
|
-
representation: (id: ResourceId) => readonly ["resources", ResourceId, "representation"];
|
|
876
|
-
mediaToken: (id: ResourceId) => readonly ["resources", ResourceId, "media-token"];
|
|
877
|
-
};
|
|
878
|
-
annotations: {
|
|
879
|
-
detail: (id: AnnotationId) => readonly ["annotations", AnnotationId];
|
|
880
|
-
history: (resourceId: ResourceId, annotationId: AnnotationId) => readonly ["annotations", ResourceId, AnnotationId, "history"];
|
|
881
|
-
};
|
|
882
|
-
entityTypes: {
|
|
883
|
-
all: () => readonly ["entity-types"];
|
|
884
|
-
};
|
|
885
|
-
admin: {
|
|
886
|
-
users: {
|
|
887
|
-
all: () => readonly ["admin", "users"];
|
|
888
|
-
stats: () => readonly ["admin", "users", "stats"];
|
|
889
|
-
};
|
|
890
|
-
oauth: {
|
|
891
|
-
config: () => readonly ["admin", "oauth", "config"];
|
|
892
|
-
};
|
|
893
|
-
};
|
|
894
|
-
};
|
|
895
|
-
|
|
896
|
-
/**
|
|
897
|
-
* createSearchPipeline
|
|
898
|
-
*
|
|
899
|
-
* A debounced-search RxJS pipeline factory. Combines an input Subject with a
|
|
900
|
-
* downstream fetch function and emits typed `{ results, isSearching }` state.
|
|
901
|
-
*
|
|
902
|
-
* Designed to be created once per component instance via React's
|
|
903
|
-
* `useState(() => createSearchPipeline(...))` lazy initializer, then consumed
|
|
904
|
-
* via `useObservable(pipeline.state$)`. The pipeline holds no React state and
|
|
905
|
-
* has no React imports — it's pure RxJS, unit-testable without a renderer.
|
|
906
|
-
*
|
|
907
|
-
* The fetch function is expected to return `Observable<T[] | undefined>`,
|
|
908
|
-
* matching the cache-miss-then-data shape of `BrowseNamespace` Observables:
|
|
909
|
-
* `undefined` means "fetch in flight, no value yet"; an array means "data
|
|
910
|
-
* available (possibly empty)".
|
|
911
|
-
*/
|
|
912
|
-
|
|
913
|
-
interface SearchState<T> {
|
|
914
|
-
results: T[];
|
|
915
|
-
isSearching: boolean;
|
|
916
|
-
}
|
|
917
|
-
interface SearchPipeline<T> {
|
|
918
|
-
/** Latest query string. Bind to a controlled input via `useObservable`. */
|
|
919
|
-
query$: Observable<string>;
|
|
920
|
-
/** Latest search state — results plus a loading flag. */
|
|
921
|
-
state$: Observable<SearchState<T>>;
|
|
922
|
-
/** Push a new query value. Triggers the debounced fetch. */
|
|
923
|
-
setQuery(value: string): void;
|
|
924
|
-
/** Tear down the input Subject. Call from `useEffect` cleanup. */
|
|
925
|
-
dispose(): void;
|
|
926
|
-
}
|
|
927
|
-
interface SearchPipelineOptions {
|
|
928
|
-
/** Milliseconds to wait after the last keystroke before fetching. Default 250. */
|
|
929
|
-
debounceMs?: number;
|
|
930
|
-
/** Initial query value. Useful for modals that open with a pre-filled term. */
|
|
931
|
-
initialQuery?: string;
|
|
932
|
-
}
|
|
933
|
-
declare function createSearchPipeline<T>(fetch: (query: string) => Observable<T[] | undefined>, options?: SearchPipelineOptions): SearchPipeline<T>;
|
|
934
|
-
|
|
935
426
|
/**
|
|
936
427
|
* Annotation overlay: decouples annotation highlighting from markdown rendering.
|
|
937
428
|
*
|
|
@@ -1072,6 +563,8 @@ declare const OAuthUserSchema: {
|
|
|
1072
563
|
*/
|
|
1073
564
|
declare function sanitizeImageURL(url: string): string | null;
|
|
1074
565
|
|
|
566
|
+
declare function useViewModel<VM extends ViewModel>(factory: () => VM): VM;
|
|
567
|
+
|
|
1075
568
|
/**
|
|
1076
569
|
* Creates a debounced version of a callback function
|
|
1077
570
|
*
|
|
@@ -1163,7 +656,7 @@ interface Router {
|
|
|
1163
656
|
* Use this to wrap your router (Next.js, React Router, etc.) when you want
|
|
1164
657
|
* navigation actions to be observable through the NavigationEventBus.
|
|
1165
658
|
*
|
|
1166
|
-
* @emits
|
|
659
|
+
* @emits nav:push - Router navigation requested. Payload: { path: string, reason?: string }
|
|
1167
660
|
*
|
|
1168
661
|
* @example
|
|
1169
662
|
* ```typescript
|
|
@@ -1185,13 +678,13 @@ declare function useObservableRouter<T extends Router>(baseRouter: T): T;
|
|
|
1185
678
|
* Request navigation with event emission
|
|
1186
679
|
*
|
|
1187
680
|
* This hook emits a navigation request event. The app must subscribe to
|
|
1188
|
-
* '
|
|
681
|
+
* 'nav:external' and perform the actual navigation using
|
|
1189
682
|
* its router (Next.js, React Router, etc.) to enable client-side routing.
|
|
1190
683
|
*
|
|
1191
684
|
* If no subscriber handles the event, falls back to window.location.href
|
|
1192
685
|
* after a brief delay to allow for event handling.
|
|
1193
686
|
*
|
|
1194
|
-
* @emits
|
|
687
|
+
* @emits nav:external - External navigation requested. Payload: { url: string, resourceId?: string, cancelFallback: () => void }
|
|
1195
688
|
*
|
|
1196
689
|
* The payload includes a `cancelFallback` function that subscribers must call to
|
|
1197
690
|
* prevent the window.location fallback from firing. Subscribers that handle the
|
|
@@ -1206,7 +699,7 @@ declare function useObservableRouter<T extends Router>(baseRouter: T): T;
|
|
|
1206
699
|
* // In app (frontend package) - subscribe, cancel fallback, and handle with Next.js router
|
|
1207
700
|
* const router = useRouter();
|
|
1208
701
|
* useEventSubscriptions({
|
|
1209
|
-
* '
|
|
702
|
+
* 'nav:external': ({ url, cancelFallback }) => {
|
|
1210
703
|
* cancelFallback(); // Prevent window.location fallback
|
|
1211
704
|
* router.push(url); // Client-side navigation
|
|
1212
705
|
* },
|
|
@@ -1253,84 +746,6 @@ storageKey }?: UsePanelWidthOptions): {
|
|
|
1253
746
|
maxWidth: number;
|
|
1254
747
|
};
|
|
1255
748
|
|
|
1256
|
-
/**
|
|
1257
|
-
* Stream connection status
|
|
1258
|
-
*/
|
|
1259
|
-
type StreamStatus = 'disconnected' | 'connecting' | 'connected' | 'error';
|
|
1260
|
-
interface UseResourceEventsOptions {
|
|
1261
|
-
rUri: ResourceId;
|
|
1262
|
-
onEvent?: (event: PersistedEvent) => void;
|
|
1263
|
-
onAnnotationAdded?: (event: Extract<PersistedEvent, {
|
|
1264
|
-
type: 'mark:added';
|
|
1265
|
-
}>) => void;
|
|
1266
|
-
onAnnotationRemoved?: (event: Extract<PersistedEvent, {
|
|
1267
|
-
type: 'mark:removed';
|
|
1268
|
-
}>) => void;
|
|
1269
|
-
onAnnotationBodyUpdated?: (event: Extract<PersistedEvent, {
|
|
1270
|
-
type: 'mark:body-updated';
|
|
1271
|
-
}>) => void;
|
|
1272
|
-
onEntityTagAdded?: (event: Extract<PersistedEvent, {
|
|
1273
|
-
type: 'mark:entity-tag-added';
|
|
1274
|
-
}>) => void;
|
|
1275
|
-
onEntityTagRemoved?: (event: Extract<PersistedEvent, {
|
|
1276
|
-
type: 'mark:entity-tag-removed';
|
|
1277
|
-
}>) => void;
|
|
1278
|
-
onDocumentArchived?: (event: Extract<PersistedEvent, {
|
|
1279
|
-
type: 'mark:archived';
|
|
1280
|
-
}>) => void;
|
|
1281
|
-
onDocumentUnarchived?: (event: Extract<PersistedEvent, {
|
|
1282
|
-
type: 'mark:unarchived';
|
|
1283
|
-
}>) => void;
|
|
1284
|
-
onError?: (error: string) => void;
|
|
1285
|
-
autoConnect?: boolean;
|
|
1286
|
-
}
|
|
1287
|
-
/**
|
|
1288
|
-
* React hook for subscribing to real-time document events via SSE
|
|
1289
|
-
*
|
|
1290
|
-
* Opens a long-lived SSE connection to receive events as they happen.
|
|
1291
|
-
*
|
|
1292
|
-
* @example
|
|
1293
|
-
* ```tsx
|
|
1294
|
-
* const { status, connect, disconnect } = useResourceEvents({
|
|
1295
|
-
* rUri: resourceUri('http://localhost:4000/resources/doc-123'),
|
|
1296
|
-
* onAnnotationAdded: (event) => {
|
|
1297
|
-
* console.log('New annotation:', event.payload);
|
|
1298
|
-
* },
|
|
1299
|
-
* });
|
|
1300
|
-
* ```
|
|
1301
|
-
*/
|
|
1302
|
-
declare function useResourceEvents({ rUri, onEvent, onAnnotationAdded, onAnnotationRemoved, onAnnotationBodyUpdated, onEntityTagAdded, onEntityTagRemoved, onDocumentArchived, onDocumentUnarchived, onError, autoConnect, }: UseResourceEventsOptions): {
|
|
1303
|
-
status: StreamStatus;
|
|
1304
|
-
lastEvent: PersistedEvent | null;
|
|
1305
|
-
eventCount: number;
|
|
1306
|
-
connect: () => void;
|
|
1307
|
-
disconnect: () => void;
|
|
1308
|
-
isConnected: boolean;
|
|
1309
|
-
};
|
|
1310
|
-
|
|
1311
|
-
/**
|
|
1312
|
-
* React hook for subscribing to global system-level events via SSE
|
|
1313
|
-
*
|
|
1314
|
-
* Opens a long-lived SSE connection to GET /api/events/stream to receive
|
|
1315
|
-
* domain events that are not scoped to a specific resource (e.g., entity type changes).
|
|
1316
|
-
*
|
|
1317
|
-
* Automatically invalidates relevant React Query caches when system events arrive.
|
|
1318
|
-
*
|
|
1319
|
-
* @example
|
|
1320
|
-
* ```tsx
|
|
1321
|
-
* // In your app layout:
|
|
1322
|
-
* useGlobalEvents(); // That's it — auto-connects and invalidates queries
|
|
1323
|
-
* ```
|
|
1324
|
-
*/
|
|
1325
|
-
declare function useGlobalEvents({ autoConnect }?: {
|
|
1326
|
-
autoConnect?: boolean;
|
|
1327
|
-
}): {
|
|
1328
|
-
status: StreamStatus;
|
|
1329
|
-
connect: () => Promise<void>;
|
|
1330
|
-
disconnect: () => void;
|
|
1331
|
-
isConnected: boolean;
|
|
1332
|
-
};
|
|
1333
|
-
|
|
1334
749
|
interface UseRovingTabIndexOptions {
|
|
1335
750
|
orientation?: 'horizontal' | 'vertical' | 'grid';
|
|
1336
751
|
loop?: boolean;
|
|
@@ -1344,8 +759,8 @@ declare function useRovingTabIndex<T extends HTMLElement>(itemCount: number, opt
|
|
|
1344
759
|
|
|
1345
760
|
/**
|
|
1346
761
|
* Tracks the time remaining on the active KB session's JWT and whether it's
|
|
1347
|
-
* expiring soon (< 5 minutes).
|
|
1348
|
-
*
|
|
762
|
+
* expiring soon (< 5 minutes). Reads the session's `expiresAt` getter (which
|
|
763
|
+
* derives from the current `token$` value) and re-derives once per second.
|
|
1349
764
|
*/
|
|
1350
765
|
declare function useSessionExpiry(): {
|
|
1351
766
|
timeRemaining: number | null;
|
|
@@ -1394,14 +809,34 @@ interface UseResourceContentResult {
|
|
|
1394
809
|
content: string;
|
|
1395
810
|
loading: boolean;
|
|
1396
811
|
}
|
|
812
|
+
declare function useResourceContent(rUri: ResourceId, resource: SemiontResource$3, enabled?: boolean): UseResourceContentResult;
|
|
813
|
+
|
|
814
|
+
interface SemiontProviderProps {
|
|
815
|
+
/** Inject a specific browser (tests). Omit in production. */
|
|
816
|
+
browser?: SemiontBrowser;
|
|
817
|
+
children: ReactNode;
|
|
818
|
+
}
|
|
819
|
+
declare function SemiontProvider({ browser, children }: SemiontProviderProps): react_jsx_runtime.JSX.Element;
|
|
820
|
+
declare function useSemiont(): SemiontBrowser;
|
|
821
|
+
|
|
1397
822
|
/**
|
|
1398
|
-
*
|
|
823
|
+
* WebBrowserStorage — browser-backed `SessionStorage` implementation.
|
|
824
|
+
* Wraps `localStorage` for reads/writes and `window`'s `storage` event
|
|
825
|
+
* for cross-tab change notifications.
|
|
1399
826
|
*
|
|
1400
|
-
*
|
|
1401
|
-
*
|
|
1402
|
-
*
|
|
827
|
+
* Construction requires a browser context. The guard matches the
|
|
828
|
+
* existing registry behavior: server rendering that accidentally
|
|
829
|
+
* instantiates this gets a loud error rather than a silent no-op
|
|
830
|
+
* that would mask token leaks.
|
|
1403
831
|
*/
|
|
1404
|
-
|
|
832
|
+
|
|
833
|
+
declare class WebBrowserStorage implements SessionStorage {
|
|
834
|
+
constructor();
|
|
835
|
+
get(key: string): string | null;
|
|
836
|
+
set(key: string, value: string): void;
|
|
837
|
+
delete(key: string): void;
|
|
838
|
+
subscribe(handler: (key: string, newValue: string | null) => void): () => void;
|
|
839
|
+
}
|
|
1405
840
|
|
|
1406
841
|
interface AnnotationProviderProps {
|
|
1407
842
|
annotationManager: AnnotationManager;
|
|
@@ -1415,23 +850,18 @@ interface AnnotationProviderProps {
|
|
|
1415
850
|
*
|
|
1416
851
|
* Example usage:
|
|
1417
852
|
* ```typescript
|
|
1418
|
-
*
|
|
1419
|
-
*
|
|
1420
|
-
* function useAnnotationManager(): AnnotationManager {
|
|
1421
|
-
* const annotations = useAnnotations();
|
|
1422
|
-
* const createMutation = annotations.create.useMutation();
|
|
1423
|
-
* const deleteMutation = annotations.delete.useMutation();
|
|
1424
|
-
*
|
|
853
|
+
* function useAnnotationManager(client: SemiontApiClient): AnnotationManager {
|
|
1425
854
|
* return {
|
|
1426
855
|
* markAnnotation: async (params) => {
|
|
1427
|
-
* const result = await
|
|
1428
|
-
*
|
|
1429
|
-
*
|
|
856
|
+
* const result = await client.markAnnotation(params.rUri, {
|
|
857
|
+
* motivation: params.motivation,
|
|
858
|
+
* target: { source: params.rUri, selector: params.selector },
|
|
859
|
+
* body: params.body,
|
|
1430
860
|
* });
|
|
1431
861
|
* return result.annotation;
|
|
1432
862
|
* },
|
|
1433
863
|
* deleteAnnotation: async (params) => {
|
|
1434
|
-
* await
|
|
864
|
+
* await client.deleteAnnotation(params.rUri, params.annotationId);
|
|
1435
865
|
* }
|
|
1436
866
|
* };
|
|
1437
867
|
* }
|
|
@@ -1452,158 +882,39 @@ declare function AnnotationProvider({ annotationManager, children }: AnnotationP
|
|
|
1452
882
|
*/
|
|
1453
883
|
declare function useAnnotationManager(): AnnotationManager;
|
|
1454
884
|
|
|
1455
|
-
interface ApiClientProviderProps {
|
|
1456
|
-
baseUrl: string;
|
|
1457
|
-
/**
|
|
1458
|
-
* Optional 401-recovery hook. If provided, the api-client will retry
|
|
1459
|
-
* requests once with a fresh token when a 401 is encountered. The
|
|
1460
|
-
* frontend's protected layouts pass `useKnowledgeBaseSession().refreshActive`
|
|
1461
|
-
* here so the api-client can transparently recover from expired access tokens.
|
|
1462
|
-
*/
|
|
1463
|
-
tokenRefresher?: TokenRefresher;
|
|
1464
|
-
children: ReactNode;
|
|
1465
|
-
}
|
|
1466
885
|
/**
|
|
1467
|
-
*
|
|
1468
|
-
* The client is re-created when the baseUrl changes (workspace switch).
|
|
1469
|
-
* The EventBus is taken from EventBusContext so client and UI components
|
|
1470
|
-
* share the same workspace-scoped bus.
|
|
1471
|
-
*/
|
|
1472
|
-
declare function ApiClientProvider({ baseUrl: url, tokenRefresher, children, }: ApiClientProviderProps): react_jsx_runtime.JSX.Element;
|
|
1473
|
-
/**
|
|
1474
|
-
* Hook to access the stateless API client singleton
|
|
1475
|
-
* Must be used within an ApiClientProvider
|
|
1476
|
-
* @returns Stateless SemiontApiClient instance
|
|
1477
|
-
*/
|
|
1478
|
-
declare function useApiClient(): SemiontApiClient;
|
|
1479
|
-
|
|
1480
|
-
interface AuthTokenProviderProps {
|
|
1481
|
-
token: string | null;
|
|
1482
|
-
children: ReactNode;
|
|
1483
|
-
}
|
|
1484
|
-
/**
|
|
1485
|
-
* Provider for auth token
|
|
1486
|
-
* Pass the current token value - React handles the rest
|
|
1487
|
-
*/
|
|
1488
|
-
declare function AuthTokenProvider({ token, children, }: AuthTokenProviderProps): react_jsx_runtime.JSX.Element;
|
|
1489
|
-
/**
|
|
1490
|
-
* Hook to get current auth token
|
|
1491
|
-
*
|
|
1492
|
-
* Returns the current token value from context.
|
|
1493
|
-
* Re-renders automatically when token changes (normal React behavior).
|
|
1494
|
-
*
|
|
1495
|
-
* @returns Current access token (null if not authenticated)
|
|
1496
|
-
* @throws Error if used outside AuthTokenProvider
|
|
1497
|
-
*/
|
|
1498
|
-
declare function useAuthToken(): string | null;
|
|
1499
|
-
|
|
1500
|
-
interface CacheProviderProps {
|
|
1501
|
-
cacheManager: CacheManager;
|
|
1502
|
-
children: React__default.ReactNode;
|
|
1503
|
-
}
|
|
1504
|
-
/**
|
|
1505
|
-
* Cache Provider
|
|
886
|
+
* Subscribe to a bus event with automatic cleanup.
|
|
1506
887
|
*
|
|
1507
|
-
*
|
|
1508
|
-
*
|
|
888
|
+
* Two buses exist: the app-scoped bus on `SemiontBrowser` (panel, shell,
|
|
889
|
+
* tabs, nav, settings — events that must work without a KB session) and
|
|
890
|
+
* the per-session bus on `SemiontApiClient` (mark, beckon, gather,
|
|
891
|
+
* match, bind, yield, browse — events tied to a live KB). This hook
|
|
892
|
+
* subscribes to BOTH so components don't need to know which scope a
|
|
893
|
+
* channel is on. Each channel only fires on one bus, so there's no
|
|
894
|
+
* double-delivery.
|
|
1509
895
|
*
|
|
1510
|
-
*
|
|
1511
|
-
*
|
|
1512
|
-
* // In app (apps/frontend/src/hooks/useCacheManager.ts)
|
|
1513
|
-
* function useCacheManager(): CacheManager {
|
|
1514
|
-
* const queryClient = useQueryClient();
|
|
1515
|
-
*
|
|
1516
|
-
* return {
|
|
1517
|
-
* invalidateAnnotations: (rUri) => {
|
|
1518
|
-
* queryClient.invalidateQueries({ queryKey: ['annotations', rUri] });
|
|
1519
|
-
* },
|
|
1520
|
-
* invalidateEvents: (rUri) => {
|
|
1521
|
-
* queryClient.invalidateQueries({ queryKey: ['documents', 'events', rUri] });
|
|
1522
|
-
* }
|
|
1523
|
-
* };
|
|
1524
|
-
* }
|
|
1525
|
-
*
|
|
1526
|
-
* // In app layout
|
|
1527
|
-
* const cacheManager = useCacheManager();
|
|
1528
|
-
* <CacheProvider cacheManager={cacheManager}>
|
|
1529
|
-
* <YourComponents />
|
|
1530
|
-
* </CacheProvider>
|
|
1531
|
-
* ```
|
|
1532
|
-
*/
|
|
1533
|
-
declare function CacheProvider({ cacheManager, children }: CacheProviderProps): react_jsx_runtime.JSX.Element;
|
|
1534
|
-
/**
|
|
1535
|
-
* Hook to access the CacheManager
|
|
1536
|
-
*
|
|
1537
|
-
* @throws Error if used outside CacheProvider
|
|
1538
|
-
* @returns CacheManager instance
|
|
1539
|
-
*/
|
|
1540
|
-
declare function useCacheManager(): CacheManager;
|
|
1541
|
-
|
|
1542
|
-
interface EventBusProviderProps {
|
|
1543
|
-
children: ReactNode;
|
|
1544
|
-
}
|
|
1545
|
-
/**
|
|
1546
|
-
* Unified event bus provider for all application events.
|
|
1547
|
-
*
|
|
1548
|
-
* Each provider mount creates a fresh EventBus instance. This means:
|
|
1549
|
-
* - Workspace switches (which remount via key prop) get isolated buses
|
|
1550
|
-
* - Tests get isolation naturally — no resetEventBusForTesting needed
|
|
1551
|
-
*
|
|
1552
|
-
* Operation handlers (API calls triggered by events) are set up separately via
|
|
1553
|
-
* the useBindFlow hook, which should be called at the resource page level.
|
|
1554
|
-
*/
|
|
1555
|
-
declare function EventBusProvider({ children }: EventBusProviderProps): react_jsx_runtime.JSX.Element;
|
|
1556
|
-
/**
|
|
1557
|
-
* Hook to access the unified event bus
|
|
1558
|
-
*
|
|
1559
|
-
* Use this everywhere instead of:
|
|
1560
|
-
* - useMakeMeaningEvents()
|
|
1561
|
-
* - useNavigationEvents()
|
|
1562
|
-
* - useGlobalSettingsEvents()
|
|
1563
|
-
*
|
|
1564
|
-
* @example
|
|
1565
|
-
* ```typescript
|
|
1566
|
-
* const eventBus = useEventBus();
|
|
1567
|
-
*
|
|
1568
|
-
* // Emit any event
|
|
1569
|
-
* eventBus.get('beckon:hover').next({ annotationId: '123' });
|
|
1570
|
-
* eventBus.get('browse:sidebar-toggle').next(undefined);
|
|
1571
|
-
* eventBus.get('settings:theme-changed').next({ theme: 'dark' });
|
|
1572
|
-
*
|
|
1573
|
-
* // Subscribe to any event
|
|
1574
|
-
* useEffect(() => {
|
|
1575
|
-
* const unsubscribe = eventBus.on('beckon:hover', ({ annotationId }) => {
|
|
1576
|
-
* console.log(annotationId);
|
|
1577
|
-
* });
|
|
1578
|
-
* return () => unsubscribe();
|
|
1579
|
-
* }, []);
|
|
1580
|
-
* ```
|
|
1581
|
-
*/
|
|
1582
|
-
declare function useEventBus(): EventBus;
|
|
1583
|
-
|
|
1584
|
-
/**
|
|
1585
|
-
* Subscribe to an event bus event with automatic cleanup.
|
|
1586
|
-
*
|
|
1587
|
-
* This hook solves the "stale closure" problem by always using the latest
|
|
1588
|
-
* version of the handler without re-subscribing.
|
|
896
|
+
* Stable-handler pattern: the ref-wrapped handler means `handler` itself
|
|
897
|
+
* can change on every render without causing a re-subscription.
|
|
1589
898
|
*
|
|
1590
899
|
* @example
|
|
1591
900
|
* ```tsx
|
|
1592
901
|
* useEventSubscription('mark:create-ok', ({ annotationId }) => {
|
|
1593
|
-
*
|
|
1594
|
-
* triggerSparkleAnimation(annotation.id);
|
|
902
|
+
* triggerSparkleAnimation(annotationId);
|
|
1595
903
|
* });
|
|
1596
904
|
* ```
|
|
1597
905
|
*/
|
|
1598
906
|
declare function useEventSubscription<K extends keyof EventMap>(eventName: K, handler: (payload: EventMap[K]) => void): void;
|
|
1599
907
|
/**
|
|
1600
|
-
* Subscribe to multiple events at once.
|
|
908
|
+
* Subscribe to multiple bus events at once. Same semantics as
|
|
909
|
+
* `useEventSubscription`, batched — each channel is subscribed on both
|
|
910
|
+
* the app bus (`SemiontBrowser`) and the session bus
|
|
911
|
+
* (`SemiontApiClient`, when a session is active).
|
|
1601
912
|
*
|
|
1602
913
|
* @example
|
|
1603
914
|
* ```tsx
|
|
1604
915
|
* useEventSubscriptions({
|
|
1605
916
|
* 'mark:create-ok': ({ annotationId }) => handleCreated(annotationId),
|
|
1606
|
-
* '
|
|
917
|
+
* 'panel:toggle': ({ panel }) => console.log('toggled', panel),
|
|
1607
918
|
* });
|
|
1608
919
|
* ```
|
|
1609
920
|
*/
|
|
@@ -1611,33 +922,6 @@ declare function useEventSubscriptions(subscriptions: {
|
|
|
1611
922
|
[K in keyof EventMap]?: (payload: EventMap[K]) => void;
|
|
1612
923
|
}): void;
|
|
1613
924
|
|
|
1614
|
-
/**
|
|
1615
|
-
* Provider Pattern: Accepts OpenResourcesManager implementation as prop
|
|
1616
|
-
* and makes it available to child components via Context.
|
|
1617
|
-
*
|
|
1618
|
-
* Apps provide their own implementation (localStorage, sessionStorage, database, etc.)
|
|
1619
|
-
* and pass it to this provider at the root level.
|
|
1620
|
-
*
|
|
1621
|
-
* @example
|
|
1622
|
-
* ```tsx
|
|
1623
|
-
* // In app root
|
|
1624
|
-
* const openResourcesManager = useOpenResourcesManager(); // App's implementation
|
|
1625
|
-
*
|
|
1626
|
-
* <OpenResourcesProvider openResourcesManager={openResourcesManager}>
|
|
1627
|
-
* <App />
|
|
1628
|
-
* </OpenResourcesProvider>
|
|
1629
|
-
* ```
|
|
1630
|
-
*/
|
|
1631
|
-
declare function OpenResourcesProvider({ openResourcesManager, children }: {
|
|
1632
|
-
openResourcesManager: OpenResourcesManager;
|
|
1633
|
-
children: React__default.ReactNode;
|
|
1634
|
-
}): react_jsx_runtime.JSX.Element;
|
|
1635
|
-
/**
|
|
1636
|
-
* Hook to access OpenResourcesManager from Context
|
|
1637
|
-
* Components use this hook to access open resources functionality
|
|
1638
|
-
*/
|
|
1639
|
-
declare function useOpenResources(): OpenResourcesManager;
|
|
1640
|
-
|
|
1641
925
|
interface ResourceAnnotationsContextType {
|
|
1642
926
|
newAnnotationIds: Set<string>;
|
|
1643
927
|
markAnnotation: (rUri: ResourceId, motivation: 'highlighting' | 'linking' | 'assessing' | 'commenting' | 'tagging', selector: Selector | Selector[], body?: any[]) => Promise<string | undefined>;
|
|
@@ -1707,41 +991,6 @@ interface RouteBuilder {
|
|
|
1707
991
|
admin?: () => string;
|
|
1708
992
|
}
|
|
1709
993
|
|
|
1710
|
-
/**
|
|
1711
|
-
* Pure helpers for the KnowledgeBaseSession provider.
|
|
1712
|
-
*
|
|
1713
|
-
* Contains:
|
|
1714
|
-
* - localStorage shape and read/write helpers for KB list, active KB id,
|
|
1715
|
-
* and per-KB sessions
|
|
1716
|
-
* - JWT expiry parsing and "is expired" check
|
|
1717
|
-
* - URL/protocol helpers for KB instances
|
|
1718
|
-
* - The public `getKbSessionStatus(kbId)` helper that the KB-list UI uses
|
|
1719
|
-
* to color status dots without subscribing to context changes
|
|
1720
|
-
*
|
|
1721
|
-
* No React imports, no module-scoped state, no side effects beyond
|
|
1722
|
-
* localStorage. Splitting these out of the provider file makes them
|
|
1723
|
-
* unit-testable in isolation and keeps the React provider focused on
|
|
1724
|
-
* lifecycle and state.
|
|
1725
|
-
*/
|
|
1726
|
-
|
|
1727
|
-
/** The shape persisted to localStorage per KB. */
|
|
1728
|
-
interface StoredSession {
|
|
1729
|
-
access: string;
|
|
1730
|
-
refresh: string;
|
|
1731
|
-
}
|
|
1732
|
-
declare function defaultProtocol(host: string): 'http' | 'https';
|
|
1733
|
-
declare function isValidHostname(host: string): boolean;
|
|
1734
|
-
declare function kbBackendUrl(kb: KnowledgeBase): string;
|
|
1735
|
-
/**
|
|
1736
|
-
* Read the locally-stored credential status for a KB. Pure / synchronous —
|
|
1737
|
-
* does not subscribe to context changes. Used by KB-list UI to color status
|
|
1738
|
-
* dots without requiring re-renders on every tick.
|
|
1739
|
-
*/
|
|
1740
|
-
declare function getKbSessionStatus(kbId: string): KbSessionStatus;
|
|
1741
|
-
|
|
1742
|
-
declare function notifySessionExpired(message?: string): void;
|
|
1743
|
-
declare function notifyPermissionDenied(message?: string): void;
|
|
1744
|
-
|
|
1745
994
|
declare const AVAILABLE_LOCALES: readonly ["ar", "bn", "cs", "da", "de", "el", "en", "es", "fa", "fi", "fr", "he", "hi", "id", "it", "ja", "ko", "ms", "nl", "no", "pl", "pt", "ro", "sv", "th", "tr", "uk", "vi", "zh"];
|
|
1746
995
|
type AvailableLocale = typeof AVAILABLE_LOCALES[number];
|
|
1747
996
|
interface TranslationProviderProps {
|
|
@@ -1821,16 +1070,17 @@ interface Props$b {
|
|
|
1821
1070
|
sourceView?: boolean;
|
|
1822
1071
|
showLineNumbers?: boolean;
|
|
1823
1072
|
enableWidgets?: boolean;
|
|
1824
|
-
|
|
1073
|
+
session?: SemiontSession | null | undefined;
|
|
1825
1074
|
getTargetResourceName?: (resourceId: string) => string | undefined;
|
|
1826
1075
|
generatingReferenceId?: string | null;
|
|
1827
1076
|
hoverDelayMs: number;
|
|
1828
1077
|
}
|
|
1829
|
-
declare function CodeMirrorRenderer({ content, segments, onChange, editable, newAnnotationIds, hoveredAnnotationId, scrollToAnnotationId, sourceView, showLineNumbers, enableWidgets,
|
|
1078
|
+
declare function CodeMirrorRenderer({ content, segments, onChange, editable, newAnnotationIds, hoveredAnnotationId, scrollToAnnotationId, sourceView, showLineNumbers, enableWidgets, session, getTargetResourceName, generatingReferenceId, hoverDelayMs }: Props$b): react_jsx_runtime.JSX.Element;
|
|
1830
1079
|
|
|
1831
1080
|
type Motivation$6 = components['schemas']['Motivation'];
|
|
1081
|
+
type JobProgress$7 = components['schemas']['JobProgress'];
|
|
1832
1082
|
interface AnnotateReferencesProgressWidgetProps {
|
|
1833
|
-
progress:
|
|
1083
|
+
progress: JobProgress$7 | null;
|
|
1834
1084
|
annotationType?: Motivation$6 | 'reference';
|
|
1835
1085
|
}
|
|
1836
1086
|
/**
|
|
@@ -2010,7 +1260,7 @@ interface Props$9<T extends string = string> {
|
|
|
2010
1260
|
/**
|
|
2011
1261
|
* Toolbar component for panel navigation
|
|
2012
1262
|
*
|
|
2013
|
-
* @emits
|
|
1263
|
+
* @emits panel:toggle - Toggle panel visibility. Payload: { panel: string }
|
|
2014
1264
|
*/
|
|
2015
1265
|
declare function Toolbar<T extends string = string>({ context, activePanel, isArchived }: Props$9<T>): react_jsx_runtime.JSX.Element;
|
|
2016
1266
|
|
|
@@ -2071,7 +1321,7 @@ interface AnnotationOverlayProps {
|
|
|
2071
1321
|
imageHeight: number;
|
|
2072
1322
|
displayWidth: number;
|
|
2073
1323
|
displayHeight: number;
|
|
2074
|
-
|
|
1324
|
+
session?: SemiontSession | null | undefined;
|
|
2075
1325
|
hoveredAnnotationId?: string | null;
|
|
2076
1326
|
selectedAnnotationId?: string | null;
|
|
2077
1327
|
hoverDelayMs: number;
|
|
@@ -2082,7 +1332,7 @@ interface AnnotationOverlayProps {
|
|
|
2082
1332
|
* @emits beckon:hover - Annotation hovered or unhovered. Payload: { annotationId: string | null }
|
|
2083
1333
|
* @emits browse:click - Annotation clicked. Payload: { annotationId: string, motivation: Motivation }
|
|
2084
1334
|
*/
|
|
2085
|
-
declare function AnnotationOverlay({ annotations, imageWidth, imageHeight, displayWidth, displayHeight,
|
|
1335
|
+
declare function AnnotationOverlay({ annotations, imageWidth, imageHeight, displayWidth, displayHeight, session, hoveredAnnotationId, selectedAnnotationId, hoverDelayMs }: AnnotationOverlayProps): react_jsx_runtime.JSX.Element;
|
|
2086
1336
|
|
|
2087
1337
|
type Annotation$c = components['schemas']['Annotation'];
|
|
2088
1338
|
type DrawingMode = 'rectangle' | 'polygon' | 'circle' | 'freeform' | null;
|
|
@@ -2091,7 +1341,7 @@ interface SvgDrawingCanvasProps {
|
|
|
2091
1341
|
existingAnnotations?: Annotation$c[];
|
|
2092
1342
|
drawingMode: DrawingMode;
|
|
2093
1343
|
selectedMotivation?: SelectionMotivation | null;
|
|
2094
|
-
|
|
1344
|
+
session?: SemiontSession | null | undefined;
|
|
2095
1345
|
hoveredAnnotationId?: string | null;
|
|
2096
1346
|
selectedAnnotationId?: string | null;
|
|
2097
1347
|
hoverDelayMs?: number;
|
|
@@ -2102,7 +1352,7 @@ interface SvgDrawingCanvasProps {
|
|
|
2102
1352
|
* @emits browse:click - Annotation clicked on canvas. Payload: { annotationId: string, motivation: Motivation }
|
|
2103
1353
|
* @emits mark:requested - New annotation drawn on canvas. Payload: { selector: SvgSelector, motivation: SelectionMotivation }
|
|
2104
1354
|
*/
|
|
2105
|
-
declare function SvgDrawingCanvas({ imageUrl, existingAnnotations, drawingMode, selectedMotivation,
|
|
1355
|
+
declare function SvgDrawingCanvas({ imageUrl, existingAnnotations, drawingMode, selectedMotivation, session, hoveredAnnotationId, selectedAnnotationId }: SvgDrawingCanvasProps): react_jsx_runtime.JSX.Element;
|
|
2106
1356
|
|
|
2107
1357
|
interface KeyboardShortcutsHelpModalProps {
|
|
2108
1358
|
isOpen: boolean;
|
|
@@ -2114,30 +1364,23 @@ declare function KeyboardShortcutsHelpModal({ isOpen, onClose }: KeyboardShortcu
|
|
|
2114
1364
|
* Modal that surfaces when a 403 forbidden error is reported via
|
|
2115
1365
|
* `notifyPermissionDenied` (called from QueryCache.onError).
|
|
2116
1366
|
*
|
|
2117
|
-
* Reads `permissionDeniedAt
|
|
2118
|
-
*
|
|
2119
|
-
* dismisses the modal.
|
|
2120
|
-
*
|
|
2121
|
-
*
|
|
1367
|
+
* Reads `permissionDeniedAt$` and `permissionDeniedMessage$` from the
|
|
1368
|
+
* active `FrontendSessionSignals`. The signals instance clears the
|
|
1369
|
+
* flag when the user dismisses the modal. Modal state lives on
|
|
1370
|
+
* signals (not the session itself) so headless sessions
|
|
1371
|
+
* (workers/CLIs) don't carry dead observables.
|
|
2122
1372
|
*/
|
|
2123
1373
|
declare function PermissionDeniedModal(): react_jsx_runtime.JSX.Element;
|
|
2124
1374
|
|
|
2125
|
-
interface ProposeEntitiesModalProps {
|
|
2126
|
-
isOpen: boolean;
|
|
2127
|
-
onConfirm: (selectedTypes: string[]) => void;
|
|
2128
|
-
onCancel: () => void;
|
|
2129
|
-
}
|
|
2130
|
-
declare function ProposeEntitiesModal({ isOpen, onConfirm, onCancel }: ProposeEntitiesModalProps): react_jsx_runtime.JSX.Element;
|
|
2131
|
-
|
|
2132
1375
|
/**
|
|
2133
1376
|
* Modal that surfaces when the active KB's session expires (a 401 from
|
|
2134
|
-
* either the
|
|
1377
|
+
* either the session's own JWT validation or from any React Query call
|
|
2135
1378
|
* via the QueryCache.onError handler).
|
|
2136
1379
|
*
|
|
2137
|
-
* Reads `sessionExpiredAt
|
|
2138
|
-
* dismisses the modal, the
|
|
2139
|
-
*
|
|
2140
|
-
*
|
|
1380
|
+
* Reads `sessionExpiredAt$` from the active `FrontendSessionSignals`.
|
|
1381
|
+
* When the user dismisses the modal, the signals instance clears the
|
|
1382
|
+
* flag. Modal state lives on signals (not the session itself) so
|
|
1383
|
+
* headless sessions (workers/CLIs) don't carry dead observables.
|
|
2141
1384
|
*/
|
|
2142
1385
|
declare function SessionExpiredModal(): react_jsx_runtime.JSX.Element;
|
|
2143
1386
|
|
|
@@ -2227,7 +1470,7 @@ type SemiontResource$2 = components['schemas']['ResourceDescriptor'];
|
|
|
2227
1470
|
* - No manual refetch needed - events handle cache invalidation
|
|
2228
1471
|
*
|
|
2229
1472
|
* Requirements:
|
|
2230
|
-
* - Must be wrapped in
|
|
1473
|
+
* - Must be wrapped in SemiontProvider (which owns the session's event bus)
|
|
2231
1474
|
* - Must be wrapped in CacheContext (provides cache manager)
|
|
2232
1475
|
*
|
|
2233
1476
|
* Event flow:
|
|
@@ -2248,7 +1491,7 @@ interface Props$4 {
|
|
|
2248
1491
|
}
|
|
2249
1492
|
/**
|
|
2250
1493
|
* @emits mark:delete - User requested to delete annotation. Payload: { annotationId: string }
|
|
2251
|
-
* @emits
|
|
1494
|
+
* @emits panel:open - Request to open panel with annotation. Payload: { panel: string, scrollToAnnotationId?: string, motivation?: Motivation }
|
|
2252
1495
|
*
|
|
2253
1496
|
* @subscribes mark:mode-toggled - Toggles between browse and annotate mode. Payload: { mode: 'browse' | 'annotate' }
|
|
2254
1497
|
* @subscribes mark:added - New annotation was added. Payload: { annotation: Annotation }
|
|
@@ -2272,19 +1515,16 @@ declare function AssessmentEntry({ assessment, isFocused, isHovered, ref, }: Ass
|
|
|
2272
1515
|
|
|
2273
1516
|
type Annotation$a = components['schemas']['Annotation'];
|
|
2274
1517
|
type Motivation$5 = components['schemas']['Motivation'];
|
|
2275
|
-
|
|
1518
|
+
type JobProgress$6 = components['schemas']['JobProgress'];
|
|
1519
|
+
interface PendingAnnotation$5 {
|
|
2276
1520
|
selector: Selector | Selector[];
|
|
2277
1521
|
motivation: Motivation$5;
|
|
2278
1522
|
}
|
|
2279
1523
|
interface AssessmentPanelProps {
|
|
2280
1524
|
annotations: Annotation$a[];
|
|
2281
|
-
pendingAnnotation: PendingAnnotation$
|
|
1525
|
+
pendingAnnotation: PendingAnnotation$5 | null;
|
|
2282
1526
|
isAssisting?: boolean;
|
|
2283
|
-
progress?:
|
|
2284
|
-
status: string;
|
|
2285
|
-
percentage?: number;
|
|
2286
|
-
message?: string;
|
|
2287
|
-
} | null;
|
|
1527
|
+
progress?: JobProgress$6 | null;
|
|
2288
1528
|
locale?: string;
|
|
2289
1529
|
annotateMode?: boolean;
|
|
2290
1530
|
scrollToAnnotationId?: string | null;
|
|
@@ -2301,12 +1541,29 @@ interface AssessmentPanelProps {
|
|
|
2301
1541
|
declare function AssessmentPanel({ annotations, pendingAnnotation, isAssisting, progress, locale, annotateMode, scrollToAnnotationId, onScrollCompleted, hoveredAnnotationId, }: AssessmentPanelProps): react_jsx_runtime.JSX.Element;
|
|
2302
1542
|
|
|
2303
1543
|
interface Props$3 {
|
|
2304
|
-
|
|
1544
|
+
/**
|
|
1545
|
+
* Connection state from `client.actor.state$`. See
|
|
1546
|
+
* `packages/api-client/src/view-models/domain/actor-vm.ts`.
|
|
1547
|
+
*
|
|
1548
|
+
* UI mapping:
|
|
1549
|
+
* `open` | `reconnecting` | `initial` | `connecting`
|
|
1550
|
+
* → treated as "healthy" (green dot, "Live" label, event count visible).
|
|
1551
|
+
* `reconnecting` is specifically INCLUDED in healthy because a
|
|
1552
|
+
* brief reconnect (mount churn, channel-set change, quick blip)
|
|
1553
|
+
* shouldn't alarm the user. The 100 ms reconnect debounce and
|
|
1554
|
+
* sub-second fetch retry make `reconnecting` a transient state.
|
|
1555
|
+
* `degraded` | `closed`
|
|
1556
|
+
* → treated as "disconnected" (red dot, "Disconnected" label).
|
|
1557
|
+
* `degraded` is the 3 s threshold at which the state machine
|
|
1558
|
+
* decides the disconnect is sustained; this is the UI-banner
|
|
1559
|
+
* trigger the plan was designed around.
|
|
1560
|
+
*/
|
|
1561
|
+
state: ConnectionState;
|
|
2305
1562
|
eventCount: number;
|
|
2306
1563
|
lastEventTimestamp?: string;
|
|
2307
1564
|
knowledgeBaseName?: string;
|
|
2308
1565
|
}
|
|
2309
|
-
declare function CollaborationPanel({
|
|
1566
|
+
declare function CollaborationPanel({ state, eventCount, lastEventTimestamp, knowledgeBaseName }: Props$3): react_jsx_runtime.JSX.Element;
|
|
2310
1567
|
|
|
2311
1568
|
type Annotation$9 = components['schemas']['Annotation'];
|
|
2312
1569
|
interface CommentEntryProps {
|
|
@@ -2320,20 +1577,17 @@ declare function CommentEntry({ comment, isFocused, isHovered, annotateMode, ref
|
|
|
2320
1577
|
|
|
2321
1578
|
type Annotation$8 = components['schemas']['Annotation'];
|
|
2322
1579
|
type Motivation$4 = components['schemas']['Motivation'];
|
|
2323
|
-
|
|
1580
|
+
type JobProgress$5 = components['schemas']['JobProgress'];
|
|
1581
|
+
interface PendingAnnotation$4 {
|
|
2324
1582
|
selector: Selector | Selector[];
|
|
2325
1583
|
motivation: Motivation$4;
|
|
2326
1584
|
}
|
|
2327
1585
|
interface CommentsPanelProps {
|
|
2328
1586
|
annotations: Annotation$8[];
|
|
2329
|
-
pendingAnnotation: PendingAnnotation$
|
|
1587
|
+
pendingAnnotation: PendingAnnotation$4 | null;
|
|
2330
1588
|
annotateMode?: boolean;
|
|
2331
1589
|
isAssisting?: boolean;
|
|
2332
|
-
progress?:
|
|
2333
|
-
status: string;
|
|
2334
|
-
percentage?: number;
|
|
2335
|
-
message?: string;
|
|
2336
|
-
} | null;
|
|
1590
|
+
progress?: JobProgress$5 | null;
|
|
2337
1591
|
locale?: string;
|
|
2338
1592
|
scrollToAnnotationId?: string | null;
|
|
2339
1593
|
onScrollCompleted?: () => void;
|
|
@@ -2348,19 +1602,12 @@ interface CommentsPanelProps {
|
|
|
2348
1602
|
*/
|
|
2349
1603
|
declare function CommentsPanel({ annotations, pendingAnnotation, annotateMode, isAssisting, progress, locale, scrollToAnnotationId, onScrollCompleted, hoveredAnnotationId, }: CommentsPanelProps): react_jsx_runtime.JSX.Element;
|
|
2350
1604
|
|
|
1605
|
+
type JobProgress$4 = components['schemas']['JobProgress'];
|
|
2351
1606
|
interface AssistSectionProps {
|
|
2352
1607
|
annotationType: 'highlight' | 'assessment' | 'comment';
|
|
2353
1608
|
isAssisting: boolean;
|
|
2354
1609
|
locale?: string;
|
|
2355
|
-
progress?:
|
|
2356
|
-
status: string;
|
|
2357
|
-
percentage?: number;
|
|
2358
|
-
message?: string;
|
|
2359
|
-
requestParams?: Array<{
|
|
2360
|
-
label: string;
|
|
2361
|
-
value: string;
|
|
2362
|
-
}>;
|
|
2363
|
-
} | null | undefined;
|
|
1610
|
+
progress?: JobProgress$4 | null | undefined;
|
|
2364
1611
|
}
|
|
2365
1612
|
/**
|
|
2366
1613
|
* Shared assist section for Highlight, Assessment, and Comment panels
|
|
@@ -2387,19 +1634,16 @@ declare function HighlightEntry({ highlight, isFocused, isHovered, ref, }: Highl
|
|
|
2387
1634
|
|
|
2388
1635
|
type Annotation$6 = components['schemas']['Annotation'];
|
|
2389
1636
|
type Motivation$3 = components['schemas']['Motivation'];
|
|
2390
|
-
|
|
1637
|
+
type JobProgress$3 = components['schemas']['JobProgress'];
|
|
1638
|
+
interface PendingAnnotation$3 {
|
|
2391
1639
|
selector: Selector | Selector[];
|
|
2392
1640
|
motivation: Motivation$3;
|
|
2393
1641
|
}
|
|
2394
1642
|
interface HighlightPanelProps {
|
|
2395
1643
|
annotations: Annotation$6[];
|
|
2396
|
-
pendingAnnotation: PendingAnnotation$
|
|
1644
|
+
pendingAnnotation: PendingAnnotation$3 | null;
|
|
2397
1645
|
isAssisting?: boolean;
|
|
2398
|
-
progress?:
|
|
2399
|
-
status: string;
|
|
2400
|
-
percentage?: number;
|
|
2401
|
-
message?: string;
|
|
2402
|
-
} | null;
|
|
1646
|
+
progress?: JobProgress$3 | null;
|
|
2403
1647
|
annotateMode?: boolean;
|
|
2404
1648
|
scrollToAnnotationId?: string | null;
|
|
2405
1649
|
onScrollCompleted?: () => void;
|
|
@@ -2443,26 +1687,18 @@ interface ReferenceEntryProps {
|
|
|
2443
1687
|
}
|
|
2444
1688
|
declare function ReferenceEntry({ reference, isFocused, isHovered, routes, annotateMode, isGenerating, ref, }: ReferenceEntryProps): react_jsx_runtime.JSX.Element;
|
|
2445
1689
|
|
|
1690
|
+
type JobProgress$2 = components['schemas']['JobProgress'];
|
|
2446
1691
|
type Annotation$4 = components['schemas']['Annotation'];
|
|
2447
1692
|
type Motivation$2 = components['schemas']['Motivation'];
|
|
2448
|
-
type
|
|
2449
|
-
|
|
2450
|
-
200: {
|
|
2451
|
-
content: {
|
|
2452
|
-
'application/json': infer R;
|
|
2453
|
-
};
|
|
2454
|
-
};
|
|
2455
|
-
};
|
|
2456
|
-
} ? R : never;
|
|
2457
|
-
type ReferencedBy = ResponseContent<paths['/resources/{id}/referenced-by']['get']>['referencedBy'][number];
|
|
2458
|
-
interface PendingAnnotation$3 {
|
|
1693
|
+
type ReferencedBy = components['schemas']['GetReferencedByResponse']['referencedBy'][number];
|
|
1694
|
+
interface PendingAnnotation$2 {
|
|
2459
1695
|
selector: Selector | Selector[];
|
|
2460
1696
|
motivation: Motivation$2;
|
|
2461
1697
|
}
|
|
2462
1698
|
interface Props$1 {
|
|
2463
1699
|
annotations?: Annotation$4[];
|
|
2464
1700
|
isAssisting: boolean;
|
|
2465
|
-
progress:
|
|
1701
|
+
progress: JobProgress$2 | null;
|
|
2466
1702
|
annotateMode?: boolean;
|
|
2467
1703
|
Link: React__default.ComponentType<LinkComponentProps>;
|
|
2468
1704
|
routes: RouteBuilder;
|
|
@@ -2470,7 +1706,7 @@ interface Props$1 {
|
|
|
2470
1706
|
generatingReferenceId?: string | null;
|
|
2471
1707
|
referencedBy?: ReferencedBy[];
|
|
2472
1708
|
referencedByLoading?: boolean;
|
|
2473
|
-
pendingAnnotation: PendingAnnotation$
|
|
1709
|
+
pendingAnnotation: PendingAnnotation$2 | null;
|
|
2474
1710
|
scrollToAnnotationId?: string | null;
|
|
2475
1711
|
onScrollCompleted?: () => void;
|
|
2476
1712
|
hoveredAnnotationId?: string | null;
|
|
@@ -2531,7 +1767,8 @@ declare function TagEntry({ tag, isFocused, isHovered, ref, }: TagEntryProps): r
|
|
|
2531
1767
|
|
|
2532
1768
|
type Annotation$1 = components['schemas']['Annotation'];
|
|
2533
1769
|
type Motivation$1 = components['schemas']['Motivation'];
|
|
2534
|
-
|
|
1770
|
+
type JobProgress$1 = components['schemas']['JobProgress'];
|
|
1771
|
+
interface PendingAnnotation$1 {
|
|
2535
1772
|
selector: Selector | Selector[];
|
|
2536
1773
|
motivation: Motivation$1;
|
|
2537
1774
|
}
|
|
@@ -2539,19 +1776,8 @@ interface TaggingPanelProps {
|
|
|
2539
1776
|
annotations: Annotation$1[];
|
|
2540
1777
|
annotateMode?: boolean;
|
|
2541
1778
|
isAssisting?: boolean;
|
|
2542
|
-
progress?:
|
|
2543
|
-
|
|
2544
|
-
percentage?: number;
|
|
2545
|
-
currentCategory?: string;
|
|
2546
|
-
processedCategories?: number;
|
|
2547
|
-
totalCategories?: number;
|
|
2548
|
-
message?: string;
|
|
2549
|
-
requestParams?: Array<{
|
|
2550
|
-
label: string;
|
|
2551
|
-
value: string;
|
|
2552
|
-
}>;
|
|
2553
|
-
} | null;
|
|
2554
|
-
pendingAnnotation: PendingAnnotation$2 | null;
|
|
1779
|
+
progress?: JobProgress$1 | null;
|
|
1780
|
+
pendingAnnotation: PendingAnnotation$1 | null;
|
|
2555
1781
|
scrollToAnnotationId?: string | null;
|
|
2556
1782
|
onScrollCompleted?: () => void;
|
|
2557
1783
|
hoveredAnnotationId?: string | null;
|
|
@@ -2566,10 +1792,12 @@ interface TaggingPanelProps {
|
|
|
2566
1792
|
*/
|
|
2567
1793
|
declare function TaggingPanel({ annotations, annotateMode, isAssisting, progress, pendingAnnotation, scrollToAnnotationId, onScrollCompleted, hoveredAnnotationId, }: TaggingPanelProps): react_jsx_runtime.JSX.Element;
|
|
2568
1794
|
|
|
1795
|
+
type JobProgress = components['schemas']['JobProgress'];
|
|
1796
|
+
|
|
2569
1797
|
type Annotation = components['schemas']['Annotation'];
|
|
2570
1798
|
type Motivation = components['schemas']['Motivation'];
|
|
2571
1799
|
type TabKey = 'statistics' | 'reference' | 'highlight' | 'assessment' | 'comment' | 'tag';
|
|
2572
|
-
interface PendingAnnotation
|
|
1800
|
+
interface PendingAnnotation {
|
|
2573
1801
|
selector: Selector | Selector[];
|
|
2574
1802
|
motivation: Motivation;
|
|
2575
1803
|
}
|
|
@@ -2587,8 +1815,8 @@ interface UnifiedAnnotationsPanelProps {
|
|
|
2587
1815
|
annotators: Record<string, Annotator>;
|
|
2588
1816
|
annotateMode?: boolean;
|
|
2589
1817
|
assistingMotivation?: Motivation | null;
|
|
2590
|
-
progress?:
|
|
2591
|
-
pendingAnnotation: PendingAnnotation
|
|
1818
|
+
progress?: JobProgress | null;
|
|
1819
|
+
pendingAnnotation: PendingAnnotation | null;
|
|
2592
1820
|
allEntityTypes?: string[];
|
|
2593
1821
|
generatingReferenceId?: string | null;
|
|
2594
1822
|
referencedBy?: any[];
|
|
@@ -2665,7 +1893,7 @@ interface ObservableLinkProps extends React__default.AnchorHTMLAttributes<HTMLAn
|
|
|
2665
1893
|
* - State coordination before navigation
|
|
2666
1894
|
* - Logging navigation flows
|
|
2667
1895
|
*
|
|
2668
|
-
* The component emits '
|
|
1896
|
+
* The component emits 'nav:link-clicked' event before allowing
|
|
2669
1897
|
* the browser to follow the link.
|
|
2670
1898
|
*
|
|
2671
1899
|
* @example
|
|
@@ -2689,7 +1917,7 @@ interface ObservableLinkProps extends React__default.AnchorHTMLAttributes<HTMLAn
|
|
|
2689
1917
|
* </Link>
|
|
2690
1918
|
* ```
|
|
2691
1919
|
*
|
|
2692
|
-
* @emits
|
|
1920
|
+
* @emits nav:link-clicked - Link clicked by user. Payload: { href: string, label?: string }
|
|
2693
1921
|
*/
|
|
2694
1922
|
declare function ObservableLink({ href, label, onClick, children, ...anchorProps }: ObservableLinkProps): react_jsx_runtime.JSX.Element;
|
|
2695
1923
|
|
|
@@ -2723,7 +1951,7 @@ interface SimpleNavigationProps$1 {
|
|
|
2723
1951
|
* Simple navigation component for Admin and Moderation modes.
|
|
2724
1952
|
* Renders a section header with optional dropdown and static navigation tabs.
|
|
2725
1953
|
*
|
|
2726
|
-
* @emits
|
|
1954
|
+
* @emits shell:sidebar-toggle - Toggle sidebar collapsed/expanded state. Payload: undefined
|
|
2727
1955
|
*/
|
|
2728
1956
|
declare function SimpleNavigation({ title, items, currentPath, LinkComponent, dropdownContent, isCollapsed, icons, collapseSidebarLabel, expandSidebarLabel }: SimpleNavigationProps$1): react_jsx_runtime.JSX.Element;
|
|
2729
1957
|
|
|
@@ -2789,9 +2017,9 @@ interface CollapsibleResourceNavigationProps {
|
|
|
2789
2017
|
* Supports drag and drop for resource reordering when expanded.
|
|
2790
2018
|
* Platform-agnostic design for use across different React environments.
|
|
2791
2019
|
*
|
|
2792
|
-
* @emits
|
|
2793
|
-
* @emits
|
|
2794
|
-
* @emits
|
|
2020
|
+
* @emits tabs:reorder - Resource tab reordered. Payload: { oldIndex: number, newIndex: number }
|
|
2021
|
+
* @emits tabs:close - Resource tab closed. Payload: { resourceId: string }
|
|
2022
|
+
* @emits shell:sidebar-toggle - Toggle sidebar collapsed/expanded state. Payload: undefined
|
|
2795
2023
|
*/
|
|
2796
2024
|
declare function CollapsibleResourceNavigation({ fixedItems, resources, isCollapsed, currentPath, LinkComponent, onNavigate, getResourceHref, className, translations, icons, navigationMenu }: CollapsibleResourceNavigationProps): react_jsx_runtime.JSX.Element;
|
|
2797
2025
|
|
|
@@ -2842,8 +2070,6 @@ interface ReferenceWizardModalProps {
|
|
|
2842
2070
|
context: GatheredContext | null;
|
|
2843
2071
|
contextLoading: boolean;
|
|
2844
2072
|
contextError: Error | null;
|
|
2845
|
-
/** Event bus for emitting downstream events */
|
|
2846
|
-
eventBus: EventBus;
|
|
2847
2073
|
/** Callbacks */
|
|
2848
2074
|
onGenerateSubmit: (referenceId: string, config: GenerationConfig) => void;
|
|
2849
2075
|
onLinkResource: (referenceId: string, targetResourceId: string) => void;
|
|
@@ -2887,7 +2113,7 @@ interface ReferenceWizardModalProps {
|
|
|
2887
2113
|
semanticScoringHelp: string;
|
|
2888
2114
|
};
|
|
2889
2115
|
}
|
|
2890
|
-
declare function ReferenceWizardModal({ isOpen, onClose, annotationId, resourceId, defaultTitle, entityTypes, locale, context, contextLoading, contextError,
|
|
2116
|
+
declare function ReferenceWizardModal({ isOpen, onClose, annotationId, resourceId, defaultTitle, entityTypes, locale, context, contextLoading, contextError, onGenerateSubmit, onLinkResource, onComposeNavigate, translations: t, }: ReferenceWizardModalProps): react_jsx_runtime.JSX.Element;
|
|
2891
2117
|
|
|
2892
2118
|
interface SearchModalProps$1 {
|
|
2893
2119
|
isOpen: boolean;
|
|
@@ -3391,17 +2617,6 @@ interface ExportCardProps {
|
|
|
3391
2617
|
}
|
|
3392
2618
|
declare function ExportCard({ onExport, isExporting, translations: t }: ExportCardProps): react_jsx_runtime.JSX.Element;
|
|
3393
2619
|
|
|
3394
|
-
/**
|
|
3395
|
-
* ImportCard — File drop zone, preview, and import trigger
|
|
3396
|
-
*
|
|
3397
|
-
* Pure React component. All state and handlers passed as props.
|
|
3398
|
-
*/
|
|
3399
|
-
interface ImportPreview {
|
|
3400
|
-
format: string;
|
|
3401
|
-
version: number;
|
|
3402
|
-
sourceUrl: string;
|
|
3403
|
-
stats: Record<string, number>;
|
|
3404
|
-
}
|
|
3405
2620
|
interface ImportCardTranslations {
|
|
3406
2621
|
title: string;
|
|
3407
2622
|
description: string;
|
|
@@ -3871,19 +3086,10 @@ interface TagSchemasPageProps {
|
|
|
3871
3086
|
}
|
|
3872
3087
|
declare function TagSchemasPage({ schemas, isLoading, theme, showLineNumbers, activePanel, translations: t, ToolbarPanels, Toolbar, }: TagSchemasPageProps): react_jsx_runtime.JSX.Element;
|
|
3873
3088
|
|
|
3874
|
-
type ResourceDescriptor$2 = components['schemas']['ResourceDescriptor'];
|
|
3875
3089
|
interface ResourceComposePageProps {
|
|
3876
3090
|
mode: 'new' | 'clone' | 'reference';
|
|
3877
|
-
cloneData?:
|
|
3878
|
-
|
|
3879
|
-
sourceContent: string;
|
|
3880
|
-
};
|
|
3881
|
-
referenceData?: {
|
|
3882
|
-
annotationUri: string;
|
|
3883
|
-
sourceDocumentId: string;
|
|
3884
|
-
name: string;
|
|
3885
|
-
entityTypes: string[];
|
|
3886
|
-
};
|
|
3091
|
+
cloneData?: CloneData | null;
|
|
3092
|
+
referenceData?: ReferenceData | null;
|
|
3887
3093
|
gatheredContext?: GatheredContext | null;
|
|
3888
3094
|
availableEntityTypes: string[];
|
|
3889
3095
|
initialLocale: string;
|
|
@@ -4022,9 +3228,11 @@ interface ResourceViewerPageProps {
|
|
|
4022
3228
|
*/
|
|
4023
3229
|
refetchDocument: () => Promise<unknown>;
|
|
4024
3230
|
/**
|
|
4025
|
-
*
|
|
3231
|
+
* Bus connection state for the active workspace. Six-valued state
|
|
3232
|
+
* machine from `actor.state$`; CollaborationPanel maps it to the
|
|
3233
|
+
* "Live" / "Disconnected" visual.
|
|
4026
3234
|
*/
|
|
4027
|
-
streamStatus:
|
|
3235
|
+
streamStatus: ConnectionState;
|
|
4028
3236
|
/**
|
|
4029
3237
|
* Name of the active knowledge base (for display in panels)
|
|
4030
3238
|
*/
|
|
@@ -4035,7 +3243,7 @@ interface ResourceViewerPageProps {
|
|
|
4035
3243
|
*
|
|
4036
3244
|
* Uses hooks directly (NO containers, NO render props, NO ResourceViewerPageContent wrapper)
|
|
4037
3245
|
*
|
|
4038
|
-
* @emits
|
|
3246
|
+
* @emits nav:push - Navigate to a resource or filtered view
|
|
4039
3247
|
* @emits beckon:sparkle - Trigger sparkle animation on an annotation
|
|
4040
3248
|
* @emits bind:update-body - Update annotation body content
|
|
4041
3249
|
* @subscribes mark:archive - Archive the current resource
|
|
@@ -4059,217 +3267,40 @@ interface ResourceViewerPageProps {
|
|
|
4059
3267
|
*/
|
|
4060
3268
|
declare function ResourceViewerPage({ resource, rUri, locale, Link, routes, ToolbarPanels, refetchDocument, streamStatus, knowledgeBaseName, }: ResourceViewerPageProps): react_jsx_runtime.JSX.Element;
|
|
4061
3269
|
|
|
4062
|
-
/**
|
|
4063
|
-
* useBeckonFlow — Annotation attention / pointer coordination hook
|
|
4064
|
-
*
|
|
4065
|
-
* Manages which annotation currently has the user's attention:
|
|
4066
|
-
* - Hover state (hoveredAnnotationId)
|
|
4067
|
-
* - Hover → sparkle relay
|
|
4068
|
-
* - Click → focus relay
|
|
4069
|
-
*
|
|
4070
|
-
* Follows react-rxjs-guide.md Layer 2 pattern: Hook bridge that
|
|
4071
|
-
* subscribes to events and pushes values into React state.
|
|
4072
|
-
*
|
|
4073
|
-
* Note: beckon:sparkle visual effect (triggerSparkleAnimation) is owned by
|
|
4074
|
-
* ResourceViewerPage, which subscribes to beckon:sparkle and delegates to
|
|
4075
|
-
* ResourceAnnotationsContext. This hook emits the signal; it does not render the effect.
|
|
4076
|
-
*
|
|
4077
|
-
* @subscribes beckon:hover - Sets hoveredAnnotationId; emits beckon:sparkle
|
|
4078
|
-
* @subscribes browse:click - Emits beckon:focus (attention relay only)
|
|
4079
|
-
* @emits beckon:sparkle
|
|
4080
|
-
* @emits beckon:focus
|
|
4081
|
-
*/
|
|
4082
|
-
|
|
4083
|
-
interface BeckonFlowState {
|
|
4084
|
-
hoveredAnnotationId: string | null;
|
|
4085
|
-
}
|
|
4086
|
-
declare function useBeckonFlow(): BeckonFlowState;
|
|
4087
|
-
/** Default milliseconds the mouse must dwell before beckon:hover is emitted. */
|
|
4088
|
-
declare const HOVER_DELAY_MS = 150;
|
|
4089
|
-
type EmitHover = (annotationId: string | null) => void;
|
|
4090
|
-
interface HoverHandlers {
|
|
4091
|
-
/** Call with the annotation ID when the mouse enters an annotation element. */
|
|
4092
|
-
handleMouseEnter: (annotationId: string) => void;
|
|
4093
|
-
/** Call when the mouse leaves the annotation element. */
|
|
4094
|
-
handleMouseLeave: () => void;
|
|
4095
|
-
/** Cancel any pending timer — call in the useEffect cleanup. */
|
|
4096
|
-
cleanup: () => void;
|
|
4097
|
-
}
|
|
4098
|
-
/**
|
|
4099
|
-
* Creates hover handlers for imperative code (non-hook contexts).
|
|
4100
|
-
* @param emit - Callback to emit hover events
|
|
4101
|
-
* @param delayMs - Hover delay in milliseconds
|
|
4102
|
-
*/
|
|
4103
|
-
declare function createHoverHandlers(emit: EmitHover, delayMs: number): HoverHandlers;
|
|
4104
3270
|
interface HoverEmitterProps {
|
|
4105
3271
|
onMouseEnter: () => void;
|
|
4106
3272
|
onMouseLeave: () => void;
|
|
4107
3273
|
}
|
|
4108
|
-
/**
|
|
4109
|
-
* React hook that returns onMouseEnter / onMouseLeave props for a single
|
|
4110
|
-
* annotation entry element.
|
|
4111
|
-
*
|
|
4112
|
-
* @param annotationId - The ID of the annotation this element represents.
|
|
4113
|
-
* @param hoverDelayMs - Hover delay in milliseconds (defaults to HOVER_DELAY_MS for panel entries)
|
|
4114
|
-
*/
|
|
4115
3274
|
declare function useHoverEmitter(annotationId: string, hoverDelayMs?: number): HoverEmitterProps;
|
|
4116
|
-
/**
|
|
4117
|
-
* Opens a participant-scoped SSE connection to receive cross-participant
|
|
4118
|
-
* beckon signals. Each incoming signal is emitted as beckon:focus on the
|
|
4119
|
-
* EventBus — the existing scroll/highlight machinery handles it automatically.
|
|
4120
|
-
*
|
|
4121
|
-
* Signals are ephemeral: delivered if connected, silently dropped if not.
|
|
4122
|
-
*
|
|
4123
|
-
* @example
|
|
4124
|
-
* ```tsx
|
|
4125
|
-
* // In your layout (render-nothing connector):
|
|
4126
|
-
* useAttentionStream();
|
|
4127
|
-
* ```
|
|
4128
|
-
*/
|
|
4129
|
-
declare function useAttentionStream(): {
|
|
4130
|
-
status: StreamStatus;
|
|
4131
|
-
};
|
|
4132
3275
|
|
|
4133
3276
|
/**
|
|
4134
|
-
*
|
|
4135
|
-
*
|
|
4136
|
-
*
|
|
4137
|
-
*
|
|
4138
|
-
* progress) via EventBus subscriptions — the React-specific portion.
|
|
4139
|
-
*
|
|
4140
|
-
* The FlowEngine's HTTP bridging role is replaced by namespace methods:
|
|
4141
|
-
* - mark:submit → semiont.mark.annotation()
|
|
4142
|
-
* - mark:delete → semiont.mark.delete()
|
|
4143
|
-
* - mark:assist-request → semiont.mark.assist() (Observable)
|
|
3277
|
+
* `ShellVM` is app-scoped — it owns toolbar panel state and lives on
|
|
3278
|
+
* the `SemiontBrowser`'s own bus. Unlike session-scoped VMs, this hook
|
|
3279
|
+
* does not need to wait for an active KB session; `useSemiont()`
|
|
3280
|
+
* always returns the module-scoped `SemiontBrowser` singleton.
|
|
4144
3281
|
*/
|
|
4145
|
-
|
|
4146
|
-
interface PendingAnnotation {
|
|
4147
|
-
selector: Selector | Selector[];
|
|
4148
|
-
motivation: Motivation$9;
|
|
4149
|
-
}
|
|
4150
|
-
interface MarkFlowState {
|
|
4151
|
-
pendingAnnotation: PendingAnnotation | null;
|
|
4152
|
-
assistingMotivation: Motivation$9 | null;
|
|
4153
|
-
progress: MarkProgress | null;
|
|
4154
|
-
assistStreamRef: React.MutableRefObject<AbortController | null>;
|
|
4155
|
-
}
|
|
4156
|
-
declare function useMarkFlow(rUri: ResourceId): MarkFlowState;
|
|
4157
|
-
|
|
4158
|
-
/**
|
|
4159
|
-
* usePanelBrowse - Panel navigation and scroll coordination hook
|
|
4160
|
-
*
|
|
4161
|
-
* Manages sidebar panel state:
|
|
4162
|
-
* - Active panel tracking (which panel is open)
|
|
4163
|
-
* - Scroll coordination (scrollToAnnotationId)
|
|
4164
|
-
* - Panel routing with initial tab
|
|
4165
|
-
* - LocalStorage persistence
|
|
4166
|
-
*
|
|
4167
|
-
* Follows react-rxjs-guide.md Layer 2 pattern: Hook bridge that
|
|
4168
|
-
* subscribes to events and pushes values into React state.
|
|
4169
|
-
*/
|
|
4170
|
-
type ToolbarPanelType = 'history' | 'info' | 'annotations' | 'settings' | 'collaboration' | 'user' | 'jsonld' | 'knowledge-base';
|
|
4171
|
-
/** Panels available on all pages */
|
|
4172
|
-
declare const COMMON_PANELS: readonly ToolbarPanelType[];
|
|
4173
|
-
/** Panels available only on resource viewer pages */
|
|
4174
|
-
declare const RESOURCE_PANELS: readonly ToolbarPanelType[];
|
|
4175
|
-
interface PanelBrowseState {
|
|
4176
|
-
activePanel: ToolbarPanelType | null;
|
|
4177
|
-
scrollToAnnotationId: string | null;
|
|
4178
|
-
panelInitialTab: {
|
|
4179
|
-
tab: string;
|
|
4180
|
-
generation: number;
|
|
4181
|
-
} | null;
|
|
4182
|
-
onScrollCompleted: () => void;
|
|
4183
|
-
}
|
|
4184
|
-
/**
|
|
4185
|
-
* Hook for panel navigation state management
|
|
4186
|
-
*
|
|
4187
|
-
* @subscribes browse:panel-toggle - Toggle a panel open/closed
|
|
4188
|
-
* @subscribes browse:panel-open - Open a panel, optionally scrolling to an annotation
|
|
4189
|
-
* @subscribes browse:panel-close - Close the active panel
|
|
4190
|
-
* @returns Panel navigation state
|
|
4191
|
-
*/
|
|
4192
|
-
declare function usePanelBrowse(): PanelBrowseState;
|
|
4193
|
-
|
|
4194
|
-
/**
|
|
4195
|
-
* useYieldFlow - Document generation flow hook
|
|
4196
|
-
*
|
|
4197
|
-
* Triggers yield.fromAnnotation() on the namespace API.
|
|
4198
|
-
* Manages generation progress state (React-specific) via EventBus subscriptions
|
|
4199
|
-
* from the events-stream auto-router.
|
|
4200
|
-
*/
|
|
4201
|
-
|
|
4202
|
-
interface YieldFlowState {
|
|
4203
|
-
isGenerating: boolean;
|
|
4204
|
-
generationProgress: YieldProgress | null;
|
|
4205
|
-
onGenerateDocument: (referenceId: string, options: {
|
|
4206
|
-
title: string;
|
|
4207
|
-
storageUri: string;
|
|
4208
|
-
prompt?: string;
|
|
4209
|
-
language?: string;
|
|
4210
|
-
temperature?: number;
|
|
4211
|
-
maxTokens?: number;
|
|
4212
|
-
context: GatheredContext;
|
|
4213
|
-
}) => void;
|
|
4214
|
-
}
|
|
4215
|
-
declare function useYieldFlow(locale: string, resourceId: string, clearNewAnnotationId: (annotationId: AnnotationId) => void): YieldFlowState;
|
|
4216
|
-
|
|
4217
|
-
/**
|
|
4218
|
-
* useContextGatherFlow - Context gather capability hook
|
|
4219
|
-
*
|
|
4220
|
-
* Manages UI state for context gathering. The actual gather trigger
|
|
4221
|
-
* comes from components emitting gather:requested on the EventBus.
|
|
4222
|
-
* This hook bridges to semiont.gather.annotation() and manages the
|
|
4223
|
-
* React state (loading, context, error).
|
|
4224
|
-
*/
|
|
4225
|
-
|
|
4226
|
-
interface ContextGatherFlowConfig {
|
|
4227
|
-
resourceId: ResourceId;
|
|
4228
|
-
}
|
|
4229
|
-
interface ContextGatherFlowState {
|
|
4230
|
-
gatherContext: GatheredContext | null;
|
|
4231
|
-
gatherLoading: boolean;
|
|
4232
|
-
gatherError: Error | null;
|
|
4233
|
-
/** The annotationId for which context was most recently gathered */
|
|
4234
|
-
gatherAnnotationId: AnnotationId | null;
|
|
4235
|
-
}
|
|
4236
|
-
declare function useContextGatherFlow(config: ContextGatherFlowConfig): ContextGatherFlowState;
|
|
4237
|
-
|
|
4238
|
-
/**
|
|
4239
|
-
* useBindFlow - Reference resolution flow hook
|
|
4240
|
-
*
|
|
4241
|
-
* Bridges EventBus commands to namespace API methods.
|
|
4242
|
-
* Components emit bind:update-body / match:search-requested on the EventBus;
|
|
4243
|
-
* this hook calls semiont.bind.body() / semiont.match.search() in response.
|
|
4244
|
-
*
|
|
4245
|
-
* Toast notifications for resolution errors remain here (React-specific).
|
|
4246
|
-
*/
|
|
4247
|
-
|
|
4248
|
-
declare function useBindFlow(rUri: ResourceId): void;
|
|
3282
|
+
declare function useShellVM(): ShellVM;
|
|
4249
3283
|
|
|
4250
3284
|
/**
|
|
4251
3285
|
* Subscribe to an RxJS Observable and return its current value as React state.
|
|
4252
3286
|
*
|
|
4253
|
-
* -
|
|
4254
|
-
*
|
|
4255
|
-
|
|
4256
|
-
|
|
4257
|
-
|
|
4258
|
-
|
|
4259
|
-
*
|
|
4260
|
-
*
|
|
4261
|
-
*
|
|
4262
|
-
*
|
|
4263
|
-
*
|
|
4264
|
-
*
|
|
4265
|
-
*
|
|
4266
|
-
*
|
|
4267
|
-
*
|
|
4268
|
-
*
|
|
4269
|
-
|
|
4270
|
-
|
|
4271
|
-
|
|
4272
|
-
|
|
4273
|
-
declare function useStoreTokenSync(): void;
|
|
4274
|
-
|
|
4275
|
-
export { ANNOTATORS, AVAILABLE_LOCALES, AdminDevOpsPage, type AdminDevOpsPageProps, AdminExchangePage, type AdminExchangePageProps, type AdminExchangePageTranslations, AdminSecurityPage, type AdminSecurityPageProps, type AdminUser, type AdminUserStats, AdminUsersPage, type AdminUsersPageProps, AnnotateReferencesProgressWidget, AnnotateToolbar, AnnotateView, type Annotation$k as Annotation, type AnnotationConfig, type AnnotationCreationHandler, type AnnotationHandlers, AnnotationHistory, type AnnotationManager, AnnotationOverlay, AnnotationProvider, type AnnotationProviderProps, type AnnotationUIState, type AnnotationsCollection, type Annotator, ApiClientProvider, type ApiClientProviderProps, AssessmentEntry, AssessmentPanel, AssistSection, AsyncErrorBoundary, AuthErrorDisplay, type AuthErrorDisplayProps, AuthTokenProvider, type AuthTokenProviderProps, type AvailableLocale, type BeckonFlowState, type BorderRadiusToken, BrowseView, Button, ButtonGroup, type ButtonGroupProps, type ButtonProps, COMMON_PANELS, type CacheManager, CacheProvider, type CacheProviderProps, type ClickAction, CodeMirrorRenderer, CollaborationPanel, CollapsibleResourceNavigation, type CollapsibleResourceNavigationProps, type ColorToken, CommentEntry, CommentsPanel, ComposeLoadingState, type ComposeLoadingStateProps, type ContextGatherFlowConfig, type ContextGatherFlowState, type CreateAnnotationParams, type CreateConfig, type DeleteAnnotationParams, type DetectionConfig, type DevOpsFeature, type DrawingMode, EntityTagsPage, type EntityTagsPageProps, EntityTypeBadges, ErrorBoundary, EventBusProvider, type EventBusProviderProps, ExportCard, type ExportCardProps, type ExportCardTranslations, Footer, HOVER_DELAY_MS, HighlightEntry, HighlightPanel, HistoryEvent, type HoverEmitterProps, type HoverHandlers, ImageURLSchema, ImageViewer, ImportCard, type ImportCardProps, type ImportCardTranslations, type ImportPreview, ImportProgress, type ImportProgressProps, type ImportProgressTranslations, JsonLdPanel, JsonLdView, KbSessionStatus, type KeyboardShortcut, KeyboardShortcutsHelpModal, KnowledgeBase, LeftSidebar, type LinkComponentProps, LinkedDataPage, type LinkedDataPageProps, type LinkedDataPageTranslations, LiveRegionProvider, type MarkFlowState, type Motivation$8 as Motivation, type NavigationItem, NavigationMenu, type NavigationMenuHelper, type NavigationProps, type OAuthProvider, type OAuthUser, OAuthUserSchema, ObservableLink, type ObservableLinkProps, OpenResource, OpenResourcesManager, OpenResourcesProvider, type OverlayAnnotation, PageLayout, type PanelBrowseState, PanelHeader, PermissionDeniedModal, PopupContainer, PopupHeader, ProposeEntitiesModal, ProtectedErrorBoundary, QUERY_KEYS, RESOURCE_PANELS, RecentDocumentsPage, type RecentDocumentsPageProps, ReferenceEntry, ReferenceResolutionWidget, ReferenceWizardModal, type ReferenceWizardModalProps, ReferencesPanel, ResizeHandle, type ResolvedTheme, ResourceAnnotationsProvider, ResourceCard, type ResourceCardProps, ResourceComposePage, type ResourceComposePageProps, ResourceDiscoveryPage, type ResourceDiscoveryPageProps, ResourceErrorState, type ResourceErrorStateProps, ResourceInfoPanel, ResourceLoadingState, ResourceSearchModal, type ResourceSearchModalProps, ResourceTagsInline, ResourceViewer, ResourceViewerPage, type ResourceViewerPageProps, type RouteBuilder, type SaveResourceParams, SearchModal, type SearchModalProps, type SearchPipeline, type SearchPipelineOptions, type SearchState, SelectedTextDisplay, type SelectionMotivation, type SelectorType, SemiontBranding, SemiontFavicon, type SemiontResource$4 as SemiontResource, SessionExpiredModal, SessionExpiryBanner, SessionTimer, SettingsPanel, type ShadowToken, type ShapeType, SignInForm, type SignInFormProps, SignUpForm, type SignUpFormProps, SimpleNavigation, type SimpleNavigationItem, type SimpleNavigationProps, SkipLinks, SortableResourceTab, type SortableResourceTabProps, type SpacingToken, StatisticsPanel, StatusDisplay, type StoredSession, type StreamStatus, SvgDrawingCanvas, TagEntry, TagSchemasPage, type TagSchemasPageProps, TaggingPanel, type TextSegment, type TextSelection, type Theme, ThemeProvider, ToastContainer, type ToastMessage, ToastProvider, type ToastType, Toolbar, type ToolbarPanelType, type TransitionToken, TranslationManager, TranslationProvider, type TranslationProviderProps, type TypographyToken, type UICreateAnnotationParams, UnifiedAnnotationsPanel, UnifiedHeader, type UseResourceContentResult, UserMenuSkeleton, WelcomePage, type WelcomePageProps, type YieldFlowState, applyHighlights, buildSourceToRenderedMap, buildTextNodeIndex, buttonStyles, clearHighlights, createHoverHandlers, createSearchPipeline, cssVariables, defaultProtocol, faviconPaths, formatTime, generateCSSVariables, getKbSessionStatus, getResourceIcon, getSelectedShapeForSelectorType, getSelectorType, getShortcutDisplay, getSupportedShapes, hideWidgetPreview, isShapeSupported, isValidHostname, jsonLightHighlightStyle, jsonLightTheme, kbBackendUrl, notifyPermissionDenied, notifySessionExpired, resolveAnnotationRanges, sanitizeImageURL, saveSelectedShapeForSelectorType, showWidgetPreview, supportsDetection, toOverlayAnnotations, tokens, useAdmin, useAnnotationManager, useAnnotations, useApiClient, useAttentionStream, useAuthApi, useAuthToken, useBeckonFlow, useBindFlow, useCacheManager, useContextGatherFlow, useDebounce, useDebouncedCallback, useDocumentAnnouncements, useDoubleKeyPress, useDropdown, useEntityTypes, useEventBus, useEventSubscription, useEventSubscriptions, useFormAnnouncements, useGlobalEvents, useHealth, useHoverDelay, useHoverEmitter, useIsTyping, useKeyboardShortcuts, useLanguageChangeAnnouncements, useLineNumbers, useLiveRegion, useLoadingState, useLocalStorage, useMarkFlow, useModeration, useObservable, useObservableExternalNavigation, useObservableRouter, useOpenResources, usePanelBrowse, usePanelWidth, usePreloadTranslations, useResourceAnnotations, useResourceContent, useResourceEvents, useResourceLoadingAnnouncements, useResources, useRovingTabIndex, useSearchAnnouncements, useSessionExpiry, useStoreTokenSync, useTheme, useToast, useTranslations, useYieldFlow };
|
|
3287
|
+
* - For a `BehaviorSubject` (or anything with a `getValue()` method), returns
|
|
3288
|
+
* its current value synchronously at the first render. This matters for
|
|
3289
|
+
* callers that build derived objects in a `useState(factory)` initializer
|
|
3290
|
+
* at first render — they need the subject's value present immediately, not
|
|
3291
|
+
* after a second render triggered by the useEffect subscribe.
|
|
3292
|
+
*
|
|
3293
|
+
* We duck-type on `.getValue` rather than using `instanceof BehaviorSubject`
|
|
3294
|
+
* because rxjs can be loaded through multiple module realms in tests (e.g.
|
|
3295
|
+
* a bundled CJS copy inside `@semiont/react-ui/dist` vs a fresh ESM import
|
|
3296
|
+
* in the test file), which makes `instanceof` unreliable.
|
|
3297
|
+
* - For non-BehaviorSubject Observables, starts at `undefined` and emits
|
|
3298
|
+
* asynchronously after the subscribe.
|
|
3299
|
+
* - Accepts `undefined`/`null` for cases where the observable's source isn't
|
|
3300
|
+
* ready yet (e.g. `semiont?.browse.events(rUri)` when the active session is
|
|
3301
|
+
* still loading). In that case the hook is a no-op and returns undefined.
|
|
3302
|
+
* - Unsubscribes automatically on unmount or when `obs$` changes.
|
|
3303
|
+
*/
|
|
3304
|
+
declare function useObservable<T>(obs$: Observable<T> | null | undefined): T | undefined;
|
|
3305
|
+
|
|
3306
|
+
export { ANNOTATORS, AVAILABLE_LOCALES, AdminDevOpsPage, type AdminDevOpsPageProps, AdminExchangePage, type AdminExchangePageProps, type AdminExchangePageTranslations, AdminSecurityPage, type AdminSecurityPageProps, type AdminUser, type AdminUserStats, AdminUsersPage, type AdminUsersPageProps, AnnotateReferencesProgressWidget, AnnotateToolbar, AnnotateView, type Annotation$k as Annotation, type AnnotationConfig, type AnnotationCreationHandler, type AnnotationHandlers, AnnotationHistory, type AnnotationManager, AnnotationOverlay, AnnotationProvider, type AnnotationProviderProps, type AnnotationUIState, type AnnotationsCollection, type Annotator, AssessmentEntry, AssessmentPanel, AssistSection, AsyncErrorBoundary, AuthErrorDisplay, type AuthErrorDisplayProps, type AvailableLocale, type BorderRadiusToken, BrowseView, Button, ButtonGroup, type ButtonGroupProps, type ButtonProps, type ClickAction, CodeMirrorRenderer, CollaborationPanel, CollapsibleResourceNavigation, type CollapsibleResourceNavigationProps, type ColorToken, CommentEntry, CommentsPanel, ComposeLoadingState, type ComposeLoadingStateProps, type CreateAnnotationParams, type CreateConfig, type DeleteAnnotationParams, type DetectionConfig, type DevOpsFeature, type DrawingMode, EntityTagsPage, type EntityTagsPageProps, EntityTypeBadges, ErrorBoundary, ExportCard, type ExportCardProps, type ExportCardTranslations, Footer, HighlightEntry, HighlightPanel, HistoryEvent, type HoverEmitterProps, ImageURLSchema, ImageViewer, ImportCard, type ImportCardProps, type ImportCardTranslations, ImportProgress, type ImportProgressProps, type ImportProgressTranslations, JsonLdPanel, JsonLdView, type KeyboardShortcut, KeyboardShortcutsHelpModal, LeftSidebar, type LinkComponentProps, LinkedDataPage, type LinkedDataPageProps, type LinkedDataPageTranslations, LiveRegionProvider, type Motivation$8 as Motivation, type NavigationItem, NavigationMenu, type NavigationMenuHelper, type NavigationProps, type OAuthProvider, type OAuthUser, OAuthUserSchema, ObservableLink, type ObservableLinkProps, type OverlayAnnotation, PageLayout, PanelHeader, PermissionDeniedModal, PopupContainer, PopupHeader, ProtectedErrorBoundary, RecentDocumentsPage, type RecentDocumentsPageProps, ReferenceEntry, ReferenceResolutionWidget, ReferenceWizardModal, type ReferenceWizardModalProps, ReferencesPanel, ResizeHandle, type ResolvedTheme, ResourceAnnotationsProvider, ResourceCard, type ResourceCardProps, ResourceComposePage, type ResourceComposePageProps, ResourceDiscoveryPage, type ResourceDiscoveryPageProps, ResourceErrorState, type ResourceErrorStateProps, ResourceInfoPanel, ResourceLoadingState, ResourceSearchModal, type ResourceSearchModalProps, ResourceTagsInline, ResourceViewer, ResourceViewerPage, type ResourceViewerPageProps, type RouteBuilder, SearchModal, type SearchModalProps, SelectedTextDisplay, type SelectionMotivation, type SelectorType, SemiontBranding, SemiontFavicon, SemiontProvider, type SemiontProviderProps, type SemiontResource$4 as SemiontResource, SessionExpiredModal, SessionExpiryBanner, SessionTimer, SettingsPanel, type ShadowToken, type ShapeType, SignInForm, type SignInFormProps, SignUpForm, type SignUpFormProps, SimpleNavigation, type SimpleNavigationItem, type SimpleNavigationProps, SkipLinks, SortableResourceTab, type SortableResourceTabProps, type SpacingToken, StatisticsPanel, StatusDisplay, SvgDrawingCanvas, TagEntry, TagSchemasPage, type TagSchemasPageProps, TaggingPanel, type TextSegment, type TextSelection, type Theme, ThemeProvider, ToastContainer, type ToastMessage, ToastProvider, type ToastType, Toolbar, type TransitionToken, TranslationManager, TranslationProvider, type TranslationProviderProps, type TypographyToken, type UICreateAnnotationParams, UnifiedAnnotationsPanel, UnifiedHeader, type UseResourceContentResult, UserMenuSkeleton, WebBrowserStorage, WelcomePage, type WelcomePageProps, applyHighlights, buildSourceToRenderedMap, buildTextNodeIndex, buttonStyles, clearHighlights, cssVariables, faviconPaths, formatTime, generateCSSVariables, getResourceIcon, getSelectedShapeForSelectorType, getSelectorType, getShortcutDisplay, getSupportedShapes, hideWidgetPreview, isShapeSupported, jsonLightHighlightStyle, jsonLightTheme, resolveAnnotationRanges, sanitizeImageURL, saveSelectedShapeForSelectorType, showWidgetPreview, supportsDetection, toOverlayAnnotations, tokens, useAnnotationManager, useDebounce, useDebouncedCallback, useDocumentAnnouncements, useDoubleKeyPress, useDropdown, useEventSubscription, useEventSubscriptions, useFormAnnouncements, useHoverDelay, useHoverEmitter, useIsTyping, useKeyboardShortcuts, useLanguageChangeAnnouncements, useLineNumbers, useLiveRegion, useLoadingState, useLocalStorage, useObservable, useObservableExternalNavigation, useObservableRouter, usePanelWidth, usePreloadTranslations, useResourceAnnotations, useResourceContent, useResourceLoadingAnnouncements, useRovingTabIndex, useSearchAnnouncements, useSemiont, useSessionExpiry, useShellVM, useTheme, useToast, useTranslations, useViewModel };
|