@semiont/react-ui 0.5.28 → 0.5.30

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 (113) hide show
  1. package/README.md +3 -3
  2. package/dist/{PdfAnnotationCanvas.client-C2IGG4SW.js → PdfAnnotationCanvas.client-LSH3PZPY.js} +4 -4
  3. package/dist/{ar-FABPTJVB.js → ar-AZBRADEB.js} +5 -1
  4. package/dist/{bn-LKP6BDMH.js → bn-CCEW6AOS.js} +5 -1
  5. package/dist/{chunk-VXASXU4K.js → chunk-3ZBKCWUZ.js} +1 -1
  6. package/dist/{chunk-2YHEE63S.js → chunk-G4VHL4UA.js} +31 -31
  7. package/dist/{chunk-2GOHTTHW.js → chunk-SDKFZLEX.js} +5 -1
  8. package/dist/{cs-YQYNWHRG.js → cs-HXPF2CTE.js} +5 -1
  9. package/dist/{da-QHZOYKRY.js → da-K5NTK7LH.js} +5 -1
  10. package/dist/{de-GKA7RD7J.js → de-GMRQEDZI.js} +5 -1
  11. package/dist/{el-45T257AL.js → el-EUB4CI4G.js} +5 -1
  12. package/dist/{en-RVW5EQ66.js → en-R5XA26NF.js} +2 -2
  13. package/dist/{es-AVER7RU4.js → es-Z32DAZ6W.js} +5 -1
  14. package/dist/{fa-K3VPK3O2.js → fa-G7HN6B32.js} +5 -1
  15. package/dist/{fi-5NEKF7EB.js → fi-3YBLZO7I.js} +5 -1
  16. package/dist/{fr-FUMNDLBZ.js → fr-VUBH7BBS.js} +5 -1
  17. package/dist/{he-3JGNA3PR.js → he-WQQEY26B.js} +5 -1
  18. package/dist/{hi-IJY375DF.js → hi-HJZ6W4JB.js} +5 -1
  19. package/dist/{id-LWHKJ7ZD.js → id-ZOGZ37MI.js} +5 -1
  20. package/dist/index.d.ts +157 -257
  21. package/dist/index.js +763 -1209
  22. package/dist/{it-EBVOV4RW.js → it-DT6UW66F.js} +5 -1
  23. package/dist/{ja-KWRIX2NF.js → ja-RUKQCOLO.js} +5 -1
  24. package/dist/{ko-L5CJMFDS.js → ko-ZH5ADKZM.js} +5 -1
  25. package/dist/{ms-LSNMJDR2.js → ms-Y2AFPZTU.js} +5 -1
  26. package/dist/{nl-ZB32MB7U.js → nl-OQEWIXNA.js} +5 -1
  27. package/dist/{no-4GTNY7M5.js → no-KPAYJZWY.js} +5 -1
  28. package/dist/{pl-LUHBLTHB.js → pl-WSXK2UUD.js} +5 -1
  29. package/dist/{pt-C4H3UNQ6.js → pt-NWRJRUCK.js} +5 -1
  30. package/dist/{ro-GGITS5V4.js → ro-3CGVMOC6.js} +5 -1
  31. package/dist/{sv-T56RTLBP.js → sv-HGSEBA7S.js} +5 -1
  32. package/dist/test-utils.js +16 -7
  33. package/dist/{th-22X2IWCB.js → th-NZ4G352Z.js} +5 -1
  34. package/dist/{tr-77TFG62H.js → tr-LGGS4DLW.js} +5 -1
  35. package/dist/{uk-MIIL6NXT.js → uk-AIX536L4.js} +5 -1
  36. package/dist/{vi-7JYOIGNV.js → vi-V6CVQZLQ.js} +5 -1
  37. package/dist/{zh-ID6DRYU4.js → zh-AGKPGI3L.js} +5 -1
  38. package/package.json +13 -13
  39. package/src/components/StatusDisplay.tsx +13 -13
  40. package/src/components/__tests__/StatusDisplay.test.tsx +9 -9
  41. package/src/components/modals/ComposeStep.tsx +19 -4
  42. package/src/components/modals/ConfigureGenerationStep.tsx +143 -15
  43. package/src/components/modals/ReferenceWizardModal.tsx +14 -9
  44. package/src/components/modals/ResourceGenerateModal.tsx +10 -5
  45. package/src/components/modals/__tests__/ConfigureGenerationStep.test.tsx +171 -8
  46. package/src/components/modals/__tests__/ReferenceWizardModal.test.tsx +25 -1
  47. package/src/components/modals/__tests__/ResourceGenerateModal.test.tsx +24 -1
  48. package/src/components/modals/__tests__/WizardFooter.test.tsx +3 -5
  49. package/src/components/resource/BrowseView.tsx +3 -3
  50. package/src/components/resource/DownloadFileLink.tsx +1 -1
  51. package/src/components/resource/__tests__/BrowseView.reference-hover.test.tsx +1 -1
  52. package/src/components/resource/__tests__/BrowseView.test.tsx +2 -2
  53. package/src/components/resource/__tests__/download-link.test.tsx +6 -6
  54. package/src/components/resource/panels/ReferenceEntry.tsx +2 -2
  55. package/src/components/resource/panels/ReferencesPanel.tsx +5 -1
  56. package/src/components/resource/panels/__tests__/ReferencesPanel.observable-flow.test.tsx +1 -1
  57. package/src/components/resource/panels/__tests__/ReferencesPanel.test.tsx +51 -2
  58. package/src/components/resource/panels/__tests__/ResourceInfoPanel.test.tsx +1 -1
  59. package/src/features/auth/__tests__/SignInForm.a11y.test.tsx +12 -12
  60. package/src/features/auth/components/SignInForm.tsx +53 -53
  61. package/src/features/auth-welcome/state/__tests__/welcome-state-unit.test.ts +2 -2
  62. package/src/features/moderate-recent/__tests__/RecentDocumentsPage.test.tsx +2 -2
  63. package/src/features/resource-compose/components/ResourceComposePage.tsx +18 -3
  64. package/src/features/resource-discovery/__tests__/ResourceDiscoveryPage.test.tsx +1 -1
  65. package/src/features/resource-discovery/components/ResourceDiscoveryPage.tsx +2 -2
  66. package/src/features/resource-discovery/state/discover-state-unit.ts +1 -1
  67. package/src/features/resource-viewer/__tests__/ResourceViewerPage.test.tsx +2 -2
  68. package/src/features/resource-viewer/__tests__/generation-options.test.ts +53 -0
  69. package/src/features/resource-viewer/components/ResourceViewerPage.tsx +16 -25
  70. package/src/features/resource-viewer/generation-options.ts +29 -0
  71. package/src/styles/index.css +0 -1
  72. package/translations/ar.json +4 -0
  73. package/translations/bn.json +4 -0
  74. package/translations/cs.json +4 -0
  75. package/translations/da.json +4 -0
  76. package/translations/de.json +4 -0
  77. package/translations/el.json +4 -0
  78. package/translations/en.json +4 -0
  79. package/translations/es.json +4 -0
  80. package/translations/fa.json +4 -0
  81. package/translations/fi.json +4 -0
  82. package/translations/fr.json +4 -0
  83. package/translations/he.json +4 -0
  84. package/translations/hi.json +4 -0
  85. package/translations/id.json +4 -0
  86. package/translations/it.json +4 -0
  87. package/translations/ja.json +4 -0
  88. package/translations/ko.json +4 -0
  89. package/translations/ms.json +4 -0
  90. package/translations/nl.json +4 -0
  91. package/translations/no.json +4 -0
  92. package/translations/pl.json +4 -0
  93. package/translations/pt.json +4 -0
  94. package/translations/ro.json +4 -0
  95. package/translations/sv.json +4 -0
  96. package/translations/th.json +4 -0
  97. package/translations/tr.json +4 -0
  98. package/translations/uk.json +4 -0
  99. package/translations/vi.json +4 -0
  100. package/translations/zh.json +4 -0
  101. package/src/features/admin-exchange/__tests__/AdminExchangePage.test.tsx +0 -137
  102. package/src/features/admin-exchange/__tests__/ExportCard.test.tsx +0 -41
  103. package/src/features/admin-exchange/__tests__/ImportCard.test.tsx +0 -148
  104. package/src/features/admin-exchange/__tests__/ImportProgress.test.tsx +0 -117
  105. package/src/features/admin-exchange/components/AdminExchangePage.tsx +0 -117
  106. package/src/features/admin-exchange/components/ExportCard.tsx +0 -35
  107. package/src/features/admin-exchange/components/ImportCard.tsx +0 -183
  108. package/src/features/admin-exchange/components/ImportProgress.tsx +0 -80
  109. package/src/features/admin-exchange/state/__tests__/exchange-state-unit.test.ts +0 -185
  110. package/src/features/admin-exchange/state/exchange-state-unit.ts +0 -133
  111. package/src/features/moderation-linked-data/__tests__/LinkedDataPage.test.tsx +0 -118
  112. package/src/features/moderation-linked-data/components/LinkedDataPage.tsx +0 -118
  113. package/src/styles/features/exchange.css +0 -374
