@semiont/react-ui 0.4.7 → 0.4.10

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 (190) hide show
  1. package/dist/{PdfAnnotationCanvas.client-LF6DDTCV.mjs → PdfAnnotationCanvas.client-CW6SKH2U.mjs} +7 -25
  2. package/dist/PdfAnnotationCanvas.client-CW6SKH2U.mjs.map +1 -0
  3. package/dist/{EventBusContext-DUIMowqQ.d.mts → TranslationManager-CudgH3gw.d.mts} +1 -74
  4. package/dist/{ar-3URRW77J.mjs → ar-R4CRNXEF.mjs} +3 -2
  5. package/dist/ar-R4CRNXEF.mjs.map +1 -0
  6. package/dist/{bn-DCQD3XZ5.mjs → bn-CZKGRHTA.mjs} +3 -2
  7. package/dist/bn-CZKGRHTA.mjs.map +1 -0
  8. package/dist/{chunk-XMCUHQ2Y.mjs → chunk-BQJWOK4C.mjs} +15 -34
  9. package/dist/chunk-BQJWOK4C.mjs.map +1 -0
  10. package/dist/{chunk-5JZFKRLW.mjs → chunk-HNZOXH4L.mjs} +33 -35
  11. package/dist/chunk-HNZOXH4L.mjs.map +1 -0
  12. package/dist/{chunk-PWIVZQ4X.mjs → chunk-HVMAGUFA.mjs} +3 -2
  13. package/dist/chunk-HVMAGUFA.mjs.map +1 -0
  14. package/dist/{chunk-4RMWYJUJ.mjs → chunk-OL5UST25.mjs} +31 -31
  15. package/dist/{cs-23KOZUFE.mjs → cs-4WIB2IHH.mjs} +3 -2
  16. package/dist/cs-4WIB2IHH.mjs.map +1 -0
  17. package/dist/{da-OIQ66A42.mjs → da-JWYEUYPX.mjs} +3 -2
  18. package/dist/da-JWYEUYPX.mjs.map +1 -0
  19. package/dist/{de-FCCLKE2X.mjs → de-GWUQZGER.mjs} +3 -2
  20. package/dist/de-GWUQZGER.mjs.map +1 -0
  21. package/dist/{el-3ADITCGI.mjs → el-DM2GT7P5.mjs} +3 -2
  22. package/dist/el-DM2GT7P5.mjs.map +1 -0
  23. package/dist/{en-LNW2A3RA.mjs → en-IUV4ZXKH.mjs} +2 -2
  24. package/dist/{es-POQEEYIW.mjs → es-6LVQIM3D.mjs} +3 -2
  25. package/dist/es-6LVQIM3D.mjs.map +1 -0
  26. package/dist/{fa-RQPXVELG.mjs → fa-IRUJY3QI.mjs} +3 -2
  27. package/dist/fa-IRUJY3QI.mjs.map +1 -0
  28. package/dist/{fi-UXOVOUGT.mjs → fi-53FBOEVT.mjs} +3 -2
  29. package/dist/fi-53FBOEVT.mjs.map +1 -0
  30. package/dist/{fr-6W2T3R7G.mjs → fr-Q5KY7QL6.mjs} +3 -2
  31. package/dist/fr-Q5KY7QL6.mjs.map +1 -0
  32. package/dist/{he-65UHPZIU.mjs → he-HJNKULBY.mjs} +3 -2
  33. package/dist/he-HJNKULBY.mjs.map +1 -0
  34. package/dist/{hi-SGJIVPTN.mjs → hi-UYZ4X6CR.mjs} +3 -2
  35. package/dist/hi-UYZ4X6CR.mjs.map +1 -0
  36. package/dist/{id-EYJJQCS2.mjs → id-UAQMH6U2.mjs} +3 -2
  37. package/dist/id-UAQMH6U2.mjs.map +1 -0
  38. package/dist/index.css +48 -0
  39. package/dist/index.css.map +1 -1
  40. package/dist/index.d.mts +176 -125
  41. package/dist/index.mjs +556 -781
  42. package/dist/index.mjs.map +1 -1
  43. package/dist/{it-IZGQEDO7.mjs → it-C7QEBNFA.mjs} +3 -2
  44. package/dist/it-C7QEBNFA.mjs.map +1 -0
  45. package/dist/{ja-SR272JSY.mjs → ja-THS6AOSJ.mjs} +3 -2
  46. package/dist/ja-THS6AOSJ.mjs.map +1 -0
  47. package/dist/{ko-YWTXVVXE.mjs → ko-XKK3TWQG.mjs} +3 -2
  48. package/dist/ko-XKK3TWQG.mjs.map +1 -0
  49. package/dist/{ms-3K2XSJGM.mjs → ms-GSK7LIF7.mjs} +3 -2
  50. package/dist/ms-GSK7LIF7.mjs.map +1 -0
  51. package/dist/{nl-YIGP4SLE.mjs → nl-KUBWITGY.mjs} +3 -2
  52. package/dist/nl-KUBWITGY.mjs.map +1 -0
  53. package/dist/{no-IFYIL3ND.mjs → no-ECWZUHT6.mjs} +3 -2
  54. package/dist/no-ECWZUHT6.mjs.map +1 -0
  55. package/dist/{pl-6MWSASJR.mjs → pl-PLVWSZWS.mjs} +3 -2
  56. package/dist/pl-PLVWSZWS.mjs.map +1 -0
  57. package/dist/{pt-NZNN6WUN.mjs → pt-AL74ZTKB.mjs} +3 -2
  58. package/dist/pt-AL74ZTKB.mjs.map +1 -0
  59. package/dist/{ro-NF3SMUJS.mjs → ro-WTPHLHGS.mjs} +3 -2
  60. package/dist/ro-WTPHLHGS.mjs.map +1 -0
  61. package/dist/{sv-ZHM7GSTD.mjs → sv-QCLI7SG4.mjs} +3 -2
  62. package/dist/sv-QCLI7SG4.mjs.map +1 -0
  63. package/dist/test-utils.d.mts +1 -4
  64. package/dist/test-utils.mjs +4 -6
  65. package/dist/test-utils.mjs.map +1 -1
  66. package/dist/{th-LX4NO5BJ.mjs → th-WCKVZU6U.mjs} +3 -2
  67. package/dist/th-WCKVZU6U.mjs.map +1 -0
  68. package/dist/{tr-DZ4GDSRR.mjs → tr-2CAFS2XS.mjs} +3 -2
  69. package/dist/tr-2CAFS2XS.mjs.map +1 -0
  70. package/dist/{uk-KC5KVVBY.mjs → uk-TDE4JLCY.mjs} +3 -2
  71. package/dist/uk-TDE4JLCY.mjs.map +1 -0
  72. package/dist/{vi-KNCR3OXZ.mjs → vi-KKXZ4PCX.mjs} +3 -2
  73. package/dist/vi-KKXZ4PCX.mjs.map +1 -0
  74. package/dist/{zh-M2HV2A27.mjs → zh-VH4XN5PV.mjs} +3 -2
  75. package/dist/zh-VH4XN5PV.mjs.map +1 -0
  76. package/package.json +1 -1
  77. package/src/components/Toolbar.tsx +15 -0
  78. package/src/components/__tests__/AnnotateReferencesProgressWidget.test.tsx +2 -6
  79. package/src/components/__tests__/Toolbar.test.tsx +2 -6
  80. package/src/components/annotation/__tests__/AnnotateToolbar.test.tsx +1 -2
  81. package/src/components/image-annotation/SvgDrawingCanvas.tsx +4 -7
  82. package/src/components/modals/ConfigureGenerationStep.tsx +54 -60
  83. package/src/components/modals/ReferenceWizardModal.tsx +3 -3
  84. package/src/components/navigation/__tests__/ObservableLink.test.tsx +2 -6
  85. package/src/components/navigation/__tests__/SimpleNavigation.test.tsx +2 -6
  86. package/src/components/pdf-annotation/PdfAnnotationCanvas.tsx +3 -9
  87. package/src/components/resource/AnnotateView.tsx +4 -5
  88. package/src/components/resource/AnnotationHistory.tsx +2 -5
  89. package/src/components/resource/BrowseView.tsx +2 -3
  90. package/src/components/resource/HistoryEvent.tsx +3 -3
  91. package/src/components/resource/__tests__/BrowseView.test.tsx +1 -2
  92. package/src/components/resource/__tests__/ResourceViewer.mode-switch.test.tsx +8 -8
  93. package/src/components/resource/event-formatting.ts +22 -19
  94. package/src/components/resource/panels/__tests__/AssessmentEntry.test.tsx +1 -2
  95. package/src/components/resource/panels/__tests__/AssessmentPanel.test.tsx +1 -2
  96. package/src/components/resource/panels/__tests__/AssistSection.test.tsx +0 -2
  97. package/src/components/resource/panels/__tests__/CommentEntry.test.tsx +1 -2
  98. package/src/components/resource/panels/__tests__/CommentsPanel.test.tsx +1 -2
  99. package/src/components/resource/panels/__tests__/HighlightEntry.test.tsx +1 -2
  100. package/src/components/resource/panels/__tests__/HighlightPanel.annotationProgress.test.tsx +0 -2
  101. package/src/components/resource/panels/__tests__/ReferenceEntry.test.tsx +1 -2
  102. package/src/components/resource/panels/__tests__/ReferencesPanel.test.tsx +1 -2
  103. package/src/components/resource/panels/__tests__/ResourceInfoPanel.test.tsx +1 -2
  104. package/src/components/resource/panels/__tests__/TagEntry.test.tsx +1 -2
  105. package/src/components/resource/panels/__tests__/TaggingPanel.test.tsx +1 -2
  106. package/src/components/settings/__tests__/SettingsPanel.test.tsx +1 -2
  107. package/src/components/viewers/ImageViewer.tsx +2 -8
  108. package/src/components/viewers/__tests__/ImageViewer.test.tsx +3 -16
  109. package/src/features/auth/__tests__/SignInForm.a11y.test.tsx +8 -0
  110. package/src/features/auth/auth.css +62 -0
  111. package/src/features/auth/components/SignInForm.tsx +139 -29
  112. package/src/features/resource-compose/__tests__/ResourceComposePage.test.tsx +2 -6
  113. package/src/features/resource-discovery/__tests__/ResourceDiscoveryPage.test.tsx +1 -2
  114. package/src/features/resource-viewer/__tests__/AnnotationCreationPending.test.tsx +1 -2
  115. package/src/features/resource-viewer/__tests__/AnnotationDeletionIntegration.test.tsx +1 -2
  116. package/src/features/resource-viewer/__tests__/AnnotationProgressDismissal.test.tsx +1 -2
  117. package/src/features/resource-viewer/__tests__/BindFlowIntegration.test.tsx +1 -2
  118. package/src/features/resource-viewer/__tests__/DetectionFlowBug.test.tsx +1 -2
  119. package/src/features/resource-viewer/__tests__/DetectionFlowIntegration.test.tsx +1 -2
  120. package/src/features/resource-viewer/__tests__/ResourceMutations.test.tsx +9 -10
  121. package/src/features/resource-viewer/__tests__/ResourceViewerPage.test.tsx +9 -6
  122. package/src/features/resource-viewer/__tests__/ToastNotifications.test.tsx +2 -12
  123. package/src/features/resource-viewer/__tests__/YieldFlowIntegration.test.tsx +1 -2
  124. package/src/features/resource-viewer/__tests__/annotation-progress-flow.test.tsx +16 -6
  125. package/src/features/resource-viewer/components/ResourceViewerPage.tsx +45 -75
  126. package/src/styles/core/forms.css +32 -0
  127. package/src/styles/core/sliders.css +5 -0
  128. package/translations/ar.json +3 -2
  129. package/translations/bn.json +3 -2
  130. package/translations/cs.json +3 -2
  131. package/translations/da.json +3 -2
  132. package/translations/de.json +3 -2
  133. package/translations/el.json +3 -2
  134. package/translations/en.json +4 -3
  135. package/translations/es.json +3 -2
  136. package/translations/fa.json +3 -2
  137. package/translations/fi.json +3 -2
  138. package/translations/fr.json +3 -2
  139. package/translations/he.json +3 -2
  140. package/translations/hi.json +3 -2
  141. package/translations/id.json +3 -2
  142. package/translations/it.json +3 -2
  143. package/translations/ja.json +3 -2
  144. package/translations/ko.json +3 -2
  145. package/translations/ms.json +3 -2
  146. package/translations/nl.json +3 -2
  147. package/translations/no.json +3 -2
  148. package/translations/pl.json +3 -2
  149. package/translations/pt.json +3 -2
  150. package/translations/ro.json +3 -2
  151. package/translations/sv.json +3 -2
  152. package/translations/th.json +3 -2
  153. package/translations/tr.json +3 -2
  154. package/translations/uk.json +3 -2
  155. package/translations/vi.json +3 -2
  156. package/translations/zh.json +3 -2
  157. package/dist/PdfAnnotationCanvas.client-LF6DDTCV.mjs.map +0 -1
  158. package/dist/ar-3URRW77J.mjs.map +0 -1
  159. package/dist/bn-DCQD3XZ5.mjs.map +0 -1
  160. package/dist/chunk-5JZFKRLW.mjs.map +0 -1
  161. package/dist/chunk-PWIVZQ4X.mjs.map +0 -1
  162. package/dist/chunk-XMCUHQ2Y.mjs.map +0 -1
  163. package/dist/cs-23KOZUFE.mjs.map +0 -1
  164. package/dist/da-OIQ66A42.mjs.map +0 -1
  165. package/dist/de-FCCLKE2X.mjs.map +0 -1
  166. package/dist/el-3ADITCGI.mjs.map +0 -1
  167. package/dist/es-POQEEYIW.mjs.map +0 -1
  168. package/dist/fa-RQPXVELG.mjs.map +0 -1
  169. package/dist/fi-UXOVOUGT.mjs.map +0 -1
  170. package/dist/fr-6W2T3R7G.mjs.map +0 -1
  171. package/dist/he-65UHPZIU.mjs.map +0 -1
  172. package/dist/hi-SGJIVPTN.mjs.map +0 -1
  173. package/dist/id-EYJJQCS2.mjs.map +0 -1
  174. package/dist/it-IZGQEDO7.mjs.map +0 -1
  175. package/dist/ja-SR272JSY.mjs.map +0 -1
  176. package/dist/ko-YWTXVVXE.mjs.map +0 -1
  177. package/dist/ms-3K2XSJGM.mjs.map +0 -1
  178. package/dist/nl-YIGP4SLE.mjs.map +0 -1
  179. package/dist/no-IFYIL3ND.mjs.map +0 -1
  180. package/dist/pl-6MWSASJR.mjs.map +0 -1
  181. package/dist/pt-NZNN6WUN.mjs.map +0 -1
  182. package/dist/ro-NF3SMUJS.mjs.map +0 -1
  183. package/dist/sv-ZHM7GSTD.mjs.map +0 -1
  184. package/dist/th-LX4NO5BJ.mjs.map +0 -1
  185. package/dist/tr-DZ4GDSRR.mjs.map +0 -1
  186. package/dist/uk-KC5KVVBY.mjs.map +0 -1
  187. package/dist/vi-KNCR3OXZ.mjs.map +0 -1
  188. package/dist/zh-M2HV2A27.mjs.map +0 -1
  189. /package/dist/{chunk-4RMWYJUJ.mjs.map → chunk-OL5UST25.mjs.map} +0 -0
  190. /package/dist/{en-LNW2A3RA.mjs.map → en-IUV4ZXKH.mjs.map} +0 -0
