@semiont/react-ui 0.5.1 → 0.5.3

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 (177) hide show
  1. package/README.md +13 -0
  2. package/dist/{ar-3W37O3R3.mjs → ar-UUMMNQKF.mjs} +2 -17
  3. package/dist/ar-UUMMNQKF.mjs.map +1 -0
  4. package/dist/{bn-JZTJLMVE.mjs → bn-AL5BJSR3.mjs} +2 -17
  5. package/dist/bn-AL5BJSR3.mjs.map +1 -0
  6. package/dist/{chunk-4NOUO3W6.mjs → chunk-EBBL3VJI.mjs} +5062 -2906
  7. package/dist/chunk-EBBL3VJI.mjs.map +1 -0
  8. package/dist/{chunk-NOD3NCXE.mjs → chunk-OJSRLEER.mjs} +2 -17
  9. package/dist/chunk-OJSRLEER.mjs.map +1 -0
  10. package/dist/{cs-XYHH7HNE.mjs → cs-UMINALSU.mjs} +2 -17
  11. package/dist/cs-UMINALSU.mjs.map +1 -0
  12. package/dist/{da-MZKIECVT.mjs → da-FKUX6CDL.mjs} +2 -17
  13. package/dist/da-FKUX6CDL.mjs.map +1 -0
  14. package/dist/{de-AYXTMRQW.mjs → de-XSJ3E25S.mjs} +2 -17
  15. package/dist/de-XSJ3E25S.mjs.map +1 -0
  16. package/dist/{el-A6CVQWAW.mjs → el-UJXNRCBP.mjs} +2 -17
  17. package/dist/el-UJXNRCBP.mjs.map +1 -0
  18. package/dist/{en-YPQQBI4T.mjs → en-J5DHKLQ5.mjs} +2 -2
  19. package/dist/{es-M2HXLJGT.mjs → es-VURP62BU.mjs} +2 -17
  20. package/dist/es-VURP62BU.mjs.map +1 -0
  21. package/dist/{fa-V6JZJDYP.mjs → fa-TIT5ZPZY.mjs} +2 -17
  22. package/dist/fa-TIT5ZPZY.mjs.map +1 -0
  23. package/dist/{fi-ONDTZ5H7.mjs → fi-F7VTGT4H.mjs} +2 -17
  24. package/dist/fi-F7VTGT4H.mjs.map +1 -0
  25. package/dist/{fr-PAPV4H4G.mjs → fr-2ZR26VF7.mjs} +2 -17
  26. package/dist/fr-2ZR26VF7.mjs.map +1 -0
  27. package/dist/{he-F6VTLJLW.mjs → he-BXP2KYVZ.mjs} +2 -17
  28. package/dist/he-BXP2KYVZ.mjs.map +1 -0
  29. package/dist/{hi-CFUAV4BF.mjs → hi-PSWTP3NC.mjs} +2 -17
  30. package/dist/hi-PSWTP3NC.mjs.map +1 -0
  31. package/dist/{id-NBKLCCI7.mjs → id-HO6TXGTO.mjs} +2 -17
  32. package/dist/id-HO6TXGTO.mjs.map +1 -0
  33. package/dist/index.d.mts +292 -27
  34. package/dist/index.mjs +1134 -592
  35. package/dist/index.mjs.map +1 -1
  36. package/dist/{it-SLSOWVVU.mjs → it-AGTDMBL3.mjs} +2 -17
  37. package/dist/it-AGTDMBL3.mjs.map +1 -0
  38. package/dist/{ja-L5IG4ECE.mjs → ja-TTGOVF5K.mjs} +2 -17
  39. package/dist/ja-TTGOVF5K.mjs.map +1 -0
  40. package/dist/{ko-QYMTULKK.mjs → ko-FF77IQ7N.mjs} +2 -17
  41. package/dist/ko-FF77IQ7N.mjs.map +1 -0
  42. package/dist/{ms-5DGSFKM2.mjs → ms-UPQWWIL4.mjs} +2 -17
  43. package/dist/ms-UPQWWIL4.mjs.map +1 -0
  44. package/dist/{nl-VZPCGONO.mjs → nl-W75HEPFL.mjs} +2 -17
  45. package/dist/nl-W75HEPFL.mjs.map +1 -0
  46. package/dist/{no-MF6F352I.mjs → no-R4W7W7ZU.mjs} +2 -17
  47. package/dist/no-R4W7W7ZU.mjs.map +1 -0
  48. package/dist/{pl-WIK72JUO.mjs → pl-GQC2ELWO.mjs} +2 -17
  49. package/dist/pl-GQC2ELWO.mjs.map +1 -0
  50. package/dist/{pt-RRP5ZF6A.mjs → pt-YGVT62RU.mjs} +2 -17
  51. package/dist/pt-YGVT62RU.mjs.map +1 -0
  52. package/dist/{ro-XHQLC3T7.mjs → ro-TST6XS6X.mjs} +2 -17
  53. package/dist/ro-TST6XS6X.mjs.map +1 -0
  54. package/dist/{sv-EWULDN6E.mjs → sv-TQLF6HV7.mjs} +2 -17
  55. package/dist/sv-TQLF6HV7.mjs.map +1 -0
  56. package/dist/test-utils.d.mts +1 -1
  57. package/dist/test-utils.mjs +5 -2353
  58. package/dist/test-utils.mjs.map +1 -1
  59. package/dist/{th-TGOBHFG4.mjs → th-HJUIETVR.mjs} +2 -17
  60. package/dist/th-HJUIETVR.mjs.map +1 -0
  61. package/dist/{tr-LMMPBMV7.mjs → tr-CW3C46TW.mjs} +2 -17
  62. package/dist/tr-CW3C46TW.mjs.map +1 -0
  63. package/dist/{uk-IPGRRJY6.mjs → uk-WTHZQB2U.mjs} +2 -17
  64. package/dist/uk-WTHZQB2U.mjs.map +1 -0
  65. package/dist/{vi-Q676OJQS.mjs → vi-PHWHJLKP.mjs} +2 -17
  66. package/dist/vi-PHWHJLKP.mjs.map +1 -0
  67. package/dist/{zh-F3MTWQDX.mjs → zh-MO3FCUD6.mjs} +2 -17
  68. package/dist/zh-MO3FCUD6.mjs.map +1 -0
  69. package/package.json +1 -1
  70. package/src/components/StatusDisplay.tsx +1 -1
  71. package/src/components/modals/PermissionDeniedModal.tsx +2 -2
  72. package/src/components/modals/SessionExpiredModal.tsx +4 -4
  73. package/src/components/resource/panels/AssessmentPanel.tsx +4 -0
  74. package/src/components/resource/panels/AssistSection.tsx +10 -1
  75. package/src/components/resource/panels/CollaborationPanel.tsx +1 -1
  76. package/src/components/resource/panels/CommentsPanel.tsx +4 -0
  77. package/src/components/resource/panels/HighlightPanel.tsx +4 -0
  78. package/src/components/resource/panels/ReferencesPanel.tsx +11 -0
  79. package/src/components/resource/panels/TagEntry.tsx +13 -2
  80. package/src/components/resource/panels/TaggingPanel.tsx +93 -41
  81. package/src/components/resource/panels/UnifiedAnnotationsPanel.tsx +11 -1
  82. package/src/components/resource/panels/__tests__/ReferencesPanel.observable-flow.test.tsx +2 -2
  83. package/src/components/resource/panels/__tests__/TagEntry.test.tsx +26 -19
  84. package/src/components/resource/panels/__tests__/TaggingPanel.test.tsx +128 -38
  85. package/src/features/admin-devops/components/AdminDevOpsPage.tsx +1 -1
  86. package/src/features/admin-exchange/components/AdminExchangePage.tsx +1 -1
  87. package/src/features/admin-exchange/components/ImportCard.tsx +1 -1
  88. package/src/features/admin-exchange/state/__tests__/exchange-state-unit.test.ts +171 -0
  89. package/src/features/admin-exchange/state/exchange-state-unit.ts +131 -0
  90. package/src/features/admin-security/components/AdminSecurityPage.tsx +1 -1
  91. package/src/features/admin-security/state/__tests__/admin-security-state-unit.test.ts +68 -0
  92. package/src/features/admin-security/state/admin-security-state-unit.ts +46 -0
  93. package/src/features/admin-users/components/AdminUsersPage.tsx +1 -1
  94. package/src/features/admin-users/state/__tests__/admin-users-state-unit.test.ts +86 -0
  95. package/src/features/admin-users/state/admin-users-state-unit.ts +73 -0
  96. package/src/features/auth-welcome/state/__tests__/welcome-state-unit.test.ts +86 -0
  97. package/src/features/auth-welcome/state/welcome-state-unit.ts +44 -0
  98. package/src/features/moderate-entity-tags/components/EntityTagsPage.tsx +1 -1
  99. package/src/features/moderate-entity-tags/state/__tests__/entity-tags-state-unit.test.ts +102 -0
  100. package/src/features/moderate-entity-tags/state/entity-tags-state-unit.ts +64 -0
  101. package/src/features/moderate-recent/components/RecentDocumentsPage.tsx +1 -1
  102. package/src/features/moderate-tag-schemas/components/TagSchemasPage.tsx +4 -4
  103. package/src/features/moderation-linked-data/components/LinkedDataPage.tsx +1 -1
  104. package/src/features/resource-compose/__tests__/UploadProgressBar.test.tsx +225 -0
  105. package/src/features/resource-compose/components/ResourceComposePage.tsx +19 -4
  106. package/src/features/resource-compose/components/UploadProgressBar.tsx +94 -0
  107. package/src/features/resource-compose/state/__tests__/compose-page-state-unit.test.ts +187 -0
  108. package/src/features/resource-compose/state/compose-page-state-unit.ts +209 -0
  109. package/src/features/resource-discovery/components/ResourceDiscoveryPage.tsx +1 -1
  110. package/src/features/resource-discovery/state/__tests__/discover-state-unit.test.ts +76 -0
  111. package/src/features/resource-discovery/state/discover-state-unit.ts +54 -0
  112. package/src/features/resource-viewer/__tests__/ResourceViewerPage.test.tsx +4 -2
  113. package/src/features/resource-viewer/components/ResourceViewerPage.tsx +36 -32
  114. package/src/features/resource-viewer/state/__tests__/resource-loader-state-unit.test.ts +46 -0
  115. package/src/features/resource-viewer/state/__tests__/resource-viewer-page-state-unit.test.ts +203 -0
  116. package/src/features/resource-viewer/state/resource-loader-state-unit.ts +26 -0
  117. package/src/features/resource-viewer/state/resource-viewer-page-state-unit.ts +180 -0
  118. package/translations/ar.json +1 -16
  119. package/translations/bn.json +1 -16
  120. package/translations/cs.json +1 -16
  121. package/translations/da.json +1 -16
  122. package/translations/de.json +1 -16
  123. package/translations/el.json +1 -16
  124. package/translations/en.json +1 -16
  125. package/translations/es.json +1 -16
  126. package/translations/fa.json +1 -16
  127. package/translations/fi.json +1 -16
  128. package/translations/fr.json +1 -16
  129. package/translations/he.json +1 -16
  130. package/translations/hi.json +1 -16
  131. package/translations/id.json +1 -16
  132. package/translations/it.json +1 -16
  133. package/translations/ja.json +1 -16
  134. package/translations/ko.json +1 -16
  135. package/translations/ms.json +1 -16
  136. package/translations/nl.json +1 -16
  137. package/translations/no.json +1 -16
  138. package/translations/pl.json +1 -16
  139. package/translations/pt.json +1 -16
  140. package/translations/ro.json +1 -16
  141. package/translations/sv.json +1 -16
  142. package/translations/th.json +1 -16
  143. package/translations/tr.json +1 -16
  144. package/translations/uk.json +1 -16
  145. package/translations/vi.json +1 -16
  146. package/translations/zh.json +1 -16
  147. package/dist/ar-3W37O3R3.mjs.map +0 -1
  148. package/dist/bn-JZTJLMVE.mjs.map +0 -1
  149. package/dist/chunk-4NOUO3W6.mjs.map +0 -1
  150. package/dist/chunk-NOD3NCXE.mjs.map +0 -1
  151. package/dist/cs-XYHH7HNE.mjs.map +0 -1
  152. package/dist/da-MZKIECVT.mjs.map +0 -1
  153. package/dist/de-AYXTMRQW.mjs.map +0 -1
  154. package/dist/el-A6CVQWAW.mjs.map +0 -1
  155. package/dist/es-M2HXLJGT.mjs.map +0 -1
  156. package/dist/fa-V6JZJDYP.mjs.map +0 -1
  157. package/dist/fi-ONDTZ5H7.mjs.map +0 -1
  158. package/dist/fr-PAPV4H4G.mjs.map +0 -1
  159. package/dist/he-F6VTLJLW.mjs.map +0 -1
  160. package/dist/hi-CFUAV4BF.mjs.map +0 -1
  161. package/dist/id-NBKLCCI7.mjs.map +0 -1
  162. package/dist/it-SLSOWVVU.mjs.map +0 -1
  163. package/dist/ja-L5IG4ECE.mjs.map +0 -1
  164. package/dist/ko-QYMTULKK.mjs.map +0 -1
  165. package/dist/ms-5DGSFKM2.mjs.map +0 -1
  166. package/dist/nl-VZPCGONO.mjs.map +0 -1
  167. package/dist/no-MF6F352I.mjs.map +0 -1
  168. package/dist/pl-WIK72JUO.mjs.map +0 -1
  169. package/dist/pt-RRP5ZF6A.mjs.map +0 -1
  170. package/dist/ro-XHQLC3T7.mjs.map +0 -1
  171. package/dist/sv-EWULDN6E.mjs.map +0 -1
  172. package/dist/th-TGOBHFG4.mjs.map +0 -1
  173. package/dist/tr-LMMPBMV7.mjs.map +0 -1
  174. package/dist/uk-IPGRRJY6.mjs.map +0 -1
  175. package/dist/vi-Q676OJQS.mjs.map +0 -1
  176. package/dist/zh-F3MTWQDX.mjs.map +0 -1
  177. /package/dist/{en-YPQQBI4T.mjs.map → en-J5DHKLQ5.mjs.map} +0 -0
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { Annotation, ResourceId, Selector, components, ResourceDescriptor, ValidationResult, EventMap, AnnotationId, StoredEventLike, ConnectionState, GatheredContext } from '@semiont/core';
1
+ import { Annotation, ResourceId, Selector, components, ResourceDescriptor, ValidationResult, EventMap, AnnotationId, StoredEventLike, ConnectionState, GatheredContext, BackendDownload, ProgressEvent, AccessToken } from '@semiont/core';
2
2
  export { Annotation } from '@semiont/core';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import * as React$1 from 'react';
