@semiont/react-ui 0.5.5 → 0.5.6

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 (87) hide show
  1. package/README.md +59 -55
  2. package/dist/{PdfAnnotationCanvas.client-CN3C3S55.js → PdfAnnotationCanvas.client-NIMALXNZ.js} +7 -27
  3. package/dist/PdfAnnotationCanvas.client-NIMALXNZ.js.map +1 -0
  4. package/dist/index.css +6 -0
  5. package/dist/index.css.map +1 -1
  6. package/dist/index.d.ts +243 -99
  7. package/dist/index.js +539 -405
  8. package/dist/index.js.map +1 -1
  9. package/package.json +16 -12
  10. package/src/components/Button/__tests__/Button.test.tsx +0 -2
  11. package/src/components/CodeMirrorRenderer.tsx +2 -0
  12. package/src/components/ErrorBoundary.tsx +0 -9
  13. package/src/components/ProtectedErrorBoundary.tsx +6 -2
  14. package/src/components/__tests__/AnnotateReferencesProgressWidget.test.tsx +0 -1
  15. package/src/components/__tests__/ErrorBoundary.test.tsx +20 -13
  16. package/src/components/__tests__/LiveRegion.hooks.test.tsx +1 -1
  17. package/src/components/__tests__/ProtectedErrorBoundary.test.tsx +2 -1
  18. package/src/components/__tests__/ResizeHandle.test.tsx +0 -1
  19. package/src/components/__tests__/SessionExpiryBanner.test.tsx +0 -1
  20. package/src/components/__tests__/StatusDisplay.test.tsx +0 -1
  21. package/src/components/__tests__/Toast.test.tsx +2 -3
  22. package/src/components/__tests__/Toolbar.test.tsx +0 -1
  23. package/src/components/annotation/annotations.css +14 -0
  24. package/src/components/annotation-popups/__tests__/JsonLdView.test.tsx +3 -5
  25. package/src/components/annotation-popups/__tests__/SharedPopupElements.test.tsx +0 -1
  26. package/src/components/branding/__tests__/SemiontBranding.test.tsx +1 -2
  27. package/src/components/layout/__tests__/LeftSidebar.test.tsx +5 -6
  28. package/src/components/layout/__tests__/PageLayout.test.tsx +1 -3
  29. package/src/components/layout/__tests__/SkipLinks.a11y.test.tsx +8 -8
  30. package/src/components/layout/__tests__/UnifiedHeader.test.tsx +12 -1
  31. package/src/components/modals/__tests__/KeyboardShortcutsHelpModal.test.tsx +0 -1
  32. package/src/components/modals/__tests__/PermissionDeniedModal.test.tsx +3 -4
  33. package/src/components/modals/__tests__/ResourceSearchModal.test.tsx +0 -1
  34. package/src/components/modals/__tests__/SearchModal.basic.test.tsx +1 -1
  35. package/src/components/modals/__tests__/SearchModal.keyboard.test.tsx +0 -5
  36. package/src/components/modals/__tests__/SearchModal.search-wiring.test.tsx +0 -1
  37. package/src/components/modals/__tests__/SearchModal.visual.test.tsx +2 -2
  38. package/src/components/modals/__tests__/SessionExpiredModal.test.tsx +0 -1
  39. package/src/components/navigation/NavigationMenu.tsx +1 -1
  40. package/src/components/navigation/__tests__/Footer.a11y.test.tsx +4 -0
  41. package/src/components/navigation/__tests__/Footer.test.tsx +3 -6
  42. package/src/components/navigation/__tests__/NavigationMenu.a11y.test.tsx +1 -1
  43. package/src/components/navigation/__tests__/NavigationMenu.test.tsx +7 -9
  44. package/src/components/navigation/__tests__/ObservableLink.test.tsx +0 -1
  45. package/src/components/navigation/__tests__/SimpleNavigation.test.tsx +1 -2
  46. package/src/components/navigation/__tests__/SortableResourceTab.test.tsx +0 -1
  47. package/src/components/pdf-annotation/PdfAnnotationCanvas.tsx +6 -4
  48. package/src/components/pdf-annotation/__tests__/PdfAnnotationCanvas.test.tsx +10 -19
  49. package/src/components/resource/__tests__/BrowseView.test.tsx +8 -6
  50. package/src/components/resource/__tests__/HistoryEvent.test.tsx +0 -4
  51. package/src/components/resource/__tests__/ResourceViewer.mode-switch.test.tsx +4 -6
  52. package/src/components/resource/panels/ReferencesPanel.tsx +1 -1
  53. package/src/components/resource/panels/__tests__/AssessmentEntry.test.tsx +3 -4
  54. package/src/components/resource/panels/__tests__/AssessmentPanel.test.tsx +7 -6
  55. package/src/components/resource/panels/__tests__/AssistSection.test.tsx +14 -10
  56. package/src/components/resource/panels/__tests__/CollaborationPanel.test.tsx +0 -1
  57. package/src/components/resource/panels/__tests__/CommentEntry.test.tsx +30 -17
  58. package/src/components/resource/panels/__tests__/CommentsPanel.test.tsx +6 -5
  59. package/src/components/resource/panels/__tests__/HighlightEntry.test.tsx +4 -5
  60. package/src/components/resource/panels/__tests__/HighlightPanel.annotationProgress.test.tsx +19 -13
  61. package/src/components/resource/panels/__tests__/JsonLdPanel.test.tsx +1 -3
  62. package/src/components/resource/panels/__tests__/PanelHeader.test.tsx +0 -1
  63. package/src/components/resource/panels/__tests__/ReferenceEntry.test.tsx +5 -5
  64. package/src/components/resource/panels/__tests__/ReferencesPanel.test.tsx +40 -7
  65. package/src/components/resource/panels/__tests__/ResourceInfoPanel.test.tsx +3 -3
  66. package/src/components/resource/panels/__tests__/StatisticsPanel.test.tsx +30 -32
  67. package/src/components/resource/panels/__tests__/TagEntry.test.tsx +5 -5
  68. package/src/components/resource/panels/__tests__/TaggingPanel.test.tsx +6 -5
  69. package/src/components/settings/__tests__/SettingsPanel.test.tsx +0 -1
  70. package/src/components/viewers/__tests__/ImageViewer.test.tsx +0 -1
  71. package/src/features/auth/__tests__/SignInForm.a11y.test.tsx +2 -0
  72. package/src/features/auth/__tests__/SignUpForm.a11y.test.tsx +11 -12
  73. package/src/features/auth/__tests__/SignUpForm.test.tsx +3 -3
  74. package/src/features/moderate-tag-schemas/components/TagSchemasPage.tsx +1 -0
  75. package/src/features/resource-compose/__tests__/ResourceComposePage.test.tsx +2 -1
  76. package/src/features/resource-discovery/__tests__/ResourceCard.test.tsx +0 -1
  77. package/src/features/resource-discovery/__tests__/ResourceDiscoveryPage.test.tsx +33 -35
  78. package/src/features/resource-discovery/components/ResourceDiscoveryPage.tsx +12 -11
  79. package/src/features/resource-discovery/state/__tests__/discover-state-unit.test.ts +204 -11
  80. package/src/features/resource-discovery/state/discover-state-unit.ts +70 -11
  81. package/src/features/resource-viewer/__tests__/ResourceViewerPage.test.tsx +2 -2
  82. package/src/features/resource-viewer/components/ResourceViewerPage.tsx +3 -2
  83. package/src/features/resource-viewer/state/__tests__/resource-viewer-page-state-unit.test.ts +0 -1
  84. package/src/features/resource-viewer/state/resource-viewer-page-state-unit.ts +5 -2
  85. package/src/integrations/__tests__/css-modules-helper.test.tsx +2 -3
  86. package/src/integrations/__tests__/styled-components-theme.test.ts +1 -3
  87. package/dist/PdfAnnotationCanvas.client-CN3C3S55.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,14 +1,13 @@
1
1
  import * as _semiont_react_ui from '@semiont/react-ui';
2
- import { Annotation, ResourceId, Selector, components, ResourceDescriptor, ValidationResult, EventMap, AnnotationId, StoredEventLike, ConnectionState, GatheredContext, BackendDownload, ProgressEvent, AccessToken } from '@semiont/core';
2
+ import { Annotation, ResourceId, Selector, components, ResourceDescriptor, ValidationResult, EventMap, AnnotationId, AnchorStrategy, AnchorConfidence, StoredEventLike, ConnectionState, GatheredContext, BackendDownload, ProgressEvent, AccessToken } from '@semiont/core';
3
3
  export { Annotation } from '@semiont/core';
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
6
  import * as _codemirror_state from '@codemirror/state';
7
7
  import { HighlightStyle } from '@codemirror/language';
8
8
  import { WidgetType } from '@codemirror/view';
9
- import * as react_jsx_runtime from 'react/jsx-runtime';
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';
9
+ import { StateUnit, SemiontBrowser, SessionStorage, SessionFactory, SemiontSession, OpenResource, TagSchema, UploadProgress, SemiontClient, BeckonStateUnit, MarkStateUnit, GatherStateUnit, YieldStateUnit, ReferencedByEntry } from '@semiont/sdk';
10
+ export { BeckonStateUnit, GatherStateUnit, GenerateDocumentOptions, HOVER_DELAY_MS, HoverHandlers, MarkStateUnit, MatchStateUnit, PendingAnnotation, SearchPipeline, SearchPipelineOptions, SearchState, TagSchema, YieldStateUnit, createBeckonStateUnit, createGatherStateUnit, createHoverHandlers, createMarkStateUnit, createMatchStateUnit, createSearchPipeline, createYieldStateUnit } from '@semiont/sdk';
12
11
  import { Observable } from 'rxjs';
13
12
 
14
13
  /**
@@ -379,7 +378,7 @@ interface AnnotateToolbarProps {
379
378
  * @emits mark:shape-changed - Drawing shape changed. Payload: { shape: ShapeType }
380
379
  * @emits mark:mode-toggled - View mode toggled between browse and annotate. Payload: undefined
381
380
  */
