@semiont/react-ui 0.4.14 → 0.4.16

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.
Files changed (169) hide show
  1. package/README.md +18 -12
  2. package/dist/KnowledgeBaseSessionContext-BNNunwzO.d.mts +175 -0
  3. package/dist/{PdfAnnotationCanvas.client-CW6SKH2U.mjs → PdfAnnotationCanvas.client-CHDCGQBR.mjs} +3 -3
  4. package/dist/{ar-R4CRNXEF.mjs → ar-3W37O3R3.mjs} +9 -3
  5. package/dist/ar-3W37O3R3.mjs.map +1 -0
  6. package/dist/{bn-CZKGRHTA.mjs → bn-JZTJLMVE.mjs} +9 -3
  7. package/dist/bn-JZTJLMVE.mjs.map +1 -0
  8. package/dist/chunk-FAI3S4BM.mjs +865 -0
  9. package/dist/chunk-FAI3S4BM.mjs.map +1 -0
  10. package/dist/{chunk-HVMAGUFA.mjs → chunk-NOD3NCXE.mjs} +3 -1
  11. package/dist/chunk-NOD3NCXE.mjs.map +1 -0
  12. package/dist/{chunk-HNZOXH4L.mjs → chunk-OZICDVH7.mjs} +5 -3
  13. package/dist/chunk-OZICDVH7.mjs.map +1 -0
  14. package/dist/{chunk-BQJWOK4C.mjs → chunk-VN5NY4SN.mjs} +9 -8
  15. package/dist/chunk-VN5NY4SN.mjs.map +1 -0
  16. package/dist/{cs-4WIB2IHH.mjs → cs-XYHH7HNE.mjs} +9 -3
  17. package/dist/cs-XYHH7HNE.mjs.map +1 -0
  18. package/dist/{da-JWYEUYPX.mjs → da-MZKIECVT.mjs} +9 -3
  19. package/dist/da-MZKIECVT.mjs.map +1 -0
  20. package/dist/{de-GWUQZGER.mjs → de-AYXTMRQW.mjs} +9 -3
  21. package/dist/de-AYXTMRQW.mjs.map +1 -0
  22. package/dist/{el-DM2GT7P5.mjs → el-A6CVQWAW.mjs} +9 -3
  23. package/dist/el-A6CVQWAW.mjs.map +1 -0
  24. package/dist/{en-IUV4ZXKH.mjs → en-YPQQBI4T.mjs} +2 -2
  25. package/dist/{es-6LVQIM3D.mjs → es-M2HXLJGT.mjs} +9 -3
  26. package/dist/es-M2HXLJGT.mjs.map +1 -0
  27. package/dist/{fa-IRUJY3QI.mjs → fa-V6JZJDYP.mjs} +9 -3
  28. package/dist/fa-V6JZJDYP.mjs.map +1 -0
  29. package/dist/{fi-53FBOEVT.mjs → fi-ONDTZ5H7.mjs} +9 -3
  30. package/dist/fi-ONDTZ5H7.mjs.map +1 -0
  31. package/dist/{fr-Q5KY7QL6.mjs → fr-PAPV4H4G.mjs} +9 -3
  32. package/dist/fr-PAPV4H4G.mjs.map +1 -0
  33. package/dist/{he-HJNKULBY.mjs → he-F6VTLJLW.mjs} +9 -3
  34. package/dist/he-F6VTLJLW.mjs.map +1 -0
  35. package/dist/{hi-UYZ4X6CR.mjs → hi-CFUAV4BF.mjs} +9 -3
  36. package/dist/hi-CFUAV4BF.mjs.map +1 -0
  37. package/dist/{id-UAQMH6U2.mjs → id-NBKLCCI7.mjs} +9 -3
  38. package/dist/id-NBKLCCI7.mjs.map +1 -0
  39. package/dist/index.d.mts +141 -169
  40. package/dist/index.mjs +2394 -2116
  41. package/dist/index.mjs.map +1 -1
  42. package/dist/{it-C7QEBNFA.mjs → it-SLSOWVVU.mjs} +9 -3
  43. package/dist/it-SLSOWVVU.mjs.map +1 -0
  44. package/dist/{ja-THS6AOSJ.mjs → ja-L5IG4ECE.mjs} +9 -3
  45. package/dist/ja-L5IG4ECE.mjs.map +1 -0
  46. package/dist/{ko-XKK3TWQG.mjs → ko-QYMTULKK.mjs} +9 -3
  47. package/dist/ko-QYMTULKK.mjs.map +1 -0
  48. package/dist/{ms-GSK7LIF7.mjs → ms-5DGSFKM2.mjs} +9 -3
  49. package/dist/ms-5DGSFKM2.mjs.map +1 -0
  50. package/dist/{nl-KUBWITGY.mjs → nl-VZPCGONO.mjs} +9 -3
  51. package/dist/nl-VZPCGONO.mjs.map +1 -0
  52. package/dist/{no-ECWZUHT6.mjs → no-MF6F352I.mjs} +9 -3
  53. package/dist/no-MF6F352I.mjs.map +1 -0
  54. package/dist/{pl-PLVWSZWS.mjs → pl-WIK72JUO.mjs} +9 -3
  55. package/dist/pl-WIK72JUO.mjs.map +1 -0
  56. package/dist/{pt-AL74ZTKB.mjs → pt-RRP5ZF6A.mjs} +9 -3
  57. package/dist/pt-RRP5ZF6A.mjs.map +1 -0
  58. package/dist/{ro-WTPHLHGS.mjs → ro-XHQLC3T7.mjs} +9 -3
  59. package/dist/ro-XHQLC3T7.mjs.map +1 -0
  60. package/dist/{sv-QCLI7SG4.mjs → sv-EWULDN6E.mjs} +9 -3
  61. package/dist/sv-EWULDN6E.mjs.map +1 -0
  62. package/dist/test-utils.d.mts +13 -62
  63. package/dist/test-utils.mjs +41 -22
  64. package/dist/test-utils.mjs.map +1 -1
  65. package/dist/{th-WCKVZU6U.mjs → th-TGOBHFG4.mjs} +9 -3
  66. package/dist/th-TGOBHFG4.mjs.map +1 -0
  67. package/dist/{tr-2CAFS2XS.mjs → tr-LMMPBMV7.mjs} +9 -3
  68. package/dist/tr-LMMPBMV7.mjs.map +1 -0
  69. package/dist/{uk-TDE4JLCY.mjs → uk-IPGRRJY6.mjs} +9 -3
  70. package/dist/uk-IPGRRJY6.mjs.map +1 -0
  71. package/dist/{vi-KKXZ4PCX.mjs → vi-Q676OJQS.mjs} +9 -3
  72. package/dist/vi-Q676OJQS.mjs.map +1 -0
  73. package/dist/{zh-VH4XN5PV.mjs → zh-F3MTWQDX.mjs} +9 -3
  74. package/dist/zh-F3MTWQDX.mjs.map +1 -0
  75. package/package.json +5 -3
  76. package/src/components/ProtectedErrorBoundary.tsx +95 -0
  77. package/src/components/__tests__/ProtectedErrorBoundary.test.tsx +197 -0
  78. package/src/components/modals/PermissionDeniedModal.tsx +140 -0
  79. package/src/components/modals/ReferenceWizardModal.tsx +3 -2
  80. package/src/components/modals/SessionExpiredModal.tsx +101 -0
  81. package/src/components/modals/__tests__/PermissionDeniedModal.test.tsx +150 -0
  82. package/src/components/modals/__tests__/SessionExpiredModal.test.tsx +115 -0
  83. package/src/components/resource/AnnotationHistory.tsx +5 -6
  84. package/src/components/resource/HistoryEvent.tsx +9 -8
  85. package/src/components/resource/__tests__/AnnotationHistory.test.tsx +33 -34
  86. package/src/components/resource/__tests__/HistoryEvent.test.tsx +18 -19
  87. package/src/components/resource/__tests__/event-formatting.test.ts +70 -94
  88. package/src/components/resource/event-formatting.ts +92 -56
  89. package/src/components/resource/panels/ReferenceEntry.tsx +7 -5
  90. package/src/components/resource/panels/ResourceInfoPanel.tsx +18 -6
  91. package/src/components/resource/panels/__tests__/ReferenceEntry.test.tsx +12 -12
  92. package/src/components/resource/panels/__tests__/ResourceInfoPanel.test.tsx +24 -0
  93. package/src/features/resource-compose/components/ResourceComposePage.tsx +10 -1
  94. package/src/features/resource-viewer/__tests__/AnnotationCreationPending.test.tsx +1 -1
  95. package/src/features/resource-viewer/__tests__/AnnotationDeletionIntegration.test.tsx +4 -4
  96. package/src/features/resource-viewer/__tests__/AnnotationProgressDismissal.test.tsx +5 -10
  97. package/src/features/resource-viewer/__tests__/BindFlowIntegration.test.tsx +23 -54
  98. package/src/features/resource-viewer/__tests__/DetectionFlowBug.test.tsx +6 -6
  99. package/src/features/resource-viewer/__tests__/DetectionFlowIntegration.test.tsx +7 -19
  100. package/src/features/resource-viewer/__tests__/ToastNotifications.test.tsx +1 -1
  101. package/src/features/resource-viewer/__tests__/YieldFlowIntegration.test.tsx +18 -44
  102. package/src/features/resource-viewer/__tests__/annotation-progress-flow.test.tsx +6 -6
  103. package/src/features/resource-viewer/components/ResourceViewerPage.tsx +26 -26
  104. package/src/styles/features/compose.css +63 -0
  105. package/translations/ar.json +6 -2
  106. package/translations/bn.json +6 -2
  107. package/translations/cs.json +6 -2
  108. package/translations/da.json +6 -2
  109. package/translations/de.json +6 -2
  110. package/translations/el.json +6 -2
  111. package/translations/en.json +2 -0
  112. package/translations/es.json +6 -2
  113. package/translations/fa.json +6 -2
  114. package/translations/fi.json +6 -2
  115. package/translations/fr.json +6 -2
  116. package/translations/he.json +6 -2
  117. package/translations/hi.json +6 -2
  118. package/translations/id.json +6 -2
  119. package/translations/it.json +6 -2
  120. package/translations/ja.json +6 -2
  121. package/translations/ko.json +6 -2
  122. package/translations/ms.json +6 -2
  123. package/translations/nl.json +6 -2
  124. package/translations/no.json +6 -2
  125. package/translations/pl.json +6 -2
  126. package/translations/pt.json +6 -2
  127. package/translations/ro.json +6 -2
  128. package/translations/sv.json +6 -2
  129. package/translations/th.json +6 -2
  130. package/translations/tr.json +6 -2
  131. package/translations/uk.json +6 -2
  132. package/translations/vi.json +6 -2
  133. package/translations/zh.json +6 -2
  134. package/dist/TranslationManager-CudgH3gw.d.mts +0 -107
  135. package/dist/ar-R4CRNXEF.mjs.map +0 -1
  136. package/dist/bn-CZKGRHTA.mjs.map +0 -1
  137. package/dist/chunk-BQJWOK4C.mjs.map +0 -1
  138. package/dist/chunk-HNZOXH4L.mjs.map +0 -1
  139. package/dist/chunk-HVMAGUFA.mjs.map +0 -1
  140. package/dist/chunk-OL5UST25.mjs +0 -413
  141. package/dist/chunk-OL5UST25.mjs.map +0 -1
  142. package/dist/cs-4WIB2IHH.mjs.map +0 -1
  143. package/dist/da-JWYEUYPX.mjs.map +0 -1
  144. package/dist/de-GWUQZGER.mjs.map +0 -1
  145. package/dist/el-DM2GT7P5.mjs.map +0 -1
  146. package/dist/es-6LVQIM3D.mjs.map +0 -1
  147. package/dist/fa-IRUJY3QI.mjs.map +0 -1
  148. package/dist/fi-53FBOEVT.mjs.map +0 -1
  149. package/dist/fr-Q5KY7QL6.mjs.map +0 -1
  150. package/dist/he-HJNKULBY.mjs.map +0 -1
  151. package/dist/hi-UYZ4X6CR.mjs.map +0 -1
  152. package/dist/id-UAQMH6U2.mjs.map +0 -1
  153. package/dist/it-C7QEBNFA.mjs.map +0 -1
  154. package/dist/ja-THS6AOSJ.mjs.map +0 -1
  155. package/dist/ko-XKK3TWQG.mjs.map +0 -1
  156. package/dist/ms-GSK7LIF7.mjs.map +0 -1
  157. package/dist/nl-KUBWITGY.mjs.map +0 -1
  158. package/dist/no-ECWZUHT6.mjs.map +0 -1
  159. package/dist/pl-PLVWSZWS.mjs.map +0 -1
  160. package/dist/pt-AL74ZTKB.mjs.map +0 -1
  161. package/dist/ro-WTPHLHGS.mjs.map +0 -1
  162. package/dist/sv-QCLI7SG4.mjs.map +0 -1
  163. package/dist/th-WCKVZU6U.mjs.map +0 -1
  164. package/dist/tr-2CAFS2XS.mjs.map +0 -1
  165. package/dist/uk-TDE4JLCY.mjs.map +0 -1
  166. package/dist/vi-KKXZ4PCX.mjs.map +0 -1
  167. package/dist/zh-VH4XN5PV.mjs.map +0 -1
  168. /package/dist/{PdfAnnotationCanvas.client-CW6SKH2U.mjs.map → PdfAnnotationCanvas.client-CHDCGQBR.mjs.map} +0 -0
  169. /package/dist/{en-IUV4ZXKH.mjs.map → en-YPQQBI4T.mjs.map} +0 -0