@@ -7,10 +7,8 @@ import { T as TranslationManager } from './TranslationManager-9Xj3MIWQ.mjs';
7
7
  import * as _codemirror_state from '@codemirror/state';
8
8
  import { HighlightStyle } from '@codemirror/language';
9
9
  import { WidgetType } from '@codemirror/view';
10
- import { ViewModel, SemiontBrowser, SessionStorage, SemiontSession, OpenResource, ImportPreview, CloneData, ReferenceData, ShellVM } from '@semiont/sdk';
11
- export { ActiveJob, AdminSecurityVM, AdminUsersVM, AnnotationGroups, BeckonVM, COMMON_PANELS, CloneData, ComposeMode, ComposePageVM, ComposeParams, DiscoverVM, EntityTagsVM, ExchangeVM, GatherVM, GenerateDocumentOptions, HOVER_DELAY_MS, HoverHandlers, ImportPreview, Job, JobAssignment, JobClaimAdapter, JobClaimAdapterOptions, JobQueueVM, MarkVM, MatchVM, PendingAnnotation, RESOURCE_PANELS, ReferenceData, ResourceLoaderVM, ResourceViewerPageVM, SaveResourceParams, SearchPipeline, SearchPipelineOptions, SearchState, SessionVM, ShellVM, ShellVMOptions, ToolbarPanelType, WelcomeVM, WizardState, YieldVM, createAdminSecurityVM, createAdminUsersVM, createBeckonVM, createComposePageVM, createDiscoverVM, createEntityTagsVM, createExchangeVM, createGatherVM, createHoverHandlers, createJobClaimAdapter, createJobQueueVM, createMarkVM, createMatchVM, createResourceLoaderVM, createResourceViewerPageVM, createSearchPipeline, createSessionVM, createShellVM, createWelcomeVM, createYieldVM } from '@semiont/sdk';
12
- import { TagSchema } from '@semiont/ontology';
13
- export { TAG_SCHEMAS, TagCategory, TagSchema, getAllTagSchemas, getSchemaCategory as getTagCategory, getTagSchema, getTagSchemasByDomain, isValidCategory } from '@semiont/ontology';
10
+ import { StateUnit, SemiontBrowser, SessionStorage, SessionFactory, SemiontSession, OpenResource, TagSchema, UploadProgress, SemiontClient, BeckonStateUnit, MarkStateUnit, GatherStateUnit, YieldStateUnit, ReferencedByEntry, SearchPipeline } from '@semiont/sdk';
11
+ export { BeckonStateUnit, GatherStateUnit, GenerateDocumentOptions, HOVER_DELAY_MS, HoverHandlers, MarkStateUnit, MatchStateUnit, PendingAnnotation, SearchPipeline, SearchPipelineOptions, SearchState, YieldStateUnit, createBeckonStateUnit, createGatherStateUnit, createHoverHandlers, createMarkStateUnit, createMatchStateUnit, createSearchPipeline, createYieldStateUnit } from '@semiont/sdk';
14
12
  import { Observable } from 'rxjs';