382
- declare function AnnotateToolbar({ selectedMotivation, selectedClick, showSelectionGroup, showDeleteButton, showShapeGroup, selectedShape, mediaType, annotateMode, annotators }: AnnotateToolbarProps): react_jsx_runtime.JSX.Element;
381
+ declare function AnnotateToolbar({ selectedMotivation, selectedClick, showSelectionGroup, showDeleteButton, showShapeGroup, selectedShape, mediaType, annotateMode, annotators }: AnnotateToolbarProps): React__default.JSX.Element;
383
382
 
384
383
  /**
385
384
  * Media Type Shape Support
@@ -785,7 +784,7 @@ interface ThemeContextValue {
785
784
  }
786
785
  declare function ThemeProvider({ children }: {
787
786
  children: ReactNode;
788
- }): react_jsx_runtime.JSX.Element;
787
+ }): React$1.JSX.Element;
789
788
  declare function useTheme(): ThemeContextValue;
790
789
 
791
790
  /**
@@ -827,7 +826,7 @@ interface SemiontProviderProps {
827
826
  sessionFactory?: SessionFactory;
828
827
  children: ReactNode;
829
828
  }
830
- declare function SemiontProvider({ browser, storage, sessionFactory, children }: SemiontProviderProps): react_jsx_runtime.JSX.Element;
829
+ declare function SemiontProvider({ browser, storage, sessionFactory, children }: SemiontProviderProps): React$1.JSX.Element;
831
830
  declare function useSemiont(): SemiontBrowser;
832
831
 
833
832
  /**
@@ -884,7 +883,7 @@ interface AnnotationProviderProps {
884
883
  * </AnnotationProvider>
885
884
  * ```
886
885
  */
887
- declare function AnnotationProvider({ annotationManager, children }: AnnotationProviderProps): react_jsx_runtime.JSX.Element;
886
+ declare function AnnotationProvider({ annotationManager, children }: AnnotationProviderProps): React__default.JSX.Element;
888
887
  /**
889
888
  * Hook to access the AnnotationManager
890
889
  *
@@ -941,7 +940,7 @@ interface ResourceAnnotationsContextType {
941
940
  }
942
941
  declare function ResourceAnnotationsProvider({ children }: {
943
942
  children: React__default.ReactNode;
944
- }): react_jsx_runtime.JSX.Element;
943
+ }): React__default.JSX.Element;
945
944
  declare function useResourceAnnotations(): ResourceAnnotationsContextType;
946
945
 
947
946
  /**
@@ -1029,7 +1028,7 @@ interface TranslationProviderProps {
1029
1028
  * 2. With locale prop: Dynamically loads translations for that locale
1030
1029
  * 3. With translationManager: Use custom translation implementation
1031
1030
  */
1032
- declare function TranslationProvider({ translationManager, locale, loadingComponent, children, }: TranslationProviderProps): react_jsx_runtime.JSX.Element;
1031
+ declare function TranslationProvider({ translationManager, locale, loadingComponent, children, }: TranslationProviderProps): React$1.JSX.Element;
1033
1032
  /**
1034
1033
  * Hook to access translations within a namespace
1035
1034
  *
@@ -1063,6 +1062,13 @@ interface TextSegment {
1063
1062
  annotation?: Annotation;
1064
1063
  start: number;
1065
1064
  end: number;
1065
+ /** How `segmentTextWithAnnotations` resolved the anchor. Present only on
1066
+ * annotated segments — background text has no strategy. */
1067
+ strategy?: AnchorStrategy;
1068
+ /** Confidence of the anchor classification. `'high'` is the no-ambiguity
1069
+ * path; `'medium'` / `'low'` warrant the visual affordance and a one-
1070
+ * shot warning log. */
1071
+ confidence?: AnchorConfidence;
1066
1072
  }
1067
1073
 