package/dist/index.d.mts CHANGED
@@ -1,13 +1,13 @@
1
1
  import * as _semiont_core from '@semiont/core';
2
- import { components, ResourceId, Selector, AnnotationId, ResourceEvent, EventBus, EventMap, MarkProgress, StoredEventLike, paths, GatheredContext, Motivation as Motivation$9, YieldProgress } from '@semiont/core';
2
+ import { components, ResourceId, Selector, AnnotationId, PersistedEvent, EventBus, EventMap, MarkProgress, StoredEventLike, paths, GatheredContext, Motivation as Motivation$9, YieldProgress } from '@semiont/core';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import * as React$1 from 'react';
5
5
  import React__default, { ComponentType, ReactNode, KeyboardEvent as KeyboardEvent$1, Component, ErrorInfo, Ref } from 'react';
6
- import { O as OpenResourcesManager, S as SessionManager, T as TranslationManager, a as OpenResource } from './TranslationManager-CudgH3gw.mjs';
7
- export { b as SessionState } from './TranslationManager-CudgH3gw.mjs';
6
+ import { O as OpenResourcesManager, K as KbSessionStatus, a as KnowledgeBase, T as TranslationManager, b as OpenResource } from './KnowledgeBaseSessionContext-BNNunwzO.mjs';
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
8
  import * as _tanstack_react_query from '@tanstack/react-query';