package/dist/index.d.ts CHANGED
@@ -1,14 +1,14 @@
1
1
  import * as _semiont_react_ui from '@semiont/react-ui';
2
2
  import { BrowseMediaRenderers as BrowseMediaRenderers$1, AnnotateMediaRenderers as AnnotateMediaRenderers$1 } from '@semiont/react-ui';
3
- import { Annotation, ResourceId, Selector, components, ResourceDescriptor, ValidationResult, StateUnit, CollaboratorEntry, EventMap, DiscoveredKB, AnnotationId, AnchorStrategy, AnchorConfidence, StoredEventLike, ConnectionState, GatheredContext, BackendDownload, ProgressEvent, AccessToken } from '@semiont/core';
3
+ import { Annotation, ResourceId, Selector, components, ResourceDescriptor, ValidationResult, StateUnit, CollaboratorEntry, EventMap, DiscoveredKB, AnnotationId, AnchorStrategy, AnchorConfidence, StoredEventLike, ConnectionState, GatheredContext, AccessToken } from '@semiont/core';
4
4
  export { Annotation } from '@semiont/core';
5
5
  import * as React$1 from 'react';
6
6
  import React__default, { ComponentType, ReactNode, KeyboardEvent as KeyboardEvent$1, Component, ErrorInfo, MouseEvent, Ref } from 'react';
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 { SemiontClient, SemiontSession, DiscoveryTransport, DiscoveryState, SemiontBrowser, SessionStorage, SessionFactory, YieldOutcome, OpenResource, ResourceGatherOptions, TagSchema, UploadProgress, BeckonStateUnit, MarkStateUnit, GatherStateUnit, YieldStateUnit, ReferencedByEntry } from '@semiont/sdk';
11
- 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';
10
+ import { SemiontClient, SemiontSession, DiscoveryTransport, DiscoveryState, SemiontBrowser, SessionStorage, SessionFactory, YieldOutcome, OpenResource, GenerationOptions, ResourceGatherOptions, TagSchema, UploadProgress, BeckonStateUnit, MarkStateUnit, GatherStateUnit, YieldStateUnit, ReferencedByEntry } from '@semiont/sdk';
11
+ export { BeckonStateUnit, GatherStateUnit, GenerationOptions, HOVER_DELAY_MS, HoverHandlers, MarkStateUnit, MatchStateUnit, PendingAnnotation, SearchPipeline, SearchPipelineOptions, SearchState, TagSchema, YieldStateUnit, createBeckonStateUnit, createGatherStateUnit, createHoverHandlers, createMarkStateUnit, createMatchStateUnit, createSearchPipeline, createYieldStateUnit } from '@semiont/sdk';
12
12
  import { Observable } from 'rxjs';
13
13
 
14
14
  /**
@@ -558,12 +558,13 @@ type SelectorType = 'fragment' | 'svg' | 'text';
558
558
  * This set is the host-facing CONTRACT for "which shapes can this medium
559
559
  * draw" — gate shape UI on it directly.
560
560
  *
561
- * PDF: only rectangles (FragmentSelector with RFC 3778 viewrect).
562
- * Images: all shapes (SvgSelector supports rect, circle, polygon).
563
- * Everything else including text media and absent/unknown types supports
564
- * NONE: those anchor by character offsets (TextPositionSelector /
565
- * TextQuoteSelector), and no selector can carry a shape. Mirrors
566
- * `getSelectorType`'s 'text' fallback.
561
+ * The registry's anchoring model decides, never the type name: a spatially
562
+ * anchored medium draws what its renderer can carry — rectangles only for
563
+ * PDF (FragmentSelector, RFC 3778 viewrect; circle and polygon would need an
564
+ * SvgSelector, which loses page context), all three for images (SvgSelector).
565
+ * Everything else draws nothing text media anchor by character offsets and
566
+ * no selector there can carry a shape, and storage-tier rows are not
567
+ * annotated at all.
567
568
  *
568
569
  * @param mediaType - MIME type of the resource (e.g., 'application/pdf', 'image/png')
569
570
  * @returns Array of supported shape types for annotation
@@ -578,7 +579,17 @@ declare function getSupportedShapes(mediaType: string | undefined | null): Shape
578
579
  */
579
580
  declare function isShapeSupported(mediaType: string | undefined | null, shape: ShapeType): boolean;
580
581
  /**
581
- * Get the selector type used for a given media type
582
+ * Get the selector type used for a given media type.
583
+ *
584
+ * Keyed off the registry's anchoring model, in step with
585
+ * `getSupportedShapes`: spatial + PDF render → FragmentSelector (RFC 3778),
586
+ * spatial + image render → SvgSelector.
587
+ *
588
+ * Everything else answers 'text' — text media because they genuinely anchor
589
+ * by character offset, storage-tier rows and registry misses because
590
+ * `SelectorType` has no "not annotatable" member. That catch-all is harmless
591
+ * rather than a claim: `getSupportedShapes` offers those types no shapes, and
592
+ * the write path refuses them outright (MEDIA-CAPABILITY-DISPATCH D6).
582
593
  *
583
594
  * @param mediaType - MIME type of the resource
584
595
  * @returns Selector type (fragment, svg, or text)
@@ -612,7 +623,7 @@ declare function saveSelectedShapeForSelectorType(selectorType: SelectorType, sh
612
623
  * `<a download>` — none of which can attach an Authorization header. Auth is
613
624
  * bearer + `?token=` only, no cookie, so a bare URL 401s.
614
625
  * - **It must be absolute.** react-ui embeds into a host app with its own
615
- * origin, so a relative path resolves against the HOST, not the backend.
626
+ * origin, so a relative path resolves against the HOST, not the gateway.
616
627
  *
617
628
  * Returns `undefined` when either input is missing — no client, or a token
618
629
  * that has not landed yet. There is no partially-correct URL worth rendering;
@@ -627,11 +638,23 @@ declare function mediaUrl(client: SemiontClient | null | undefined, id: Resource
627
638
  * (which forces O(ASTnodes × annotations) work on every render), this module:
628
639
  *
629
640
  * 1. Builds a source→rendered offset map once after the markdown DOM paints
630
- * 2. Resolves W3C TextPositionSelector offsets to DOM Ranges via binary search
631
- * 3. Wraps matched ranges with <span> elements carrying data-annotation-* attributes
641
+ * 2. Resolves W3C TextPositionSelector offsets to rendered-text offset spans
642
+ * 3. Rebuilds each annotated text node ONCE, off-DOM, into segments wrapped by
643
+ * <span> elements carrying data-annotation-* attributes
632
644
  *
633
645
  * Markdown renders once (cached by React.memo). Annotation changes only touch
634
646
  * the overlay spans — no markdown re-parse, no AST walk.
647
+ *
648
+ * The application step deliberately never uses live DOM Ranges. A previous
649
+ * implementation resolved every annotation to a Range up front and then wrapped
650
+ * them one `surroundContents` at a time. Each wrap is a DOM mutation, and DOM
651
+ * mutations re-target every OTHER still-live Range: overlapping annotations —
652
+ * the normal result of repeated annotation on the same passage — had their
653
+ * ranges collapsed or inflated by earlier wraps, painting whole paragraphs and
654
+ * fragmenting text nodes so hard that 36 annotations produced 2,554 wraps and
655
+ * a 10-second main-thread freeze (measured 2026-08-28, e2e specs 08/09).
656
+ * Working in offset space against the pristine text-node index makes overlap
657
+ * geometry exact, and costs one `replaceChild` per annotated text node.
635
658
  */