15
13
 
16
14
  /**
@@ -139,7 +137,7 @@ interface DeleteAnnotationParams {
139
137
  * function useAnnotationManager(client: SemiontClient): AnnotationManager {
140
138
  * return {
141
139
  * markAnnotation: async (params) => {
142
- * const result = await client.mark.annotation(params.rUri, {...});
140
+ * const result = await client.mark.annotation({ target: { source: params.rUri, ... }, ... });
143
141
  * return result.annotation;
144
142
  * },
145
143
  * deleteAnnotation: async (params) => {
@@ -558,7 +556,7 @@ declare const OAuthUserSchema: {
558
556
  */
559
557
  declare function sanitizeImageURL(url: string): string | null;
560
558
 
561
- declare function useViewModel<VM extends ViewModel>(factory: () => VM): VM;
559
+ declare function useStateUnit<T extends StateUnit>(factory: () => T): T;
562
560
 
563
561
  /**
564
562
  * Creates a debounced version of a callback function
@@ -806,11 +804,15 @@ interface UseResourceContentResult {
806
804
  declare function useResourceContent(rUri: ResourceId, resource: ResourceDescriptor, enabled?: boolean): UseResourceContentResult;
807
805
 
808
806
  interface SemiontProviderProps {
809
- /** Inject a specific browser (tests). Omit in production. */
807
+ /** Inject a fully-constructed browser (tests, embedded hosts that build their own). Omit to use the default. */
810
808
  browser?: SemiontBrowser;
809
+ /** Override the default `WebBrowserStorage`. Useful for non-browser hosts (Electron/Tauri filesystem-backed adapters). */
810
+ storage?: SessionStorage;
811
+ /** Override the default HTTP session factory. Useful for in-process or future non-HTTP transports. */
812
+ sessionFactory?: SessionFactory;
811
813
  children: ReactNode;
812
814
  }
813
- declare function SemiontProvider({ browser, children }: SemiontProviderProps): react_jsx_runtime.JSX.Element;
815
+ declare function SemiontProvider({ browser, storage, sessionFactory, children }: SemiontProviderProps): react_jsx_runtime.JSX.Element;
814
816
  declare function useSemiont(): SemiontBrowser;
815
817
 
816
818
  /**
@@ -847,7 +849,7 @@ interface AnnotationProviderProps {
847
849
  * function useAnnotationManager(client: SemiontClient): AnnotationManager {
848
850
  * return {
849
851
  * markAnnotation: async (params) => {
850
- * const result = await client.mark.annotation(params.rUri, {
852
+ * const result = await client.mark.annotation({
851
853
  * motivation: params.motivation,
852
854
  * target: { source: params.rUri, selector: params.selector },
853
855
  * body: params.body,
@@ -1351,10 +1353,10 @@ declare function KeyboardShortcutsHelpModal({ isOpen, onClose }: KeyboardShortcu
1351
1353
 
1352
1354
  /**
1353
1355
  * Modal that surfaces when a 403 forbidden error is reported via
1354
- * `notifyPermissionDenied` (called from QueryCache.onError).
1356
+ * the active session's `signals.notifyPermissionDenied(...)`.
1355
1357
  *
1356
1358
  * Reads `permissionDeniedAt$` and `permissionDeniedMessage$` from the
1357
- * active `FrontendSessionSignals`. The signals instance clears the
1359
+ * active `SessionSignals`. The signals instance clears the
1358
1360
  * flag when the user dismisses the modal. Modal state lives on
1359
1361
  * signals (not the session itself) so headless sessions
1360
1362
  * (workers/CLIs) don't carry dead observables.
@@ -1362,11 +1364,11 @@ declare function KeyboardShortcutsHelpModal({ isOpen, onClose }: KeyboardShortcu
1362
1364
  declare function PermissionDeniedModal(): react_jsx_runtime.JSX.Element;
1363
1365
 
1364
1366
  /**
1365
- * Modal that surfaces when the active KB's session expires (a 401 from
1366
- * either the session's own JWT validation or from any React Query call
1367
- * via the QueryCache.onError handler).
1367
+ * Modal that surfaces when the active KB's session expires (a 401
1368
+ * surfaced by the session's own JWT validation or by the host's
1369
+ * error-routing path).
1368
1370
  *
1369
- * Reads `sessionExpiredAt$` from the active `FrontendSessionSignals`.
1371
+ * Reads `sessionExpiredAt$` from the active `SessionSignals`.
1370
1372
  * When the user dismisses the modal, the signals instance clears the
1371
1373
  * flag. Modal state lives on signals (not the session itself) so
1372
1374
  * headless sessions (workers/CLIs) don't carry dead observables.
@@ -1512,6 +1514,8 @@ interface AssessmentPanelProps {
1512
1514
  isAssisting?: boolean;
1513
1515
  progress?: JobProgress$6 | null;
1514
1516
  locale?: string;
1517
+ /** BCP-47 tag of the resource being analyzed — forwarded to the assist call. */
1518
+ sourceLanguage?: string;
1515
1519
  annotateMode?: boolean;