9
9
  import { UseQueryOptions } from '@tanstack/react-query';
10
- import { SemiontApiClient, ValidationResult } from '@semiont/api-client';
10
+ import { SemiontApiClient, ValidationResult, TokenRefresher } from '@semiont/api-client';
11
11
  import * as _codemirror_state from '@codemirror/state';
12
12
  import { HighlightStyle } from '@codemirror/language';
13
13
  import { WidgetType } from '@codemirror/view';
@@ -362,21 +362,7 @@ declare function useResources(): {
362
362
  };
363
363
  events: {
364
364
  useQuery: (id: ResourceId) => _tanstack_react_query.UseQueryResult<{
365
- events: {
366
- event: {
367
- id: string;
368
- type: string;
369
- timestamp: string;
370
- userId: string;
371
- resourceId: string;
372
- payload?: unknown;
373
- };
374
- metadata: {
375
- sequenceNumber: number;
376
- prevEventHash?: string;
377
- checksum?: string;
378
- };
379
- }[];
365
+ events: _semiont_core.components["schemas"]["StoredEventResponse"][];
380
366
  total: number;
381
367
  resourceId: string;
382
368
  }, Error>;
@@ -478,51 +464,7 @@ declare function useAnnotations(): {
478
464
  };
479
465
  history: {
480
466
  useQuery: (resourceId: ResourceId, annotationId: AnnotationId) => _tanstack_react_query.UseQueryResult<{
481
- events: {
482
- id: string;
483
- type: string;
484
- timestamp: string;
485
- userId: string;
486
- resourceId: string;
487
- payload: {
488
- name: string;
489
- format: _semiont_core.components["schemas"]["ContentFormat"];
490
- contentChecksum: string;
491
- creationMethod: "api" | "upload" | "ui" | "reference" | "clone" | "generated";
492
- entityTypes?: string[];
493
- metadata?: {
494
- [key: string]: unknown;
495
- };
496
- } | {
497
- name: string;
498
- format: _semiont_core.components["schemas"]["ContentFormat"];
499
- contentChecksum: string;
500
- parentResourceId: string;
501
- creationMethod: "api" | "upload" | "ui" | "reference" | "clone" | "generated";
502
- entityTypes?: string[];
503
- metadata?: {
504
- [key: string]: unknown;
505
- };
506
- } | {
507
- reason?: string;
508
- } | Record<string, never> | {
509
- annotation: _semiont_core.components["schemas"]["Annotation"];
510
- } | {
511
- annotationId: string;
512
- } | {
513
- annotationId: string;
514
- targetResourceId: string;
515
- } | {
516
- entityType: string;
517
- } | {
518
- entityType: string;
519
- };
520
- metadata: {
521
- sequenceNumber: number;
522
- prevEventHash?: string;
523
- checksum?: string;
524
- };
525
- }[];
467
+ events: _semiont_core.components["schemas"]["StoredEventResponse"][];
526
468
  total: number;
527
469
  annotationId: string;
528
470
  resourceId: string;
@@ -543,7 +485,9 @@ declare function useAnnotations(): {
543
485
  }, unknown>;
544
486
  };
545
487
  updateBody: {
546
- useMutation: () => _tanstack_react_query.UseMutationResult<void, Error, {
488
+ useMutation: () => _tanstack_react_query.UseMutationResult<{
489
+ correlationId: string;
490
+ }, Error, {
547
491
  resourceId: ResourceId;
548
492
  annotationId: AnnotationId;
549
493
  data: Parameters<SemiontApiClient["bindAnnotation"]>[2];
@@ -763,41 +707,11 @@ declare function useHealth(): {
763
707
  message: string;
764
708
  authenticatedAs?: string;
765
709
  projectName?: string;
710
+ gitBranch?: string;
766
711
  }, Error>;
767
712
  };
768
713
  };
769
714
 
770
- /**
771
- * Global authentication event system for coordinating auth state across components
772
- */
773
- declare const AUTH_EVENTS: {
774
- readonly UNAUTHORIZED: "auth:unauthorized";
775
- readonly FORBIDDEN: "auth:forbidden";
776
- readonly SESSION_EXPIRED: "auth:session-expired";
777
- };
778
- type AuthEventType = typeof AUTH_EVENTS[keyof typeof AUTH_EVENTS];
779
- interface AuthEventDetail {
780
- message?: string;
781
- statusCode?: number;
782
- timestamp: number;
783
- }
784
- /**
785
- * Dispatch an authentication event
786
- */
787
- declare function dispatchAuthEvent(type: AuthEventType, detail?: Partial<AuthEventDetail>): void;
788
- /**
789
- * Listen for authentication events
790
- */
791
- declare function onAuthEvent(type: AuthEventType, handler: (event: CustomEvent<AuthEventDetail>) => void): () => void;
792
- /**
793
- * Dispatch a 401 Unauthorized event
794
- */
795
- declare function dispatch401Error(message?: string): void;
796
- /**
797
- * Dispatch a 403 Forbidden event
798
- */
799
- declare function dispatch403Error(message?: string): void;
800
-
801
715
  /**
802
716
  * Centralized button styles matching Figma design
803
717
  * Two primary styles from authenticated home page:
@@ -1318,27 +1232,27 @@ storageKey }?: UsePanelWidthOptions): {
1318
1232
  type StreamStatus = 'disconnected' | 'connecting' | 'connected' | 'error';
1319
1233
  interface UseResourceEventsOptions {
1320
1234
  rUri: ResourceId;
1321
- onEvent?: (event: ResourceEvent) => void;
1322
- onAnnotationAdded?: (event: Extract<ResourceEvent, {
1323
- type: 'annotation.added';
1235
+ onEvent?: (event: PersistedEvent) => void;
1236
+ onAnnotationAdded?: (event: Extract<PersistedEvent, {
1237
+ type: 'mark:added';
1324
1238
  }>) => void;
1325
- onAnnotationRemoved?: (event: Extract<ResourceEvent, {
1326
- type: 'annotation.removed';
1239
+ onAnnotationRemoved?: (event: Extract<PersistedEvent, {
1240
+ type: 'mark:removed';
1327
1241
  }>) => void;
1328
- onAnnotationBodyUpdated?: (event: Extract<ResourceEvent, {
1329
- type: 'annotation.body.updated';
1242
+ onAnnotationBodyUpdated?: (event: Extract<PersistedEvent, {
1243
+ type: 'mark:body-updated';
1330
1244
  }>) => void;
1331
- onEntityTagAdded?: (event: Extract<ResourceEvent, {
1332
- type: 'entitytag.added';
1245
+ onEntityTagAdded?: (event: Extract<PersistedEvent, {
1246
+ type: 'mark:entity-tag-added';
1333
1247
  }>) => void;
1334
- onEntityTagRemoved?: (event: Extract<ResourceEvent, {
1335
- type: 'entitytag.removed';
1248
+ onEntityTagRemoved?: (event: Extract<PersistedEvent, {
1249
+ type: 'mark:entity-tag-removed';
1336
1250
  }>) => void;
1337
- onDocumentArchived?: (event: Extract<ResourceEvent, {
1338
- type: 'resource.archived';
1251
+ onDocumentArchived?: (event: Extract<PersistedEvent, {
1252
+ type: 'mark:archived';
1339
1253
  }>) => void;
1340
- onDocumentUnarchived?: (event: Extract<ResourceEvent, {
1341
- type: 'resource.unarchived';
1254
+ onDocumentUnarchived?: (event: Extract<PersistedEvent, {
1255
+ type: 'mark:unarchived';
1342
1256
  }>) => void;
1343
1257
  onError?: (error: string) => void;
1344
1258
  autoConnect?: boolean;
@@ -1360,7 +1274,7 @@ interface UseResourceEventsOptions {
1360
1274
  */
1361
1275
  declare function useResourceEvents({ rUri, onEvent, onAnnotationAdded, onAnnotationRemoved, onAnnotationBodyUpdated, onEntityTagAdded, onEntityTagRemoved, onDocumentArchived, onDocumentUnarchived, onError, autoConnect, }: UseResourceEventsOptions): {
1362
1276
  status: StreamStatus;
1363
- lastEvent: ResourceEvent | null;
1277
+ lastEvent: PersistedEvent | null;
1364
1278
  eventCount: number;
1365
1279
  connect: () => void;
1366
1280
  disconnect: () => void;
@@ -1401,6 +1315,11 @@ declare function useRovingTabIndex<T extends HTMLElement>(itemCount: number, opt
1401
1315
  focusItem: (index: number) => void;
1402
1316
  };
1403
1317
 
1318
+ /**
1319
+ * Tracks the time remaining on the active KB session's JWT and whether it's
1320
+ * expiring soon (< 5 minutes). Re-derives once per second from the
1321
+ * KnowledgeBaseSession context.
1322
+ */
1404
1323
  declare function useSessionExpiry(): {
1405
1324
  timeRemaining: number | null;
1406
1325
  isExpiringSoon: boolean;
@@ -1508,6 +1427,13 @@ declare function useAnnotationManager(): AnnotationManager;
1508
1427
 
1509
1428
  interface ApiClientProviderProps {
1510
1429
  baseUrl: string;
1430
+ /**
1431
+ * Optional 401-recovery hook. If provided, the api-client will retry
1432
+ * requests once with a fresh token when a 401 is encountered. The
1433
+ * frontend's protected layouts pass `useKnowledgeBaseSession().refreshActive`
1434
+ * here so the api-client can transparently recover from expired access tokens.
1435
+ */
1436
+ tokenRefresher?: TokenRefresher;
1511
1437
  children: ReactNode;
1512
1438
  }
1513
1439
  /**
@@ -1516,7 +1442,7 @@ interface ApiClientProviderProps {
1516
1442
  * The EventBus is taken from EventBusContext so client and UI components
1517
1443
  * share the same workspace-scoped bus.
1518
1444
  */
1519
- declare function ApiClientProvider({ baseUrl: url, children, }: ApiClientProviderProps): react_jsx_runtime.JSX.Element;
1445
+ declare function ApiClientProvider({ baseUrl: url, tokenRefresher, children, }: ApiClientProviderProps): react_jsx_runtime.JSX.Element;
1520
1446
  /**
1521
1447
  * Hook to access the stateless API client singleton
1522
1448
  * Must be used within an ApiClientProvider
@@ -1636,7 +1562,7 @@ declare function useEventBus(): EventBus;
1636
1562
  *
1637
1563
  * @example
1638
1564
  * ```tsx
1639
- * useEventSubscription('mark:created', ({ annotation }) => {
1565
+ * useEventSubscription('mark:create-ok', ({ annotationId }) => {
1640
1566
  * // This always uses the latest props/state
1641
1567
  * triggerSparkleAnimation(annotation.id);
1642
1568
  * });
@@ -1649,8 +1575,8 @@ declare function useEventSubscription<K extends keyof EventMap>(eventName: K, ha
1649
1575
  * @example
1650
1576
  * ```tsx
1651
1577
  * useEventSubscriptions({
1652
- * 'mark:created': ({ annotation }) => setNewAnnotation(annotation),
1653
- * 'mark:deleted': ({ annotationId }) => removeAnnotation(annotationId),
1578
+ * 'mark:create-ok': ({ annotationId }) => handleCreated(annotationId),
1579
+ * 'mark:delete-ok': ({ annotationId }) => removeAnnotation(annotationId),
1654
1580
  * });
1655
1581
  * ```
1656
1582
  */
@@ -1755,31 +1681,38 @@ interface RouteBuilder {
1755
1681
  }
1756
1682
 
1757
1683
  /**
1758
- * Provider Pattern: Accepts SessionManager implementation as prop
1759
- * and makes it available to child components via Context.
1760
- *
1761
- * Apps provide their own implementation (next-auth, custom auth, etc.)
1762
- * and pass it to this provider at the root level.
1684
+ * Pure helpers for the KnowledgeBaseSession provider.
1763
1685
  *
1764
- * @example
1765
- * ```tsx
1766
- * // In app root
1767
- * const sessionManager = useSessionManager(); // App's implementation
1686
+ * Contains:
1687
+ * - localStorage shape and read/write helpers for KB list, active KB id,
1688
+ * and per-KB sessions
1689
+ * - JWT expiry parsing and "is expired" check
1690
+ * - URL/protocol helpers for KB instances
1691
+ * - The public `getKbSessionStatus(kbId)` helper that the KB-list UI uses
1692
+ * to color status dots without subscribing to context changes
1768
1693
  *
1769
- * <SessionProvider sessionManager={sessionManager}>
1770
- * <App />
1771
- * </SessionProvider>
1772
- * ```
1694
+ * No React imports, no module-scoped state, no side effects beyond
1695
+ * localStorage. Splitting these out of the provider file makes them
1696
+ * unit-testable in isolation and keeps the React provider focused on
1697
+ * lifecycle and state.
1773
1698
  */
1774
- declare function SessionProvider({ sessionManager, children }: {
1775
- sessionManager: SessionManager;
1776
- children: ReactNode;
1777
- }): react_jsx_runtime.JSX.Element;
1699
+
1700
+ /** The shape persisted to localStorage per KB. */
1701
+ interface StoredSession {
1702
+ access: string;
1703
+ refresh: string;
1704
+ }
1705
+ declare function defaultProtocol(host: string): 'http' | 'https';
1706
+ declare function kbBackendUrl(kb: KnowledgeBase): string;
1778
1707
  /**
1779
- * Hook to access SessionManager from Context
1780
- * Components use this hook to access session state and expiry information
1708
+ * Read the locally-stored credential status for a KB. Pure / synchronous —
1709
+ * does not subscribe to context changes. Used by KB-list UI to color status
1710
+ * dots without requiring re-renders on every tick.
1781
1711
  */
1782
- declare function useSessionContext(): SessionManager;
1712
+ declare function getKbSessionStatus(kbId: string): KbSessionStatus;
1713
+
1714
+ declare function notifySessionExpired(message?: string): void;
1715
+ declare function notifyPermissionDenied(message?: string): void;
1783
1716
 
1784
1717
  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"];
1785
1718
  type AvailableLocale = typeof AVAILABLE_LOCALES[number];
@@ -1907,6 +1840,31 @@ declare function AsyncErrorBoundary({ children }: {
1907
1840
  children: ReactNode;
1908
1841
  }): react_jsx_runtime.JSX.Element;
1909
1842
 
1843
+ interface ProtectedErrorBoundaryProps {
1844
+ children: React__default.ReactNode;
1845
+ /**
1846
+ * Values that, when any change, reset the boundary back to its non-error
1847
+ * state. Apps typically pass `[location.pathname]` so navigating away from
1848
+ * a crashed page automatically recovers.
1849
+ */
1850
+ resetKeys?: unknown[];
1851
+ }
1852
+ /**
1853
+ * Error boundary for protected (authenticated) routes.
1854
+ *
1855
+ * Catches unexpected render-time crashes inside the protected tree and
1856
+ * shows a generic "something went wrong" fallback with a refresh option.
1857
+ *
1858
+ * NOT auth-specific. Auth state changes (sign-in, sign-out, expiry) flow
1859
+ * through the KnowledgeBaseSession context, not exceptions — so this
1860
+ * boundary will never catch an "auth error" in normal operation. Its job
1861
+ * is purely to keep a render bug from blanking the screen.
1862
+ *
1863
+ * The optional `resetKeys` prop lets callers wire automatic recovery on
1864
+ * navigation (e.g. `resetKeys={[location.pathname]}`).
1865
+ */
1866
+ declare function ProtectedErrorBoundary({ children, resetKeys, }: ProtectedErrorBoundaryProps): react_jsx_runtime.JSX.Element;
1867
+
1910
1868
  type Annotation$f = components['schemas']['Annotation'];
1911
1869
  interface LiveRegionContextType {
1912
1870
  announce: (message: string, priority?: 'polite' | 'assertive') => void;
@@ -2124,6 +2082,18 @@ interface KeyboardShortcutsHelpModalProps {
2124
2082
  }
2125
2083
  declare function KeyboardShortcutsHelpModal({ isOpen, onClose }: KeyboardShortcutsHelpModalProps): react_jsx_runtime.JSX.Element;
2126
2084
 
2085
+ /**
2086
+ * Modal that surfaces when a 403 forbidden error is reported via
2087
+ * `notifyPermissionDenied` (called from QueryCache.onError).
2088
+ *
2089
+ * Reads `permissionDeniedAt` and `permissionDeniedMessage` from
2090
+ * KnowledgeBaseSessionContext. The provider clears the flag when the user
2091
+ * dismisses the modal.
2092
+ *
2093
+ * Must be mounted inside KnowledgeBaseSessionProvider.
2094
+ */
2095
+ declare function PermissionDeniedModal(): react_jsx_runtime.JSX.Element;
2096
+
2127
2097
  interface ProposeEntitiesModalProps {
2128
2098
  isOpen: boolean;
2129
2099
  onConfirm: (selectedTypes: string[]) => void;
@@ -2131,6 +2101,18 @@ interface ProposeEntitiesModalProps {
2131
2101
  }
2132
2102
  declare function ProposeEntitiesModal({ isOpen, onConfirm, onCancel }: ProposeEntitiesModalProps): react_jsx_runtime.JSX.Element;
2133
2103
 
2104
+ /**
2105
+ * Modal that surfaces when the active KB's session expires (a 401 from
2106
+ * either the provider's own JWT validation or from any React Query call
2107
+ * via the QueryCache.onError handler).
2108
+ *
2109
+ * Reads `sessionExpiredAt` from KnowledgeBaseSessionContext. When the user
2110
+ * dismisses the modal, the provider clears the flag.
2111
+ *
2112
+ * Must be mounted inside KnowledgeBaseSessionProvider.
2113
+ */
2114
+ declare function SessionExpiredModal(): react_jsx_runtime.JSX.Element;
2115
+
2134
2116
  interface Props$8 {
2135
2117
  content: string;
2136
2118
  mimeType?: string;
@@ -2477,10 +2459,12 @@ declare function ReferencesPanel({ annotations, isAssisting, progress, annotateM
2477
2459
 
2478
2460
  type Agent = components['schemas']['Agent'];
2479
2461
  interface Props {
2462
+ resourceId: string;
2480
2463
  documentEntityTypes: string[];
2481
2464
  documentLocale?: string | undefined;
2482
2465
  primaryMediaType?: string | undefined;
2483
2466
  primaryByteSize?: number | undefined;
2467
+ storageUri?: string | undefined;
2484
2468
  isArchived?: boolean;
2485
2469
  dateCreated?: string | undefined;
2486
2470
  dateModified?: string | undefined;
@@ -2492,11 +2476,11 @@ interface Props {
2492
2476
  /**
2493
2477
  * Panel for displaying resource metadata and management actions
2494
2478
  *
2495
- * @emits yield:clone - Clone this resource. Payload: undefined
2496
- * @emits mark:unarchive - Unarchive this resource. Payload: undefined
2497
- * @emits mark:archive - Archive this resource. Payload: undefined
2479
+ * @emits yield:clone - Clone this resource
2480
+ * @emits mark:unarchive - Unarchive this resource
2481
+ * @emits mark:archive - Archive this resource
2498
2482
  */
2499
- declare function ResourceInfoPanel({ documentEntityTypes, documentLocale, primaryMediaType, primaryByteSize, isArchived, dateCreated, dateModified, creationMethod, wasAttributedTo, wasDerivedFrom, generator, }: Props): react_jsx_runtime.JSX.Element;
2483
+ declare function ResourceInfoPanel({ resourceId, documentEntityTypes, documentLocale, primaryMediaType, primaryByteSize, storageUri, isArchived, dateCreated, dateModified, creationMethod, wasAttributedTo, wasDerivedFrom, generator, }: Props): react_jsx_runtime.JSX.Element;
2500
2484
 
2501
2485
  type Annotation$3 = components['schemas']['Annotation'];
2502
2486
  interface StatisticsPanelProps {
@@ -4119,14 +4103,14 @@ declare function useAttentionStream(): {
4119
4103
  /**
4120
4104
  * useMarkFlow - Annotation state management hook
4121
4105
  *
4122
- * Activates mark orchestration (CRUD + AI assist) by delegating to
4123
- * client.flows.mark(). Manages UI state (pendingAnnotation, assistingMotivation,
4106
+ * Bridges EventBus commands to namespace API methods for annotation CRUD
4107
+ * and AI assist. Manages UI state (pendingAnnotation, assistingMotivation,
4124
4108
  * progress) via EventBus subscriptions — the React-specific portion.
4125
4109
  *
4126
- * @subscribes mark:submit, mark:delete, mark:assist-request, job:cancel-requested
4127
- * @subscribes mark:requested, mark:select-*, mark:cancel-pending
4128
- * @subscribes mark:progress, mark:assist-finished, mark:assist-failed
4129
- * @returns Annotation flow state
4110
+ * The FlowEngine's HTTP bridging role is replaced by namespace methods:
4111
+ * - mark:submit semiont.mark.annotation()
4112
+ * - mark:delete semiont.mark.delete()
4113
+ * - mark:assist-request semiont.mark.assist() (Observable)
4130
4114
  */
4131
4115
 
4132
4116
  interface PendingAnnotation {
@@ -4180,13 +4164,9 @@ declare function usePanelBrowse(): PanelBrowseState;
4180
4164
  /**
4181
4165
  * useYieldFlow - Document generation flow hook
4182
4166
  *
4183
- * Activates yield orchestration by delegating to client.flows.yield().
4184
- * Manages generation progress state (React-specific) via EventBus subscriptions.
4185
- *
4186
- * @subscribes yield:request - Triggers SSE call to yieldResource
4187
- * @subscribes job:cancel-requested - Cancels in-flight generation stream
4188
- * @subscribes yield:progress, yield:finished, yield:failed
4189
- * @returns Generation flow state
4167
+ * Triggers yield.fromAnnotation() on the namespace API.
4168
+ * Manages generation progress state (React-specific) via EventBus subscriptions
4169
+ * from the events-stream auto-router.
4190
4170
  */
4191
4171
 
4192
4172
  interface YieldFlowState {
@@ -4207,15 +4187,10 @@ declare function useYieldFlow(locale: string, resourceId: string, clearNewAnnota
4207
4187
  /**
4208
4188
  * useContextGatherFlow - Context gather capability hook
4209
4189
  *
4210
- * Activates gather orchestration for a resource by delegating to
4211
- * client.flows.gatherContext(). Manages UI state (gatherContext, gatherLoading,
4212
- * gatherError, gatherAnnotationId) via EventBus subscriptions the
4213
- * React-specific portion.
4214
- *
4215
- * @subscribes gather:requested - Triggers loading state
4216
- * @subscribes gather:complete - Sets gathered context
4217
- * @subscribes gather:failed - Sets error state
4218
- * @returns Gather flow state
4190
+ * Manages UI state for context gathering. The actual gather trigger
4191
+ * comes from components emitting gather:requested on the EventBus.
4192
+ * This hook bridges to semiont.gather.annotation() and manages the
4193
+ * React state (loading, context, error).
4219
4194
  */
4220
4195
 
4221
4196
  interface ContextGatherFlowConfig {
@@ -4233,14 +4208,11 @@ declare function useContextGatherFlow(config: ContextGatherFlowConfig): ContextG
4233
4208
  /**
4234
4209
  * useBindFlow - Reference resolution flow hook
4235
4210
  *
4236
- * Activates bind + search orchestration for a resource by delegating to
4237
- * client.flows.bind(). All subscription logic lives in FlowEngine (api-client).
4211
+ * Bridges EventBus commands to namespace API methods.
4212
+ * Components emit bind:update-body / match:search-requested on the EventBus;
4213
+ * this hook calls semiont.bind.body() / semiont.match.search() in response.
4238
4214
  *
4239
4215
  * Toast notifications for resolution errors remain here (React-specific).
4240
- *
4241
- * @subscribes bind:update-body - Update annotation body via API
4242
- * @subscribes match:search-requested - Bridge to backend Matcher via SSE
4243
- * @emits bind:body-updated, bind:body-update-failed
4244
4216
  */
4245
4217
 
4246
4218
  declare function useBindFlow(rUri: ResourceId): void;
@@ -4270,4 +4242,4 @@ declare function useObservable<T>(obs$: Observable<T>): T | undefined;
4270
4242
  */
4271
4243
  declare function useStoreTokenSync(): void;
4272
4244
 
4273
- export { ANNOTATORS, AUTH_EVENTS, 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, type AuthEventDetail, type AuthEventType, 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, type KeyboardShortcut, KeyboardShortcutsHelpModal, 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, PopupContainer, PopupHeader, ProposeEntitiesModal, 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, SelectedTextDisplay, type SelectionMotivation, type SelectorType, SemiontBranding, SemiontFavicon, type SemiontResource$4 as SemiontResource, SessionExpiryBanner, SessionManager, SessionProvider, 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 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, cssVariables, dispatch401Error, dispatch403Error, dispatchAuthEvent, faviconPaths, formatTime, generateCSSVariables, getResourceIcon, getSelectedShapeForSelectorType, getSelectorType, getShortcutDisplay, getSupportedShapes, hideWidgetPreview, isShapeSupported, jsonLightHighlightStyle, jsonLightTheme, onAuthEvent, 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, useSessionContext, useSessionExpiry, useStoreTokenSync, useTheme, useToast, useTranslations, useYieldFlow };
4245
+ 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, 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, cssVariables, defaultProtocol, faviconPaths, formatTime, generateCSSVariables, getKbSessionStatus, getResourceIcon, getSelectedShapeForSelectorType, getSelectorType, getShortcutDisplay, getSupportedShapes, hideWidgetPreview, isShapeSupported, 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 };