636
659
 
637
660
  interface OverlayAnnotation {
@@ -647,6 +670,12 @@ interface TextNodeEntry {
647
670
  start: number;
648
671
  end: number;
649
672
  }
673
+ /** An annotation resolved to rendered-text offsets: `[start, end)`. */
674
+ interface ResolvedAnnotationSpan {
675
+ annotation: OverlayAnnotation;
676
+ start: number;
677
+ end: number;
678
+ }
650
679
  /**
651
680
  * Build a map from markdown source offsets to rendered text offsets.
652
681
  * Character-by-character alignment: walks source and rendered text in parallel,
@@ -656,32 +685,37 @@ interface TextNodeEntry {
656
685
  */
657
686
  declare function buildSourceToRenderedMap(markdownSource: string, container: HTMLElement): Map<number, number>;
658
687
  /**
659
- * Build a sorted array of text nodes with cumulative rendered offsets
660
- * for efficient offset→node lookups via binary search.
688
+ * Build a sorted array of text nodes with cumulative rendered offsets.
661
689
  *
662
690
  * Complexity: O(textNodes) — runs once per overlay application.
663
691
  */
664
692
  declare function buildTextNodeIndex(container: HTMLElement): TextNodeEntry[];
665
693
  /**
666
- * Resolve annotations to DOM Ranges using the cached offset map.
694
+ * Resolve annotations to rendered-text offset spans using the cached offset
695
+ * map. Annotations whose offsets don't map (content changed under them) are
696
+ * skipped, as are empty ones.
667
697
  *
668
- * Complexity: O(annotations × log(textNodes)).
698
+ * Complexity: O(annotations).
669
699
  */
670
- declare function resolveAnnotationRanges(annotations: OverlayAnnotation[], offsetMap: Map<number, number>, textNodeIndex: TextNodeEntry[]): Map<string, {
671
- range: Range;
672
- annotation: OverlayAnnotation;
673
- }>;
700
+ declare function resolveAnnotationSpans(annotations: OverlayAnnotation[], offsetMap: Map<number, number>): ResolvedAnnotationSpan[];
674
701
  /**
675
- * Wrap annotation Ranges with styled <span> elements.
676
- * Handles cross-element ranges by splitting into per-text-node segments.
702
+ * Wrap annotated stretches of text with styled <span> elements.
703
+ *
704
+ * Each text node the spans touch is rebuilt off-DOM as a run of segments —
705
+ * one per distinct overlap region — and swapped in with a single
706
+ * `replaceChild`. A segment covered by several annotations gets nested spans,
707
+ * one per annotation; the later annotation in the input order ends up
708
+ * innermost, so `closest('[data-annotation-id]')` resolves to it (interactive
709
+ * types — references, comments, tags — are listed after plain highlights).
710
+ * An annotation cut by segment or node boundaries yields sibling spans
711
+ * sharing its data-annotation-id, as the Range-based predecessor also did.
712
+ *
713
+ * Complexity: O(textNodes × spans) comparisons, O(annotated nodes) mutations.
677
714
  */
678
- declare function applyHighlights(ranges: Map<string, {
679
- range: Range;
680
- annotation: OverlayAnnotation;
681
- }>): void;
715
+ declare function applyHighlights(spans: ResolvedAnnotationSpan[], textNodeIndex: TextNodeEntry[]): void;
682
716
  /**
683
717
  * Remove all annotation highlight spans, restoring the original DOM.
684
- * Unwraps spans and merges adjacent text nodes.
718
+ * Unwraps every span, then merges adjacent text nodes in one pass.
685
719
  */
686
720
  declare function clearHighlights(container: HTMLElement): void;
687
721
  /**
@@ -729,7 +763,7 @@ declare function supportsDetection(mediaType: string | undefined): boolean;
729
763
  * The worker can't be resolved inside this tsup-built library (Vite's `?url`
730
764
  * lives in the app), so the host hands us the worker URL via `setPdfWorkerSrc`
731
765
  * once at startup; it is applied to `GlobalWorkerOptions` when pdf.js loads.
732
- * See `apps/frontend/src/main.tsx`.
766
+ * See `apps/browser/src/main.tsx`.
733
767
  */
734
768
 
735
769
  /**
@@ -1117,7 +1151,7 @@ interface UseCollaboratorsResult {
1117
1151
  *
1118
1152
  * SUBSCRIBES rather than fetching once. `browse.agents()` is a `CacheObservable`
1119
1153
  * whose only refresh triggers are `bus:resume-gap` and an explicit `fresh()` —
1120
- * a backend restart with a changed roster necessarily presents as an SSE gap, so
1154
+ * a gateway restart with a changed roster necessarily presents as an SSE gap, so
1121
1155
  * a one-shot read would pin the UI to a roster that no longer exists. Awaiting
1122
1156
  * it instead would also force a network round trip on every mount, which is
1123
1157
  * exactly what the cache exists to avoid.
@@ -2119,7 +2153,7 @@ declare const BrowseView: React$1.MemoExoticComponent<({ content, mimeType, reso
2119
2153
  interface Props$6 {
2120
2154
  /** The '@id' of the resource whose bytes to offer. */
2121
2155
  resourceUri: string;
2122
- /** Session for that resource — its client mints the media token and supplies the backend origin. */
2156
+ /** Session for that resource — its client mints the media token and supplies the gateway origin. */
2123
2157
  session: SemiontSession | null;
2124
2158
  }