package/dist/index.d.mts CHANGED
@@ -1,10 +1,10 @@
1
1
  import * as _semiont_core from '@semiont/core';
2
- import { components, ResourceId, Selector, AnnotationId, ResourceEvent, EventMap, EventBus, MarkProgress, StoredEvent, paths, GatheredContext, Motivation as Motivation$9, YieldProgress } from '@semiont/core';
2
+ import { components, ResourceId, Selector, AnnotationId, ResourceEvent, 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 './EventBusContext-DUIMowqQ.mjs';
7
- export { E as EventBusProvider, b as EventBusProviderProps, c as SessionState, r as resetEventBusForTesting, u as useEventBus } from './EventBusContext-DUIMowqQ.mjs';
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';
8
8
  import * as _tanstack_react_query from '@tanstack/react-query';
9
9
  import { UseQueryOptions } from '@tanstack/react-query';
10
10
  import { SemiontApiClient, ValidationResult } from '@semiont/api-client';
@@ -13,6 +13,7 @@ import { HighlightStyle } from '@codemirror/language';
13
13
  import { WidgetType } from '@codemirror/view';
14
14
  import { TagSchema } from '@semiont/ontology';
15
15
  export { TAG_SCHEMAS, TagCategory, TagSchema, getAllTagSchemas, getSchemaCategory as getTagCategory, getTagSchema, getTagSchemasByDomain, isValidCategory } from '@semiont/ontology';
16
+ import { Observable } from 'rxjs';
16
17
 
17
18
  type Annotation$m = components['schemas']['Annotation'];
18
19
  /**
@@ -361,7 +362,23 @@ declare function useResources(): {
361
362
  };
362
363
  events: {
363
364
  useQuery: (id: ResourceId) => _tanstack_react_query.UseQueryResult<{
364
- events: any[];
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
+ }[];
380
+ total: number;
381
+ resourceId: string;
365
382
  }, Error>;
366
383
  };
367
384
  annotations: {
@@ -372,12 +389,26 @@ declare function useResources(): {
372
389
  };
373
390
  referencedBy: {
374
391
  useQuery: (id: ResourceId) => _tanstack_react_query.UseQueryResult<{
375
- referencedBy: any[];
392
+ referencedBy: {
393
+ id: string;
394
+ resourceName: string;
395
+ target: {
396
+ source: string;
397
+ selector: {
398
+ exact: string;
399
+ };
400
+ };
401
+ }[];
376
402
  }, Error>;
377
403
  };
378
404
  representation: {
379
405
  useQuery: (id: ResourceId, mediaType: string) => _tanstack_react_query.UseQueryResult<string, Error>;
380
406
  };
407
+ mediaToken: {
408
+ useQuery: (id: ResourceId) => _tanstack_react_query.UseQueryResult<{
409
+ token: string;
410
+ }, Error>;
411
+ };
381
412
  search: {
382
413
  useQuery: (query: string, limit: number) => _tanstack_react_query.UseQueryResult<{
383
414
  resources: _semiont_core.components["schemas"]["ResourceDescriptor"][];
@@ -680,6 +711,7 @@ declare function useAuthApi(): {
680
711
  domain: string;
681
712
  provider: string;
682
713
  isAdmin: boolean;
714
+ isModerator: boolean;
683
715
  isActive: boolean;
684
716
  termsAcceptedAt: string | null;
685
717
  lastLogin: string | null;
@@ -938,6 +970,7 @@ declare const QUERY_KEYS: {
938
970
  annotations: (id: ResourceId) => readonly ["resources", ResourceId, "annotations"];
939
971
  referencedBy: (id: ResourceId) => readonly ["resources", ResourceId, "referenced-by"];
940
972
  representation: (id: ResourceId) => readonly ["resources", ResourceId, "representation"];
973
+ mediaToken: (id: ResourceId) => readonly ["resources", ResourceId, "media-token"];
941
974
  };
942
975
  annotations: {
943
976
  detail: (id: AnnotationId) => readonly ["annotations", AnnotationId];
@@ -1313,7 +1346,6 @@ interface UseResourceEventsOptions {
1313
1346
  * React hook for subscribing to real-time document events via SSE
1314
1347
  *
1315
1348
  * Opens a long-lived SSE connection to receive events as they happen.
1316
- * Automatically reconnects on disconnect (with exponential backoff).
1317
1349
  *
1318
1350
  * @example
1319
1351
  * ```tsx
@@ -1321,12 +1353,7 @@ interface UseResourceEventsOptions {
1321
1353
  * rUri: resourceUri('http://localhost:4000/resources/doc-123'),
1322
1354
  * onAnnotationAdded: (event) => {
1323
1355
  * console.log('New annotation:', event.payload);
1324
- * // Update UI to show new annotation (highlight, reference, or assessment)
1325
1356
  * },
1326
- * onAnnotationBodyUpdated: (event) => {
1327
- * console.log('Annotation body updated:', event.payload);
1328
- * // Update annotation display to reflect body changes
1329
- * }
1330
1357
  * });
1331
1358
  * ```
1332
1359
  */
@@ -1334,7 +1361,7 @@ declare function useResourceEvents({ rUri, onEvent, onAnnotationAdded, onAnnotat
1334
1361
  status: StreamStatus;
1335
1362
  lastEvent: ResourceEvent | null;
1336
1363
  eventCount: number;
1337
- connect: () => Promise<void>;
1364
+ connect: () => void;
1338
1365
  disconnect: () => void;
1339
1366
  isConnected: boolean;
1340
1367
  };
@@ -1421,12 +1448,13 @@ interface UseResourceContentResult {
1421
1448
  loading: boolean;
1422
1449
  }
1423
1450
  /**
1424
- * Hook to load resource content (representation)
1451
+ * Hook to load text resource content (representation)
1425
1452
  *
1426
- * Fetches the primary representation of a resource based on its media type.
1427
- * Uses React Query for caching, deduplication, and consistent loading state.
1453
+ * Fetches and decodes the primary text representation of a resource.
1454
+ * Only for text types (text/plain, text/markdown).
1455
+ * Binary types (image/*, application/pdf) use useMediaToken instead.
1428
1456
  */
1429
- declare function useResourceContent(rUri: ResourceId, resource: SemiontResource$3): UseResourceContentResult;
1457
+ declare function useResourceContent(rUri: ResourceId, resource: SemiontResource$3, enabled?: boolean): UseResourceContentResult;
1430
1458
 
1431
1459
  interface AnnotationProviderProps {
1432
1460
  annotationManager: AnnotationManager;
@@ -1482,9 +1510,10 @@ interface ApiClientProviderProps {
1482
1510
  children: ReactNode;
1483
1511
  }
1484
1512
  /**
1485
- * Provider for API client - creates a stateless singleton client
1486
- * The client instance never changes (no token dependency)
1487
- * Auth tokens are passed per-request via useAuthToken() in calling code
1513
+ * Provider for API client must be nested inside EventBusProvider.
1514
+ * The client is re-created when the baseUrl changes (workspace switch).
1515
+ * The EventBus is taken from EventBusContext so client and UI components
1516
+ * share the same workspace-scoped bus.
1488
1517
  */
1489
1518
  declare function ApiClientProvider({ baseUrl: url, children, }: ApiClientProviderProps): react_jsx_runtime.JSX.Element;
1490
1519
  /**
@@ -1556,6 +1585,48 @@ declare function CacheProvider({ cacheManager, children }: CacheProviderProps):
1556
1585
  */
1557
1586
  declare function useCacheManager(): CacheManager;
1558
1587
 
1588
+ interface EventBusProviderProps {
1589
+ children: ReactNode;
1590
+ }
1591
+ /**
1592
+ * Unified event bus provider for all application events.
1593
+ *
1594
+ * Each provider mount creates a fresh EventBus instance. This means:
1595
+ * - Workspace switches (which remount via key prop) get isolated buses
1596
+ * - Tests get isolation naturally — no resetEventBusForTesting needed
1597
+ *
1598
+ * Operation handlers (API calls triggered by events) are set up separately via
1599
+ * the useBindFlow hook, which should be called at the resource page level.
1600
+ */
1601
+ declare function EventBusProvider({ children }: EventBusProviderProps): react_jsx_runtime.JSX.Element;
1602
+ /**
1603
+ * Hook to access the unified event bus
1604
+ *
1605
+ * Use this everywhere instead of:
1606
+ * - useMakeMeaningEvents()
1607
+ * - useNavigationEvents()
1608
+ * - useGlobalSettingsEvents()
1609
+ *
1610
+ * @example
1611
+ * ```typescript
1612
+ * const eventBus = useEventBus();
1613
+ *
1614
+ * // Emit any event
1615
+ * eventBus.get('beckon:hover').next({ annotationId: '123' });
1616
+ * eventBus.get('browse:sidebar-toggle').next(undefined);
1617
+ * eventBus.get('settings:theme-changed').next({ theme: 'dark' });
1618
+ *
1619
+ * // Subscribe to any event
1620
+ * useEffect(() => {
1621
+ * const unsubscribe = eventBus.on('beckon:hover', ({ annotationId }) => {
1622
+ * console.log(annotationId);
1623
+ * });
1624
+ * return () => unsubscribe();
1625
+ * }, []);
1626
+ * ```
1627
+ */
1628
+ declare function useEventBus(): EventBus;
1629
+
1559
1630
  /**
1560
1631
  * Subscribe to an event bus event with automatic cleanup.
1561
1632
  *
@@ -2029,7 +2100,7 @@ declare function AnnotationOverlay({ annotations, imageWidth, imageHeight, displ
2029
2100
  type Annotation$c = components['schemas']['Annotation'];
2030
2101
  type DrawingMode = 'rectangle' | 'polygon' | 'circle' | 'freeform' | null;
2031
2102
  interface SvgDrawingCanvasProps {
2032
- resourceUri: ResourceId;
2103
+ imageUrl: string;
2033
2104
  existingAnnotations?: Annotation$c[];
2034
2105
  drawingMode: DrawingMode;
2035
2106
  selectedMotivation?: SelectionMotivation | null;
@@ -2044,7 +2115,7 @@ interface SvgDrawingCanvasProps {
2044
2115
  * @emits browse:click - Annotation clicked on canvas. Payload: { annotationId: string, motivation: Motivation }
2045
2116
  * @emits mark:requested - New annotation drawn on canvas. Payload: { selector: SvgSelector, motivation: SelectionMotivation }
2046
2117
  */
2047
- declare function SvgDrawingCanvas({ resourceUri, existingAnnotations, drawingMode, selectedMotivation, eventBus, hoveredAnnotationId, selectedAnnotationId }: SvgDrawingCanvasProps): react_jsx_runtime.JSX.Element;
2118
+ declare function SvgDrawingCanvas({ imageUrl, existingAnnotations, drawingMode, selectedMotivation, eventBus, hoveredAnnotationId, selectedAnnotationId }: SvgDrawingCanvasProps): react_jsx_runtime.JSX.Element;
2048
2119
 
2049
2120
  interface KeyboardShortcutsHelpModalProps {
2050
2121
  isOpen: boolean;
@@ -2122,9 +2193,9 @@ declare const BrowseView: React$1.NamedExoticComponent<Props$6>;
2122
2193
 
2123
2194
  type TranslateFn$4 = (key: string, params?: Record<string, string | number>) => string;
2124
2195
  interface Props$5 {
2125
- event: StoredEvent;
2196
+ event: StoredEventLike;
2126
2197
  annotations: any[];
2127
- allEvents: StoredEvent[];
2198
+ allEvents: StoredEventLike[];
2128
2199
  isRelated: boolean;
2129
2200
  t: TranslateFn$4;
2130
2201
  Link: React__default.ComponentType<LinkComponentProps>;
@@ -2521,11 +2592,11 @@ interface UnifiedAnnotationsPanelProps {
2521
2592
  declare function UnifiedAnnotationsPanel(props: UnifiedAnnotationsPanelProps): react_jsx_runtime.JSX.Element;
2522
2593
 
2523
2594
  interface ImageViewerProps {
2524
- resourceUri: ResourceId;
2595
+ imageUrl: string;
2525
2596
  mimeType: string;
2526
2597
  alt?: string;
2527
2598
  }
2528
- declare function ImageViewer({ resourceUri, alt }: ImageViewerProps): react_jsx_runtime.JSX.Element;
2599
+ declare function ImageViewer({ imageUrl, alt }: ImageViewerProps): react_jsx_runtime.JSX.Element;
2529
2600
 
2530
2601
  type TranslateFn$3 = (key: string, params?: Record<string, any>) => string;
2531
2602
  interface FooterProps {
@@ -3541,13 +3612,20 @@ declare function AdminUsersPage({ users, userStats, isLoadingUsers, isLoadingSta
3541
3612
 
3542
3613
  interface SignInFormProps {
3543
3614
  /**
3544
- * Callback when user clicks Google sign-in
3615
+ * Callback when user clicks Google sign-in.
3616
+ * Receives the backend URL (either the locked one or what the user typed).
3617
+ */
3618
+ onGoogleSignIn: (backendUrl: string) => Promise<void>;
3619
+ /**
3620
+ * Callback when user submits email/password credentials.
3621
+ * Receives the backend URL along with email and password.
3545
3622
  */
3546
- onGoogleSignIn: () => Promise<void>;
3623
+ onCredentialsSignIn?: ((backendUrl: string, email: string, password: string) => Promise<void>) | undefined;
3547
3624
  /**
3548
- * Callback when user submits email/password credentials
3625
+ * Pre-filled backend URL. When provided the field is read-only (re-auth to known workspace).
3626
+ * When omitted the user enters the URL themselves (new connection).
3549
3627
  */
3550
- onCredentialsSignIn?: ((email: string, password: string) => Promise<void>) | undefined;
3628
+ backendUrl?: string;
3551
3629
  /**
3552
3630
  * Error message to display (if any)
3553
3631
  */
@@ -3572,6 +3650,8 @@ interface SignInFormProps {
3572
3650
  welcomeBack: string;
3573
3651
  signInPrompt: string;
3574
3652
  continueWithGoogle: string;
3653
+ backendUrlLabel: string;
3654
+ backendUrlPlaceholder: string;
3575
3655
  emailLabel: string;
3576
3656
  emailPlaceholder: string;
3577
3657
  passwordLabel: string;
@@ -3583,15 +3663,21 @@ interface SignInFormProps {
3583
3663
  backToHome: string;
3584
3664
  learnMore: string;
3585
3665
  signUpInstead: string;
3666
+ errorBackendUrlRequired: string;
3667
+ errorBackendUrlInvalid: string;
3668
+ errorBackendUrlUnreachable: string;
3586
3669
  errorEmailRequired: string;
3587
3670
  errorPasswordRequired: string;
3588
3671
  tagline: string;
3589
3672
  };
3590
3673
  }
3591
3674
  /**
3592
- * SignInForm - Main sign-in component
3675
+ * SignInForm - Main sign-in / connect component.
3676
+ *
3677
+ * When backendUrl is provided (re-auth to known workspace) the URL field is locked.
3678
+ * When backendUrl is omitted (new connection) the user enters the URL themselves.
3593
3679
  */
3594
- declare function SignInForm({ onGoogleSignIn, onCredentialsSignIn, error, showCredentialsAuth, isLoading, Link, translations: t, }: SignInFormProps): react_jsx_runtime.JSX.Element;
3680
+ declare function SignInForm({ onGoogleSignIn, onCredentialsSignIn, backendUrl, error, showCredentialsAuth, isLoading, Link, translations: t, }: SignInFormProps): react_jsx_runtime.JSX.Element;
3595
3681
 
3596
3682
  interface SignUpFormProps {
3597
3683
  /**
@@ -3918,6 +4004,10 @@ interface ResourceViewerPageProps {
3918
4004
  * Callback to refetch document from parent
3919
4005
  */
3920
4006
  refetchDocument: () => Promise<unknown>;
4007
+ /**
4008
+ * SSE attention stream connection status for the active workspace
4009
+ */
4010
+ streamStatus: StreamStatus;
3921
4011
  }
3922
4012
  /**
3923
4013
  * ResourceViewerPage - Main component
@@ -3946,7 +4036,7 @@ interface ResourceViewerPageProps {
3946
4036
  * @subscribes browse:reference-navigate - Navigate to a referenced document
3947
4037
  * @subscribes browse:entity-type-clicked - Navigate filtered by entity type
3948
4038
  */
3949
- declare function ResourceViewerPage({ resource, rUri, locale, Link, routes, ToolbarPanels, refetchDocument, }: ResourceViewerPageProps): react_jsx_runtime.JSX.Element;
4039
+ declare function ResourceViewerPage({ resource, rUri, locale, Link, routes, ToolbarPanels, refetchDocument, streamStatus, }: ResourceViewerPageProps): react_jsx_runtime.JSX.Element;
3950
4040
 
3951
4041
  /**
3952
4042
  * useBeckonFlow — Annotation attention / pointer coordination hook
@@ -4022,23 +4112,14 @@ declare function useAttentionStream(): {
4022
4112
  /**
4023
4113
  * useMarkFlow - Annotation state management hook
4024
4114
  *
4025
- * Manages all annotation workflows (manual and AI-driven):
4026
- * - Pending annotation state (user selected text, waiting for confirmation)
4027
- * - Selection events pending annotation conversion
4028
- * - Annotation request routing to appropriate panel
4029
- * - Tracking currently assisting motivation (AI-assisted annotation)
4030
- * - Annotation progress updates from SSE
4031
- * - Assisted annotation lifecycle (start, progress, complete, failed)
4032
- * - Auto-dismiss progress after completion (5 seconds)
4033
- * - Manual dismiss via progress-dismiss event
4034
- * - Annotation create/delete API calls
4035
- * - AI-assisted annotation SSE streams (all 5 motivation types)
4036
- *
4037
- * Covers both forms: a human selecting text is manual annotation;
4038
- * AI-driven SSE streams are assisted annotation. Same concept, same hook.
4115
+ * Activates mark orchestration (CRUD + AI assist) by delegating to
4116
+ * client.flows.mark(). Manages UI state (pendingAnnotation, assistingMotivation,
4117
+ * progress) via EventBus subscriptions the React-specific portion.
4039
4118
  *
4040
- * Follows react-rxjs-guide.md Layer 2 pattern: Hook bridge that
4041
- * subscribes to events and pushes values into React state.
4119
+ * @subscribes mark:submit, mark:delete, mark:assist-request, job:cancel-requested
4120
+ * @subscribes mark:requested, mark:select-*, mark:cancel-pending
4121
+ * @subscribes mark:progress, mark:assist-finished, mark:assist-failed
4122
+ * @returns Annotation flow state
4042
4123
  */
4043
4124
 
4044
4125
  interface PendingAnnotation {
@@ -4051,35 +4132,6 @@ interface MarkFlowState {
4051
4132
  progress: MarkProgress | null;
4052
4133
  assistStreamRef: React.MutableRefObject<AbortController | null>;
4053
4134
  }
4054
- /**
4055
- * Hook for annotation flow (manual and AI-driven)
4056
- *
4057
- * @param rUri - Resource URI being annotated
4058
- * @emits browse:panel-open - Open the annotations panel when annotation is requested
4059
- * @emits mark:created - Annotation successfully created
4060
- * @emits mark:create-failed - Annotation creation failed
4061
- * @emits mark:deleted - Annotation successfully deleted
4062
- * @emits mark:delete-failed - Annotation deletion failed
4063
- * @emits mark:progress - Progress update from SSE stream
4064
- * @emits mark:assist-finished - SSE assist completed
4065
- * @emits mark:assist-failed - SSE assist failed
4066
- * @emits mark:assist-cancelled - SSE assist cancelled
4067
- * @subscribes mark:requested - User requested a new annotation
4068
- * @subscribes mark:create - Create annotation via API
4069
- * @subscribes mark:delete - Delete annotation via API
4070
- * @subscribes mark:select-comment - User selected text for a comment
4071
- * @subscribes mark:select-tag - User selected text for a tag
4072
- * @subscribes mark:select-assessment - User selected text for an assessment
4073
- * @subscribes mark:select-reference - User selected text for a reference
4074
- * @subscribes mark:cancel-pending - Cancel pending annotation creation
4075
- * @subscribes mark:assist-request - Trigger AI-assisted annotation SSE stream
4076
- * @subscribes job:cancel-requested - Cancels in-flight assist stream (assist half only)
4077
- * @subscribes mark:progress - Progress update during assist
4078
- * @subscribes mark:assist-finished - Assist completed successfully
4079
- * @subscribes mark:assist-failed - Error during assist
4080
- * @subscribes mark:progress-dismiss - Manually dismiss progress display
4081
- * @returns Annotation flow state
4082
- */
4083
4135
  declare function useMarkFlow(rUri: ResourceId): MarkFlowState;
4084
4136
 
4085
4137
  /**
@@ -4094,7 +4146,7 @@ declare function useMarkFlow(rUri: ResourceId): MarkFlowState;
4094
4146
  * Follows react-rxjs-guide.md Layer 2 pattern: Hook bridge that
4095
4147
  * subscribes to events and pushes values into React state.
4096
4148
  */
4097
- type ToolbarPanelType = 'history' | 'info' | 'annotations' | 'settings' | 'collaboration' | 'user' | 'jsonld';
4149
+ type ToolbarPanelType = 'history' | 'info' | 'annotations' | 'settings' | 'collaboration' | 'user' | 'jsonld' | 'knowledge-base';
4098
4150
  /** Panels available on all pages */
4099
4151
  declare const COMMON_PANELS: readonly ToolbarPanelType[];
4100
4152
  /** Panels available only on resource viewer pages */
@@ -4121,17 +4173,13 @@ declare function usePanelBrowse(): PanelBrowseState;
4121
4173
  /**
4122
4174
  * useYieldFlow - Document generation flow hook
4123
4175
  *
4124
- * Manages document generation state:
4125
- * - Generation progress tracking
4126
- * - SSE stream management
4127
- * - Generation completion/error handling
4176
+ * Activates yield orchestration by delegating to client.flows.yield().
4177
+ * Manages generation progress state (React-specific) via EventBus subscriptions.
4128
4178
  *
4129
- * The wizard modal (ReferenceWizardModal) handles modal state and user
4130
- * interaction. This hook handles the downstream SSE generation after
4131
- * the wizard emits yield:request.
4132
- *
4133
- * Follows react-rxjs-guide.md Layer 2 pattern: Hook bridge that
4134
- * subscribes to events and pushes values into React state.
4179
+ * @subscribes yield:request - Triggers SSE call to yieldResource
4180
+ * @subscribes job:cancel-requested - Cancels in-flight generation stream
4181
+ * @subscribes yield:progress, yield:finished, yield:failed
4182
+ * @returns Generation flow state
4135
4183
  */
4136
4184
 
4137
4185
  interface YieldFlowState {
@@ -4147,41 +4195,23 @@ interface YieldFlowState {
4147
4195
  context: GatheredContext;
4148
4196
  }) => void;
4149
4197
  }
4150
- /**
4151
- * Hook for document generation flow
4152
- *
4153
- * @param locale - Current locale for language defaults
4154
- * @param resourceId - Resource ID for generation
4155
- * @param clearNewAnnotationId - Clear animation callback
4156
- * @emits yield:request - Start document generation
4157
- * @subscribes yield:request - Triggers SSE call to yieldResource
4158
- * @subscribes job:cancel-requested - Cancels in-flight generation stream
4159
- * @subscribes yield:progress - SSE progress chunks
4160
- * @subscribes yield:finished - Generation completed successfully
4161
- * @subscribes yield:failed - Error during generation
4162
- * @returns Generation flow state
4163
- */
4164
4198
  declare function useYieldFlow(locale: string, resourceId: string, clearNewAnnotationId: (annotationId: AnnotationId) => void): YieldFlowState;
4165
4199
 
4166
4200
  /**
4167
4201
  * useContextGatherFlow - Context gather capability hook
4168
4202
  *
4169
- * Gather capability: given a reference annotation, fetch the surrounding
4170
- * text context (before/selected/after) from the source document so it can
4171
- * be gathered and used as grounding material for generation.
4203
+ * Activates gather orchestration for a resource by delegating to
4204
+ * client.flows.gatherContext(). Manages UI state (gatherContext, gatherLoading,
4205
+ * gatherError, gatherAnnotationId) via EventBus subscriptions the
4206
+ * React-specific portion.
4172
4207
  *
4173
- * This hook is the single owner of gather state. It is triggered by
4174
- * gather:requested on the event bus, making the capability
4175
- * accessible to both human UI flows and agents.
4176
- *
4177
- * @subscribes gather:requested - Fetch LLM context for an annotation
4178
- * @emits gather:complete - Context successfully fetched
4179
- * @emits gather:failed - Context fetch failed
4180
- * @returns Gather state (context, loading, error, which annotation)
4208
+ * @subscribes gather:requested - Triggers loading state
4209
+ * @subscribes gather:complete - Sets gathered context
4210
+ * @subscribes gather:failed - Sets error state
4211
+ * @returns Gather flow state
4181
4212
  */
4182
4213
 
4183
4214
  interface ContextGatherFlowConfig {
4184
- client: SemiontApiClient;
4185
4215
  resourceId: ResourceId;
4186
4216
  }
4187
4217
  interface ContextGatherFlowState {
@@ -4191,25 +4221,46 @@ interface ContextGatherFlowState {
4191
4221
  /** The annotationId for which context was most recently gathered */
4192
4222
  gatherAnnotationId: AnnotationId | null;
4193
4223
  }
4194
- declare function useContextGatherFlow(eventBus: EventBus, config: ContextGatherFlowConfig): ContextGatherFlowState;
4224
+ declare function useContextGatherFlow(config: ContextGatherFlowConfig): ContextGatherFlowState;
4195
4225
 
4196
4226
  /**
4197
4227
  * useBindFlow - Reference resolution flow hook
4198
4228
  *
4199
- * Handles the write side of reference resolution:
4200
- * - Annotation body updates (linking/unlinking)
4201
- * - Error notifications
4229
+ * Activates bind + search orchestration for a resource by delegating to
4230
+ * client.flows.bind(). All subscription logic lives in FlowEngine (api-client).
4202
4231
  *
4203
- * The wizard modal (ReferenceWizardModal) handles modal state, context
4204
- * gathering, search configuration, and result display. This hook handles
4205
- * the downstream API calls after the wizard emits bind:update-body.
4232
+ * Toast notifications for resolution errors remain here (React-specific).
4206
4233
  *
4207
4234
  * @subscribes bind:update-body - Update annotation body via API
4208
- * @subscribes match:search-requested - Bridge to backend Matcher via SSE; results emit as match:search-results
4209
- * @emits bind:body-updated - Annotation body successfully updated
4210
- * @emits bind:body-update-failed - Annotation body update failed
4235
+ * @subscribes match:search-requested - Bridge to backend Matcher via SSE
4236
+ * @emits bind:body-updated, bind:body-update-failed
4211
4237
  */
4212
4238
 
4213
4239
  declare function useBindFlow(rUri: ResourceId): void;
4214
4240
 
4215
- 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, 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, useEventSubscription, useEventSubscriptions, useFormAnnouncements, useGlobalEvents, useHealth, useHoverDelay, useHoverEmitter, useIsTyping, useKeyboardShortcuts, useLanguageChangeAnnouncements, useLineNumbers, useLiveRegion, useLoadingState, useLocalStorage, useMarkFlow, useModeration, useObservableExternalNavigation, useObservableRouter, useOpenResources, usePanelBrowse, usePanelWidth, usePreloadTranslations, useResourceAnnotations, useResourceContent, useResourceEvents, useResourceLoadingAnnouncements, useResources, useRovingTabIndex, useSearchAnnouncements, useSessionContext, useSessionExpiry, useTheme, useToast, useTranslations, useYieldFlow };
4241
+ /**
4242
+ * Subscribe to an RxJS Observable and return its current value as React state.
4243
+ *
4244
+ * - Initialises to undefined until the first emission
4245
+ * - Unsubscribes automatically on unmount or when `obs$` changes
4246
+ */
4247
+ declare function useObservable<T>(obs$: Observable<T>): T | undefined;
4248
+
4249
+ /**
4250
+ * useStoreTokenSync — keeps observable store token getters in sync with auth
4251
+ *
4252
+ * Call once near the workspace root (inside both ApiClientProvider and AuthTokenProvider).
4253
+ * Ensures stores can make authenticated fetches as the token changes.
4254
+ *
4255
+ * @example
4256
+ * ```tsx
4257
+ * function GlobalEventsConnector() {
4258
+ * useStoreTokenSync();
4259
+ * useGlobalEvents();
4260
+ * return null;
4261
+ * }
4262
+ * ```
4263
+ */
4264
+ declare function useStoreTokenSync(): void;
4265
+
4266
+ 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 };