1516
1520
  scrollToAnnotationId?: string | null;
1517
1521
  onScrollCompleted?: () => void;
@@ -1524,12 +1528,12 @@ interface AssessmentPanelProps {
1524
1528
  * @emits mark:cancel-pending - Cancel pending assessment annotation. Payload: undefined
1525
1529
  * @subscribes browse:click - Annotation clicked. Payload: { annotationId: string }
1526
1530
  */
1527
- declare function AssessmentPanel({ annotations, pendingAnnotation, isAssisting, progress, locale, annotateMode, scrollToAnnotationId, onScrollCompleted, hoveredAnnotationId, }: AssessmentPanelProps): react_jsx_runtime.JSX.Element;
1531
+ declare function AssessmentPanel({ annotations, pendingAnnotation, isAssisting, progress, locale, sourceLanguage, annotateMode, scrollToAnnotationId, onScrollCompleted, hoveredAnnotationId, }: AssessmentPanelProps): react_jsx_runtime.JSX.Element;
1528
1532
 
1529
1533
  interface Props$3 {
1530
1534
  /**
1531
1535
  * Connection state from `client.actor.state$`. See
1532
- * `packages/api-client/src/view-models/domain/actor-vm.ts`.
1536
+ * `packages/api-client/src/state/domain/actor-state-unit.ts`.
1533
1537
  *
1534
1538
  * UI mapping:
1535
1539
  * `open` | `reconnecting` | `initial` | `connecting`
@@ -1573,6 +1577,8 @@ interface CommentsPanelProps {
1573
1577
  isAssisting?: boolean;
1574
1578
  progress?: JobProgress$5 | null;
1575
1579
  locale?: string;
1580
+ /** BCP-47 tag of the resource being analyzed — forwarded to the assist call. */
1581
+ sourceLanguage?: string;
1576
1582
  scrollToAnnotationId?: string | null;
1577
1583
  onScrollCompleted?: () => void;
1578
1584
  hoveredAnnotationId?: string | null;
@@ -1584,13 +1590,16 @@ interface CommentsPanelProps {
1584
1590
  * @emits mark:cancel-pending - Cancel pending comment annotation. Payload: undefined
1585
1591
  * @subscribes browse:click - Annotation clicked. Payload: { annotationId: string }
1586
1592
  */
1587
- declare function CommentsPanel({ annotations, pendingAnnotation, annotateMode, isAssisting, progress, locale, scrollToAnnotationId, onScrollCompleted, hoveredAnnotationId, }: CommentsPanelProps): react_jsx_runtime.JSX.Element;
1593
+ declare function CommentsPanel({ annotations, pendingAnnotation, annotateMode, isAssisting, progress, locale, sourceLanguage, scrollToAnnotationId, onScrollCompleted, hoveredAnnotationId, }: CommentsPanelProps): react_jsx_runtime.JSX.Element;
1588
1594
 
1589
1595
  type JobProgress$4 = components['schemas']['JobProgress'];
1590
1596
  interface AssistSectionProps {
1591
1597
  annotationType: 'highlight' | 'assessment' | 'comment';
1592
1598
  isAssisting: boolean;
1599
+ /** User UI locale — written into the annotation body's `language` field for comment/assessment. */
1593
1600
  locale?: string;
1601
+ /** BCP-47 tag of the resource being analyzed. Forwarded to the prompt so the LLM analyzes non-English source correctly. */
1602
+ sourceLanguage?: string;
1594
1603
  progress?: JobProgress$4 | null | undefined;
1595
1604
  }
1596
1605
  /**
@@ -1605,7 +1614,7 @@ interface AssistSectionProps {
1605
1614
  * @emits mark:assist-request - Start assist for annotation type. Payload: { motivation: Motivation, options: { instructions?: string, tone?: string, density?: number } }
1606
1615
  * @emits mark:progress-dismiss - Dismiss the annotation progress display
1607
1616
  */
1608
- declare function AssistSection({ annotationType, isAssisting, locale, progress, }: AssistSectionProps): react_jsx_runtime.JSX.Element;
1617
+ declare function AssistSection({ annotationType, isAssisting, locale, sourceLanguage, progress, }: AssistSectionProps): react_jsx_runtime.JSX.Element;
1609
1618
 
1610
1619
  interface HighlightEntryProps {
1611
1620
  highlight: Annotation;
@@ -1630,6 +1639,8 @@ interface HighlightPanelProps {
1630
1639
  scrollToAnnotationId?: string | null;
1631
1640
  onScrollCompleted?: () => void;
1632
1641
  hoveredAnnotationId?: string | null;
1642
+ /** BCP-47 tag of the resource being analyzed — forwarded to the assist call so the LLM analyzes non-English source correctly. */
1643
+ sourceLanguage?: string;
1633
1644
  }
1634
1645
  /**
1635
1646
  * Panel for managing highlight annotations with auto-creation
@@ -1637,7 +1648,7 @@ interface HighlightPanelProps {
1637
1648
  * @emits mark:create - Create new highlight annotation (auto-triggered). Payload: { motivation: 'highlighting', selector: Selector | Selector[], body: Body[] }
1638
1649
  * @subscribes browse:click - Annotation clicked. Payload: { annotationId: string }
1639
1650
  */
1640
- declare function HighlightPanel({ annotations, pendingAnnotation, isAssisting, progress, annotateMode, scrollToAnnotationId, onScrollCompleted, hoveredAnnotationId, }: HighlightPanelProps): react_jsx_runtime.JSX.Element;
1651
+ declare function HighlightPanel({ annotations, pendingAnnotation, isAssisting, progress, annotateMode, scrollToAnnotationId, onScrollCompleted, hoveredAnnotationId, sourceLanguage, }: HighlightPanelProps): react_jsx_runtime.JSX.Element;
1641
1652
 
1642
1653
  type SemiontResource$1 = components['schemas']['ResourceDescriptor'];
1643
1654
  interface Props$2 {
@@ -1691,6 +1702,10 @@ interface Props$1 {
1691
1702
  scrollToAnnotationId?: string | null;
1692
1703
  onScrollCompleted?: () => void;
1693
1704
  hoveredAnnotationId?: string | null;
1705
+ /** User UI locale — stamped on the unresolved-reference body's `language` field. */
1706
+ locale?: string;
1707
+ /** BCP-47 tag of the resource being analyzed — fed into the prompt for source-aware analysis. */
1708
+ sourceLanguage?: string;
1694
1709
  }
1695
1710
  /**
1696
1711
  * Panel for managing reference annotations with entity type annotation
@@ -1700,7 +1715,7 @@ interface Props$1 {
1700
1715
  * @emits mark:cancel-pending - Cancel pending reference annotation. Payload: undefined
1701
1716
  * @subscribes browse:click - Annotation clicked. Payload: { annotationId: string }
1702
1717
  */
1703
- declare function ReferencesPanel({ annotations, isAssisting, progress, annotateMode, Link, routes, allEntityTypes, generatingReferenceId, referencedBy, referencedByLoading, pendingAnnotation, scrollToAnnotationId, onScrollCompleted, hoveredAnnotationId, }: Props$1): react_jsx_runtime.JSX.Element;
1718
+ declare function ReferencesPanel({ annotations, isAssisting, progress, annotateMode, Link, routes, allEntityTypes, generatingReferenceId, referencedBy, referencedByLoading, pendingAnnotation, scrollToAnnotationId, onScrollCompleted, hoveredAnnotationId, locale, sourceLanguage, }: Props$1): react_jsx_runtime.JSX.Element;
1704
1719
 
1705
1720
  type Agent = components['schemas']['Agent'];
1706
1721
  interface Props {
@@ -1759,6 +1774,10 @@ interface TaggingPanelProps {
1759
1774
  scrollToAnnotationId?: string | null;
1760
1775
  onScrollCompleted?: () => void;
1761
1776
  hoveredAnnotationId?: string | null;
1777
+ /** User UI locale — stamped on the tagging body's `language` field. */
1778
+ locale?: string;
1779
+ /** BCP-47 tag of the resource being analyzed — fed into the prompt for source-aware analysis. */
1780
+ sourceLanguage?: string;
1762
1781
  }
1763
1782
  /**
1764
1783
  * Panel for managing tag annotations with schema-based annotation
@@ -1768,7 +1787,7 @@ interface TaggingPanelProps {
1768
1787
  * @emits mark:create - Create new tag annotation. Payload: { motivation: 'tagging', selector: Selector | Selector[], body: Body[] }
1769
1788
  * @subscribes browse:click - Annotation clicked. Payload: { annotationId: string }
1770
1789
  */
1771
- declare function TaggingPanel({ annotations, annotateMode, isAssisting, progress, pendingAnnotation, scrollToAnnotationId, onScrollCompleted, hoveredAnnotationId, }: TaggingPanelProps): react_jsx_runtime.JSX.Element;
1790
+ declare function TaggingPanel({ annotations, annotateMode, isAssisting, progress, pendingAnnotation, scrollToAnnotationId, onScrollCompleted, hoveredAnnotationId, locale, sourceLanguage, }: TaggingPanelProps): react_jsx_runtime.JSX.Element;
1772
1791
 
1773
1792
  type JobProgress = components['schemas']['JobProgress'];
1774
1793
 
@@ -1805,6 +1824,12 @@ interface UnifiedAnnotationsPanelProps {
1805
1824
  onScrollCompleted?: () => void;
1806
1825
  hoveredAnnotationId?: string | null;
1807
1826
  locale?: string;
1827
+ /**
1828
+ * BCP-47 tag of the resource being analyzed (source-resource locale).
1829
+ * Independent from `locale` — a German user can analyze a French source
1830
+ * and get German bodies back. Fed into detection prompts.
1831
+ */
1832
+ sourceLanguage?: string;
1808
1833
  Link: React__default.ComponentType<LinkComponentProps>;
1809
1834
  routes: RouteBuilder;
1810
1835
  }
@@ -2594,6 +2619,64 @@ interface ExportCardProps {
2594
2619
  }
2595
2620
  declare function ExportCard({ onExport, isExporting, translations: t }: ExportCardProps): react_jsx_runtime.JSX.Element;
2596
2621
 
2622
+ /**
2623
+ * ShellStateUnit — app-shell state: which toolbar panel is open, tab-bar
2624
+ * coordination helpers, scroll-to-annotation signals. Lives on
2625
+ * `SemiontBrowser`'s app-scoped bus (not the per-session client bus)
2626
+ * because panel toggles and shell chrome must work regardless of
2627
+ * whether a KB session is active.
2628
+ *
2629
+ * Channels: `panel:toggle`, `panel:open`, `panel:close`.
2630
+ */
2631
+
2632
+ type ToolbarPanelType = 'history' | 'info' | 'annotations' | 'settings' | 'collaboration' | 'user' | 'jsonld' | 'knowledge-base';
2633
+ declare const COMMON_PANELS: readonly ToolbarPanelType[];
2634
+ declare const RESOURCE_PANELS: readonly ToolbarPanelType[];
2635
+ interface ShellStateUnit extends StateUnit {
2636
+ activePanel$: Observable<ToolbarPanelType | null>;
2637
+ scrollToAnnotationId$: Observable<string | null>;
2638
+ panelInitialTab$: Observable<{
2639
+ tab: string;
2640
+ generation: number;
2641
+ } | null>;
2642
+ openPanel(panel: string): void;
2643
+ closePanel(): void;
2644
+ togglePanel(panel: string): void;
2645
+ onScrollCompleted(): void;
2646
+ }
2647
+ interface ShellStateUnitOptions {
2648
+ initialPanel?: ToolbarPanelType | null;
2649
+ onPanelChange?: (panel: ToolbarPanelType | null) => void;
2650
+ }
2651
+ declare function createShellStateUnit(browser: SemiontBrowser, options?: ShellStateUnitOptions): ShellStateUnit;
2652
+
2653
+ interface ImportPreview {
2654
+ format: string;
2655
+ version: number;
2656
+ sourceUrl: string;
2657
+ stats: Record<string, number>;
2658
+ }
2659
+ interface ExchangeStateUnit extends StateUnit {
2660
+ browse: ShellStateUnit;
2661
+ selectedFile$: Observable<File | null>;
2662
+ preview$: Observable<ImportPreview | null>;
2663
+ importPhase$: Observable<string | null>;
2664
+ importMessage$: Observable<string | undefined>;
2665
+ importResult$: Observable<Record<string, unknown> | undefined>;
2666
+ isExporting$: Observable<boolean>;
2667
+ isImporting$: Observable<boolean>;
2668
+ selectFile(file: File): void;
2669
+ cancelImport(): void;
2670
+ doExport(): Promise<{
2671
+ blob: Blob;
2672
+ filename: string;
2673
+ }>;
2674
+ doImport(): Promise<void>;
2675
+ }
2676
+ declare function createExchangeStateUnit(browse: ShellStateUnit, exportFn: (params?: {
2677
+ includeArchived?: boolean;
2678
+ }) => Promise<BackendDownload>, importFn: (file: File) => Observable<ProgressEvent>): ExchangeStateUnit;
2679
+
2597
2680
  interface ImportCardTranslations {
2598
2681
  title: string;
2599
2682
  description: string;
@@ -3063,6 +3146,59 @@ interface TagSchemasPageProps {
3063
3146
  }
3064
3147
  declare function TagSchemasPage({ schemas, isLoading, theme, showLineNumbers, activePanel, translations: t, ToolbarPanels, Toolbar, }: TagSchemasPageProps): react_jsx_runtime.JSX.Element;
3065
3148
 
3149
+ type ComposeMode = 'new' | 'clone' | 'reference';
3150
+ interface ComposeParams {
3151
+ mode?: string | undefined;
3152
+ token?: string | undefined;
3153
+ annotationUri?: string | undefined;
3154
+ sourceDocumentId?: string | undefined;
3155
+ name?: string | undefined;
3156
+ entityTypes?: string | undefined;
3157
+ storedContext?: string | undefined;
3158
+ }
3159
+ interface CloneData {
3160
+ sourceResource: ResourceDescriptor;
3161
+ sourceContent: string;
3162
+ }
3163
+ interface ReferenceData {
3164
+ annotationUri: string;
3165
+ sourceDocumentId: string;
3166
+ name: string;
3167
+ entityTypes: string[];
3168
+ }
3169
+ interface SaveResourceParams$1 {
3170
+ mode: ComposeMode;
3171
+ name: string;
3172
+ storageUri: string;
3173
+ content?: string;
3174
+ file?: File;
3175
+ format?: string;
3176
+ charset?: string;
3177
+ entityTypes?: string[];
3178
+ language: string;
3179
+ archiveOriginal?: boolean;
3180
+ annotationUri?: string;
3181
+ sourceDocumentId?: string;
3182
+ }
3183
+ interface ComposePageStateUnit extends StateUnit {
3184
+ browse: ShellStateUnit;
3185
+ mode$: Observable<ComposeMode>;
3186
+ loading$: Observable<boolean>;
3187
+ cloneData$: Observable<CloneData | null>;
3188
+ referenceData$: Observable<ReferenceData | null>;
3189
+ gatheredContext$: Observable<GatheredContext | null>;
3190
+ entityTypes$: Observable<string[]>;
3191
+ /**
3192
+ * Live upload-progress for the in-flight `save(...)` call. Emits the
3193
+ * full `UploadProgress` lifecycle (started → finished) while a save is
3194
+ * underway; resets to `null` between saves and after completion. UI
3195
+ * components can subscribe to render an upload-in-progress indicator.
3196
+ */
3197
+ uploadProgress$: Observable<UploadProgress | null>;
3198
+ save(params: SaveResourceParams$1): Promise<string>;
3199
+ }
3200
+ declare function createComposePageStateUnit(client: SemiontClient, browse: ShellStateUnit, params: ComposeParams, auth?: AccessToken): ComposePageStateUnit;
3201
+
3066
3202
  interface ResourceComposePageProps {
3067
3203
  mode: 'new' | 'clone' | 'reference';
3068
3204
  cloneData?: CloneData | null;
@@ -3076,6 +3212,13 @@ interface ResourceComposePageProps {
3076
3212
  activePanel: string | null;
3077
3213
  onSaveResource: (params: SaveResourceParams) => Promise<void>;
3078
3214
  onCancel: () => void;
3215
+ /**
3216
+ * Live upload-progress for the in-flight save. Resolved by the route
3217
+ * shell from `composeVM.uploadProgress$`. `null` between saves and
3218
+ * after completion. When non-null, the form disables Save and the
3219
+ * inline `<UploadProgressBar />` below the action buttons renders.
3220
+ */
3221
+ uploadProgress?: UploadProgress | null;
3079
3222
  translations: {
3080
3223
  title: string;
3081
3224
  titleEditClone: string;
@@ -3126,7 +3269,29 @@ interface SaveResourceParams {
3126
3269
  annotationUri?: string;
3127
3270
  sourceDocumentId?: string;
3128
3271
  }
3129
- declare function ResourceComposePage({ mode, cloneData, referenceData, gatheredContext, availableEntityTypes, initialLocale, theme, showLineNumbers, hoverDelayMs, activePanel, onSaveResource, onCancel, translations: t, ToolbarPanels, Toolbar, }: ResourceComposePageProps): react_jsx_runtime.JSX.Element;
3272
+ declare function ResourceComposePage({ mode, cloneData, referenceData, gatheredContext, availableEntityTypes, initialLocale, theme, showLineNumbers, hoverDelayMs, activePanel, onSaveResource, onCancel, uploadProgress, translations: t, ToolbarPanels, Toolbar, }: ResourceComposePageProps): react_jsx_runtime.JSX.Element;
3273
+
3274
+ /**
3275
+ * Inline upload-progress affordance for the compose page.
3276
+ *
3277
+ * Subscribes (via prop) to a `UploadProgress | null` value derived from
3278
+ * `composeVM.uploadProgress$`. Renders nothing when null; renders an
3279
+ * indeterminate state on `started`; renders a labeled bar with byte
3280
+ * counts on `progress`; renders a brief "Uploaded" success state on
3281
+ * `finished` (cleared by the state unit's `null` push on complete).
3282
+ *
3283
+ * Designed to live below the Save button in the compose form so the
3284
+ * visual association with the action that triggered the upload is
3285
+ * direct. Uses the existing `.semiont-progress` styles in
3286
+ * `packages/react-ui/src/styles/core/progress.css`.
3287
+ */
3288
+
3289
+ interface UploadProgressBarProps {
3290
+ progress: UploadProgress | null;
3291
+ /** Optional label for the "starting" / "uploaded" lines. Defaults to "Upload". */
3292
+ label?: string;
3293
+ }
3294
+ declare function UploadProgressBar({ progress, label }: UploadProgressBarProps): React__default.ReactElement | null;
3130
3295
 
3131
3296
  interface ResourceDiscoveryPageProps {
3132
3297
  recentDocuments: ResourceDescriptor[];
@@ -3248,13 +3413,113 @@ interface HoverEmitterProps {
3248
3413
  }
3249
3414
  declare function useHoverEmitter(annotationId: AnnotationId, hoverDelayMs?: number): HoverEmitterProps;
3250
3415
 
3416
+ interface SessionStateUnit extends StateUnit {
3417
+ isLoggingOut$: Observable<boolean>;
3418
+ logout(): Promise<void>;
3419
+ }
3420
+ declare function createSessionStateUnit(client: SemiontClient): SessionStateUnit;
3421
+
3422
+ interface AnnotationGroups {
3423
+ highlights: Annotation[];
3424
+ comments: Annotation[];
3425
+ assessments: Annotation[];
3426
+ references: Annotation[];
3427
+ tags: Annotation[];
3428
+ }
3429
+ type StoredEventResponse = components['schemas']['StoredEventResponse'];
3430
+ interface WizardState {
3431
+ open: boolean;
3432
+ annotationId: string | null;
3433
+ resourceId: string | null;
3434
+ defaultTitle: string;
3435
+ entityTypes: string[];
3436
+ }
3437
+ interface ResourceViewerPageStateUnit extends StateUnit {
3438
+ beckon: BeckonStateUnit;
3439
+ browse: ShellStateUnit;
3440
+ mark: MarkStateUnit;
3441
+ gather: GatherStateUnit;
3442
+ yield: YieldStateUnit;
3443
+ annotations$: Observable<Annotation[]>;
3444
+ annotationGroups$: Observable<AnnotationGroups>;
3445
+ entityTypes$: Observable<string[]>;
3446
+ events$: Observable<StoredEventResponse[]>;
3447
+ referencedBy$: Observable<ReferencedByEntry[]>;
3448
+ content$: Observable<string>;
3449
+ contentLoading$: Observable<boolean>;
3450
+ mediaToken$: Observable<string | null>;
3451
+ wizard$: Observable<WizardState>;
3452
+ closeWizard(): void;
3453
+ }
3454
+ declare function createResourceViewerPageStateUnit(client: SemiontClient, resourceId: ResourceId, locale: string, browse: ShellStateUnit, options?: {
3455
+ mediaType?: string;
3456
+ }): ResourceViewerPageStateUnit;
3457
+
3458
+ interface ResourceLoaderStateUnit extends StateUnit {
3459
+ resource$: Observable<ResourceDescriptor | undefined>;
3460
+ isLoading$: Observable<boolean>;
3461
+ invalidate(): void;
3462
+ }
3463
+ declare function createResourceLoaderStateUnit(client: SemiontClient, resourceId: ResourceId): ResourceLoaderStateUnit;
3464
+
3465
+ interface AdminUsersStateUnit extends StateUnit {
3466
+ browse: ShellStateUnit;
3467
+ users$: Observable<unknown[]>;
3468
+ stats$: Observable<unknown | null>;
3469
+ usersLoading$: Observable<boolean>;
3470
+ statsLoading$: Observable<boolean>;
3471
+ updateUser(id: string, data: {
3472
+ isAdmin?: boolean;
3473
+ isActive?: boolean;
3474
+ }): Promise<void>;
3475
+ }
3476
+ declare function createAdminUsersStateUnit(client: SemiontClient, browse: ShellStateUnit): AdminUsersStateUnit;
3477
+
3478
+ interface AdminSecurityStateUnit extends StateUnit {
3479
+ browse: ShellStateUnit;
3480
+ providers$: Observable<unknown[]>;
3481
+ allowedDomains$: Observable<string[]>;
3482
+ isLoading$: Observable<boolean>;
3483
+ }
3484
+ declare function createAdminSecurityStateUnit(client: SemiontClient, browse: ShellStateUnit): AdminSecurityStateUnit;
3485
+
3486
+ interface WelcomeStateUnit extends StateUnit {
3487
+ userData$: Observable<{
3488
+ termsAcceptedAt?: string;
3489
+ } | null>;
3490
+ isProcessing$: Observable<boolean>;
3491
+ acceptTerms(): Promise<void>;
3492
+ }
3493
+ declare function createWelcomeStateUnit(client: SemiontClient): WelcomeStateUnit;
3494
+
3495
+ interface DiscoverStateUnit extends StateUnit {
3496
+ browse: ShellStateUnit;
3497
+ search: SearchPipeline<ResourceDescriptor>;
3498
+ recentResources$: Observable<ResourceDescriptor[]>;
3499
+ entityTypes$: Observable<string[]>;
3500
+ isLoadingRecent$: Observable<boolean>;
3501
+ }
3502
+ declare function createDiscoverStateUnit(client: SemiontClient, browse: ShellStateUnit): DiscoverStateUnit;
3503
+
3504
+ interface EntityTagsStateUnit extends StateUnit {
3505
+ browse: ShellStateUnit;
3506
+ entityTypes$: Observable<string[]>;
3507
+ isLoading$: Observable<boolean>;
3508
+ newTag$: Observable<string>;
3509
+ error$: Observable<string>;
3510
+ isAdding$: Observable<boolean>;
3511
+ setNewTag(value: string): void;
3512
+ addTag(): Promise<void>;
3513
+ }
3514
+ declare function createEntityTagsStateUnit(client: SemiontClient, browse: ShellStateUnit): EntityTagsStateUnit;
3515
+
3251
3516
  /**
3252
- * `ShellVM` is app-scoped — it owns toolbar panel state and lives on
3517
+ * `ShellStateUnit` is app-scoped — it owns toolbar panel state and lives on
3253
3518
  * the `SemiontBrowser`'s own bus. Unlike session-scoped VMs, this hook
3254
3519
  * does not need to wait for an active KB session; `useSemiont()`
3255
3520
  * always returns the module-scoped `SemiontBrowser` singleton.
3256
3521
  */
3257
- declare function useShellVM(): ShellVM;
3522
+ declare function useShellStateUnit(): ShellStateUnit;
3258
3523
 
3259
3524
  /**
3260
3525
  * Subscribe to an RxJS Observable and return its current value as React state.
@@ -3278,4 +3543,4 @@ declare function useShellVM(): ShellVM;
3278
3543
  */
3279
3544
  declare function useObservable<T>(obs$: Observable<T> | null | undefined): T | undefined;
3280
3545
 
3281
- 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 AnnotationConfig, type AnnotationCreationHandler, type AnnotationHandlers, AnnotationHistory, type AnnotationManager, AnnotationOverlay, AnnotationProvider, type AnnotationProviderProps, type AnnotationUIState, type AnnotationsCollection, type Annotator, AssessmentEntry, AssessmentPanel, AssistSection, AsyncErrorBoundary, AuthErrorDisplay, type AuthErrorDisplayProps, type AvailableLocale, type BorderRadiusToken, BrowseView, Button, ButtonGroup, type ButtonGroupProps, type ButtonProps, type ClickAction, CodeMirrorRenderer, CollaborationPanel, CollapsibleResourceNavigation, type CollapsibleResourceNavigationProps, type ColorToken, CommentEntry, CommentsPanel, ComposeLoadingState, type ComposeLoadingStateProps, type CreateAnnotationParams, type CreateConfig, type DeleteAnnotationParams, type DetectionConfig, type DevOpsFeature, type DrawingMode, EntityTagsPage, type EntityTagsPageProps, EntityTypeBadges, ErrorBoundary, ExportCard, type ExportCardProps, type ExportCardTranslations, Footer, HighlightEntry, HighlightPanel, HistoryEvent, type HoverEmitterProps, ImageURLSchema, ImageViewer, ImportCard, type ImportCardProps, type ImportCardTranslations, ImportProgress, type ImportProgressProps, type ImportProgressTranslations, JsonLdPanel, JsonLdView, type KeyboardShortcut, KeyboardShortcutsHelpModal, LeftSidebar, type LinkComponentProps, LinkedDataPage, type LinkedDataPageProps, type LinkedDataPageTranslations, LiveRegionProvider, type Motivation$8 as Motivation, type NavigationItem, NavigationMenu, type NavigationMenuHelper, type NavigationProps, type OAuthProvider, type OAuthUser, OAuthUserSchema, ObservableLink, type ObservableLinkProps, type OverlayAnnotation, PageLayout, PanelHeader, PermissionDeniedModal, PopupContainer, PopupHeader, ProtectedErrorBoundary, RecentDocumentsPage, type RecentDocumentsPageProps, ReferenceEntry, ReferenceResolutionWidget, ReferenceWizardModal, type ReferenceWizardModalProps, ReferencesPanel, ResizeHandle, type ResolvedTheme, ResourceAnnotationsProvider, ResourceCard, type ResourceCardProps, ResourceComposePage, type ResourceComposePageProps, ResourceDiscoveryPage, type ResourceDiscoveryPageProps, ResourceErrorState, type ResourceErrorStateProps, ResourceInfoPanel, ResourceLoadingState, ResourceSearchModal, type ResourceSearchModalProps, ResourceTagsInline, ResourceViewer, ResourceViewerPage, type ResourceViewerPageProps, type RouteBuilder, SearchModal, type SearchModalProps, SelectedTextDisplay, type SelectionMotivation, type SelectorType, SemiontBranding, SemiontFavicon, SemiontProvider, type SemiontProviderProps, type SemiontResource$2 as SemiontResource, SessionExpiredModal, SessionExpiryBanner, SessionTimer, SettingsPanel, type ShadowToken, type ShapeType, SignInForm, type SignInFormProps, SignUpForm, type SignUpFormProps, SimpleNavigation, type SimpleNavigationItem, type SimpleNavigationProps, SkipLinks, SortableResourceTab, type SortableResourceTabProps, type SpacingToken, StatisticsPanel, StatusDisplay, SvgDrawingCanvas, TagEntry, TagSchemasPage, type TagSchemasPageProps, TaggingPanel, type TextSegment, type TextSelection, type Theme, ThemeProvider, ToastContainer, type ToastMessage, ToastProvider, type ToastType, Toolbar, type TransitionToken, TranslationManager, TranslationProvider, type TranslationProviderProps, type TypographyToken, type UICreateAnnotationParams, UnifiedAnnotationsPanel, UnifiedHeader, type UseResourceContentResult, UserMenuSkeleton, WebBrowserStorage, WelcomePage, type WelcomePageProps, applyHighlights, buildSourceToRenderedMap, buildTextNodeIndex, buttonStyles, clearHighlights, cssVariables, faviconPaths, formatTime, generateCSSVariables, getResourceIcon, getSelectedShapeForSelectorType, getSelectorType, getShortcutDisplay, getSupportedShapes, hideWidgetPreview, isShapeSupported, jsonLightHighlightStyle, jsonLightTheme, resolveAnnotationRanges, sanitizeImageURL, saveSelectedShapeForSelectorType, showWidgetPreview, supportsDetection, toOverlayAnnotations, tokens, useAnnotationManager, useDebounce, useDebouncedCallback, useDocumentAnnouncements, useDoubleKeyPress, useDropdown, useEventSubscription, useEventSubscriptions, useFormAnnouncements, useHoverDelay, useHoverEmitter, useIsTyping, useKeyboardShortcuts, useLanguageChangeAnnouncements, useLineNumbers, useLiveRegion, useLoadingState, useLocalStorage, useObservable, useObservableExternalNavigation, useObservableRouter, usePanelWidth, usePreloadTranslations, useResourceAnnotations, useResourceContent, useResourceLoadingAnnouncements, useRovingTabIndex, useSearchAnnouncements, useSemiont, useSessionExpiry, useShellVM, useTheme, useToast, useTranslations, useViewModel };
3546
+ export { ANNOTATORS, AVAILABLE_LOCALES, AdminDevOpsPage, type AdminDevOpsPageProps, AdminExchangePage, type AdminExchangePageProps, type AdminExchangePageTranslations, AdminSecurityPage, type AdminSecurityPageProps, type AdminSecurityStateUnit, type AdminUser, type AdminUserStats, AdminUsersPage, type AdminUsersPageProps, type AdminUsersStateUnit, AnnotateReferencesProgressWidget, AnnotateToolbar, AnnotateView, type AnnotationConfig, type AnnotationCreationHandler, type AnnotationGroups, type AnnotationHandlers, AnnotationHistory, type AnnotationManager, AnnotationOverlay, AnnotationProvider, type AnnotationProviderProps, type AnnotationUIState, type AnnotationsCollection, type Annotator, AssessmentEntry, AssessmentPanel, AssistSection, AsyncErrorBoundary, AuthErrorDisplay, type AuthErrorDisplayProps, type AvailableLocale, type BorderRadiusToken, BrowseView, Button, ButtonGroup, type ButtonGroupProps, type ButtonProps, COMMON_PANELS, type ClickAction, type CloneData, CodeMirrorRenderer, CollaborationPanel, CollapsibleResourceNavigation, type CollapsibleResourceNavigationProps, type ColorToken, CommentEntry, CommentsPanel, ComposeLoadingState, type ComposeLoadingStateProps, type ComposeMode, type ComposePageStateUnit, type ComposeParams, type CreateAnnotationParams, type CreateConfig, type DeleteAnnotationParams, type DetectionConfig, type DevOpsFeature, type DiscoverStateUnit, type DrawingMode, EntityTagsPage, type EntityTagsPageProps, type EntityTagsStateUnit, EntityTypeBadges, ErrorBoundary, type ExchangeStateUnit, ExportCard, type ExportCardProps, type ExportCardTranslations, Footer, HighlightEntry, HighlightPanel, HistoryEvent, type HoverEmitterProps, 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 Motivation$8 as Motivation, type NavigationItem, NavigationMenu, type NavigationMenuHelper, type NavigationProps, type OAuthProvider, type OAuthUser, OAuthUserSchema, ObservableLink, type ObservableLinkProps, type OverlayAnnotation, PageLayout, PanelHeader, PermissionDeniedModal, PopupContainer, PopupHeader, ProtectedErrorBoundary, RESOURCE_PANELS, RecentDocumentsPage, type RecentDocumentsPageProps, type ReferenceData, ReferenceEntry, ReferenceResolutionWidget, ReferenceWizardModal, type ReferenceWizardModalProps, ReferencesPanel, ResizeHandle, type ResolvedTheme, ResourceAnnotationsProvider, ResourceCard, type ResourceCardProps, ResourceComposePage, type ResourceComposePageProps, ResourceDiscoveryPage, type ResourceDiscoveryPageProps, ResourceErrorState, type ResourceErrorStateProps, ResourceInfoPanel, type ResourceLoaderStateUnit, ResourceLoadingState, ResourceSearchModal, type ResourceSearchModalProps, ResourceTagsInline, ResourceViewer, ResourceViewerPage, type ResourceViewerPageProps, type ResourceViewerPageStateUnit, type RouteBuilder, type SaveResourceParams$1 as SaveResourceParams, SearchModal, type SearchModalProps, SelectedTextDisplay, type SelectionMotivation, type SelectorType, SemiontBranding, SemiontFavicon, SemiontProvider, type SemiontProviderProps, type SemiontResource$2 as SemiontResource, SessionExpiredModal, SessionExpiryBanner, type SessionStateUnit, SessionTimer, SettingsPanel, type ShadowToken, type ShapeType, type ShellStateUnit, type ShellStateUnitOptions, SignInForm, type SignInFormProps, SignUpForm, type SignUpFormProps, SimpleNavigation, type SimpleNavigationItem, type SimpleNavigationProps, SkipLinks, SortableResourceTab, type SortableResourceTabProps, type SpacingToken, StatisticsPanel, StatusDisplay, SvgDrawingCanvas, TagEntry, TagSchemasPage, type TagSchemasPageProps, TaggingPanel, type TextSegment, type TextSelection, type Theme, ThemeProvider, ToastContainer, type ToastMessage, ToastProvider, type ToastType, Toolbar, type ToolbarPanelType, type TransitionToken, TranslationManager, TranslationProvider, type TranslationProviderProps, type TypographyToken, type UICreateAnnotationParams, UnifiedAnnotationsPanel, UnifiedHeader, UploadProgressBar, type UploadProgressBarProps, type UseResourceContentResult, UserMenuSkeleton, WebBrowserStorage, WelcomePage, type WelcomePageProps, type WelcomeStateUnit, type WizardState, applyHighlights, buildSourceToRenderedMap, buildTextNodeIndex, buttonStyles, clearHighlights, createAdminSecurityStateUnit, createAdminUsersStateUnit, createComposePageStateUnit, createDiscoverStateUnit, createEntityTagsStateUnit, createExchangeStateUnit, createResourceLoaderStateUnit, createResourceViewerPageStateUnit, createSessionStateUnit, createShellStateUnit, createWelcomeStateUnit, cssVariables, faviconPaths, formatTime, generateCSSVariables, getResourceIcon, getSelectedShapeForSelectorType, getSelectorType, getShortcutDisplay, getSupportedShapes, hideWidgetPreview, isShapeSupported, jsonLightHighlightStyle, jsonLightTheme, resolveAnnotationRanges, sanitizeImageURL, saveSelectedShapeForSelectorType, showWidgetPreview, supportsDetection, toOverlayAnnotations, tokens, useAnnotationManager, useDebounce, useDebouncedCallback, useDocumentAnnouncements, useDoubleKeyPress, useDropdown, useEventSubscription, useEventSubscriptions, useFormAnnouncements, useHoverDelay, useHoverEmitter, useIsTyping, useKeyboardShortcuts, useLanguageChangeAnnouncements, useLineNumbers, useLiveRegion, useLoadingState, useLocalStorage, useObservable, useObservableExternalNavigation, useObservableRouter, usePanelWidth, usePreloadTranslations, useResourceAnnotations, useResourceContent, useResourceLoadingAnnouncements, useRovingTabIndex, useSearchAnnouncements, useSemiont, useSessionExpiry, useShellStateUnit, useStateUnit, useTheme, useToast, useTranslations };