2125
2159
  /**
@@ -2909,15 +2943,38 @@ interface SimpleNavigationProps {
2909
2943
  dropdownContent?: ((onClose: () => void) => ReactNode) | undefined;
2910
2944
  }
2911
2945
 
2912
- interface GenerationConfig {
2913
- title: string;
2914
- storagePath: string;
2915
- prompt?: string;
2916
- language: string;
2917
- temperature: number;
2918
- maxTokens: number;
2946
+ /**
2947
+ * What this form fills in. Named here, but TYPED by the SDK (P2b).
2948
+ *
2949
+ * `storageUri` is on this list rather than a local `storagePath: string`
2950
+ * because the two were the same thing under different names — a divergence
2951
+ * that survived precisely because nothing tied them together (D8).
2952
+ */
2953
+ type FormFilled = 'title' | 'storageUri' | 'language' | 'temperature' | 'maxTokens' | 'outputMediaType';
2954
+ /**
2955
+ * The submitted payload: the SDK's own generation options, DERIVED rather
2956
+ * than restated (P2b), plus the grounding context.
2957
+ *
2958
+ * This was a hand-written interface listing the same fields with independent
2959
+ * types — the shape `## Duplicated Shape` forbids — and it drifted exactly as
2960
+ * predicted: `storagePath: string` held a `storageUri`, so every consumer
2961
+ * re-mapped it by hand and silently dropped whatever the mapping forgot.
2962
+ * Deriving means a rename or retype in `GenerationOptions` is a compile
2963
+ * error here instead of a quiet gap at the wire.
2964
+ *
2965
+ * NARROWED on purpose: the SDK also carries `task`, `structure`, `cite` and
2966
+ * `stallDeadlineMs`, which this form does not collect, and a payload type
2967
+ * that advertised them would promise more than the UI delivers. Surfacing one
2968
+ * later is a one-word edit to `FormFilled` plus its control — the door is
2969
+ * unlocked, not open.
2970
+ *
2971
+ * `Required` because the form always fills these, even where the SDK lets
2972
+ * them be absent; `prompt` stays optional, because a blank instruction field
2973
+ * is omitted rather than sent empty.
2974
+ */
2975
+ type GenerationConfig = Required<Pick<GenerationOptions, FormFilled>> & Pick<GenerationOptions, 'prompt'> & {
2919
2976
  context: GatheredContext;
2920
- }
2977
+ };
2921
2978
 