1068
1074
  interface Props$b {
@@ -1085,7 +1091,7 @@ interface Props$b {
1085
1091
  generatingReferenceId?: string | null;
1086
1092
  hoverDelayMs: number;
1087
1093
  }
1088
- declare function CodeMirrorRenderer({ content, segments, onChange, editable, newAnnotationIds, hoveredAnnotationId, scrollToAnnotationId, sourceView, showLineNumbers, enableWidgets, session, getTargetResourceName, generatingReferenceId, hoverDelayMs }: Props$b): react_jsx_runtime.JSX.Element;
1094
+ declare function CodeMirrorRenderer({ content, segments, onChange, editable, newAnnotationIds, hoveredAnnotationId, scrollToAnnotationId, sourceView, showLineNumbers, enableWidgets, session, getTargetResourceName, generatingReferenceId, hoverDelayMs }: Props$b): React$1.JSX.Element;
1089
1095
 
1090
1096
  type Motivation$6 = components['schemas']['Motivation'];
1091
1097
  type JobProgress$7 = components['schemas']['JobProgress'];
@@ -1098,7 +1104,7 @@ interface AnnotateReferencesProgressWidgetProps {
1098
1104
  *
1099
1105
  * @emits job:cancel-requested - User requested to cancel annotation job. Payload: { jobType: string }
1100
1106
  */
1101
- declare function AnnotateReferencesProgressWidget({ progress, annotationType }: AnnotateReferencesProgressWidgetProps): react_jsx_runtime.JSX.Element | null;
1107
+ declare function AnnotateReferencesProgressWidget({ progress, annotationType }: AnnotateReferencesProgressWidgetProps): React$1.JSX.Element | null;
1102
1108
 
1103
1109
  interface Props$a {
1104
1110
  children: ReactNode;
@@ -1108,7 +1114,6 @@ interface Props$a {
1108
1114
  interface State {
1109
1115
  hasError: boolean;
1110
1116
  error: Error | null;
1111
- errorInfo: ErrorInfo | null;
1112
1117
  }
1113
1118
  /**
1114
1119
  * Generic Error Boundary component that catches JavaScript errors
@@ -1119,14 +1124,14 @@ declare class ErrorBoundary extends Component<Props$a, State> {
1119
1124
  static getDerivedStateFromError(error: Error): State;
1120
1125
  componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
1121
1126
  handleReset: () => void;
1122
- render(): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | React$1.ReactPortal | React$1.ReactElement<unknown, string | React$1.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null | undefined;
1127
+ render(): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | React$1.ReactPortal | React$1.ReactElement<unknown, string | React$1.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | React$1.JSX.Element | null | undefined;
1123
1128
  }
1124
1129
  /**
1125
1130
  * Specialized error boundary for async components
1126
1131
  */
1127
1132
  declare function AsyncErrorBoundary({ children }: {
1128
1133
  children: ReactNode;
1129
- }): react_jsx_runtime.JSX.Element;
1134
+ }): React$1.JSX.Element;
1130
1135
 
1131
1136
  interface ProtectedErrorBoundaryProps {
1132
1137
  children: React__default.ReactNode;
@@ -1151,7 +1156,7 @@ interface ProtectedErrorBoundaryProps {
1151
1156
  * The optional `resetKeys` prop lets callers wire automatic recovery on
1152
1157
  * navigation (e.g. `resetKeys={[location.pathname]}`).
1153
1158
  */
1154
- declare function ProtectedErrorBoundary({ children, resetKeys, }: ProtectedErrorBoundaryProps): react_jsx_runtime.JSX.Element;
1159
+ declare function ProtectedErrorBoundary({ children, resetKeys, }: ProtectedErrorBoundaryProps): React__default.JSX.Element;
1155
1160
 
1156
1161
  interface LiveRegionContextType {
1157
1162
  announce: (message: string, priority?: 'polite' | 'assertive') => void;
@@ -1160,7 +1165,7 @@ declare function useLiveRegion(): LiveRegionContextType;
1160
1165
  interface LiveRegionProviderProps {
1161
1166
  children: React__default.ReactNode;
1162
1167
  }
1163
- declare function LiveRegionProvider({ children }: LiveRegionProviderProps): react_jsx_runtime.JSX.Element;
1168
+ declare function LiveRegionProvider({ children }: LiveRegionProviderProps): React__default.JSX.Element;
1164
1169
  declare function useSearchAnnouncements(): {
1165
1170
  announceSearchResults: (count: number, query: string) => void;
1166
1171
  announceSearching: () => void;
@@ -1225,7 +1230,7 @@ interface ResizeHandleProps {
1225
1230
  * </div>
1226
1231
  * ```
1227
1232
  */
1228
- declare function ResizeHandle({ onResize, minWidth, maxWidth, position, ariaLabel }: ResizeHandleProps): react_jsx_runtime.JSX.Element;
1233
+ declare function ResizeHandle({ onResize, minWidth, maxWidth, position, ariaLabel }: ResizeHandleProps): React__default.JSX.Element;
1229
1234
 
1230
1235
  interface ResourceTagsInlineProps {
1231
1236
  resourceId: string;
@@ -1234,7 +1239,7 @@ interface ResourceTagsInlineProps {
1234
1239
  onUpdate: (tags: string[]) => Promise<void>;
1235
1240
  disabled?: boolean;
1236
1241
  }
1237
- declare function ResourceTagsInline({ tags }: ResourceTagsInlineProps): react_jsx_runtime.JSX.Element | null;
1242
+ declare function ResourceTagsInline({ tags }: ResourceTagsInlineProps): React$1.JSX.Element | null;
1238
1243
 
1239
1244
  type ToastType = 'success' | 'error' | 'info' | 'warning';
1240
1245
  interface ToastMessage {
@@ -1257,7 +1262,7 @@ interface ToastContextType {
1257
1262
  }
1258
1263
  declare function ToastProvider({ children }: {
1259
1264
  children: React__default.ReactNode;
1260
- }): react_jsx_runtime.JSX.Element;
1265
+ }): React__default.JSX.Element;
1261
1266
  declare function useToast(): ToastContextType;
1262
1267
 
1263
1268
  type ToolbarContext = 'document' | 'simple';
@@ -1271,7 +1276,7 @@ interface Props$9<T extends string = string> {
1271
1276
  *
1272
1277
  * @emits panel:toggle - Toggle panel visibility. Payload: { panel: string }
1273
1278
  */
1274
- declare function Toolbar<T extends string = string>({ context, activePanel, isArchived }: Props$9<T>): react_jsx_runtime.JSX.Element;
1279
+ declare function Toolbar<T extends string = string>({ context, activePanel, isArchived }: Props$9<T>): React$1.JSX.Element;
1275
1280
 
1276
1281
  interface SettingsPanelProps {
1277
1282
  showLineNumbers: boolean;
@@ -1288,28 +1293,28 @@ interface SettingsPanelProps {
1288
1293
  * @emits settings:theme-changed - Theme changed by user. Payload: { theme: 'light' | 'dark' | 'system' }
1289
1294
  * @emits settings:hover-delay-changed - Hover delay changed by user. Payload: { hoverDelayMs: number }
1290
1295
  */
1291
- declare function SettingsPanel({ showLineNumbers, theme, locale, isPendingLocaleChange, hoverDelayMs }: SettingsPanelProps): react_jsx_runtime.JSX.Element;
1296
+ declare function SettingsPanel({ showLineNumbers, theme, locale, isPendingLocaleChange, hoverDelayMs }: SettingsPanelProps): React__default.JSX.Element;
1292
1297
 
1293
1298
  interface JsonLdViewProps {
1294
1299
  annotation: Annotation;
1295
1300
  onBack: () => void;
1296
1301
  }
1297
- declare function JsonLdView({ annotation, onBack }: JsonLdViewProps): react_jsx_runtime.JSX.Element;
1302
+ declare function JsonLdView({ annotation, onBack }: JsonLdViewProps): React$1.JSX.Element;
1298
1303
 
1299
1304
  interface SelectedTextDisplayProps {
1300
1305
  exact: string;
1301
1306
  }
1302
- declare function SelectedTextDisplay({ exact }: SelectedTextDisplayProps): react_jsx_runtime.JSX.Element;
1307
+ declare function SelectedTextDisplay({ exact }: SelectedTextDisplayProps): React__default.JSX.Element;
1303
1308
  interface EntityTypeBadgesProps {
1304
1309
  entityTypes: string;
1305
1310
  }
1306
- declare function EntityTypeBadges({ entityTypes }: EntityTypeBadgesProps): react_jsx_runtime.JSX.Element | null;
1311
+ declare function EntityTypeBadges({ entityTypes }: EntityTypeBadgesProps): React__default.JSX.Element | null;
1307
1312
  interface PopupHeaderProps {
1308
1313
  title: string;
1309
1314
  selectedText?: string;
1310
1315
  onClose: () => void;
1311
1316
  }
1312
- declare function PopupHeader({ title, selectedText, onClose }: PopupHeaderProps): react_jsx_runtime.JSX.Element;
1317
+ declare function PopupHeader({ title, selectedText, onClose }: PopupHeaderProps): React__default.JSX.Element;
1313
1318
  interface PopupContainerProps {
1314
1319
  children: React__default.ReactNode;
1315
1320
  position: {
@@ -1320,7 +1325,7 @@ interface PopupContainerProps {
1320
1325
  isOpen: boolean;
1321
1326
  wide?: boolean;
1322
1327
  }
1323
- declare function PopupContainer({ children, position, onClose, isOpen, wide }: PopupContainerProps): react_jsx_runtime.JSX.Element;
1328
+ declare function PopupContainer({ children, position, onClose, isOpen, wide }: PopupContainerProps): React__default.JSX.Element;
1324
1329
 
1325
1330
  interface AnnotationOverlayProps {
1326
1331
  annotations: Annotation[];
@@ -1339,7 +1344,7 @@ interface AnnotationOverlayProps {
1339
1344
  * @emits beckon:hover - Annotation hovered or unhovered. Payload: { annotationId: string | null }
1340
1345
  * @emits browse:click - Annotation clicked. Payload: { annotationId: string, motivation: Motivation }
1341
1346
  */
1342
- declare function AnnotationOverlay({ annotations, imageWidth, imageHeight, displayWidth, displayHeight, session, hoveredAnnotationId, selectedAnnotationId, hoverDelayMs }: AnnotationOverlayProps): react_jsx_runtime.JSX.Element;
1347
+ declare function AnnotationOverlay({ annotations, imageWidth, imageHeight, displayWidth, displayHeight, session, hoveredAnnotationId, selectedAnnotationId, hoverDelayMs }: AnnotationOverlayProps): React$1.JSX.Element;
1343
1348
 
1344
1349
  type DrawingMode = 'rectangle' | 'polygon' | 'circle' | 'freeform' | null;
1345
1350
  interface SvgDrawingCanvasProps {
@@ -1358,13 +1363,13 @@ interface SvgDrawingCanvasProps {
1358
1363
  * @emits browse:click - Annotation clicked on canvas. Payload: { annotationId: string, motivation: Motivation }
1359
1364
  * @emits mark:requested - New annotation drawn on canvas. Payload: { selector: SvgSelector, motivation: SelectionMotivation }
1360
1365
  */
1361
- declare function SvgDrawingCanvas({ imageUrl, existingAnnotations, drawingMode, selectedMotivation, session, hoveredAnnotationId, selectedAnnotationId }: SvgDrawingCanvasProps): react_jsx_runtime.JSX.Element;
1366
+ declare function SvgDrawingCanvas({ imageUrl, existingAnnotations, drawingMode, selectedMotivation, session, hoveredAnnotationId, selectedAnnotationId }: SvgDrawingCanvasProps): React__default.JSX.Element;
1362
1367
 
1363
1368
  interface KeyboardShortcutsHelpModalProps {
1364
1369
  isOpen: boolean;
1365
1370
  onClose: () => void;
1366
1371
  }
1367
- declare function KeyboardShortcutsHelpModal({ isOpen, onClose }: KeyboardShortcutsHelpModalProps): react_jsx_runtime.JSX.Element;
1372
+ declare function KeyboardShortcutsHelpModal({ isOpen, onClose }: KeyboardShortcutsHelpModalProps): React__default.JSX.Element;
1368
1373
 
1369
1374
  /**
1370
1375
  * Modal that surfaces when a 403 forbidden error is reported via
@@ -1376,7 +1381,7 @@ declare function KeyboardShortcutsHelpModal({ isOpen, onClose }: KeyboardShortcu
1376
1381
  * signals (not the session itself) so headless sessions
1377
1382
  * (workers/CLIs) don't carry dead observables.
1378
1383
  */
1379
- declare function PermissionDeniedModal(): react_jsx_runtime.JSX.Element;
1384
+ declare function PermissionDeniedModal(): React$1.JSX.Element;
1380
1385
 
1381
1386
  /**
1382
1387
  * Modal that surfaces when the active KB's session expires (a 401
@@ -1388,7 +1393,7 @@ declare function PermissionDeniedModal(): react_jsx_runtime.JSX.Element;
1388
1393
  * flag. Modal state lives on signals (not the session itself) so
1389
1394
  * headless sessions (workers/CLIs) don't carry dead observables.
1390
1395
  */
1391
- declare function SessionExpiredModal(): react_jsx_runtime.JSX.Element;
1396
+ declare function SessionExpiredModal(): React$1.JSX.Element;
1392
1397
 
1393
1398
  interface Props$8 {
1394
1399
  content: string;
@@ -1414,7 +1419,7 @@ interface Props$8 {
1414
1419
  * @subscribes mark:shape-changed - Toolbar shape changed. Payload: { shape: string }
1415
1420
  * @subscribes beckon:hover - Annotation hovered. Payload: { annotationId: string | null }
1416
1421
  */
1417
- declare function AnnotateView({ content, mimeType, resourceUri, annotations, uiState, onUIStateChange, enableWidgets, getTargetResourceName, generatingReferenceId, showLineNumbers, hoverDelayMs, annotateMode }: Props$8): react_jsx_runtime.JSX.Element;
1422
+ declare function AnnotateView({ content, mimeType, resourceUri, annotations, uiState, onUIStateChange, enableWidgets, getTargetResourceName, generatingReferenceId, showLineNumbers, hoverDelayMs, annotateMode }: Props$8): React$1.JSX.Element;
1418
1423
 
1419
1424
  interface Props$7 {
1420
1425
  rUri: ResourceId;
@@ -1424,7 +1429,7 @@ interface Props$7 {
1424
1429
  Link: React__default.ComponentType<LinkComponentProps>;
1425
1430
  routes: RouteBuilder;
1426
1431
  }
1427
- declare function AnnotationHistory({ rUri, hoveredAnnotationId, onEventHover, onEventClick, Link, routes }: Props$7): react_jsx_runtime.JSX.Element | null;
1432
+ declare function AnnotationHistory({ rUri, hoveredAnnotationId, onEventHover, onEventClick, Link, routes }: Props$7): React__default.JSX.Element | null;
1428
1433
 
1429
1434
  interface Props$6 {
1430
1435
  content: string;
@@ -1449,7 +1454,7 @@ interface Props$6 {
1449
1454
  * @subscribes beckon:hover - Highlight annotation on hover. Payload: { annotationId: string | null }
1450
1455
  * @subscribes beckon:focus - Scroll to and highlight annotation. Payload: { annotationId: string }
1451
1456
  */
1452
- declare const BrowseView: React$1.MemoExoticComponent<({ content, mimeType, resourceUri, annotations, selectedClick, annotateMode, hoverDelayMs }: Props$6) => react_jsx_runtime.JSX.Element>;
1457
+ declare const BrowseView: React$1.MemoExoticComponent<({ content, mimeType, resourceUri, annotations, selectedClick, annotateMode, hoverDelayMs }: Props$6) => React$1.JSX.Element>;
1453
1458
 
1454
1459
  type TranslateFn$4 = (key: string, params?: Record<string, string | number>) => string;
1455
1460
  interface Props$5 {
@@ -1464,7 +1469,7 @@ interface Props$5 {
1464
1469
  onEventClick?: (annotationId: string | null) => void;
1465
1470
  onEventHover?: (annotationId: string | null) => void;
1466
1471
  }
1467
- declare function HistoryEvent({ event, annotations, allEvents, isRelated, t, Link, routes, onEventRef, onEventClick, onEventHover }: Props$5): react_jsx_runtime.JSX.Element;
1472
+ declare function HistoryEvent({ event, annotations, allEvents, isRelated, t, Link, routes, onEventRef, onEventClick, onEventHover }: Props$5): React__default.JSX.Element;
1468
1473
 
1469
1474
  /**
1470
1475
  * ResourceViewer - Display and interact with resource content and annotations
@@ -1507,7 +1512,7 @@ interface Props$4 {
1507
1512
  * @subscribes mark:shape-changed - Drawing shape changed. Payload: { shape: string }
1508
1513
  * @subscribes browse:click - User clicked on annotation. Payload: { annotationId: string }
1509
1514
  */
1510
- declare function ResourceViewer({ resource, annotations, generatingReferenceId, showLineNumbers, hoverDelayMs, hoveredAnnotationId: hoveredAnnotationIdProp }: Props$4): react_jsx_runtime.JSX.Element;
1515
+ declare function ResourceViewer({ resource, annotations, generatingReferenceId, showLineNumbers, hoverDelayMs, hoveredAnnotationId: hoveredAnnotationIdProp }: Props$4): React__default.JSX.Element;
1511
1516
 
1512
1517
  interface AssessmentEntryProps {
1513
1518
  assessment: Annotation;
@@ -1515,7 +1520,7 @@ interface AssessmentEntryProps {
1515
1520
  isHovered?: boolean;
1516
1521
  ref?: Ref<HTMLDivElement>;
1517
1522
  }
1518
- declare function AssessmentEntry({ assessment, isFocused, isHovered, ref, }: AssessmentEntryProps): react_jsx_runtime.JSX.Element;
1523
+ declare function AssessmentEntry({ assessment, isFocused, isHovered, ref, }: AssessmentEntryProps): React$1.JSX.Element;
1519
1524
 
1520
1525
  type Motivation$5 = components['schemas']['Motivation'];
1521
1526
  type JobProgress$6 = components['schemas']['JobProgress'];
@@ -1543,7 +1548,7 @@ interface AssessmentPanelProps {
1543
1548
  * @emits mark:cancel-pending - Cancel pending assessment annotation. Payload: undefined
1544
1549
  * @subscribes browse:click - Annotation clicked. Payload: { annotationId: string }
1545
1550
  */
1546
- declare function AssessmentPanel({ annotations, pendingAnnotation, isAssisting, progress, locale, sourceLanguage, annotateMode, scrollToAnnotationId, onScrollCompleted, hoveredAnnotationId, }: AssessmentPanelProps): react_jsx_runtime.JSX.Element;
1551
+ declare function AssessmentPanel({ annotations, pendingAnnotation, isAssisting, progress, locale, sourceLanguage, annotateMode, scrollToAnnotationId, onScrollCompleted, hoveredAnnotationId, }: AssessmentPanelProps): React$1.JSX.Element;
1547
1552
 
1548
1553
  interface Props$3 {
1549
1554
  /**
@@ -1568,7 +1573,7 @@ interface Props$3 {
1568
1573
  lastEventTimestamp?: string;
1569
1574
  knowledgeBaseName?: string;
1570
1575
  }
1571
- declare function CollaborationPanel({ state, eventCount, lastEventTimestamp, knowledgeBaseName }: Props$3): react_jsx_runtime.JSX.Element;
1576
+ declare function CollaborationPanel({ state, eventCount, lastEventTimestamp, knowledgeBaseName }: Props$3): React$1.JSX.Element;
1572
1577
 
1573
1578
  interface CommentEntryProps {
1574
1579
  comment: Annotation;
@@ -1577,7 +1582,7 @@ interface CommentEntryProps {
1577
1582
  annotateMode?: boolean;
1578
1583
  ref?: Ref<HTMLDivElement>;
1579
1584
  }
1580
- declare function CommentEntry({ comment, isFocused, isHovered, annotateMode, ref, }: CommentEntryProps): react_jsx_runtime.JSX.Element;
1585
+ declare function CommentEntry({ comment, isFocused, isHovered, annotateMode, ref, }: CommentEntryProps): React$1.JSX.Element;
1581
1586
 
1582
1587
  type Motivation$4 = components['schemas']['Motivation'];
1583
1588
  type JobProgress$5 = components['schemas']['JobProgress'];
@@ -1605,7 +1610,7 @@ interface CommentsPanelProps {
1605
1610
  * @emits mark:cancel-pending - Cancel pending comment annotation. Payload: undefined
1606
1611
  * @subscribes browse:click - Annotation clicked. Payload: { annotationId: string }
1607
1612
  */
1608
- declare function CommentsPanel({ annotations, pendingAnnotation, annotateMode, isAssisting, progress, locale, sourceLanguage, scrollToAnnotationId, onScrollCompleted, hoveredAnnotationId, }: CommentsPanelProps): react_jsx_runtime.JSX.Element;
1613
+ declare function CommentsPanel({ annotations, pendingAnnotation, annotateMode, isAssisting, progress, locale, sourceLanguage, scrollToAnnotationId, onScrollCompleted, hoveredAnnotationId, }: CommentsPanelProps): React$1.JSX.Element;
1609
1614
 
1610
1615
  type JobProgress$4 = components['schemas']['JobProgress'];
1611
1616
  interface AssistSectionProps {
@@ -1629,7 +1634,7 @@ interface AssistSectionProps {
1629
1634
  * @emits mark:assist-request - Start assist for annotation type. Payload: { motivation: Motivation, options: { instructions?: string, tone?: string, density?: number } }
1630
1635
  * @emits mark:progress-dismiss - Dismiss the annotation progress display
1631
1636
  */
1632
- declare function AssistSection({ annotationType, isAssisting, locale, sourceLanguage, progress, }: AssistSectionProps): react_jsx_runtime.JSX.Element;
1637
+ declare function AssistSection({ annotationType, isAssisting, locale, sourceLanguage, progress, }: AssistSectionProps): React$1.JSX.Element;
1633
1638
 
1634
1639
  interface HighlightEntryProps {
1635
1640
  highlight: Annotation;
@@ -1637,7 +1642,7 @@ interface HighlightEntryProps {
1637
1642
  isHovered?: boolean;
1638
1643
  ref?: Ref<HTMLDivElement>;
1639
1644
  }
1640
- declare function HighlightEntry({ highlight, isFocused, isHovered, ref, }: HighlightEntryProps): react_jsx_runtime.JSX.Element;
1645
+ declare function HighlightEntry({ highlight, isFocused, isHovered, ref, }: HighlightEntryProps): React$1.JSX.Element;
1641
1646
 
1642
1647
  type Motivation$3 = components['schemas']['Motivation'];
1643
1648
  type JobProgress$3 = components['schemas']['JobProgress'];
@@ -1663,13 +1668,13 @@ interface HighlightPanelProps {
1663
1668
  * @emits mark:create - Create new highlight annotation (auto-triggered). Payload: { motivation: 'highlighting', selector: Selector | Selector[], body: Body[] }
1664
1669
  * @subscribes browse:click - Annotation clicked. Payload: { annotationId: string }
1665
1670
  */
1666
- declare function HighlightPanel({ annotations, pendingAnnotation, isAssisting, progress, annotateMode, scrollToAnnotationId, onScrollCompleted, hoveredAnnotationId, sourceLanguage, }: HighlightPanelProps): react_jsx_runtime.JSX.Element;
1671
+ declare function HighlightPanel({ annotations, pendingAnnotation, isAssisting, progress, annotateMode, scrollToAnnotationId, onScrollCompleted, hoveredAnnotationId, sourceLanguage, }: HighlightPanelProps): React$1.JSX.Element;
1667
1672
 
1668
1673
  type SemiontResource$1 = components['schemas']['ResourceDescriptor'];
1669
1674
  interface Props$2 {
1670
1675
  resource: SemiontResource$1;
1671
1676
  }
1672
- declare function JsonLdPanel({ resource: semiontResource }: Props$2): react_jsx_runtime.JSX.Element;
1677
+ declare function JsonLdPanel({ resource: semiontResource }: Props$2): React$1.JSX.Element;
1673
1678
 
1674
1679
  interface PanelHeaderProps {
1675
1680
  annotationType: 'highlight' | 'reference' | 'assessment' | 'comment' | 'tag';
@@ -1681,7 +1686,7 @@ interface PanelHeaderProps {
1681
1686
  *
1682
1687
  * Displays the annotation icon, translated title, and count in a consistent format
1683
1688
  */
1684
- declare function PanelHeader({ count, title }: PanelHeaderProps): react_jsx_runtime.JSX.Element;
1689
+ declare function PanelHeader({ count, title }: PanelHeaderProps): React$1.JSX.Element;
1685
1690
 
1686
1691
  interface ReferenceEntryProps {
1687
1692
  reference: Annotation;
@@ -1692,7 +1697,7 @@ interface ReferenceEntryProps {
1692
1697
  isGenerating?: boolean;
1693
1698
  ref?: Ref<HTMLDivElement>;
1694
1699
  }
1695
- declare function ReferenceEntry({ reference, isFocused, isHovered, routes, annotateMode, isGenerating, ref, }: ReferenceEntryProps): react_jsx_runtime.JSX.Element;
1700
+ declare function ReferenceEntry({ reference, isFocused, isHovered, routes, annotateMode, isGenerating, ref, }: ReferenceEntryProps): React$1.JSX.Element;
1696
1701
 
1697
1702
  type JobProgress$2 = components['schemas']['JobProgress'];
1698
1703
 
@@ -1730,7 +1735,7 @@ interface Props$1 {
1730
1735
  * @emits mark:cancel-pending - Cancel pending reference annotation. Payload: undefined
1731
1736
  * @subscribes browse:click - Annotation clicked. Payload: { annotationId: string }
1732
1737
  */
1733
- 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;
1738
+ declare function ReferencesPanel({ annotations, isAssisting, progress, annotateMode, Link, routes, allEntityTypes, generatingReferenceId, referencedBy, referencedByLoading, pendingAnnotation, scrollToAnnotationId, onScrollCompleted, hoveredAnnotationId, locale, sourceLanguage, }: Props$1): React__default.JSX.Element;
1734
1739
 
1735
1740
  type Agent = components['schemas']['Agent'];
1736
1741
  interface Props {
@@ -1754,7 +1759,7 @@ interface Props {
1754
1759
  * @emits mark:unarchive - Unarchive this resource
1755
1760
  * @emits mark:archive - Archive this resource
1756
1761
  */
1757
- declare function ResourceInfoPanel({ resourceId, documentEntityTypes, documentLocale, primaryMediaType, primaryByteSize, storageUri, isArchived, dateCreated, dateModified, wasAttributedTo, wasDerivedFrom, generator, }: Props): react_jsx_runtime.JSX.Element;
1762
+ declare function ResourceInfoPanel({ resourceId, documentEntityTypes, documentLocale, primaryMediaType, primaryByteSize, storageUri, isArchived, dateCreated, dateModified, wasAttributedTo, wasDerivedFrom, generator, }: Props): React$1.JSX.Element;
1758
1763
 
1759
1764
  interface StatisticsPanelProps {
1760
1765
  highlights: Annotation[];
@@ -1763,7 +1768,7 @@ interface StatisticsPanelProps {
1763
1768
  references: Annotation[];
1764
1769
  tags: Annotation[];
1765
1770
  }
1766
- declare function StatisticsPanel({ highlights, comments, assessments, references, tags }: StatisticsPanelProps): react_jsx_runtime.JSX.Element;
1771
+ declare function StatisticsPanel({ highlights, comments, assessments, references, tags }: StatisticsPanelProps): React$1.JSX.Element;
1767
1772
 
1768
1773
  interface TagEntryProps {
1769
1774
  tag: Annotation;
@@ -1771,7 +1776,7 @@ interface TagEntryProps {
1771
1776
  isHovered?: boolean;
1772
1777
  ref?: Ref<HTMLDivElement>;
1773
1778
  }
1774
- declare function TagEntry({ tag, isFocused, isHovered, ref, }: TagEntryProps): react_jsx_runtime.JSX.Element;
1779
+ declare function TagEntry({ tag, isFocused, isHovered, ref, }: TagEntryProps): React$1.JSX.Element;
1775
1780
 
1776
1781
  type Motivation$1 = components['schemas']['Motivation'];
1777
1782
  type JobProgress$1 = components['schemas']['JobProgress'];
@@ -1801,7 +1806,7 @@ interface TaggingPanelProps {
1801
1806
  * @emits mark:create - Create new tag annotation. Payload: { motivation: 'tagging', selector: Selector | Selector[], body: Body[] }
1802
1807
  * @subscribes browse:click - Annotation clicked. Payload: { annotationId: string }
1803
1808
  */
1804
- declare function TaggingPanel({ annotations, annotateMode, isAssisting, progress, pendingAnnotation, scrollToAnnotationId, onScrollCompleted, hoveredAnnotationId, locale, sourceLanguage, }: TaggingPanelProps): react_jsx_runtime.JSX.Element;
1809
+ declare function TaggingPanel({ annotations, annotateMode, isAssisting, progress, pendingAnnotation, scrollToAnnotationId, onScrollCompleted, hoveredAnnotationId, locale, sourceLanguage, }: TaggingPanelProps): React$1.JSX.Element;
1805
1810
 
1806
1811
  type JobProgress = components['schemas']['JobProgress'];
1807
1812
 
@@ -1847,14 +1852,14 @@ interface UnifiedAnnotationsPanelProps {
1847
1852
  Link: React__default.ComponentType<LinkComponentProps>;
1848
1853
  routes: RouteBuilder;
1849
1854
  }
1850
- declare function UnifiedAnnotationsPanel(props: UnifiedAnnotationsPanelProps): react_jsx_runtime.JSX.Element;
1855
+ declare function UnifiedAnnotationsPanel(props: UnifiedAnnotationsPanelProps): React__default.JSX.Element;
1851
1856
 
1852
1857
  interface ImageViewerProps {
1853
1858
  imageUrl: string;
1854
1859
  mimeType: string;
1855
1860
  alt?: string;
1856
1861
  }
1857
- declare function ImageViewer({ imageUrl, alt }: ImageViewerProps): react_jsx_runtime.JSX.Element;
1862
+ declare function ImageViewer({ imageUrl, alt }: ImageViewerProps): React$1.JSX.Element;
1858
1863
 
1859
1864
  type TranslateFn$3 = (key: string, params?: Record<string, any>) => string;
1860
1865
  interface FooterProps {
@@ -1870,12 +1875,12 @@ interface FooterProps {
1870
1875
  /** Show About, Privacy Policy, Terms of Service, Cookie Preferences links. False for desktop apps. */
1871
1876
  showPolicyLinks?: boolean;
1872
1877
  }
1873
- declare function Footer({ Link, routes, t, CookiePreferences, onOpenKeyboardHelp, sourceCodeUrl, showPolicyLinks, }: FooterProps): react_jsx_runtime.JSX.Element;
1878
+ declare function Footer({ Link, routes, t, CookiePreferences, onOpenKeyboardHelp, sourceCodeUrl, showPolicyLinks, }: FooterProps): React__default.JSX.Element;
1874
1879
 
1875
1880
  type TranslateFn$2 = (key: string, params?: Record<string, any>) => string;
1876
1881
  interface NavigationMenuProps {
1877
1882
  Link: React__default.ComponentType<LinkComponentProps>;
1878
- routes: RouteBuilder;
1883
+ routes: Partial<RouteBuilder>;
1879
1884
  t: TranslateFn$2;
1880
1885
  isAdmin?: boolean;
1881
1886
  isModerator?: boolean;
@@ -1884,7 +1889,7 @@ interface NavigationMenuProps {
1884
1889
  className?: string;
1885
1890
  currentPath?: string;
1886
1891
  }
1887
- declare function NavigationMenu({ Link, routes, t, isAdmin, isModerator, onItemClick, className, currentPath }: NavigationMenuProps): react_jsx_runtime.JSX.Element;
1892
+ declare function NavigationMenu({ Link, routes, t, isAdmin, isModerator, onItemClick, className, currentPath }: NavigationMenuProps): React__default.JSX.Element;
1888
1893
 
1889
1894
  /**
1890
1895
  * Props for ObservableLink component
@@ -1935,7 +1940,7 @@ interface ObservableLinkProps extends React__default.AnchorHTMLAttributes<HTMLAn
1935
1940
  *
1936
1941
  * @emits nav:link-clicked - Link clicked by user. Payload: { href: string, label?: string }
1937
1942
  */
1938
- declare function ObservableLink({ href, label, onClick, children, ...anchorProps }: ObservableLinkProps): react_jsx_runtime.JSX.Element;
1943
+ declare function ObservableLink({ href, label, onClick, children, ...anchorProps }: ObservableLinkProps): React__default.JSX.Element;
1939
1944
 
1940
1945
  interface SimpleNavigationItem$1 {
1941
1946
  name: string;
@@ -1969,7 +1974,7 @@ interface SimpleNavigationProps$1 {
1969
1974
  *
1970
1975
  * @emits shell:sidebar-toggle - Toggle sidebar collapsed/expanded state. Payload: undefined
1971
1976
  */
1972
- declare function SimpleNavigation({ title, items, currentPath, LinkComponent, dropdownContent, isCollapsed, icons, collapseSidebarLabel, expandSidebarLabel }: SimpleNavigationProps$1): react_jsx_runtime.JSX.Element;
1977
+ declare function SimpleNavigation({ title, items, currentPath, LinkComponent, dropdownContent, isCollapsed, icons, collapseSidebarLabel, expandSidebarLabel }: SimpleNavigationProps$1): React__default.JSX.Element;
1973
1978
 
1974
1979
  /**
1975
1980
  * Props for the sortable resource tab component
@@ -2037,13 +2042,13 @@ interface CollapsibleResourceNavigationProps {
2037
2042
  * @emits tabs:close - Resource tab closed. Payload: { resourceId: string }
2038
2043
  * @emits shell:sidebar-toggle - Toggle sidebar collapsed/expanded state. Payload: undefined
2039
2044
  */
2040
- declare function CollapsibleResourceNavigation({ fixedItems, resources, isCollapsed, currentPath, LinkComponent, onNavigate, getResourceHref, className, translations, icons, navigationMenu }: CollapsibleResourceNavigationProps): react_jsx_runtime.JSX.Element;
2045
+ declare function CollapsibleResourceNavigation({ fixedItems, resources, isCollapsed, currentPath, LinkComponent, onNavigate, getResourceHref, className, translations, icons, navigationMenu }: CollapsibleResourceNavigationProps): React__default.JSX.Element;
2041
2046
 
2042
2047
  /**
2043
2048
  * A sortable tab for an open resource in the navigation sidebar.
2044
2049
  * Supports drag and drop when expanded, and compact icon-only view when collapsed.
2045
2050
  */
2046
- declare function SortableResourceTab({ resource, isCollapsed, isActive, href, onClose, onReorder, index, totalCount, LinkComponent, translations, isDragging }: SortableResourceTabProps): react_jsx_runtime.JSX.Element;
2051
+ declare function SortableResourceTab({ resource, isCollapsed, isActive, href, onClose, onReorder, index, totalCount, LinkComponent, translations, isDragging }: SortableResourceTabProps): React__default.JSX.Element;
2047
2052
 
2048
2053
  interface SimpleNavigationItem {
2049
2054
  name: string;
@@ -2129,7 +2134,7 @@ interface ReferenceWizardModalProps {
2129
2134
  semanticScoringHelp: string;
2130
2135
  };
2131
2136
  }
2132
- declare function ReferenceWizardModal({ isOpen, onClose, annotationId, resourceId, defaultTitle, entityTypes, locale, context, contextLoading, contextError, onGenerateSubmit, onLinkResource, onComposeNavigate, translations: t, }: ReferenceWizardModalProps): react_jsx_runtime.JSX.Element;
2137
+ declare function ReferenceWizardModal({ isOpen, onClose, annotationId, resourceId, defaultTitle, entityTypes, locale, context, contextLoading, contextError, onGenerateSubmit, onLinkResource, onComposeNavigate, translations: t, }: ReferenceWizardModalProps): React$1.JSX.Element;
2133
2138
 
2134
2139
  interface SearchModalProps$1 {
2135
2140
  isOpen: boolean;
@@ -2147,7 +2152,7 @@ interface SearchModalProps$1 {
2147
2152
  esc?: string;
2148
2153
  };
2149
2154
  }
2150
- declare function SearchModal({ isOpen, onClose, onNavigate, translations }: SearchModalProps$1): react_jsx_runtime.JSX.Element;
2155
+ declare function SearchModal({ isOpen, onClose, onNavigate, translations }: SearchModalProps$1): React__default.JSX.Element;
2151
2156
 
2152
2157
  interface ResourceSearchModalProps$1 {
2153
2158
  isOpen: boolean;
@@ -2162,7 +2167,7 @@ interface ResourceSearchModalProps$1 {
2162
2167
  close?: string;
2163
2168
  };
2164
2169
  }
2165
- declare function ResourceSearchModal({ isOpen, onClose, onSelect, searchTerm, translations }: ResourceSearchModalProps$1): react_jsx_runtime.JSX.Element;
2170
+ declare function ResourceSearchModal({ isOpen, onClose, onSelect, searchTerm, translations }: ResourceSearchModalProps$1): React$1.JSX.Element;
2166
2171
 
2167
2172
  /**
2168
2173
  * Base modal props that all modals share
@@ -2219,20 +2224,20 @@ interface ResourceSearchModalProps extends BaseModalProps {
2219
2224
  * These links are visually hidden but become visible when focused
2220
2225
  * They allow keyboard users to quickly jump to main content areas
2221
2226
  */
2222
- declare function SkipLinks(): react_jsx_runtime.JSX.Element;
2227
+ declare function SkipLinks(): React$1.JSX.Element;
2223
2228
 
2224
2229
  interface StatusDisplayProps {
2225
2230
  isFullyAuthenticated?: boolean;
2226
2231
  isAuthenticated?: boolean;
2227
2232
  hasValidBackendToken?: boolean;
2228
2233
  }
2229
- declare function StatusDisplay({ isFullyAuthenticated, isAuthenticated, hasValidBackendToken }: StatusDisplayProps): react_jsx_runtime.JSX.Element;
2234
+ declare function StatusDisplay({ isFullyAuthenticated, isAuthenticated, hasValidBackendToken }: StatusDisplayProps): React$1.JSX.Element;
2230
2235
 
2231
- declare function SessionTimer(): react_jsx_runtime.JSX.Element | null;
2236
+ declare function SessionTimer(): React$1.JSX.Element | null;
2232
2237
 
2233
- declare function SessionExpiryBanner(): react_jsx_runtime.JSX.Element | null;
2238
+ declare function SessionExpiryBanner(): React$1.JSX.Element | null;
2234
2239
 
2235
- declare function UserMenuSkeleton(): react_jsx_runtime.JSX.Element;
2240
+ declare function UserMenuSkeleton(): React$1.JSX.Element;
2236
2241
 
2237
2242
  type TranslateFn$1 = (key: string) => string;
2238
2243
  interface SemiontBrandingProps {
@@ -2243,7 +2248,7 @@ interface SemiontBrandingProps {
2243
2248
  animated?: boolean;
2244
2249
  compactTagline?: boolean;
2245
2250
  }
2246
- declare function SemiontBranding({ t, className, size, showTagline, animated, compactTagline }: SemiontBrandingProps): react_jsx_runtime.JSX.Element;
2251
+ declare function SemiontBranding({ t, className, size, showTagline, animated, compactTagline }: SemiontBrandingProps): React$1.JSX.Element;
2247
2252
 
2248
2253
  /**
2249
2254
  * Translation function type for framework-agnostic components
@@ -2264,7 +2269,7 @@ interface UnifiedHeaderProps {
2264
2269
  isModerator?: boolean;
2265
2270
  currentPath?: string;
2266
2271
  }
2267
- declare function UnifiedHeader({ Link, routes, t, tHome, showBranding, brandingLink, variant, isAuthenticated, isAdmin, isModerator, currentPath }: UnifiedHeaderProps): react_jsx_runtime.JSX.Element;
2272
+ declare function UnifiedHeader({ Link, routes, t, tHome, showBranding, brandingLink, variant, isAuthenticated, isAdmin, isModerator, currentPath }: UnifiedHeaderProps): React__default.JSX.Element;
2268
2273
 
2269
2274
  interface NavigationMenuHelper {
2270
2275
  (onClose: () => void): React__default.ReactNode;
@@ -2283,7 +2288,7 @@ interface LeftSidebarProps {
2283
2288
  isModerator?: boolean;
2284
2289
  currentPath?: string;
2285
2290
  }
2286
- declare function LeftSidebar({ Link, routes, t, tHome, children, brandingLink, collapsible, storageKey, isAdmin, isModerator, currentPath }: LeftSidebarProps): react_jsx_runtime.JSX.Element;
2291
+ declare function LeftSidebar({ Link, routes, t, tHome, children, brandingLink, collapsible, storageKey, isAdmin, isModerator, currentPath }: LeftSidebarProps): React__default.JSX.Element;
2287
2292
 
2288
2293
  interface PageLayoutProps {
2289
2294
  Link: React__default.ComponentType<LinkComponentProps>;
@@ -2300,7 +2305,7 @@ interface PageLayoutProps {
2300
2305
  }>;
2301
2306
  onOpenKeyboardHelp?: () => void;
2302
2307
  }
2303
- declare function PageLayout({ Link, routes, t, tNav, tHome, children, className, showAuthLinks, CookiePreferences, onOpenKeyboardHelp }: PageLayoutProps): react_jsx_runtime.JSX.Element;
2308
+ declare function PageLayout({ Link, routes, t, tNav, tHome, children, className, showAuthLinks, CookiePreferences, onOpenKeyboardHelp }: PageLayoutProps): React__default.JSX.Element;
2304
2309
 
2305
2310
  interface SemiontFaviconProps {
2306
2311
  size?: number;
@@ -2308,7 +2313,7 @@ interface SemiontFaviconProps {
2308
2313
  variant?: 'gradient' | 'solid' | 'outline';
2309
2314
  background?: boolean;
2310
2315
  }
2311
- declare function SemiontFavicon({ size, className, variant, background }: SemiontFaviconProps): react_jsx_runtime.JSX.Element;
2316
+ declare function SemiontFavicon({ size, className, variant, background }: SemiontFaviconProps): React$1.JSX.Element;
2312
2317
 
2313
2318
  declare const faviconPaths: {
2314
2319
  readonly ico: "/favicons/favicon.ico";
@@ -2321,6 +2326,13 @@ declare const faviconPaths: {
2321
2326
  readonly manifest: "/favicons/site.webmanifest";
2322
2327
  };
2323
2328
 
2329
+ /**
2330
+ * CSS-Agnostic Button Component
2331
+ *
2332
+ * This button uses data attributes instead of hardcoded Tailwind classes,
2333
+ * allowing users to style it with any CSS solution.
2334
+ */
2335
+
2324
2336
  interface ButtonProps extends React__default.ButtonHTMLAttributes<HTMLButtonElement> {
2325
2337
  /**
2326
2338
  * Ref forwarded to the underlying button element
@@ -2359,7 +2371,7 @@ interface ButtonProps extends React__default.ButtonHTMLAttributes<HTMLButtonElem
2359
2371
  */
2360
2372
  active?: boolean;
2361
2373
  }
2362
- declare function Button({ variant, size, fullWidth, loading, leftIcon, rightIcon, iconOnly, active, className, disabled, children, type, ref, ...props }: ButtonProps): react_jsx_runtime.JSX.Element;
2374
+ declare function Button({ variant, size, fullWidth, loading, leftIcon, rightIcon, iconOnly, active, className, disabled, children, type, ref, ...props }: ButtonProps): React__default.JSX.Element;
2363
2375
  /**
2364
2376
  * Button Group Component
2365
2377
  *
@@ -2569,14 +2581,14 @@ type TransitionToken = keyof typeof tokens.transitions;
2569
2581
  interface ComposeLoadingStateProps {
2570
2582
  message: string;
2571
2583
  }
2572
- declare function ComposeLoadingState({ message }: ComposeLoadingStateProps): react_jsx_runtime.JSX.Element;
2584
+ declare function ComposeLoadingState({ message }: ComposeLoadingStateProps): React$1.JSX.Element;
2573
2585
 
2574
2586
  /**
2575
2587
  * ResourceLoadingState - Loading state component for resource viewer
2576
2588
  *
2577
2589
  * Pure React component - no Next.js dependencies.
2578
2590
  */
2579
- declare function ResourceLoadingState(): react_jsx_runtime.JSX.Element;
2591
+ declare function ResourceLoadingState(): React$1.JSX.Element;
2580
2592
 
2581
2593
  /**
2582
2594
  * ResourceErrorState - Error state component for resource viewer
@@ -2587,7 +2599,14 @@ interface ResourceErrorStateProps {
2587
2599
  error: unknown;
2588
2600
  onRetry: () => void;
2589
2601
  }
2590
- declare function ResourceErrorState({ error, onRetry }: ResourceErrorStateProps): react_jsx_runtime.JSX.Element;
2602
+ declare function ResourceErrorState({ error, onRetry }: ResourceErrorStateProps): React$1.JSX.Element;
2603
+
2604
+ /**
2605
+ * AdminDevOpsPage Component
2606
+ *
2607
+ * Pure React component for the admin devops page.
2608
+ * All dependencies passed as props - no Next.js hooks!
2609
+ */
2591
2610
 
2592
2611
  interface DevOpsFeature {
2593
2612
  title: string;
@@ -2613,7 +2632,7 @@ interface AdminDevOpsPageProps {
2613
2632
  ToolbarPanels: React__default.ComponentType<any>;
2614
2633
  Toolbar: React__default.ComponentType<any>;
2615
2634
  }
2616
- declare function AdminDevOpsPage({ suggestedFeatures, theme, showLineNumbers, activePanel, translations: t, StatusDisplay, ToolbarPanels, Toolbar, }: AdminDevOpsPageProps): react_jsx_runtime.JSX.Element;
2635
+ declare function AdminDevOpsPage({ suggestedFeatures, theme, showLineNumbers, activePanel, translations: t, StatusDisplay, ToolbarPanels, Toolbar, }: AdminDevOpsPageProps): React__default.JSX.Element;
2617
2636
 
2618
2637
  /**
2619
2638
  * ExportCard — Backup trigger
@@ -2631,7 +2650,7 @@ interface ExportCardProps {
2631
2650
  isExporting: boolean;
2632
2651
  translations: ExportCardTranslations;
2633
2652
  }
2634
- declare function ExportCard({ onExport, isExporting, translations: t }: ExportCardProps): react_jsx_runtime.JSX.Element;
2653
+ declare function ExportCard({ onExport, isExporting, translations: t }: ExportCardProps): React$1.JSX.Element;
2635
2654
 
2636
2655
  /**
2637
2656
  * ShellStateUnit — app-shell state: which toolbar panel is open, tab-bar
@@ -2691,6 +2710,12 @@ declare function createExchangeStateUnit(browse: ShellStateUnit, exportFn: (para
2691
2710
  includeArchived?: boolean;
2692
2711
  }) => Promise<BackendDownload>, importFn: (file: File) => Observable<ProgressEvent>): ExchangeStateUnit;
2693
2712
 
2713
+ /**
2714
+ * ImportCard — File drop zone, preview, and import trigger
2715
+ *
2716
+ * Pure React component. All state and handlers passed as props.
2717
+ */
2718
+
2694
2719
  interface ImportCardTranslations {
2695
2720
  title: string;
2696
2721
  description: string;
@@ -2714,7 +2739,7 @@ interface ImportCardProps {
2714
2739
  isImporting: boolean;
2715
2740
  translations: ImportCardTranslations;
2716
2741
  }
2717
- declare function ImportCard({ onFileSelected, onImport, onCancel, selectedFile, preview, isImporting, translations: t, }: ImportCardProps): react_jsx_runtime.JSX.Element;
2742
+ declare function ImportCard({ onFileSelected, onImport, onCancel, selectedFile, preview, isImporting, translations: t, }: ImportCardProps): React__default.JSX.Element;
2718
2743
 
2719
2744
  /**
2720
2745
  * ImportProgress — Shows SSE-driven progress during restore
@@ -2740,7 +2765,13 @@ interface ImportProgressProps {
2740
2765
  result?: Record<string, unknown>;
2741
2766
  translations: ImportProgressTranslations;
2742
2767
  }
2743
- declare function ImportProgress({ phase, message, result, translations: t }: ImportProgressProps): react_jsx_runtime.JSX.Element;
2768
+ declare function ImportProgress({ phase, message, result, translations: t }: ImportProgressProps): React$1.JSX.Element;
2769
+
2770
+ /**
2771
+ * AdminExchangePage — Backup/Restore admin page
2772
+ *
2773
+ * Pure React component. All state and handlers passed as props.
2774
+ */
2744
2775
 
2745
2776
  interface AdminExchangePageTranslations {
2746
2777
  title: string;
@@ -2768,7 +2799,14 @@ interface AdminExchangePageProps {
2768
2799
  ToolbarPanels: React__default.ComponentType<any>;
2769
2800
  Toolbar: React__default.ComponentType<any>;
2770
2801
  }
2771
- declare function AdminExchangePage({ onExport, isExporting, onFileSelected, onImport, onCancelImport, selectedFile, preview, isImporting, importPhase, importMessage, importResult, theme, showLineNumbers, activePanel, translations: t, ToolbarPanels, Toolbar, }: AdminExchangePageProps): react_jsx_runtime.JSX.Element;
2802
+ declare function AdminExchangePage({ onExport, isExporting, onFileSelected, onImport, onCancelImport, selectedFile, preview, isImporting, importPhase, importMessage, importResult, theme, showLineNumbers, activePanel, translations: t, ToolbarPanels, Toolbar, }: AdminExchangePageProps): React__default.JSX.Element;
2803
+
2804
+ /**
2805
+ * AdminSecurityPage Component
2806
+ *
2807
+ * Pure React component for the admin security configuration page.
2808
+ * All dependencies passed as props - no Next.js hooks!
2809
+ */
2772
2810
 
2773
2811
  interface OAuthProvider {
2774
2812
  name: string;
@@ -2803,7 +2841,14 @@ interface AdminSecurityPageProps {
2803
2841
  ToolbarPanels: React__default.ComponentType<any>;
2804
2842
  Toolbar: React__default.ComponentType<any>;
2805
2843
  }
2806
- declare function AdminSecurityPage({ providers, allowedDomains, isLoading, theme, showLineNumbers, activePanel, translations: t, ToolbarPanels, Toolbar, }: AdminSecurityPageProps): react_jsx_runtime.JSX.Element;
2844
+ declare function AdminSecurityPage({ providers, allowedDomains, isLoading, theme, showLineNumbers, activePanel, translations: t, ToolbarPanels, Toolbar, }: AdminSecurityPageProps): React__default.JSX.Element;
2845
+
2846
+ /**
2847
+ * LinkedDataPage — JSON-LD Export/Import moderation page
2848
+ *
2849
+ * Pure React component. All state and handlers passed as props.
2850
+ * Reuses ExportCard, ImportCard, and ImportProgress from admin-exchange.
2851
+ */
2807
2852
 
2808
2853
  interface LinkedDataPageTranslations {
2809
2854
  title: string;
@@ -2831,7 +2876,14 @@ interface LinkedDataPageProps {
2831
2876
  ToolbarPanels: React__default.ComponentType<any>;
2832
2877
  Toolbar: React__default.ComponentType<any>;
2833
2878
  }
2834
- declare function LinkedDataPage({ onExport, isExporting, onFileSelected, onImport, onCancelImport, selectedFile, preview, isImporting, importPhase, importMessage, importResult, theme, showLineNumbers, activePanel, translations: t, ToolbarPanels, Toolbar, }: LinkedDataPageProps): react_jsx_runtime.JSX.Element;
2879
+ declare function LinkedDataPage({ onExport, isExporting, onFileSelected, onImport, onCancelImport, selectedFile, preview, isImporting, importPhase, importMessage, importResult, theme, showLineNumbers, activePanel, translations: t, ToolbarPanels, Toolbar, }: LinkedDataPageProps): React__default.JSX.Element;
2880
+
2881
+ /**
2882
+ * AdminUsersPage Component
2883
+ *
2884
+ * Pure React component for the admin users management page.
2885
+ * All dependencies passed as props - no Next.js hooks!
2886
+ */
2835
2887
 
2836
2888
  interface AdminUser {
2837
2889
  id: string;
@@ -2912,7 +2964,17 @@ interface AdminUsersPageProps {
2912
2964
  };
2913
2965
  };
2914
2966
  }
2915
- declare function AdminUsersPage({ users, userStats, isLoadingUsers, isLoadingStats, onUpdateUser, onDeleteUser, onAddUser, onExportUsers, theme, showLineNumbers, activePanel, translations: t, ToolbarPanels, Toolbar, buttonStyles, }: AdminUsersPageProps): react_jsx_runtime.JSX.Element;
2967
+ declare function AdminUsersPage({ users, userStats, isLoadingUsers, isLoadingStats, onUpdateUser, onDeleteUser, onAddUser, onExportUsers, theme, showLineNumbers, activePanel, translations: t, ToolbarPanels, Toolbar, buttonStyles, }: AdminUsersPageProps): React__default.JSX.Element;
2968
+
2969
+ /**
2970
+ * SignInForm - Pure React component for authentication
2971
+ *
2972
+ * Supports both Google OAuth and email/password credentials.
2973
+ * No Next.js dependencies - all data via props.
2974
+ *
2975
+ * When backendUrl is provided it is shown as a locked read-only field.
2976
+ * When backendUrl is omitted the user must enter a backend URL to connect to.
2977
+ */
2916
2978
 
2917
2979
  interface SignInFormProps {
2918
2980
  /**
@@ -2981,7 +3043,14 @@ interface SignInFormProps {
2981
3043
  * When backendUrl is provided (re-auth to known workspace) the URL field is locked.
2982
3044
  * When backendUrl is omitted (new connection) the user enters the URL themselves.
2983
3045
  */
2984
- declare function SignInForm({ onGoogleSignIn, onCredentialsSignIn, backendUrl, error, showCredentialsAuth, isLoading, translations: t, }: SignInFormProps): react_jsx_runtime.JSX.Element;
3046
+ declare function SignInForm({ onGoogleSignIn, onCredentialsSignIn, backendUrl, error, showCredentialsAuth, isLoading, translations: t, }: SignInFormProps): React__default.JSX.Element;
3047
+
3048
+ /**
3049
+ * SignUpForm - Pure React component for Google OAuth sign-up
3050
+ *
3051
+ * This component is extracted from the page to enable easy testing.
3052
+ * It has no Next.js dependencies and receives all data via props.
3053
+ */
2985
3054
 
2986
3055
  interface SignUpFormProps {
2987
3056
  /**
@@ -3013,7 +3082,13 @@ interface SignUpFormProps {
3013
3082
  * Renders the sign-up form with Google OAuth button.
3014
3083
  * Manages loading state internally.
3015
3084
  */
3016
- declare function SignUpForm({ onSignUp, Link, translations: t }: SignUpFormProps): react_jsx_runtime.JSX.Element;
3085
+ declare function SignUpForm({ onSignUp, Link, translations: t }: SignUpFormProps): React__default.JSX.Element;
3086
+
3087
+ /**
3088
+ * AuthErrorDisplay - Pure React component for displaying authentication errors
3089
+ *
3090
+ * No Next.js dependencies - receives error type and translations via props.
3091
+ */
3017
3092
 
3018
3093
  interface AuthErrorDisplayProps {
3019
3094
  /**
@@ -3041,7 +3116,14 @@ interface AuthErrorDisplayProps {
3041
3116
  *
3042
3117
  * Displays authentication error messages with a link to try again.
3043
3118
  */
3044
- declare function AuthErrorDisplay({ errorType, Link, translations: t }: AuthErrorDisplayProps): react_jsx_runtime.JSX.Element;
3119
+ declare function AuthErrorDisplay({ errorType, Link, translations: t }: AuthErrorDisplayProps): React__default.JSX.Element;
3120
+
3121
+ /**
3122
+ * WelcomePage Component
3123
+ *
3124
+ * Pure React component for the welcome/terms acceptance page.
3125
+ * All dependencies passed as props - no Next.js hooks!
3126
+ */
3045
3127
 
3046
3128
  interface WelcomePageProps {
3047
3129
  userName?: string;
@@ -3096,7 +3178,14 @@ interface WelcomePageProps {
3096
3178
  PageLayout: React__default.ComponentType<any>;
3097
3179
  Link: React__default.ComponentType<any>;
3098
3180
  }
3099
- declare function WelcomePage({ userName, status, isProcessing, onAccept, onDecline, translations: t, PageLayout, Link, }: WelcomePageProps): react_jsx_runtime.JSX.Element;
3181
+ declare function WelcomePage({ userName, status, isProcessing, onAccept, onDecline, translations: t, PageLayout, Link, }: WelcomePageProps): React__default.JSX.Element;
3182
+
3183
+ /**
3184
+ * EntityTagsPage Component
3185
+ *
3186
+ * Pure React component for managing entity tags.
3187
+ * All dependencies passed as props - no Next.js hooks!
3188
+ */
3100
3189
 
3101
3190
  interface EntityTagsPageProps {
3102
3191
  entityTypes: string[];
@@ -3121,7 +3210,14 @@ interface EntityTagsPageProps {
3121
3210
  ToolbarPanels: React__default.ComponentType<any>;
3122
3211
  Toolbar: React__default.ComponentType<any>;
3123
3212
  }
3124
- declare function EntityTagsPage({ entityTypes, error, newTag, onNewTagChange, onAddTag, isAddingTag, theme, showLineNumbers, activePanel, translations: t, ToolbarPanels, Toolbar, }: EntityTagsPageProps): react_jsx_runtime.JSX.Element;
3213
+ declare function EntityTagsPage({ entityTypes, error, newTag, onNewTagChange, onAddTag, isAddingTag, theme, showLineNumbers, activePanel, translations: t, ToolbarPanels, Toolbar, }: EntityTagsPageProps): React__default.JSX.Element;
3214
+
3215
+ /**
3216
+ * RecentDocumentsPage Component
3217
+ *
3218
+ * Pure React component for viewing recent documents.
3219
+ * All dependencies passed as props - no Next.js hooks!
3220
+ */
3125
3221
 
3126
3222
  interface RecentDocumentsPageProps {
3127
3223
  hasDocuments: boolean;
@@ -3141,7 +3237,14 @@ interface RecentDocumentsPageProps {
3141
3237
  ToolbarPanels: React__default.ComponentType<any>;
3142
3238
  Toolbar: React__default.ComponentType<any>;
3143
3239
  }
3144
- declare function RecentDocumentsPage({ isLoading, theme, showLineNumbers, activePanel, translations: t, ToolbarPanels, Toolbar, }: RecentDocumentsPageProps): react_jsx_runtime.JSX.Element;
3240
+ declare function RecentDocumentsPage({ isLoading, theme, showLineNumbers, activePanel, translations: t, ToolbarPanels, Toolbar, }: RecentDocumentsPageProps): React__default.JSX.Element;
3241
+
3242
+ /**
3243
+ * TagSchemasPage Component
3244
+ *
3245
+ * Pure React component for viewing tag schemas.
3246
+ * All dependencies passed as props - no Next.js hooks!
3247
+ */
3145
3248
 
3146
3249
  interface TagSchemasPageProps {
3147
3250
  schemas: TagSchema[];
@@ -3158,7 +3261,7 @@ interface TagSchemasPageProps {
3158
3261
  ToolbarPanels: React__default.ComponentType<any>;
3159
3262
  Toolbar: React__default.ComponentType<any>;
3160
3263
  }
3161
- declare function TagSchemasPage({ schemas, isLoading, theme, showLineNumbers, activePanel, translations: t, ToolbarPanels, Toolbar, }: TagSchemasPageProps): react_jsx_runtime.JSX.Element;
3264
+ declare function TagSchemasPage({ schemas, isLoading, theme, showLineNumbers, activePanel, translations: t, ToolbarPanels, Toolbar, }: TagSchemasPageProps): React__default.JSX.Element;
3162
3265
 
3163
3266
  type ComposeMode = 'new' | 'clone' | 'reference';
3164
3267
  interface ComposeParams {
@@ -3213,6 +3316,14 @@ interface ComposePageStateUnit extends StateUnit {
3213
3316
  }
3214
3317
  declare function createComposePageStateUnit(client: SemiontClient, browse: ShellStateUnit, params: ComposeParams, auth?: AccessToken): ComposePageStateUnit;
3215
3318
 
3319
+ /**
3320
+ * ResourceComposePage Component
3321
+ *
3322
+ * Pure React component for creating and editing resources.
3323
+ * Supports three modes: new resource, clone, and reference completion.
3324
+ * All dependencies passed as props - no Next.js hooks!
3325
+ */
3326
+
3216
3327
  interface ResourceComposePageProps {
3217
3328
  mode: 'new' | 'clone' | 'reference';
3218
3329
  cloneData?: CloneData | null;
@@ -3283,7 +3394,7 @@ interface SaveResourceParams {
3283
3394
  annotationUri?: string;
3284
3395
  sourceDocumentId?: string;
3285
3396
  }
3286
- 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;
3397
+ declare function ResourceComposePage({ mode, cloneData, referenceData, gatheredContext, availableEntityTypes, initialLocale, theme, showLineNumbers, hoverDelayMs, activePanel, onSaveResource, onCancel, uploadProgress, translations: t, ToolbarPanels, Toolbar, }: ResourceComposePageProps): React__default.JSX.Element;
3287
3398
 
3288
3399
  /**
3289
3400
  * Inline upload-progress affordance for the compose page.
@@ -3307,6 +3418,13 @@ interface UploadProgressBarProps {
3307
3418
  }
3308
3419
  declare function UploadProgressBar({ progress, label }: UploadProgressBarProps): React__default.ReactElement | null;
3309
3420
 
3421
+ /**
3422
+ * ResourceDiscoveryPage Component
3423
+ *
3424
+ * Pure React component for resource discovery and search.
3425
+ * All dependencies passed as props - no Next.js hooks!
3426
+ */
3427
+
3310
3428
  interface ResourceDiscoveryPageProps {
3311
3429
  recentDocuments: ResourceDescriptor[];
3312
3430
  searchDocuments: ResourceDescriptor[];
@@ -3315,6 +3433,8 @@ interface ResourceDiscoveryPageProps {
3315
3433
  isSearching: boolean;
3316
3434
  searchQuery: string;
3317
3435
  onSearchQueryChange: (query: string) => void;
3436
+ selectedEntityType: string;
3437
+ onSelectedEntityTypeChange: (entityType: string) => void;
3318
3438
  theme: 'light' | 'dark';
3319
3439
  showLineNumbers: boolean;
3320
3440
  activePanel: string | null;
@@ -3340,7 +3460,14 @@ interface ResourceDiscoveryPageProps {
3340
3460
  };
3341
3461
  ToolbarPanels: React__default.ComponentType<any>;
3342
3462
  }
3343
- declare function ResourceDiscoveryPage({ recentDocuments, searchDocuments, entityTypes, isLoadingRecent, isSearching, searchQuery, onSearchQueryChange, theme, showLineNumbers, activePanel, onNavigateToResource, onNavigateToCompose, translations: t, ToolbarPanels, }: ResourceDiscoveryPageProps): react_jsx_runtime.JSX.Element;
3463
+ declare function ResourceDiscoveryPage({ recentDocuments, searchDocuments, entityTypes, isLoadingRecent, isSearching, searchQuery, onSearchQueryChange, selectedEntityType, onSelectedEntityTypeChange, theme, showLineNumbers, activePanel, onNavigateToResource, onNavigateToCompose, translations: t, ToolbarPanels, }: ResourceDiscoveryPageProps): React__default.JSX.Element;
3464
+
3465
+ /**
3466
+ * ResourceCard Component
3467
+ *
3468
+ * Pure component for displaying a single resource in the discovery grid.
3469
+ * Handles keyboard navigation and accessibility.
3470
+ */
3344
3471
 
3345
3472
  interface ResourceCardProps {
3346
3473
  resource: ResourceDescriptor;
@@ -3349,7 +3476,14 @@ interface ResourceCardProps {
3349
3476
  archivedLabel: string;
3350
3477
  createdLabel: string;
3351
3478
  }
3352
- declare const ResourceCard: React__default.MemoExoticComponent<({ resource, onOpen, tabIndex, archivedLabel, createdLabel }: ResourceCardProps) => react_jsx_runtime.JSX.Element>;
3479
+ declare const ResourceCard: React__default.MemoExoticComponent<({ resource, onOpen, tabIndex, archivedLabel, createdLabel }: ResourceCardProps) => React__default.JSX.Element>;
3480
+
3481
+ /**
3482
+ * ResourceViewerPage - Self-contained resource viewer component
3483
+ *
3484
+ * Handles all data loading, event subscriptions, and side effects internally.
3485
+ * Only requires minimal props from the framework layer (routing, modals).
3486
+ */
3353
3487
 
3354
3488
  type SemiontResource = ResourceDescriptor;
3355
3489
  interface ResourceViewerPageProps {
@@ -3419,7 +3553,7 @@ interface ResourceViewerPageProps {
3419
3553
  * @subscribes browse:reference-navigate - Navigate to a referenced document
3420
3554
  * @subscribes browse:entity-type-clicked - Navigate filtered by entity type
3421
3555
  */
3422
- declare function ResourceViewerPage({ resource, rUri, locale, Link, routes, ToolbarPanels, refetchDocument, streamStatus, knowledgeBaseName, }: ResourceViewerPageProps): react_jsx_runtime.JSX.Element;
3556
+ declare function ResourceViewerPage({ resource, rUri, locale, Link, routes, ToolbarPanels, refetchDocument, streamStatus, knowledgeBaseName, }: ResourceViewerPageProps): React__default.JSX.Element;
3423
3557
 
3424
3558
  interface HoverEmitterProps {
3425
3559
  onMouseEnter: () => void;
@@ -3506,12 +3640,22 @@ interface WelcomeStateUnit extends StateUnit {
3506
3640
  }
3507
3641
  declare function createWelcomeStateUnit(client: SemiontClient): WelcomeStateUnit;
3508
3642
 
3643
+ interface DiscoverSearchPipeline {
3644
+ query$: Observable<string>;
3645
+ state$: Observable<{
3646
+ results: ResourceDescriptor[];
3647
+ isSearching: boolean;
3648
+ }>;
3649
+ setQuery(value: string): void;
3650
+ }
3509
3651
  interface DiscoverStateUnit extends StateUnit {
3510
3652
  browse: ShellStateUnit;
3511
- search: SearchPipeline<ResourceDescriptor>;
3653
+ search: DiscoverSearchPipeline;
3512
3654
  recentResources$: Observable<ResourceDescriptor[]>;
3513
3655
  entityTypes$: Observable<string[]>;
3514
3656
  isLoadingRecent$: Observable<boolean>;
3657
+ selectedEntityType$: Observable<string>;
3658
+ setSelectedEntityType(value: string): void;
3515
3659
  }
3516
3660
  declare function createDiscoverStateUnit(client: SemiontClient, browse: ShellStateUnit): DiscoverStateUnit;
3517
3661