2922
2979
  interface ComposeParams$1 {
2923
2980
  name: string;
@@ -2943,6 +3000,8 @@ interface ReferenceWizardModalProps {
2943
3000
  resourceId: string | null;
2944
3001
  /** Default title (selected text) */
2945
3002
  defaultTitle: string;
3003
+ /** Folder of the source resource, so new files land beside it (D11). */
3004
+ defaultFolder?: string;
2946
3005
  /** Entity types from the annotation */
2947
3006
  entityTypes: string[];
2948
3007
  /**
@@ -3012,6 +3071,8 @@ interface ReferenceWizardModalProps {
3012
3071
  maxLength: string;
3013
3072
  maxLengthHelp: string;
3014
3073
  maxLengthCeiling: string;
3074
+ outputFormat: string;
3075
+ formatExtensionMismatch: string;
3015
3076
  maxResults: string;
3016
3077
  semanticScoring: string;
3017
3078
  semanticScoringHelp: string;
@@ -3025,7 +3086,7 @@ interface ReferenceWizardModalProps {
3025
3086
  keepEditing: string;
3026
3087
  };
3027
3088
  }
3028
- declare function ReferenceWizardModal({ isOpen, onClose, annotationId, resourceId, defaultTitle, entityTypes, resourceName, locale, context, contextLoading, contextError, onGenerateSubmit, onLinkResource, onComposeSubmit, entityTypeOptions, hoverDelayMs, translations: t, generationAgent, }: ReferenceWizardModalProps): React$1.JSX.Element;
3089
+ declare function ReferenceWizardModal({ isOpen, onClose, annotationId, resourceId, defaultTitle, defaultFolder, entityTypes, resourceName, locale, context, contextLoading, contextError, onGenerateSubmit, onLinkResource, onComposeSubmit, entityTypeOptions, hoverDelayMs, translations: t, generationAgent, }: ReferenceWizardModalProps): React$1.JSX.Element;
3029
3090
 
3030
3091
  interface ResourceGenerateModalTranslations {
3031
3092
  /** The ONE modal title — names the flow, not a step. */
@@ -3066,6 +3127,8 @@ interface ResourceGenerateModalTranslations {
3066
3127
  maxLength: string;
3067
3128
  maxLengthHelp: string;
3068
3129
  maxLengthCeiling: string;
3130
+ outputFormat: string;
3131
+ formatExtensionMismatch: string;
3069
3132
  generate: string;
3070
3133
  discardDraftPrompt: string;
3071
3134
  discardDraft: string;
@@ -3082,6 +3145,8 @@ interface ResourceGenerateModalProps {
3082
3145
  onClose: () => void;
3083
3146
  resourceId: string;
3084
3147
  defaultTitle: string;
3148
+ /** Folder of the source resource, so the artifact lands beside it (D11). */
3149
+ defaultFolder?: string;
3085
3150
  locale: string;
3086
3151
  /**
3087
3152
  * Entity types offered in the exclusion picker. Owner-supplied so the
@@ -3122,7 +3187,7 @@ interface ResourceGenerateModalProps {
3122
3187
  * zone]: the same grammar the resolve wizard expresses, whose gather zone
3123
3188
  * happens to be automatic and whose act zone has a strategy choice.
3124
3189
  */
3125
- declare function ResourceGenerateModal({ isOpen, onClose, resourceId, defaultTitle, locale, entityTypeOptions, onGenerateSubmit, gatherContext, gatherLoading, gatherError, onGather, translations: t, generationAgent, }: ResourceGenerateModalProps): React$1.JSX.Element;
3190
+ declare function ResourceGenerateModal({ isOpen, onClose, resourceId, defaultTitle, defaultFolder, locale, entityTypeOptions, onGenerateSubmit, gatherContext, gatherLoading, gatherError, onGather, translations: t, generationAgent, }: ResourceGenerateModalProps): React$1.JSX.Element;
3126
3191
 
3127
3192
  interface SearchModalProps$1 {
3128
3193
  isOpen: boolean;
@@ -3186,9 +3251,9 @@ declare function SkipLinks(): React$1.JSX.Element;
3186
3251
  interface StatusDisplayProps {
3187
3252
  isFullyAuthenticated?: boolean;
3188
3253
  isAuthenticated?: boolean;
3189
- hasValidBackendToken?: boolean;
3254
+ hasValidGatewayToken?: boolean;
3190
3255
  }
3191
- declare function StatusDisplay({ isFullyAuthenticated, isAuthenticated, hasValidBackendToken }: StatusDisplayProps): React$1.JSX.Element;
3256
+ declare function StatusDisplay({ isFullyAuthenticated, isAuthenticated, hasValidGatewayToken }: StatusDisplayProps): React$1.JSX.Element;
3192
3257
 
3193
3258
  declare function SessionTimer(): React$1.JSX.Element | null;
3194
3259
 
@@ -3590,168 +3655,6 @@ interface AdminDevOpsPageProps {
3590
3655
  }
3591
3656
  declare function AdminDevOpsPage({ suggestedFeatures, theme, activePanel, translations: t, StatusDisplay, ToolbarPanels, Toolbar, }: AdminDevOpsPageProps): React__default.JSX.Element;
3592
3657
 
3593
- /**
3594
- * ExportCard — Backup trigger
3595
- *
3596
- * Pure React component. All state and handlers passed as props.
3597
- */
3598
- interface ExportCardTranslations {
3599
- title: string;
3600
- description: string;
3601
- exportButton: string;
3602
- exporting: string;
3603
- }
3604
- interface ExportCardProps {
3605
- onExport: () => void;
3606
- isExporting: boolean;
3607
- translations: ExportCardTranslations;
3608
- }
3609
- declare function ExportCard({ onExport, isExporting, translations: t }: ExportCardProps): React$1.JSX.Element;
3610
-
3611
- /**
3612
- * ShellStateUnit — app-shell state: which toolbar panel is open, tab-bar
3613
- * coordination helpers, scroll-to-annotation signals. Lives on
3614
- * `SemiontBrowser`'s app-scoped bus (not the per-session client bus)
3615
- * because panel toggles and shell chrome must work regardless of
3616
- * whether a KB session is active.
3617
- *
3618
- * Channels: `panel:toggle`, `panel:open`, `panel:close`.
3619
- */
3620
-
3621
- type ToolbarPanelType = 'history' | 'info' | 'annotations' | 'settings' | 'collaboration' | 'user' | 'jsonld' | 'knowledge-base';
3622
- declare const COMMON_PANELS: readonly ToolbarPanelType[];
3623
- declare const RESOURCE_PANELS: readonly ToolbarPanelType[];
3624
- interface ShellStateUnit extends StateUnit {
3625
- activePanel$: Observable<ToolbarPanelType | null>;
3626
- scrollToAnnotationId$: Observable<string | null>;
3627
- panelInitialTab$: Observable<{
3628
- tab: AnnotatorKey;
3629
- generation: number;
3630
- } | null>;
3631
- openPanel(panel: string): void;
3632
- closePanel(): void;
3633
- togglePanel(panel: string): void;
3634
- onScrollCompleted(): void;
3635
- }
3636
- interface ShellStateUnitOptions {
3637
- initialPanel?: ToolbarPanelType | null;
3638
- onPanelChange?: (panel: ToolbarPanelType | null) => void;
3639
- }
3640
- declare function createShellStateUnit(browser: SemiontBrowser, options?: ShellStateUnitOptions): ShellStateUnit;
3641
-
3642
- interface ImportPreview {
3643
- format: string;
3644
- version: number;
3645
- sourceUrl: string;
3646
- stats: Record<string, number>;
3647
- }
3648
- interface ExchangeStateUnit extends StateUnit {
3649
- browse: ShellStateUnit;
3650
- selectedFile$: Observable<File | null>;
3651
- preview$: Observable<ImportPreview | null>;
3652
- importPhase$: Observable<string | null>;
3653
- importMessage$: Observable<string | undefined>;
3654
- importResult$: Observable<Record<string, unknown> | undefined>;
3655
- isExporting$: Observable<boolean>;
3656
- isImporting$: Observable<boolean>;
3657
- selectFile(file: File): void;
3658
- cancelImport(): void;
3659
- doExport(): Promise<{
3660
- blob: Blob;
3661
- filename: string;
3662
- }>;
3663
- doImport(): Promise<void>;
3664
- }
3665
- declare function createExchangeStateUnit(browse: ShellStateUnit, exportFn: (params?: {
3666
- includeArchived?: boolean;
3667
- }) => Promise<BackendDownload>, importFn: (file: File) => Observable<ProgressEvent>): ExchangeStateUnit;
3668
-
3669
- /**
3670
- * ImportCard — File drop zone, preview, and import trigger
3671
- *
3672
- * Pure React component. All state and handlers passed as props.
3673
- */
3674
-
3675
- interface ImportCardTranslations {
3676
- title: string;
3677
- description: string;
3678
- dropzoneLabel: string;
3679
- dropzoneActive: string;
3680
- detectedFormat: string;
3681
- statsPreview: string;
3682
- importButton: string;
3683
- importing: string;
3684
- importConfirmTitle: string;
3685
- importConfirmMessage: string;
3686
- confirmImport: string;
3687
- cancelImport: string;
3688
- }
3689
- interface ImportCardProps {
3690
- onFileSelected: (file: File) => void;
3691
- onImport: () => void;
3692
- onCancel: () => void;
3693
- selectedFile: File | null;
3694
- preview: ImportPreview | null;
3695
- isImporting: boolean;
3696
- translations: ImportCardTranslations;
3697
- }
3698
- declare function ImportCard({ onFileSelected, onImport, onCancel, selectedFile, preview, isImporting, translations: t, }: ImportCardProps): React__default.JSX.Element;
3699
-
3700
- /**
3701
- * ImportProgress — Shows SSE-driven progress during restore
3702
- *
3703
- * Pure React component. All state passed as props.
3704
- */
3705
- interface ImportProgressTranslations {
3706
- phaseStarted: string;
3707
- phaseComplete: string;
3708
- phaseError: string;
3709
- statsEventsReplayed: string;
3710
- statsResourcesCreated: string;
3711
- statsAnnotationsCreated: string;
3712
- statsEntityTypesAdded: string;
3713
- }
3714
- interface ImportProgressProps {
3715
- phase: string;
3716
- message?: string;
3717
- result?: Record<string, unknown>;
3718
- translations: ImportProgressTranslations;
3719
- }
3720
- declare function ImportProgress({ phase, message, result, translations: t }: ImportProgressProps): React$1.JSX.Element;
3721
-
3722
- /**
3723
- * AdminExchangePage — Backup/Restore admin page
3724
- *
3725
- * Pure React component. All state and handlers passed as props.
3726
- */
3727
-
3728
- interface AdminExchangePageTranslations {
3729
- title: string;
3730
- subtitle: string;
3731
- export: ExportCardTranslations;
3732
- import: ImportCardTranslations;
3733
- progress: ImportProgressTranslations;
3734
- }
3735
- interface AdminExchangePageProps {
3736
- onExport: () => void;
3737
- isExporting: boolean;
3738
- onFileSelected: (file: File) => void;
3739
- onImport: () => void;
3740
- onCancelImport: () => void;
3741
- selectedFile: File | null;
3742
- preview: ImportCardProps['preview'];
3743
- isImporting: boolean;
3744
- importPhase: string | null;
3745
- importMessage?: string | undefined;
3746
- importResult?: Record<string, unknown> | undefined;
3747
- theme: 'light' | 'dark' | 'system';
3748
- activePanel: string | null;
3749
- translations: AdminExchangePageTranslations;
3750
- ToolbarPanels: React__default.ComponentType<any>;
3751
- Toolbar: React__default.ComponentType<any>;
3752
- }
3753
- declare function AdminExchangePage({ onExport, isExporting, onFileSelected, onImport, onCancelImport, selectedFile, preview, isImporting, importPhase, importMessage, importResult, theme, activePanel, translations: t, ToolbarPanels, Toolbar, }: AdminExchangePageProps): React__default.JSX.Element;
3754
-
3755
3658
  /**
3756
3659
  * AdminSecurityPage Component
3757
3660
  *
@@ -3793,40 +3696,6 @@ interface AdminSecurityPageProps {
3793
3696
  }
3794
3697
  declare function AdminSecurityPage({ providers, allowedDomains, isLoading, theme, activePanel, translations: t, ToolbarPanels, Toolbar, }: AdminSecurityPageProps): React__default.JSX.Element;
3795
3698
 
3796
- /**
3797
- * LinkedDataPage — JSON-LD Export/Import moderation page
3798
- *
3799
- * Pure React component. All state and handlers passed as props.
3800
- * Reuses ExportCard, ImportCard, and ImportProgress from admin-exchange.
3801
- */
3802
-
3803
- interface LinkedDataPageTranslations {
3804
- title: string;
3805
- subtitle: string;
3806
- export: ExportCardTranslations;
3807
- import: ImportCardTranslations;
3808
- progress: ImportProgressTranslations;
3809
- }
3810
- interface LinkedDataPageProps {
3811
- onExport: () => void;
3812
- isExporting: boolean;
3813
- onFileSelected: (file: File) => void;
3814
- onImport: () => void;
3815
- onCancelImport: () => void;
3816
- selectedFile: File | null;
3817
- preview: ImportCardProps['preview'];
3818
- isImporting: boolean;
3819
- importPhase: string | null;
3820
- importMessage?: string | undefined;
3821
- importResult?: Record<string, unknown> | undefined;
3822
- theme: 'light' | 'dark' | 'system';
3823
- activePanel: string | null;
3824
- translations: LinkedDataPageTranslations;
3825
- ToolbarPanels: React__default.ComponentType<any>;
3826
- Toolbar: React__default.ComponentType<any>;
3827
- }
3828
- declare function LinkedDataPage({ onExport, isExporting, onFileSelected, onImport, onCancelImport, selectedFile, preview, isImporting, importPhase, importMessage, importResult, theme, activePanel, translations: t, ToolbarPanels, Toolbar, }: LinkedDataPageProps): React__default.JSX.Element;
3829
-
3830
3699
  /**
3831
3700
  * AdminUsersPage Component
3832
3701
  *
@@ -3920,26 +3789,26 @@ declare function AdminUsersPage({ users, userStats, isLoadingUsers, isLoadingSta
3920
3789
  * Supports both Google OAuth and email/password credentials.
3921
3790
  * No Next.js dependencies - all data via props.
3922
3791
  *
3923
- * When backendUrl is provided it is shown as a locked read-only field.
3924
- * When backendUrl is omitted the user must enter a backend URL to connect to.
3792
+ * When gatewayUrl is provided it is shown as a locked read-only field.
3793
+ * When gatewayUrl is omitted the user must enter a gateway URL to connect to.
3925
3794
  */
3926
3795
 
3927
3796
  interface SignInFormProps {
3928
3797
  /**
3929
3798
  * Callback when user clicks Google sign-in.
3930
- * Receives the backend URL (either the locked one or what the user typed).
3799
+ * Receives the gateway URL (either the locked one or what the user typed).
3931
3800
  */
3932
- onGoogleSignIn: (backendUrl: string) => Promise<void>;
3801
+ onGoogleSignIn: (gatewayUrl: string) => Promise<void>;
3933
3802
  /**
3934
3803
  * Callback when user submits email/password credentials.
3935
- * Receives the backend URL along with email and password.
3804
+ * Receives the gateway URL along with email and password.
3936
3805
  */
3937
- onCredentialsSignIn?: ((backendUrl: string, email: string, password: string) => Promise<void>) | undefined;
3806
+ onCredentialsSignIn?: ((gatewayUrl: string, email: string, password: string) => Promise<void>) | undefined;
3938
3807
  /**
3939
- * Pre-filled backend URL. When provided the field is read-only (re-auth to known workspace).
3808
+ * Pre-filled gateway URL. When provided the field is read-only (re-auth to known workspace).
3940
3809
  * When omitted the user enters the URL themselves (new connection).
3941
3810
  */
3942
- backendUrl?: string;
3811
+ gatewayUrl?: string;
3943
3812
  /**
3944
3813
  * Error message to display (if any)
3945
3814
  */
@@ -3964,8 +3833,8 @@ interface SignInFormProps {
3964
3833
  welcomeBack: string;
3965
3834
  signInPrompt: string;
3966
3835
  continueWithGoogle: string;
3967
- backendUrlLabel: string;
3968
- backendUrlPlaceholder: string;
3836
+ gatewayUrlLabel: string;
3837
+ gatewayUrlPlaceholder: string;
3969
3838
  emailLabel: string;
3970
3839
  emailPlaceholder: string;
3971
3840
  passwordLabel: string;
@@ -3977,9 +3846,9 @@ interface SignInFormProps {
3977
3846
  backToHome: string;
3978
3847
  learnMore: string;
3979
3848
  signUpInstead: string;
3980
- errorBackendUrlRequired: string;
3981
- errorBackendUrlInvalid: string;
3982
- errorBackendUrlUnreachable: string;
3849
+ errorGatewayUrlRequired: string;
3850
+ errorGatewayUrlInvalid: string;
3851
+ errorGatewayUrlUnreachable: string;
3983
3852
  errorEmailRequired: string;
3984
3853
  errorPasswordRequired: string;
3985
3854
  tagline: string;
@@ -3988,10 +3857,10 @@ interface SignInFormProps {
3988
3857
  /**
3989
3858
  * SignInForm - Main sign-in / connect component.
3990
3859
  *
3991
- * When backendUrl is provided (re-auth to known workspace) the URL field is locked.
3992
- * When backendUrl is omitted (new connection) the user enters the URL themselves.
3860
+ * When gatewayUrl is provided (re-auth to known workspace) the URL field is locked.
3861
+ * When gatewayUrl is omitted (new connection) the user enters the URL themselves.
3993
3862
  */
3994
- declare function SignInForm({ onGoogleSignIn, onCredentialsSignIn, backendUrl, error, showCredentialsAuth, isLoading, translations: t, }: SignInFormProps): React__default.JSX.Element;
3863
+ declare function SignInForm({ onGoogleSignIn, onCredentialsSignIn, gatewayUrl, error, showCredentialsAuth, isLoading, translations: t, }: SignInFormProps): React__default.JSX.Element;
3995
3864
 
3996
3865
  /**
3997
3866
  * SignUpForm - Pure React component for Google OAuth sign-up
@@ -4208,6 +4077,37 @@ interface TagSchemasPageProps {
4208
4077
  }
4209
4078
  declare function TagSchemasPage({ schemas, isLoading, theme, activePanel, translations: t, ToolbarPanels, Toolbar, }: TagSchemasPageProps): React__default.JSX.Element;
4210
4079
 
4080
+ /**
4081
+ * ShellStateUnit — app-shell state: which toolbar panel is open, tab-bar
4082
+ * coordination helpers, scroll-to-annotation signals. Lives on
4083
+ * `SemiontBrowser`'s app-scoped bus (not the per-session client bus)
4084
+ * because panel toggles and shell chrome must work regardless of
4085
+ * whether a KB session is active.
4086
+ *
4087
+ * Channels: `panel:toggle`, `panel:open`, `panel:close`.
4088
+ */
4089
+
4090
+ type ToolbarPanelType = 'history' | 'info' | 'annotations' | 'settings' | 'collaboration' | 'user' | 'jsonld' | 'knowledge-base';
4091
+ declare const COMMON_PANELS: readonly ToolbarPanelType[];
4092
+ declare const RESOURCE_PANELS: readonly ToolbarPanelType[];
4093
+ interface ShellStateUnit extends StateUnit {
4094
+ activePanel$: Observable<ToolbarPanelType | null>;
4095
+ scrollToAnnotationId$: Observable<string | null>;
4096
+ panelInitialTab$: Observable<{
4097
+ tab: AnnotatorKey;
4098
+ generation: number;
4099
+ } | null>;
4100
+ openPanel(panel: string): void;
4101
+ closePanel(): void;
4102
+ togglePanel(panel: string): void;
4103
+ onScrollCompleted(): void;
4104
+ }
4105
+ interface ShellStateUnitOptions {
4106
+ initialPanel?: ToolbarPanelType | null;
4107
+ onPanelChange?: (panel: ToolbarPanelType | null) => void;
4108
+ }
4109
+ declare function createShellStateUnit(browser: SemiontBrowser, options?: ShellStateUnitOptions): ShellStateUnit;
4110
+
4211
4111
  /**
4212
4112
  * A cache-backed list in its real states.
4213
4113
  *
@@ -4709,5 +4609,5 @@ declare function useShellStateUnit(): ShellStateUnit;
4709
4609
  */
4710
4610
  declare function useObservable<T>(obs$: Observable<T> | null | undefined): T | undefined;
4711
4611
 
4712
- export { ANNOTATORS, AVAILABLE_LOCALES, AdminDevOpsPage, AdminExchangePage, AdminSecurityPage, AdminUsersPage, AnnotateToolbar, AnnotateView, AnnotationHistory, AnnotationOverlay, AnnotationProvider, AssessmentEntry, AssessmentPanel, AssistProgress, AssistSection, AssistShell, AsyncErrorBoundary, AuthErrorDisplay, BrowseView, Button, ButtonGroup, COMMON_PANELS, CodeMirrorRenderer, CollaborationPanel, CollapsibleResourceNavigation, CommentEntry, CommentsPanel, ComposeLoadingState, DownloadFileLink, EntityTagsPage, EntityTypeBadges, ErrorBoundary, ExportCard, Footer, HighlightEntry, HighlightPanel, HistoryEvent, ImageAnnotateRenderer, ImageBrowseRenderer, ImageURLSchema, ImageViewer, ImportCard, ImportProgress, JsonLdPanel, JsonLdView, KeyboardShortcutsHelpModal, LeftSidebar, LineNumbersProvider, LinkedDataPage, LiveRegionProvider, NavigationMenu, OAuthUserSchema, ObservableLink, PageLayout, PanelHeader, PdfAnnotateRenderer, PdfBrowseRenderer, PermissionDeniedModal, PopupContainer, PopupHeader, ProtectedErrorBoundary, RESOURCE_PANELS, RecentDocumentsPage, ReferenceEntry, ReferenceResolutionWidget, ReferenceWizardModal, ReferencesPanel, ResizeHandle, ResourceAnnotationsProvider, ResourceCard, ResourceComposePage, ResourceDiscoveryPage, ResourceErrorState, ResourceGenerateModal, ResourceInfoPanel, ResourceLoadingState, ResourceTagsInline, ResourceViewer, ResourceViewerPage, SearchModal, SelectedTextDisplay, SemiontBranding, SemiontFavicon, SemiontProvider, SessionExpiredModal, SessionExpiryBanner, SessionTimer, SettingsPanel, SignInForm, SignUpForm, SimpleNavigation, SkipLinks, SortableResourceTab, StatisticsPanel, StatusDisplay, SvgDrawingCanvas, TagEntry, TagSchemasPage, TaggingPanel, TextAnnotateRenderer, TextBrowseRenderer, ThemeProvider, ToastContainer, ToastProvider, Toolbar, TranslationProvider, UnifiedAnnotationsPanel, UnifiedHeader, UploadProgressBar, UserMenuSkeleton, WebBrowserStorage, WelcomePage, annotatorKeyForMotivation, applyHighlights, buildSourceToRenderedMap, buildTextNodeIndex, buttonStyles, clearHighlights, createAdminSecurityStateUnit, createAdminUsersStateUnit, createComposePageStateUnit, createDiscoverStateUnit, createEntityTagsStateUnit, createExchangeStateUnit, createResourceLoaderStateUnit, createResourceViewerPageStateUnit, createSessionStateUnit, createShellStateUnit, createWelcomeStateUnit, cssVariables, defaultAnnotateRenderers, defaultBrowseRenderers, faviconPaths, formatTime, generateCSSVariables, getResourceIcon, getSelectedShapeForSelectorType, getSelectorType, getShortcutDisplay, getSupportedShapes, hideWidgetPreview, isShapeSupported, jsonLightHighlightStyle, jsonLightTheme, mediaUrl, resolveAnnotationRanges, sanitizeImageURL, saveSelectedShapeForSelectorType, setPdfWorkerSrc, showWidgetPreview, supportsDetection, toOverlayAnnotations, tokens, useAnnotationManager, useCollaborators, useDebounce, useDebouncedCallback, useDocumentAnnouncements, useDoubleKeyPress, useDropdown, useEventSubscription, useEventSubscriptions, useFormAnnouncements, useHoverDelay, useHoverEmitter, useIsTyping, useKBDiscovery, useKeyboardShortcuts, useLanguageChangeAnnouncements, useLineNumbers, useLiveRegion, useLoadingState, useLocalStorage, useMediaToken, useObservable, useObservableExternalNavigation, useObservableRouter, usePanelWidth, usePendingCreation, usePreloadTranslations, useResourceAnnotations, useResourceContent, useResourceLoader, useResourceLoadingAnnouncements, useRovingTabIndex, useSearchAnnouncements, useSemiont, useSessionEventSubscriptions, useSessionExpiry, useSessionStateUnit, useShellStateUnit, useStateUnit, useTheme, useToast, useToolbarPrefs, useTranslations };
4713
- export type { AdminDevOpsPageProps, AdminExchangePageProps, AdminExchangePageTranslations, AdminSecurityPageProps, AdminSecurityStateUnit, AdminUser, AdminUserStats, AdminUsersPageProps, AdminUsersStateUnit, AnnotateMediaRendererProps, AnnotateMediaRenderers, AnnotationConfig, AnnotationCreationHandler, AnnotationGroups, AnnotationHandlers, AnnotationManager, AnnotationProviderProps, AnnotationUIState, AnnotationsCollection, Annotator, AnnotatorKey, AssistDataType, AssistProgressProps, AssistProgressTranslations, AssistShellProps, AuthErrorDisplayProps, AvailableLocale, BorderRadiusToken, BrowseMediaRenderers, ButtonGroupProps, ButtonProps, ClickAction, CloneData, CollapsibleResourceNavigationProps, ColorToken, ComposeLoadingStateProps, ComposeMode, ComposePageStateUnit, ComposeParams, CreateAnnotationParams, CreateConfig, DeleteAnnotationParams, DetectionConfig, DevOpsFeature, DiscoverStateUnit, DrawingMode, EntityTagsPageProps, EntityTagsStateUnit, ExchangeStateUnit, ExportCardProps, ExportCardTranslations, HoverEmitterProps, ImportCardProps, ImportCardTranslations, ImportPreview, ImportProgressProps, ImportProgressTranslations, KBDiscoveryOptions, KBDiscoveryResult, KeyboardShortcut, LinkComponentProps, LinkedDataPageProps, LinkedDataPageTranslations, MediaRendererProps, Motivation$7 as Motivation, NavigationItem, NavigationMenuHelper, NavigationProps, OAuthProvider, OAuthUser, ObservableLinkProps, OverlayAnnotation, PendingCreation, RecentDocumentsPageProps, ReferenceHover, ReferenceWizardModalProps, ResolvedTheme, ResourceCardProps, ResourceComposePageProps, ResourceDiscoveryPageProps, ResourceErrorStateProps, ResourceGenerateModalProps, ResourceGenerateModalTranslations, ResourceLoaderStateUnit, ResourceViewerPageProps, ResourceViewerPageStateUnit, RouteBuilder, SaveResourceParams$1 as SaveResourceParams, SearchModalProps, SelectionMotivation, SelectorType, SemiontProviderProps, SemiontResource$1 as SemiontResource, SessionStateUnit, ShadowToken, ShapeType, ShellStateUnit, ShellStateUnitOptions, SignInFormProps, SignUpFormProps, SimpleNavigationItem, SimpleNavigationProps, SortableResourceTabProps, SpacingToken, TagSchemasPageProps, TextSegment, TextSelection, Theme, ToastMessage, ToastType, ToolbarPanelType, ToolbarPart, ToolbarPrefs, TransitionToken, TranslationManager, TranslationProviderProps, TypographyToken, UICreateAnnotationParams, UploadProgressBarProps, UseCollaboratorsResult, UseMediaTokenResult, UseResourceContentResult, UseResourceLoaderResult, WelcomePageProps, WelcomeStateUnit, WizardState };
4612
+ export { ANNOTATORS, AVAILABLE_LOCALES, AdminDevOpsPage, AdminSecurityPage, AdminUsersPage, AnnotateToolbar, AnnotateView, AnnotationHistory, AnnotationOverlay, AnnotationProvider, AssessmentEntry, AssessmentPanel, AssistProgress, AssistSection, AssistShell, AsyncErrorBoundary, AuthErrorDisplay, BrowseView, Button, ButtonGroup, COMMON_PANELS, CodeMirrorRenderer, CollaborationPanel, CollapsibleResourceNavigation, CommentEntry, CommentsPanel, ComposeLoadingState, DownloadFileLink, EntityTagsPage, EntityTypeBadges, ErrorBoundary, Footer, HighlightEntry, HighlightPanel, HistoryEvent, ImageAnnotateRenderer, ImageBrowseRenderer, ImageURLSchema, ImageViewer, JsonLdPanel, JsonLdView, KeyboardShortcutsHelpModal, LeftSidebar, LineNumbersProvider, LiveRegionProvider, NavigationMenu, OAuthUserSchema, ObservableLink, PageLayout, PanelHeader, PdfAnnotateRenderer, PdfBrowseRenderer, PermissionDeniedModal, PopupContainer, PopupHeader, ProtectedErrorBoundary, RESOURCE_PANELS, RecentDocumentsPage, ReferenceEntry, ReferenceResolutionWidget, ReferenceWizardModal, ReferencesPanel, ResizeHandle, ResourceAnnotationsProvider, ResourceCard, ResourceComposePage, ResourceDiscoveryPage, ResourceErrorState, ResourceGenerateModal, ResourceInfoPanel, ResourceLoadingState, ResourceTagsInline, ResourceViewer, ResourceViewerPage, SearchModal, SelectedTextDisplay, SemiontBranding, SemiontFavicon, SemiontProvider, SessionExpiredModal, SessionExpiryBanner, SessionTimer, SettingsPanel, SignInForm, SignUpForm, SimpleNavigation, SkipLinks, SortableResourceTab, StatisticsPanel, StatusDisplay, SvgDrawingCanvas, TagEntry, TagSchemasPage, TaggingPanel, TextAnnotateRenderer, TextBrowseRenderer, ThemeProvider, ToastContainer, ToastProvider, Toolbar, TranslationProvider, UnifiedAnnotationsPanel, UnifiedHeader, UploadProgressBar, UserMenuSkeleton, WebBrowserStorage, WelcomePage, annotatorKeyForMotivation, applyHighlights, buildSourceToRenderedMap, buildTextNodeIndex, buttonStyles, clearHighlights, createAdminSecurityStateUnit, createAdminUsersStateUnit, createComposePageStateUnit, createDiscoverStateUnit, createEntityTagsStateUnit, createResourceLoaderStateUnit, createResourceViewerPageStateUnit, createSessionStateUnit, createShellStateUnit, createWelcomeStateUnit, cssVariables, defaultAnnotateRenderers, defaultBrowseRenderers, faviconPaths, formatTime, generateCSSVariables, getResourceIcon, getSelectedShapeForSelectorType, getSelectorType, getShortcutDisplay, getSupportedShapes, hideWidgetPreview, isShapeSupported, jsonLightHighlightStyle, jsonLightTheme, mediaUrl, resolveAnnotationSpans, sanitizeImageURL, saveSelectedShapeForSelectorType, setPdfWorkerSrc, showWidgetPreview, supportsDetection, toOverlayAnnotations, tokens, useAnnotationManager, useCollaborators, useDebounce, useDebouncedCallback, useDocumentAnnouncements, useDoubleKeyPress, useDropdown, useEventSubscription, useEventSubscriptions, useFormAnnouncements, useHoverDelay, useHoverEmitter, useIsTyping, useKBDiscovery, useKeyboardShortcuts, useLanguageChangeAnnouncements, useLineNumbers, useLiveRegion, useLoadingState, useLocalStorage, useMediaToken, useObservable, useObservableExternalNavigation, useObservableRouter, usePanelWidth, usePendingCreation, usePreloadTranslations, useResourceAnnotations, useResourceContent, useResourceLoader, useResourceLoadingAnnouncements, useRovingTabIndex, useSearchAnnouncements, useSemiont, useSessionEventSubscriptions, useSessionExpiry, useSessionStateUnit, useShellStateUnit, useStateUnit, useTheme, useToast, useToolbarPrefs, useTranslations };
4613
+ export type { AdminDevOpsPageProps, AdminSecurityPageProps, AdminSecurityStateUnit, AdminUser, AdminUserStats, AdminUsersPageProps, AdminUsersStateUnit, AnnotateMediaRendererProps, AnnotateMediaRenderers, AnnotationConfig, AnnotationCreationHandler, AnnotationGroups, AnnotationHandlers, AnnotationManager, AnnotationProviderProps, AnnotationUIState, AnnotationsCollection, Annotator, AnnotatorKey, AssistDataType, AssistProgressProps, AssistProgressTranslations, AssistShellProps, AuthErrorDisplayProps, AvailableLocale, BorderRadiusToken, BrowseMediaRenderers, ButtonGroupProps, ButtonProps, ClickAction, CloneData, CollapsibleResourceNavigationProps, ColorToken, ComposeLoadingStateProps, ComposeMode, ComposePageStateUnit, ComposeParams, CreateAnnotationParams, CreateConfig, DeleteAnnotationParams, DetectionConfig, DevOpsFeature, DiscoverStateUnit, DrawingMode, EntityTagsPageProps, EntityTagsStateUnit, HoverEmitterProps, KBDiscoveryOptions, KBDiscoveryResult, KeyboardShortcut, LinkComponentProps, MediaRendererProps, Motivation$7 as Motivation, NavigationItem, NavigationMenuHelper, NavigationProps, OAuthProvider, OAuthUser, ObservableLinkProps, OverlayAnnotation, PendingCreation, RecentDocumentsPageProps, ReferenceHover, ReferenceWizardModalProps, ResolvedAnnotationSpan, ResolvedTheme, ResourceCardProps, ResourceComposePageProps, ResourceDiscoveryPageProps, ResourceErrorStateProps, ResourceGenerateModalProps, ResourceGenerateModalTranslations, ResourceLoaderStateUnit, ResourceViewerPageProps, ResourceViewerPageStateUnit, RouteBuilder, SaveResourceParams$1 as SaveResourceParams, SearchModalProps, SelectionMotivation, SelectorType, SemiontProviderProps, SemiontResource$1 as SemiontResource, SessionStateUnit, ShadowToken, ShapeType, ShellStateUnit, ShellStateUnitOptions, SignInFormProps, SignUpFormProps, SimpleNavigationItem, SimpleNavigationProps, SortableResourceTabProps, SpacingToken, TagSchemasPageProps, TextNodeEntry, TextSegment, TextSelection, Theme, ToastMessage, ToastType, ToolbarPanelType, ToolbarPart, ToolbarPrefs, TransitionToken, TranslationManager, TranslationProviderProps, TypographyToken, UICreateAnnotationParams, UploadProgressBarProps, UseCollaboratorsResult, UseMediaTokenResult, UseResourceContentResult, UseResourceLoaderResult, WelcomePageProps, WelcomeStateUnit, WizardState };