@semiont/react-ui 0.5.16 → 0.5.18
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.
- package/dist/index.d.ts +24 -4
- package/dist/index.js +371 -333
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
package/dist/index.js
CHANGED
|
@@ -910,7 +910,7 @@ function nextClusterBreak(str, pos, includeExtending) {
|
|
|
910
910
|
return pos;
|
|
911
911
|
}
|
|
912
912
|
function prevClusterBreak(str, pos, includeExtending) {
|
|
913
|
-
while (pos >
|
|
913
|
+
while (pos > 1) {
|
|
914
914
|
let found = nextClusterBreak(str, pos - 2, includeExtending);
|
|
915
915
|
if (found < pos) return found;
|
|
916
916
|
pos--;
|
|
@@ -18441,6 +18441,40 @@ function usePendingCreation(session, resourceId2, enabled) {
|
|
|
18441
18441
|
return { pending, clearPending };
|
|
18442
18442
|
}
|
|
18443
18443
|
|
|
18444
|
+
// src/hooks/useKBDiscovery.ts
|
|
18445
|
+
import { useEffect as useEffect16, useMemo as useMemo3, useState as useState16 } from "react";
|
|
18446
|
+
import { httpDiscovery, subscribeDiscovery } from "@semiont/sdk";
|
|
18447
|
+
function useKBDiscovery(options) {
|
|
18448
|
+
const enabled = options?.enabled ?? true;
|
|
18449
|
+
const intervalMs = options?.intervalMs;
|
|
18450
|
+
const externalTransport = options?.transport;
|
|
18451
|
+
const transport = useMemo3(
|
|
18452
|
+
() => externalTransport ?? httpDiscovery(),
|
|
18453
|
+
[externalTransport]
|
|
18454
|
+
);
|
|
18455
|
+
const [visible, setVisible] = useState16(
|
|
18456
|
+
() => typeof document === "undefined" || !document.hidden
|
|
18457
|
+
);
|
|
18458
|
+
const [state, setState] = useState16(null);
|
|
18459
|
+
useEffect16(() => {
|
|
18460
|
+
const onVisibilityChange = () => setVisible(!document.hidden);
|
|
18461
|
+
document.addEventListener("visibilitychange", onVisibilityChange);
|
|
18462
|
+
return () => document.removeEventListener("visibilitychange", onVisibilityChange);
|
|
18463
|
+
}, []);
|
|
18464
|
+
useEffect16(() => {
|
|
18465
|
+
if (!enabled || !visible) return;
|
|
18466
|
+
const subscription = subscribeDiscovery(
|
|
18467
|
+
transport,
|
|
18468
|
+
intervalMs !== void 0 ? { intervalMs } : void 0
|
|
18469
|
+
).subscribe((diff) => setState(diff.state));
|
|
18470
|
+
return () => subscription.unsubscribe();
|
|
18471
|
+
}, [enabled, visible, transport, intervalMs]);
|
|
18472
|
+
return {
|
|
18473
|
+
state,
|
|
18474
|
+
kbs: state?.kind === "managed" ? state.kbs : []
|
|
18475
|
+
};
|
|
18476
|
+
}
|
|
18477
|
+
|
|
18444
18478
|
// src/contexts/AnnotationContext.tsx
|
|
18445
18479
|
import { createContext as createContext2, useContext as useContext2 } from "react";
|
|
18446
18480
|
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
@@ -18457,15 +18491,15 @@ function useAnnotationManager() {
|
|
|
18457
18491
|
}
|
|
18458
18492
|
|
|
18459
18493
|
// src/contexts/useEventSubscription.ts
|
|
18460
|
-
import { useEffect as
|
|
18494
|
+
import { useEffect as useEffect17, useRef as useRef8, useMemo as useMemo4 } from "react";
|
|
18461
18495
|
function useEventSubscription(eventName, handler) {
|
|
18462
18496
|
const semiont = useSemiont();
|
|
18463
18497
|
const session = useObservable(semiont.activeSession$);
|
|
18464
18498
|
const handlerRef = useRef8(handler);
|
|
18465
|
-
|
|
18499
|
+
useEffect17(() => {
|
|
18466
18500
|
handlerRef.current = handler;
|
|
18467
18501
|
});
|
|
18468
|
-
|
|
18502
|
+
useEffect17(() => {
|
|
18469
18503
|
const unsubs = [];
|
|
18470
18504
|
unsubs.push(semiont.on(eventName, (payload) => handlerRef.current(payload)));
|
|
18471
18505
|
if (session) {
|
|
@@ -18480,15 +18514,15 @@ function useEventSubscriptions(subscriptions) {
|
|
|
18480
18514
|
const semiont = useSemiont();
|
|
18481
18515
|
const session = useObservable(semiont.activeSession$);
|
|
18482
18516
|
const handlersRef = useRef8(subscriptions);
|
|
18483
|
-
|
|
18517
|
+
useEffect17(() => {
|
|
18484
18518
|
handlersRef.current = subscriptions;
|
|
18485
18519
|
});
|
|
18486
|
-
const eventNames =
|
|
18520
|
+
const eventNames = useMemo4(
|
|
18487
18521
|
() => Object.keys(subscriptions).sort(),
|
|
18488
18522
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
18489
18523
|
[Object.keys(subscriptions).sort().join(",")]
|
|
18490
18524
|
);
|
|
18491
|
-
|
|
18525
|
+
useEffect17(() => {
|
|
18492
18526
|
const unsubs = [];
|
|
18493
18527
|
for (const eventName of eventNames) {
|
|
18494
18528
|
const channel = eventName;
|
|
@@ -18508,10 +18542,10 @@ function useEventSubscriptions(subscriptions) {
|
|
|
18508
18542
|
}
|
|
18509
18543
|
|
|
18510
18544
|
// src/contexts/ResourceAnnotationsContext.tsx
|
|
18511
|
-
import { createContext as createContext4, useContext as useContext4, useState as
|
|
18545
|
+
import { createContext as createContext4, useContext as useContext4, useState as useState18, useCallback as useCallback13, useMemo as useMemo5 } from "react";
|
|
18512
18546
|
|
|
18513
18547
|
// src/components/LiveRegion.tsx
|
|
18514
|
-
import { useState as
|
|
18548
|
+
import { useState as useState17, createContext as createContext3, useContext as useContext3, useCallback as useCallback12 } from "react";
|
|
18515
18549
|
import { jsx as jsx3, jsxs } from "react/jsx-runtime";
|
|
18516
18550
|
var LiveRegionContext = createContext3(null);
|
|
18517
18551
|
function useLiveRegion() {
|
|
@@ -18523,8 +18557,8 @@ function useLiveRegion() {
|
|
|
18523
18557
|
return context;
|
|
18524
18558
|
}
|
|
18525
18559
|
function LiveRegionProvider({ children }) {
|
|
18526
|
-
const [politeMessage, setPoliteMessage] =
|
|
18527
|
-
const [assertiveMessage, setAssertiveMessage] =
|
|
18560
|
+
const [politeMessage, setPoliteMessage] = useState17("");
|
|
18561
|
+
const [assertiveMessage, setAssertiveMessage] = useState17("");
|
|
18528
18562
|
const announce = useCallback12((message, priority = "polite") => {
|
|
18529
18563
|
if (priority === "assertive") {
|
|
18530
18564
|
setAssertiveMessage(message);
|
|
@@ -18671,7 +18705,7 @@ function useLanguageChangeAnnouncements() {
|
|
|
18671
18705
|
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
18672
18706
|
var ResourceAnnotationsContext = createContext4(void 0);
|
|
18673
18707
|
function ResourceAnnotationsProvider({ children }) {
|
|
18674
|
-
const [newAnnotationIds, setNewAnnotationIds] =
|
|
18708
|
+
const [newAnnotationIds, setNewAnnotationIds] = useState18(/* @__PURE__ */ new Set());
|
|
18675
18709
|
const { announce } = useLiveRegion();
|
|
18676
18710
|
const semiont = useObservable(useSemiont().activeSession$)?.client;
|
|
18677
18711
|
const markAnnotation = useCallback13(async (rUri, motivation, selector, body = []) => {
|
|
@@ -18721,7 +18755,7 @@ function ResourceAnnotationsProvider({ children }) {
|
|
|
18721
18755
|
});
|
|
18722
18756
|
}, 6e3);
|
|
18723
18757
|
}, []);
|
|
18724
|
-
const contextValue =
|
|
18758
|
+
const contextValue = useMemo5(
|
|
18725
18759
|
() => ({
|
|
18726
18760
|
newAnnotationIds,
|
|
18727
18761
|
markAnnotation,
|
|
@@ -18741,7 +18775,7 @@ function useResourceAnnotations() {
|
|
|
18741
18775
|
}
|
|
18742
18776
|
|
|
18743
18777
|
// src/components/CodeMirrorRenderer.tsx
|
|
18744
|
-
import { useEffect as
|
|
18778
|
+
import { useEffect as useEffect18, useRef as useRef9 } from "react";
|
|
18745
18779
|
|
|
18746
18780
|
// ../../node_modules/@codemirror/autocomplete/dist/index.js
|
|
18747
18781
|
var CompletionContext = class {
|
|
@@ -19542,8 +19576,9 @@ function isHTMLBlock(line, _cx, breaking) {
|
|
|
19542
19576
|
}
|
|
19543
19577
|
function getListIndent(line, pos) {
|
|
19544
19578
|
let indentAfter = line.countIndent(pos, line.pos, line.indent);
|
|
19545
|
-
let
|
|
19546
|
-
|
|
19579
|
+
let skipped = line.skipSpace(pos);
|
|
19580
|
+
let indented = line.countIndent(skipped, pos, indentAfter);
|
|
19581
|
+
return indented >= indentAfter + 5 || skipped == line.text.length ? indentAfter + 1 : indented;
|
|
19547
19582
|
}
|
|
19548
19583
|
function addCodeText(marks2, from, to) {
|
|
19549
19584
|
let last = marks2.length - 1;
|
|
@@ -19895,6 +19930,8 @@ var BlockContext = class {
|
|
|
19895
19930
|
}
|
|
19896
19931
|
break;
|
|
19897
19932
|
}
|
|
19933
|
+
if (line.pos == line.text.length)
|
|
19934
|
+
return this.nextLine() ? null : this.finish();
|
|
19898
19935
|
let leaf = new LeafBlock(this.lineStart + line.pos, line.text.slice(line.pos));
|
|
19899
19936
|
for (let parse of this.parser.leafBlockParsers)
|
|
19900
19937
|
if (parse) {
|
|
@@ -21068,7 +21105,7 @@ function hasPipe(str, start) {
|
|
|
21068
21105
|
}
|
|
21069
21106
|
return false;
|
|
21070
21107
|
}
|
|
21071
|
-
var delimiterLine =
|
|
21108
|
+
var delimiterLine = /^[>\s]*\|?(\s*:?-+:?\s*\|)+(\s*:?-+:?\s*)?$/;
|
|
21072
21109
|
var TableParser = class {
|
|
21073
21110
|
constructor() {
|
|
21074
21111
|
this.rows = null;
|
|
@@ -23376,12 +23413,12 @@ function configureNesting(tags3 = [], attributes = []) {
|
|
|
23376
23413
|
}
|
|
23377
23414
|
|
|
23378
23415
|
// ../../node_modules/@lezer/css/dist/index.js
|
|
23379
|
-
var descendantOp =
|
|
23416
|
+
var descendantOp = 145;
|
|
23380
23417
|
var Unit = 1;
|
|
23381
|
-
var identifier =
|
|
23382
|
-
var callee =
|
|
23418
|
+
var identifier = 146;
|
|
23419
|
+
var callee = 147;
|
|
23383
23420
|
var VariableName = 2;
|
|
23384
|
-
var queryIdentifier =
|
|
23421
|
+
var queryIdentifier = 148;
|
|
23385
23422
|
var queryVariableName = 3;
|
|
23386
23423
|
var QueryCallee = 4;
|
|
23387
23424
|
var space2 = [
|
|
@@ -23522,32 +23559,32 @@ var cssHighlighting = styleTags({
|
|
|
23522
23559
|
"[ ]": tags.squareBracket,
|
|
23523
23560
|
"{ }": tags.brace
|
|
23524
23561
|
});
|
|
23525
|
-
var spec_callee = { __proto__: null, lang: 44, "nth-child": 44, "nth-last-child": 44, "nth-of-type": 44, "nth-last-of-type": 44, dir: 44, "host-context": 44, if: 90, url:
|
|
23526
|
-
var spec_queryIdentifier = { __proto__: null, or: 104, and: 104, not: 112, only: 112, layer:
|
|
23527
|
-
var spec_QueryCallee = { __proto__: null, selector: 118, layer:
|
|
23528
|
-
var spec_AtKeyword = { __proto__: null, "@import":
|
|
23529
|
-
var spec_identifier = { __proto__: null, to:
|
|
23562
|
+
var spec_callee = { __proto__: null, lang: 44, "nth-child": 44, "nth-last-child": 44, "nth-of-type": 44, "nth-last-of-type": 44, dir: 44, "host-context": 44, if: 90, url: 152, "url-prefix": 152, domain: 152, regexp: 152 };
|
|
23563
|
+
var spec_queryIdentifier = { __proto__: null, or: 104, and: 104, not: 112, only: 112, layer: 206 };
|
|
23564
|
+
var spec_QueryCallee = { __proto__: null, selector: 118, style: 124, layer: 202 };
|
|
23565
|
+
var spec_AtKeyword = { __proto__: null, "@import": 198, "@media": 210, "@charset": 214, "@namespace": 218, "@keyframes": 224, "@supports": 236, "@scope": 240, "@font-feature-values": 246 };
|
|
23566
|
+
var spec_identifier = { __proto__: null, to: 243 };
|
|
23530
23567
|
var parser3 = LRParser.deserialize({
|
|
23531
23568
|
version: 14,
|
|
23532
|
-
states: "
|
|
23533
|
-
stateData: "
|
|
23534
|
-
goto: "
|
|
23535
|
-
nodeNames: "\u26A0 Unit VariableName VariableName QueryCallee Comment StyleSheet RuleSet UniversalSelector TagSelector TagName NamespacedTagSelector NamespaceName TagName NestingSelector ClassSelector . ClassName PseudoClassSelector : :: PseudoClassName PseudoClassName ) ( ArgList ValueName ParenthesizedValue AtKeyword # ; ] [ BracketedValue } { BracedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp CallExpression Callee IfExpression if ArgList IfBranch KeywordQuery FeatureQuery FeatureName BinaryQuery LogicOp ComparisonQuery CompareOp UnaryQuery UnaryQueryOp ParenthesizedQuery SelectorQuery selector ParenthesizedSelector CallQuery ArgList , PseudoQuery CallLiteral CallTag ParenthesizedContent PseudoClassName ArgList IdSelector IdName AttributeSelector AttributeName NamespacedAttribute NamespaceName AttributeName MatchOp MatchFlag ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp Block Declaration PropertyName Important ImportStatement import Layer layer LayerName layer MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList KeyframeSelector KeyframeRangeName SupportsStatement supports ScopeStatement scope to FontFeatureStatement font-feature-values FontName AtRule Styles",
|
|
23536
|
-
maxTerm:
|
|
23569
|
+
states: "MlQYQdOOO#}QdOOP$UO`OOO%OQaO'#CfOOQP'#Ce'#CeO%VQdO'#CgO%[Q`O'#CgO%aQaO'#FnO&XQdO'#CkO&xQaO'#CcO'SQdO'#CnO'_QdO'#EOO'dQdO'#EQO'oQdO'#EXO'oQdO'#E[OOQP'#Fn'#FnO)RQhO'#E}OOQS'#Fm'#FmOOQS'#FQ'#FQQYQdOOO)YQdO'#EbO*iQhO'#EhO)YQdO'#EjO*pQdO'#ElO*{QdO'#EoO)}QhO'#EuO+TQdO'#EwO+`QdO'#EzO+eQaO'#CfO+lQ`O'#E_O+qQ`O'#F{O+|QdO'#F{QOQ`OOP,WO&jO'#CaPOOO)CA])CA]OOQP'#Ci'#CiOOQP,59R,59RO%VQdO,59ROOQP'#Cm'#CmOOQP,59V,59VO&XQdO,59VO,cQdO,59YO'_QdO,5:jO'dQdO,5:lO'oQdO,5:sO'oQdO,5:uO'oQdO,5:vO'oQdO'#FXO,nQ`O,58}O,vQdO'#E^OOQS,58},58}OOQP'#Cq'#CqOOQO'#D|'#D|OOQP,59Y,59YO,}Q`O,59YO-SQ`O,59YOOQP'#EP'#EPOOQP,5:j,5:jO-XQpO'#ERO-dQdO'#ESO-iQ`O'#ESO-nQpO,5:lO.XQaO,5:sO.oQaO,5:vOOQW'#D^'#D^O/nQhO'#DgO0RQhO,5;iO)}QhO'#DeO0`Q`O'#DnO0eQhO'#DxOOQW'#Ft'#FtOOQS,5;i,5;iO0jQ`O'#DhO0oQ`O'#DkOOQS-E9O-E9OOOQ['#Cv'#CvO0tQdO'#CwO1[QdO'#C}O1rQdO'#DQO2YQ!pO'#DSO4fQ!jO,5:|OOQO'#DX'#DXO-SQ`O'#DWO4vQ!nO'#FqO6|Q`O'#DYO7RQ`O'#DyOOQ['#Fq'#FqO7WQhO'#GOO7fQ`O,5;SO7kQ!bO,5;UOOQS'#En'#EnO7sQ`O,5;WO7xQdO,5;WOOQO'#Eq'#EqO8QQ`O,5;ZO8VQhO,5;aO'oQdO'#DjOOQS,5;c,5;cO0jQ`O,5;cO8_QdO,5;cOOQS'#F`'#F`O8gQdO'#E|O7fQ`O,5;fO8oQdO,5:yO9PQdO'#FZO9^Q`O,5<gO9^Q`O,5<gPOOO'#FP'#FPP9iO&jO,58{POOO,58{,58{OOQP1G.m1G.mOOQP1G.q1G.qOOQP1G.t1G.tO,}Q`O1G.tO-SQ`O1G.tOOQP1G0U1G0UO9tQpO1G0WO9|QaO1G0_O:dQaO1G0aO:zQaO1G0bO;bQaO,5;sOOQO-E9V-E9VOOQS1G.i1G.iO;lQ`O,5:xO;qQdO'#D}O;xQdO'#CuOOQO'#EU'#EUOOQO,5:n,5:nO-dQdO,5:nOOQP1G0W1G0WO)YQdO1G0WO<PQ!jO'#D^O<_Q!bO,59yO<gQhO,5:ROOQO'#Fu'#FuO<bQ!bO,59}O<oQhO'#FaO)}QhO,59{O)}QhO'#FaO=gQhO1G1TOOQS1G1T1G1TO=qQhO,5:PO>lQhO'#DoOOQW,5:Y,5:YOOQW,5:d,5:dOOQW,5:S,5:SO>vQhO,5:VO?bQ!fO'#FrOOQS'#Fr'#FrOOQS'#FS'#FSO@rQdO,59cOOQ[,59c,59cOAYQdO,59iOOQ[,59i,59iOApQdO,59lOOQ[,59l,59lOOQ[,59n,59nO)YQdO,59pOBWQhO'#EdOOQW'#Ed'#EdOBuQ`O1G0hO4oQhO1G0hOOQ[,59r,59rO)}QhO'#D[OOQ[,59t,59tOBzQ#tO,5:eOCVQhO'#F]OCdQ`O,5<jOOQS1G0n1G0nOOQS1G0p1G0pOOQS1G0r1G0rOCoQ`O1G0rOCtQdO'#ErOOQS1G0u1G0uOOQS1G0{1G0{ODPQaO,5:UO7fQ`O1G0}OOQS1G0}1G0}O0jQ`O1G0}OOQS-E9^-E9^OOQS1G1Q1G1QODWQ!fO1G0eODnQ`O'#EaOOQO1G0e1G0eOOQO,5;u,5;uODsQdO,5;uOOQO-E9X-E9XOEQQ`O1G2RPOOO-E8}-E8}POOO1G.g1G.gOOQP7+$`7+$`OOQP7+%r7+%rO)YQdO7+%rOOQS1G0d1G0dOE]QaO'#FzOEgQ`O,5:iOElQ!fO'#FROFjQdO'#FpOFtQ`O,59aOOQO1G0Y1G0YOFyQ!bO7+%rO)YQdO1G/eOGUQhO1G/iOOQW1G/m1G/mOOQW1G/g1G/gOGgQhO,5;{OOQW-E9_-E9_OOQS7+&o7+&oOH_QhO'#D^OHmQhO'#FxOHxQ`O'#FxOH}Q`O,5:ZOISQ!bO'#D`O>vQhO'#DmOI_QhO'#DqOIgQhO'#DsOIlQhO'#FwOOQO'#Fw'#FwOItQ!bO'#DwOOQO'#Fy'#FyOOQO'#Fv'#FvOIyQ`O1G/qOOQS-E9Q-E9QOOQ[1G.}1G.}OOQ[1G/T1G/TOOQ[1G/W1G/WOOQ[1G/[1G/[OJOQdO,5;OOOQS7+&S7+&SOJTQ`O7+&SOJYQhO'#D]OJbQ`O,59vO)}QhO,59vOOQ[1G0P1G0POJjQ`O1G0POJoQhO,5;wOOQO-E9Z-E9ZOOQS7+&^7+&^OJ}QbO'#DSOOQO'#Et'#EtOK]Q`O'#EsOOQO'#Es'#EsOKhQ`O'#F^OKpQdO,5;^OOQS,5;^,5;^OOQ[1G/p1G/pOOQS7+&i7+&iO7fQ`O7+&iOK{Q!fO'#FYO)YQdO'#FYOMSQdO7+&POOQO7+&P7+&POOQO,5:{,5:{OOQO1G1a1G1aOMgQ!bO<<I^OMrQdO'#FWOM|Q`O,5<fOOQP1G0T1G0TOOQS-E9P-E9PONUQdO'#FVON`Q`O,5<[OOQ]1G.{1G.{OOQP<<I^<<I^ONhQ`O<<I^ONmQdO7+%POOQO'#D`'#D`ONtQ!bO7+%TON|QhO'#FUO! ZQ`O,5<dO)YQdO,5<dOOQW1G/u1G/uO)YQdO,5:bO! cQ`O,5:XO>vQhO'#DrOOQO,5:],5:]O! hQhO,5:_OGUQhO,5:cOOQW7+%]7+%]OOQO'#Ef'#EfO! pQ`O1G0jOOQS<<In<<InO)YQdO,59wO!!dQhO1G/bOOQ[1G/b1G/bO!!kQ`O1G/bOOQW-E9R-E9ROOQ[7+%k7+%kOOQO,5;_,5;_OCwQdO'#F_OKhQ`O,5;xOOQS,5;x,5;xOOQS-E9[-E9[OOQS1G0x1G0xOOQS<<JT<<JTO!!sQ!fO,5;tOOQS-E9W-E9WOOQO<<Ik<<IkOOQPAN>xAN>xO!#zQ`OAN>xO!$PQaO,5;rOOQO-E9U-E9UO!$ZQdO,5;qOOQO-E9T-E9TOOQW<<Hk<<HkOOQW<<Ho<<HoO!$eQhO<<HoO!$vQhO,5;pO!%RQ`O,5;pOOQO-E9S-E9SO!%WQdO1G2OO!%bQdO1G/|O!%iQhO1G/sO!%qQ`O,5:^O>vQhO'#DuOOQO1G/y1G/yO!%vQ!bO1G/}OJOQdO'#F[O!&OQ`O7+&UOOQW7+&U7+&UO!&WQ!bO1G/cOOQ[7+$|7+$|O!&cQhO7+$|P!&jQ`O'#FTOOQO,5;y,5;yOOQO-E9]-E9]OOQS1G1d1G1dOOQPG24dG24dO!&oQ`OAN>ZO)YQdO1G1[O!&tQ`O7+'jOOQO1G/x1G/xO!&|Q`O,5:aO!$eQhO7+%iOOQO,5;v,5;vOOQO-E9Y-E9YOOQW<<Ip<<IpOOQ[<<Hh<<HhPOQW,5;o,5;oOOQWG23uG23uO!'RQdO7+&vOOQO1G/{1G/{OOQO<<IT<<IT",
|
|
23570
|
+
stateData: "!'f~O$[OS$]QQ~OWVO^_O`WOcYOdYOl`OmZOp[O!|]O#P^O#VdO#]eO#_fO#agO#dhO#jiO#ljO#okO$WRO$cTO~OQmOWVO^_O`WOcYOdYOl`OmZOp[O!|]O#P^O#VdO#]eO#_fO#agO#dhO#jiO#ljO#okO$WlO$cTO~O$U$oP~P!jO$]qO~O`YXcYXdYXmYXpYXsYX!dYX!|YX#PYX$VYX$c[X~OgYX~P$ZO$WsO~O$cuO~O$cuO`$bXc$bXd$bXm$bXp$bXs$bX!d$bX!|$bX#P$bX$V$bXg$bX~O$WvO~O`xOcyOdyOmzOp{O!||O#P!OO$V}O~Os!RO!d!PO~P&^Of!XO$W!TO$X!UO~O$W!YO~OW!^O$W![O$c!]O~OWVO^_O`WOcYOdYOmZOp[O!|]O#P^O$WRO$cTO~OS!fOc!gOd!gOh!cOs!RO!Y!eO!]!jO!`!kO$Y!bO~On!iO~P(dOQ!uOh!nOp!oOs!pOu!xOw!xO}!vO!n!wO$W!mO$X!sO$g!qO~OS!fOc!gOd!gOh!cO!Y!eO!]!jO!`!kO$Y!bO~Os$rP~P)}Ow!}O!n!wO$W!|O~Ow#PO$W#PO~Oh#SOs!RO#m#UO~O$W#WO~Oc#SX~P$ZOc#ZO~On#[O$U$oXr$oX~O$U$oXr$oX~P!jO$^#_O$_#_O$`#aO~Of#fO$W!TO$X!UO~Os!RO!d!PO~Or$oP~P!jOh#pO~Oh#qO~Oo!uX!y!uX$c!wX~O$W#rO~O$c#tO~Oo#uO!y#vO~O`xOcyOdyOmzOp{O~Os!{a!d!{a!|!{a#P!{a$V!{ag!{a~P-vOs#Oa!d#Oa!|#Oa#P#Oa$V#Oag#Oa~P-vOS!fOc!gOd!gOh!cO!Y!eO!]!jO!`!kO~OR#zOu#zOw#zO$Y#wO$g!qO~P/VOn$QO!U#}O!d$OO~P(dOh$SO~O$Y$UO~Oh#SO~Oh$WO~O`$YOc$YOg$]Ol$YOm$YOn$YO~P)YO`$YOc$YOl$YOm$YOn$YOo$_O~P)YO`$YOc$YOl$YOm$YOn$YOr$aO~P)YOP$bOSvXcvXdvXhvXnvXyvX!YvX!]vX!`vX#XvX#ZvX$YvX!WvXQvX`vXgvXlvXmvXpvXsvXuvXwvX}vX!nvX$WvX$XvX$gvXovXrvX!dvX$UvX$qvX!zvX~Oy$cO#X$dO#Z$eOn$rP~P)}Oh#qOS$eXc$eXd$eXn$eXy$eX!Y$eX!]$eX!`$eX#X$eX#Z$eX$Y$eXQ$eX`$eXg$eXl$eXm$eXp$eXs$eXu$eXw$eX}$eX!n$eX$W$eX$X$eX$g$eXo$eXr$eX!d$eX$U$eX$q$eX!z$eX~Oh$iO~Oh$kO~O!U#}O!d$lOs$rXn$rX~Os!RO~On$oOy$cO~On$pO~Ow$qO!n!wO~Os$rO~Os!RO!U#}O~Os!RO#m$xO~O$W#WOs#pX~O$q$|On#Ra$U#Rar#Ra~P)YOn#}X$U#}Xr#}X~P!jOn#[O$U$oar$oa~O$^#_O$_#_O$`%TO~Oo%VO!y%WO~Os!{i!d!{i!|!{i#P!{i$V!{ig!{i~P-vOs!}i!d!}i!|!}i#P!}i$V!}ig!}i~P-vOs#Oi!d#Oi!|#Oi#P#Oi$V#Oig#Oi~P-vOs#{a!d#{a~P&^Or%XO~Og$nP~P'oOg$dP~P)YOc!SXg!QX!U!QX!W!SX~Oc%aO!W%bO~Og%cO!U#}O~O!U#}OS$TXc$TXd$TXh$TXn$TXs$TX!Y$TX!]$TX!`$TX!d$TX$Y$TX~On%gO!d$OO~P(dO!U#}OS!Xac!Xad!Xah!Xan!Xas!Xa!Y!Xa!]!Xa!`!Xa!d!Xa$Y!Xag!Xa~O$Y%hOg$lP~P/VOR#zOS!fOh%mOu#zOw#zO!Y%nO$Y%lO$g!qO~Oy$cOQ$fX`$fXc$fXg$fXh$fXl$fXm$fXn$fXp$fXs$fXu$fXw$fX}$fX!n$fX$W$fX$X$fX$g$fXo$fXr$fX~O`$YOc$YOg%wOl$YOm$YOn$YO~P)YO`$YOc$YOl$YOm$YOn$YOo%xO~P)YO`$YOc$YOl$YOm$YOn$YOr%yO~P)YOh%{OS#WXc#WXd#WXn#WX!Y#WX!]#WX!`#WX$Y#WX~On%|O~Og&ROw&SO!o&SO~Os$PX!d$PXn$PX~P)}O!d$lOs$ran$ra~On&VO~Or&^O$W&XO$g&WO~Og&_O~P&^Oy$cO!d&cO$q$|On#Ri$U#Rir#Ri~P)YO$p&fO~On#}a$U#}ar#}a~P!jOn#[O$U$oir$oi~O!d&iOg$nX~P&^Og&kO~Oy$cOQ#uXg#uXh#uXp#uXs#uXu#uXw#uX}#uX!d#uX!n#uX$W#uX$X#uX$g#uX~O!d&mOg$dX~P)YOg&oO~Oo&pOy$cO!z&qO~OR#zOu#zOw#zO$Y&sO$g!qO~O!U#}OS$Tac$Tad$Tah$Tan$Tas$Ta!Y$Ta!]$Ta!`$Ta!d$Ta$Y$Ta~Oc!SXg!QX!U!QX!d!QX~O!U#}O!d&uOg$lX~Oc&wO~Og&xO~Oc&yOg!jX!W!SX~OS!fOh&{O~O!U&}O~O!U&}Og$kX~O!W'OO~Og'PO~O$W'QO~On'SO~Oc'TO!U#}O~Og'VOn'UO~Og'YO~O!U#}Os$Pa!d$Pan$Pa~OP$bOsvX!dvXgvX~O$g&WOs#gX!d#gX~Os!RO!d'[O~Or'`O$W&XO$g&WO~Oy$cOQ#|Xh#|Xn#|Xp#|Xs#|Xu#|Xw#|X}#|X!d#|X!n#|X$U#|X$W#|X$X#|X$g#|X$q#|Xr#|X~O!d&cO$q$|On#Rq$U#Rqr#Rq~P)YOo'eOy$cO!z'fO~Og#zX!d#zX~P'oO!d&iOg$na~Og#yX!d#yX~P)YO!d&mOg$da~Oo'eO~Og'kO~P)YOg'lO!W'mO~O$Y%hOg#xX!d#xX~P/VO!d&uOg$la~Og'sO~OS!fOh'uO~O`'xOg'zO~OS#wac#wad#wah#wa!Y#wa!]#wa!`#wa$Y#wa~Og'|O~P! xOg'|On'}O~Oy$cOQ#|ah#|an#|ap#|as#|au#|aw#|a}#|a!d#|a!n#|a$U#|a$W#|a$X#|a$g#|a$q#|ar#|a~Oo(SO~Og#za!d#za~P&^Og#ya!d#ya~P)YOR#zOu#zOw#zO$Y&sO$g&WO~O!U#}Og#xa!d#xa~Oc(UO~O!d&uOg$li~P)YOg!ji~P)YOg!ai!U!hi~Og(WO~O!W(YOg!ki~O`'xOg(]O~Oy$cOg!Pin!Pi~Og(^O~P! xOn(_O~Og(`O~O!d&uOg$lq~Og(bO~Og#xq!d#xq~P)YO$[!o$]$g`$gy#P~",
|
|
23571
|
+
goto: "7[$sPPPPP$tP$wP%Q%d%Q%v&YP%QP&`%QPP&fPPP&l&v&vPPPPP&vPP&vP'fP&vP&v(i&vP)X)[)b)b)t)bP)bP)bP)b)bP*a)bP*m*s+cP*m+f*m+i+`+o+o)b+uPP,k,q%Q,w%Q,},}-T-XPP%QP%Q%QP-_.Z.h.o$wP.xP.{P$wP$wP$wP/R$wP/U/X/[/c$wP$wPP$wP/h$wP/k/q0Q0l0z1Q1[1b1h1n1t2O2U2[2b2h2nPPPPPPPPPPP2t2}P3s3v4zP5S5|6c6o6u6o6x6{PP7RRrQ_aOPco!R#[%Pq_OP]^co|}!O!P!R#S#[#p%P&iqSOP]^co|}!O!P!R#S#[#p%P&iqUOP]^co|}!O!P!R#S#[#p%P&iQtTR#buQwWR#cxQ!VYR#dyQ#d!XS$h!t!uR%U#f!Z!xdf!n!o!p#Z#q#v$[$^$`$c${%W%]%a&c&d&m&r&w&y'T'i'q'r(U(a!Y!xdf!n!o!p#Z#q#v$[$^$`$c${%W%]%a&c&d&m&r&w&y'T'i'q'r(U(ab#z!c$W%b%m&{'O'm'u(YU&Z$r&]'[R'Z&Y!Z!tdf!n!o!p#Z#q#v$[$^$`$c${%W%]%a&c&d&m&r&w&y'T'i'q'r(U(aR$j!vQ&P$iR'W&Qq!h`ei!c!d!e!r#}$O$P$S$g$i$l&Q&uQ#x!cQ%j$SW%r$W%m&{'uQ&t%bQ'o&uQ'w'OQ(T'mR(c(YQ#VjQ$V!jQ$v#UR&a$xX%q$W%m&{'up!h`ei!c!d!e!r#}$O$P$S$g$i$l&Q&uW%p$W%m&{'uQ&|%nR'v&}R$T!fR&|%nX%o$W%m&{'uX%s$W%m&{'u!Y!xdf!n!o!p#Z#q#v$[$^$`$c${%W%]%a&c&d&m&r&w&y'T'i'q'r(U(aQ!}gR$q#OQ!WYR#eyQ#d!WR%U#eQ!ZZR#gzQ!_[R#h{T!^[{Q#s!]R%_#tQ!SXQ!i`Q#TjQ#n!QQ$Q!dQ$n!zQ$t#RQ$w#VQ$z#YQ%g$PQ&`$vQ'^&[Q'a&aR(R']SnP!RQ#^oQ%O#[R&g%PZmPo!R#[%PQ$}#ZQ&e${R'd&dR$g!rQ'R%{R(Z'xR#OgR#QhR$s#QS&[$r&]R(P'[V&Y$r&]'[R#YkQ#`qR%S#`QcOSoP!RU!lco%PR%P#[Q%]#q[&l%]&r'i'q'r(aQ&r%aQ'i&mQ'q&wQ'r&yR(a(UQ$[!nQ$^!oQ$`!pV%v$[$^$`Q&Q$iR'X&QQ&v%iS'p&v(VR(V'qQ&n%]R'j&nQ&j%YR'h&jQ!QXR#m!QQ&d${R'c&dQ#]nS%Q#]%RR%R#^Q'y'RR(['yQ$m!yR&U$mQ&]$rR'_&]Q']&[R(Q']Q#XkR$y#XQ$P!dR%f$P_bOPco!R#[%P^XOPco!R#[%PQ!`]Q!a^Q#i|Q#j}Q#k!OQ#l!PQ$u#SQ%Y#pR'g&iR%^#qQ!rdQ!{f[$X!n!o!p$[$^$`Q${#Zh%[#q%]%a&m&r&w&y'i'q'r(U(aQ%`#vQ%z$cS&b${&dQ&h%WQ'b&cR'{'T]$Z!n!o!p$[$^$`Q!d`U!ye!r$gQ#RiQ#y!cS#|!d$PQ$R!eQ%d#}Q%e$OQ%i$SS&O$i&QQ&T$lR'n&uQ#{!cW%r$W%m&{'uQ&t%bQ'w'OQ(T'mR(c(YQ%u$WQ&z%mQ't&{R(X'uX%t$W%m&{'uR%k$SR%Z#pQpPR#o!RQ!zeQ$f!rR%}$g",
|
|
23572
|
+
nodeNames: "\u26A0 Unit VariableName VariableName QueryCallee Comment StyleSheet RuleSet UniversalSelector TagSelector TagName NamespacedTagSelector NamespaceName TagName NestingSelector ClassSelector . ClassName PseudoClassSelector : :: PseudoClassName PseudoClassName ) ( ArgList ValueName ParenthesizedValue AtKeyword # ; ] [ BracketedValue } { BracedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp CallExpression Callee IfExpression if ArgList IfBranch KeywordQuery FeatureQuery FeatureName BinaryQuery LogicOp ComparisonQuery CompareOp UnaryQuery UnaryQueryOp ParenthesizedQuery SelectorQuery selector ParenthesizedSelector StyleQuery style ParenthesedQuery CallQuery ArgList , UnaryQuery ParenthesedQuery BinaryQuery ParenthesedQuery ParenthesedQuery StyleFeature StyleRange PseudoQuery CallLiteral CallTag ParenthesizedContent PseudoClassName ArgList IdSelector IdName AttributeSelector AttributeName NamespacedAttribute NamespaceName AttributeName MatchOp MatchFlag ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp Block Declaration PropertyName Important ImportStatement import Layer layer LayerName layer MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList KeyframeSelector KeyframeRangeName SupportsStatement supports ScopeStatement scope to FontFeatureStatement font-feature-values FontName AtRule Styles",
|
|
23573
|
+
maxTerm: 172,
|
|
23537
23574
|
nodeProps: [
|
|
23538
23575
|
["isolate", -2, 5, 39, ""],
|
|
23539
23576
|
["openedBy", 23, "(", 31, "[", 34, "{"],
|
|
23540
23577
|
["closedBy", 24, ")", 32, "]", 35, "}"]
|
|
23541
23578
|
],
|
|
23542
23579
|
propSources: [cssHighlighting],
|
|
23543
|
-
skippedNodes: [0, 5,
|
|
23580
|
+
skippedNodes: [0, 5, 127],
|
|
23544
23581
|
repeatNodeCount: 17,
|
|
23545
|
-
tokenData: "K`~R!bOX%ZX^&R^p%Zpq&Rqr)ers)vst+jtu2Xuv%Zvw3Rwx3dxy5Ryz5dz{5i{|6S|}:u}!O;W!O!P;u!P!Q<^!Q![=V![!]>Q!]!^>|!^!_?_!_!`@Z!`!a@n!a!b%Z!b!cAo!c!k%Z!k!lC|!l!u%Z!u!vC|!v!}%Z!}#OD_#O#P%Z#P#QDp#Q#R2X#R#]%Z#]#^ER#^#g%Z#g#hC|#h#o%Z#o#pIf#p#qIw#q#rJ`#r#sJq#s#y%Z#y#z&R#z$f%Z$f$g&R$g#BY%Z#BY#BZ&R#BZ$IS%Z$IS$I_&R$I_$I|%Z$I|$JO&R$JO$JT%Z$JT$JU&R$JU$KV%Z$KV$KW&R$KW&FU%Z&FU&FV&R&FV;'S%Z;'S;=`KY<%lO%Z`%^SOy%jz;'S%j;'S;=`%{<%lO%j`%oS!
|
|
23546
|
-
tokenizers: [descendant, unitToken, identifiers, queryIdentifiers, 1, 2, 3, 4, new LocalTokenGroup("m~RRYZ[z{a~~g~aO$
|
|
23547
|
-
topRules: { "StyleSheet": [0, 6], "Styles": [1,
|
|
23548
|
-
dynamicPrecedences: { "
|
|
23549
|
-
specialized: [{ term:
|
|
23550
|
-
tokenPrec:
|
|
23582
|
+
tokenData: "K`~R!bOX%ZX^&R^p%Zpq&Rqr)ers)vst+jtu2Xuv%Zvw3Rwx3dxy5Ryz5dz{5i{|6S|}:u}!O;W!O!P;u!P!Q<^!Q![=V![!]>Q!]!^>|!^!_?_!_!`@Z!`!a@n!a!b%Z!b!cAo!c!k%Z!k!lC|!l!u%Z!u!vC|!v!}%Z!}#OD_#O#P%Z#P#QDp#Q#R2X#R#]%Z#]#^ER#^#g%Z#g#hC|#h#o%Z#o#pIf#p#qIw#q#rJ`#r#sJq#s#y%Z#y#z&R#z$f%Z$f$g&R$g#BY%Z#BY#BZ&R#BZ$IS%Z$IS$I_&R$I_$I|%Z$I|$JO&R$JO$JT%Z$JT$JU&R$JU$KV%Z$KV$KW&R$KW&FU%Z&FU&FV&R&FV;'S%Z;'S;=`KY<%lO%Z`%^SOy%jz;'S%j;'S;=`%{<%lO%j`%oS!o`Oy%jz;'S%j;'S;=`%{<%lO%j`&OP;=`<%l%j~&Wh$[~OX%jX^'r^p%jpq'rqy%jz#y%j#y#z'r#z$f%j$f$g'r$g#BY%j#BY#BZ'r#BZ$IS%j$IS$I_'r$I_$I|%j$I|$JO'r$JO$JT%j$JT$JU'r$JU$KV%j$KV$KW'r$KW&FU%j&FU&FV'r&FV;'S%j;'S;=`%{<%lO%j~'yh$[~!o`OX%jX^'r^p%jpq'rqy%jz#y%j#y#z'r#z$f%j$f$g'r$g#BY%j#BY#BZ'r#BZ$IS%j$IS$I_'r$I_$I|%j$I|$JO'r$JO$JT%j$JT$JU'r$JU$KV%j$KV$KW'r$KW&FU%j&FU&FV'r&FV;'S%j;'S;=`%{<%lO%jj)jS$qYOy%jz;'S%j;'S;=`%{<%lO%j~)yWOY)vZr)vrs*cs#O)v#O#P*h#P;'S)v;'S;=`+d<%lO)v~*hOw~~*kRO;'S)v;'S;=`*t;=`O)v~*wXOY)vZr)vrs*cs#O)v#O#P*h#P;'S)v;'S;=`+d;=`<%l)v<%lO)v~+gP;=`<%l)vj+oYmYOy%jz!Q%j!Q![,_![!c%j!c!i,_!i#T%j#T#Z,_#Z;'S%j;'S;=`%{<%lO%jj,dY!o`Oy%jz!Q%j!Q![-S![!c%j!c!i-S!i#T%j#T#Z-S#Z;'S%j;'S;=`%{<%lO%jj-XY!o`Oy%jz!Q%j!Q![-w![!c%j!c!i-w!i#T%j#T#Z-w#Z;'S%j;'S;=`%{<%lO%jj.OYuY!o`Oy%jz!Q%j!Q![.n![!c%j!c!i.n!i#T%j#T#Z.n#Z;'S%j;'S;=`%{<%lO%jj.uYuY!o`Oy%jz!Q%j!Q![/e![!c%j!c!i/e!i#T%j#T#Z/e#Z;'S%j;'S;=`%{<%lO%jj/jY!o`Oy%jz!Q%j!Q![0Y![!c%j!c!i0Y!i#T%j#T#Z0Y#Z;'S%j;'S;=`%{<%lO%jj0aYuY!o`Oy%jz!Q%j!Q![1P![!c%j!c!i1P!i#T%j#T#Z1P#Z;'S%j;'S;=`%{<%lO%jj1UY!o`Oy%jz!Q%j!Q![1t![!c%j!c!i1t!i#T%j#T#Z1t#Z;'S%j;'S;=`%{<%lO%jj1{SuY!o`Oy%jz;'S%j;'S;=`%{<%lO%jd2[UOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jd2uS!yS!o`Oy%jz;'S%j;'S;=`%{<%lO%jb3WS^QOy%jz;'S%j;'S;=`%{<%lO%j~3gWOY3dZw3dwx*cx#O3d#O#P4P#P;'S3d;'S;=`4{<%lO3d~4SRO;'S3d;'S;=`4];=`O3d~4`XOY3dZw3dwx*cx#O3d#O#P4P#P;'S3d;'S;=`4{;=`<%l3d<%lO3d~5OP;=`<%l3dj5WShYOy%jz;'S%j;'S;=`%{<%lO%j~5iOg~n5pUWQyWOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jj6ZWyW#PQOy%jz!O%j!O!P6s!P!Q%j!Q![9x![;'S%j;'S;=`%{<%lO%jj6xU!o`Oy%jz!Q%j!Q![7[![;'S%j;'S;=`%{<%lO%jj7cY!o`$gYOy%jz!Q%j!Q![7[![!g%j!g!h8R!h#X%j#X#Y8R#Y;'S%j;'S;=`%{<%lO%jj8WY!o`Oy%jz{%j{|8v|}%j}!O8v!O!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj8{U!o`Oy%jz!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj9fU!o`$gYOy%jz!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj:P[!o`$gYOy%jz!O%j!O!P7[!P!Q%j!Q![9x![!g%j!g!h8R!h#X%j#X#Y8R#Y;'S%j;'S;=`%{<%lO%jj:zS!dYOy%jz;'S%j;'S;=`%{<%lO%jj;]WyWOy%jz!O%j!O!P6s!P!Q%j!Q![9x![;'S%j;'S;=`%{<%lO%jj;zU`YOy%jz!Q%j!Q![7[![;'S%j;'S;=`%{<%lO%j~<cTyWOy%jz{<r{;'S%j;'S;=`%{<%lO%j~<yS!o`$]~Oy%jz;'S%j;'S;=`%{<%lO%jj=[[$gYOy%jz!O%j!O!P7[!P!Q%j!Q![9x![!g%j!g!h8R!h#X%j#X#Y8R#Y;'S%j;'S;=`%{<%lO%jj>VUcYOy%jz![%j![!]>i!];'S%j;'S;=`%{<%lO%jj>pSdY!o`Oy%jz;'S%j;'S;=`%{<%lO%jj?RSnYOy%jz;'S%j;'S;=`%{<%lO%jh?dU!WWOy%jz!_%j!_!`?v!`;'S%j;'S;=`%{<%lO%jh?}S!WW!o`Oy%jz;'S%j;'S;=`%{<%lO%jl@bS!WW!ySOy%jz;'S%j;'S;=`%{<%lO%jj@uV!|Q!WWOy%jz!_%j!_!`?v!`!aA[!a;'S%j;'S;=`%{<%lO%jbAcS!|Q!o`Oy%jz;'S%j;'S;=`%{<%lO%jjArYOy%jz}%j}!OBb!O!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jjBgW!o`Oy%jz!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jjCW[lY!o`Oy%jz}%j}!OCP!O!Q%j!Q![CP![!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jhDRS!zWOy%jz;'S%j;'S;=`%{<%lO%jjDdSpYOy%jz;'S%j;'S;=`%{<%lO%jnDuSo^Oy%jz;'S%j;'S;=`%{<%lO%jjEWU!zWOy%jz#a%j#a#bEj#b;'S%j;'S;=`%{<%lO%jbEoU!o`Oy%jz#d%j#d#eFR#e;'S%j;'S;=`%{<%lO%jbFWU!o`Oy%jz#c%j#c#dFj#d;'S%j;'S;=`%{<%lO%jbFoU!o`Oy%jz#f%j#f#gGR#g;'S%j;'S;=`%{<%lO%jbGWU!o`Oy%jz#h%j#h#iGj#i;'S%j;'S;=`%{<%lO%jbGoU!o`Oy%jz#T%j#T#UHR#U;'S%j;'S;=`%{<%lO%jbHWU!o`Oy%jz#b%j#b#cHj#c;'S%j;'S;=`%{<%lO%jbHoU!o`Oy%jz#h%j#h#iIR#i;'S%j;'S;=`%{<%lO%jbIYS$pQ!o`Oy%jz;'S%j;'S;=`%{<%lO%jjIkSsYOy%jz;'S%j;'S;=`%{<%lO%jfI|U$cUOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jjJeSrYOy%jz;'S%j;'S;=`%{<%lO%jfJvU#PQOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%j`K]P;=`<%l%Z",
|
|
23583
|
+
tokenizers: [descendant, unitToken, identifiers, queryIdentifiers, 1, 2, 3, 4, new LocalTokenGroup("m~RRYZ[z{a~~g~aO$_~~dP!P!Qg~lO$`~~", 28, 152)],
|
|
23584
|
+
topRules: { "StyleSheet": [0, 6], "Styles": [1, 126] },
|
|
23585
|
+
dynamicPrecedences: { "94": 1 },
|
|
23586
|
+
specialized: [{ term: 147, get: (value) => spec_callee[value] || -1 }, { term: 148, get: (value) => spec_queryIdentifier[value] || -1 }, { term: 4, get: (value) => spec_QueryCallee[value] || -1 }, { term: 28, get: (value) => spec_AtKeyword[value] || -1 }, { term: 146, get: (value) => spec_identifier[value] || -1 }],
|
|
23587
|
+
tokenPrec: 2405
|
|
23551
23588
|
});
|
|
23552
23589
|
|
|
23553
23590
|
// ../../node_modules/@codemirror/lang-css/dist/index.js
|
|
@@ -26409,7 +26446,7 @@ function CodeMirrorRenderer({
|
|
|
26409
26446
|
segmentsByIdRef.current = segmentsById;
|
|
26410
26447
|
sessionRef.current = session;
|
|
26411
26448
|
getTargetResourceNameRef.current = getTargetResourceName;
|
|
26412
|
-
|
|
26449
|
+
useEffect18(() => {
|
|
26413
26450
|
if (!containerRef.current || viewRef.current) return;
|
|
26414
26451
|
const annotationDecorationsField = createAnnotationDecorationsField();
|
|
26415
26452
|
const state = EditorState.create({
|
|
@@ -26544,7 +26581,7 @@ function CodeMirrorRenderer({
|
|
|
26544
26581
|
viewRef.current = null;
|
|
26545
26582
|
};
|
|
26546
26583
|
}, [hoverDelayMs]);
|
|
26547
|
-
|
|
26584
|
+
useEffect18(() => {
|
|
26548
26585
|
if (!viewRef.current) return;
|
|
26549
26586
|
const currentContent = viewRef.current.state.doc.toString();
|
|
26550
26587
|
if (content2 === currentContent) return;
|
|
@@ -26560,19 +26597,19 @@ function CodeMirrorRenderer({
|
|
|
26560
26597
|
});
|
|
26561
26598
|
contentRef.current = content2;
|
|
26562
26599
|
}, [content2]);
|
|
26563
|
-
|
|
26600
|
+
useEffect18(() => {
|
|
26564
26601
|
if (!viewRef.current) return;
|
|
26565
26602
|
viewRef.current.dispatch({
|
|
26566
26603
|
effects: lineNumbersCompartment.current.reconfigure(showLineNumbers ? lineNumbers() : [])
|
|
26567
26604
|
});
|
|
26568
26605
|
}, [showLineNumbers]);
|
|
26569
|
-
|
|
26606
|
+
useEffect18(() => {
|
|
26570
26607
|
if (!viewRef.current) return;
|
|
26571
26608
|
viewRef.current.dispatch({
|
|
26572
26609
|
effects: updateAnnotationsEffect.of({ segments: convertedSegments, ...newAnnotationIds && { newAnnotationIds } })
|
|
26573
26610
|
});
|
|
26574
26611
|
}, [convertedSegments, newAnnotationIds]);
|
|
26575
|
-
|
|
26612
|
+
useEffect18(() => {
|
|
26576
26613
|
if (!viewRef.current || !enableWidgets) return;
|
|
26577
26614
|
viewRef.current.dispatch({
|
|
26578
26615
|
effects: updateWidgetsEffect.of({
|
|
@@ -26583,7 +26620,7 @@ function CodeMirrorRenderer({
|
|
|
26583
26620
|
})
|
|
26584
26621
|
});
|
|
26585
26622
|
}, [content2, convertedSegments, enableWidgets, generatingReferenceId]);
|
|
26586
|
-
|
|
26623
|
+
useEffect18(() => {
|
|
26587
26624
|
if (!viewRef.current || !hoveredAnnotationId) return void 0;
|
|
26588
26625
|
const view = viewRef.current;
|
|
26589
26626
|
const element = view.contentDOM.querySelector(
|
|
@@ -26611,7 +26648,7 @@ function CodeMirrorRenderer({
|
|
|
26611
26648
|
element.classList.remove("annotation-pulse");
|
|
26612
26649
|
};
|
|
26613
26650
|
}, [hoveredAnnotationId]);
|
|
26614
|
-
|
|
26651
|
+
useEffect18(() => {
|
|
26615
26652
|
if (!viewRef.current || !scrollToAnnotationId) return;
|
|
26616
26653
|
scrollAnnotationIntoView(scrollToAnnotationId, viewRef.current.contentDOM);
|
|
26617
26654
|
}, [scrollToAnnotationId]);
|
|
@@ -26850,7 +26887,7 @@ function ProtectedErrorFallback({ error, resetErrorBoundary }) {
|
|
|
26850
26887
|
}
|
|
26851
26888
|
|
|
26852
26889
|
// src/components/ResizeHandle.tsx
|
|
26853
|
-
import { useRef as useRef10, useCallback as useCallback14, useEffect as
|
|
26890
|
+
import { useRef as useRef10, useCallback as useCallback14, useEffect as useEffect19, useState as useState19 } from "react";
|
|
26854
26891
|
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
26855
26892
|
function ResizeHandle({
|
|
26856
26893
|
onResize,
|
|
@@ -26859,11 +26896,11 @@ function ResizeHandle({
|
|
|
26859
26896
|
position = "left",
|
|
26860
26897
|
ariaLabel = "Resize panel"
|
|
26861
26898
|
}) {
|
|
26862
|
-
const [isDragging, setIsDragging] =
|
|
26899
|
+
const [isDragging, setIsDragging] = useState19(false);
|
|
26863
26900
|
const startXRef = useRef10(0);
|
|
26864
26901
|
const startWidthRef = useRef10(0);
|
|
26865
26902
|
const onResizeRef = useRef10(onResize);
|
|
26866
|
-
|
|
26903
|
+
useEffect19(() => {
|
|
26867
26904
|
onResizeRef.current = onResize;
|
|
26868
26905
|
});
|
|
26869
26906
|
const handleMouseDown = useCallback14((e6) => {
|
|
@@ -26914,7 +26951,7 @@ function ResizeHandle({
|
|
|
26914
26951
|
onResizeRef.current(constrainedWidth);
|
|
26915
26952
|
}
|
|
26916
26953
|
}, [minWidth, maxWidth, position]);
|
|
26917
|
-
|
|
26954
|
+
useEffect19(() => {
|
|
26918
26955
|
if (isDragging) {
|
|
26919
26956
|
document.addEventListener("mousemove", handleMouseMove);
|
|
26920
26957
|
document.addEventListener("mouseup", handleMouseUp);
|
|
@@ -26945,7 +26982,7 @@ function ResizeHandle({
|
|
|
26945
26982
|
}
|
|
26946
26983
|
|
|
26947
26984
|
// src/components/ResourceTagsInline.tsx
|
|
26948
|
-
import { useState as
|
|
26985
|
+
import { useState as useState20 } from "react";
|
|
26949
26986
|
import { jsx as jsx11, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
26950
26987
|
function ResourceTagsInline({
|
|
26951
26988
|
tags: tags3,
|
|
@@ -26954,8 +26991,8 @@ function ResourceTagsInline({
|
|
|
26954
26991
|
disabled = false,
|
|
26955
26992
|
vocabulary
|
|
26956
26993
|
}) {
|
|
26957
|
-
const [busy, setBusy] =
|
|
26958
|
-
const [picking, setPicking] =
|
|
26994
|
+
const [busy, setBusy] = useState20(false);
|
|
26995
|
+
const [picking, setPicking] = useState20(false);
|
|
26959
26996
|
if (!isEditing) {
|
|
26960
26997
|
if (tags3.length === 0) {
|
|
26961
26998
|
return null;
|
|
@@ -27140,7 +27177,7 @@ function Toolbar({
|
|
|
27140
27177
|
}
|
|
27141
27178
|
|
|
27142
27179
|
// src/components/settings/SettingsPanel.tsx
|
|
27143
|
-
import React5, { useEffect as
|
|
27180
|
+
import React5, { useEffect as useEffect20 } from "react";
|
|
27144
27181
|
import { LOCALES } from "@semiont/core";
|
|
27145
27182
|
import { jsx as jsx13, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
27146
27183
|
function SettingsPanel({
|
|
@@ -27159,7 +27196,7 @@ function SettingsPanel({
|
|
|
27159
27196
|
announceLanguageChanging(localeName);
|
|
27160
27197
|
semiont.emit("settings:locale-changed", { locale: newLocale });
|
|
27161
27198
|
};
|
|
27162
|
-
|
|
27199
|
+
useEffect20(() => {
|
|
27163
27200
|
if (locale !== previousLocale && !isPendingLocaleChange) {
|
|
27164
27201
|
const localeName = LOCALES.find((l10) => l10.code === locale)?.nativeName || locale;
|
|
27165
27202
|
announceLanguageChanged(localeName);
|
|
@@ -27278,7 +27315,7 @@ function SettingsPanel({
|
|
|
27278
27315
|
}
|
|
27279
27316
|
|
|
27280
27317
|
// src/components/annotation/AnnotateToolbar.tsx
|
|
27281
|
-
import React6, { useState as
|
|
27318
|
+
import React6, { useState as useState21, useRef as useRef11, useEffect as useEffect21 } from "react";
|
|
27282
27319
|
import { Fragment as Fragment2, jsx as jsx14, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
27283
27320
|
function DropdownGroup({
|
|
27284
27321
|
label,
|
|
@@ -27355,14 +27392,14 @@ function AnnotateToolbar({
|
|
|
27355
27392
|
const annotator = Object.values(annotators).find((a15) => a15.motivation === motivation);
|
|
27356
27393
|
return annotator?.iconEmoji || "\u2753";
|
|
27357
27394
|
};
|
|
27358
|
-
const [modeHovered, setModeHovered] =
|
|
27359
|
-
const [modePinned, setModePinned] =
|
|
27360
|
-
const [clickHovered, setClickHovered] =
|
|
27361
|
-
const [clickPinned, setClickPinned] =
|
|
27362
|
-
const [selectionHovered, setSelectionHovered] =
|
|
27363
|
-
const [selectionPinned, setSelectionPinned] =
|
|
27364
|
-
const [shapeHovered, setShapeHovered] =
|
|
27365
|
-
const [shapePinned, setShapePinned] =
|
|
27395
|
+
const [modeHovered, setModeHovered] = useState21(false);
|
|
27396
|
+
const [modePinned, setModePinned] = useState21(false);
|
|
27397
|
+
const [clickHovered, setClickHovered] = useState21(false);
|
|
27398
|
+
const [clickPinned, setClickPinned] = useState21(false);
|
|
27399
|
+
const [selectionHovered, setSelectionHovered] = useState21(false);
|
|
27400
|
+
const [selectionPinned, setSelectionPinned] = useState21(false);
|
|
27401
|
+
const [shapeHovered, setShapeHovered] = useState21(false);
|
|
27402
|
+
const [shapePinned, setShapePinned] = useState21(false);
|
|
27366
27403
|
const modeRef = useRef11(null);
|
|
27367
27404
|
const clickRef = useRef11(null);
|
|
27368
27405
|
const selectionRef = useRef11(null);
|
|
@@ -27371,7 +27408,7 @@ function AnnotateToolbar({
|
|
|
27371
27408
|
const clickExpanded = clickHovered || clickPinned;
|
|
27372
27409
|
const selectionExpanded = selectionHovered || selectionPinned;
|
|
27373
27410
|
const shapeExpanded = shapeHovered || shapePinned;
|
|
27374
|
-
|
|
27411
|
+
useEffect21(() => {
|
|
27375
27412
|
const handleClickOutside = (event) => {
|
|
27376
27413
|
if (modePinned && modeRef.current && !modeRef.current.contains(event.target)) {
|
|
27377
27414
|
setModePinned(false);
|
|
@@ -27389,7 +27426,7 @@ function AnnotateToolbar({
|
|
|
27389
27426
|
document.addEventListener("mousedown", handleClickOutside);
|
|
27390
27427
|
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
27391
27428
|
}, [modePinned, clickPinned, selectionPinned, shapePinned]);
|
|
27392
|
-
|
|
27429
|
+
useEffect21(() => {
|
|
27393
27430
|
const handleEscape = (event) => {
|
|
27394
27431
|
if (event.key === "Escape") {
|
|
27395
27432
|
setModePinned(false);
|
|
@@ -27569,7 +27606,7 @@ function AnnotateToolbar({
|
|
|
27569
27606
|
}
|
|
27570
27607
|
|
|
27571
27608
|
// src/components/annotation-popups/JsonLdView.tsx
|
|
27572
|
-
import { useEffect as
|
|
27609
|
+
import { useEffect as useEffect22, useRef as useRef12 } from "react";
|
|
27573
27610
|
|
|
27574
27611
|
// ../../node_modules/@lezer/json/dist/index.js
|
|
27575
27612
|
var jsonHighlighting = styleTags({
|
|
@@ -27777,10 +27814,10 @@ function JsonLdView({ annotation, onBack }) {
|
|
|
27777
27814
|
const viewRef = useRef12(null);
|
|
27778
27815
|
const { showLineNumbers } = useLineNumbers();
|
|
27779
27816
|
const onBackRef = useRef12(onBack);
|
|
27780
|
-
|
|
27817
|
+
useEffect22(() => {
|
|
27781
27818
|
onBackRef.current = onBack;
|
|
27782
27819
|
});
|
|
27783
|
-
|
|
27820
|
+
useEffect22(() => {
|
|
27784
27821
|
const handleKeyDown = (e6) => {
|
|
27785
27822
|
if (e6.key === "Escape") {
|
|
27786
27823
|
onBackRef.current();
|
|
@@ -27789,7 +27826,7 @@ function JsonLdView({ annotation, onBack }) {
|
|
|
27789
27826
|
window.addEventListener("keydown", handleKeyDown);
|
|
27790
27827
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
27791
27828
|
}, []);
|
|
27792
|
-
|
|
27829
|
+
useEffect22(() => {
|
|
27793
27830
|
if (!editorRef.current) return;
|
|
27794
27831
|
const isDarkMode = document.documentElement.classList.contains("dark");
|
|
27795
27832
|
const jsonContent = JSON.stringify(annotation, null, 2);
|
|
@@ -29445,7 +29482,7 @@ function PopupContainer({ children, position, onClose, isOpen, wide = false }) {
|
|
|
29445
29482
|
}
|
|
29446
29483
|
|
|
29447
29484
|
// src/components/image-annotation/AnnotationOverlay.tsx
|
|
29448
|
-
import { useMemo as
|
|
29485
|
+
import { useMemo as useMemo6 } from "react";
|
|
29449
29486
|
import { getSvgSelector, isHighlight as isHighlight4, isReference as isReference5, isAssessment as isAssessment3, isComment as isComment4, isTag as isTag4, isBodyResolved, isResolvedReference as isResolvedReference3 } from "@semiont/core";
|
|
29450
29487
|
import { createHoverHandlers as createHoverHandlers2 } from "@semiont/sdk";
|
|
29451
29488
|
import { parseSvgSelector } from "@semiont/core";
|
|
@@ -29493,7 +29530,7 @@ function AnnotationOverlay({
|
|
|
29493
29530
|
}) {
|
|
29494
29531
|
const scaleX = displayWidth / imageWidth;
|
|
29495
29532
|
const scaleY = displayHeight / imageHeight;
|
|
29496
|
-
const { handleMouseEnter, handleMouseLeave } =
|
|
29533
|
+
const { handleMouseEnter, handleMouseLeave } = useMemo6(
|
|
29497
29534
|
() => createHoverHandlers2((id2) => session?.client.beckon.hover(id2), hoverDelayMs),
|
|
29498
29535
|
[session, hoverDelayMs]
|
|
29499
29536
|
);
|
|
@@ -29662,7 +29699,7 @@ function AnnotationOverlay({
|
|
|
29662
29699
|
}
|
|
29663
29700
|
|
|
29664
29701
|
// src/components/image-annotation/SvgDrawingCanvas.tsx
|
|
29665
|
-
import { useRef as useRef13, useState as
|
|
29702
|
+
import { useRef as useRef13, useState as useState23, useEffect as useEffect24, useCallback as useCallback15 } from "react";
|
|
29666
29703
|
import { createRectangleSvg, createCircleSvg, createPolygonSvg, scaleSvgToNative, parseSvgSelector as parseSvgSelector2, resourceId as toResourceId3 } from "@semiont/core";
|
|
29667
29704
|
import { jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
29668
29705
|
function getMotivationColor(motivation) {
|
|
@@ -29699,12 +29736,12 @@ function SvgDrawingCanvas({
|
|
|
29699
29736
|
const { hoverDelayMs } = useHoverDelay();
|
|
29700
29737
|
const containerRef = useRef13(null);
|
|
29701
29738
|
const imageRef = useRef13(null);
|
|
29702
|
-
const [imageDimensions, setImageDimensions] =
|
|
29703
|
-
const [displayDimensions, setDisplayDimensions] =
|
|
29704
|
-
const [isDrawing, setIsDrawing] =
|
|
29705
|
-
const [startPoint, setStartPoint] =
|
|
29706
|
-
const [currentPoint, setCurrentPoint] =
|
|
29707
|
-
|
|
29739
|
+
const [imageDimensions, setImageDimensions] = useState23(null);
|
|
29740
|
+
const [displayDimensions, setDisplayDimensions] = useState23(null);
|
|
29741
|
+
const [isDrawing, setIsDrawing] = useState23(false);
|
|
29742
|
+
const [startPoint, setStartPoint] = useState23(null);
|
|
29743
|
+
const [currentPoint, setCurrentPoint] = useState23(null);
|
|
29744
|
+
useEffect24(() => {
|
|
29708
29745
|
const img = new Image();
|
|
29709
29746
|
img.onload = () => {
|
|
29710
29747
|
setImageDimensions({
|
|
@@ -29714,7 +29751,7 @@ function SvgDrawingCanvas({
|
|
|
29714
29751
|
};
|
|
29715
29752
|
img.src = imageUrl;
|
|
29716
29753
|
}, [imageUrl]);
|
|
29717
|
-
|
|
29754
|
+
useEffect24(() => {
|
|
29718
29755
|
const updateDisplayDimensions = () => {
|
|
29719
29756
|
if (imageRef.current) {
|
|
29720
29757
|
setDisplayDimensions({
|
|
@@ -30331,7 +30368,7 @@ function SessionExpiredModal() {
|
|
|
30331
30368
|
}
|
|
30332
30369
|
|
|
30333
30370
|
// src/components/resource/AnnotateView.tsx
|
|
30334
|
-
import { useRef as useRef14, useEffect as
|
|
30371
|
+
import { useRef as useRef14, useEffect as useEffect25, useCallback as useCallback16, lazy, Suspense } from "react";
|
|
30335
30372
|
import { capabilitiesOf as capabilitiesOf3, resourceId as toResourceId4 } from "@semiont/core";
|
|
30336
30373
|
|
|
30337
30374
|
// src/lib/text-segmentation.ts
|
|
@@ -30484,7 +30521,7 @@ function AnnotateView({
|
|
|
30484
30521
|
useSessionEventSubscriptions(session, {
|
|
30485
30522
|
"beckon:hover": handleAnnotationHover
|
|
30486
30523
|
});
|
|
30487
|
-
|
|
30524
|
+
useEffect25(() => {
|
|
30488
30525
|
const container = containerRef.current;
|
|
30489
30526
|
if (!container) return;
|
|
30490
30527
|
let clickedOnAnnotation = false;
|
|
@@ -30658,11 +30695,11 @@ function AnnotateView({
|
|
|
30658
30695
|
}
|
|
30659
30696
|
|
|
30660
30697
|
// src/components/resource/AnnotationHistory.tsx
|
|
30661
|
-
import { useEffect as
|
|
30698
|
+
import { useEffect as useEffect27, useRef as useRef16 } from "react";
|
|
30662
30699
|
import { getAnnotationUriFromEvent as getAnnotationUriFromEvent2 } from "@semiont/core";
|
|
30663
30700
|
|
|
30664
30701
|
// src/components/resource/HistoryEvent.tsx
|
|
30665
|
-
import { useRef as useRef15, useCallback as useCallback17, useEffect as
|
|
30702
|
+
import { useRef as useRef15, useCallback as useCallback17, useEffect as useEffect26 } from "react";
|
|
30666
30703
|
import { getAnnotationUriFromEvent } from "@semiont/core";
|
|
30667
30704
|
|
|
30668
30705
|
// src/components/resource/event-formatting.ts
|
|
@@ -30918,7 +30955,7 @@ function HistoryEvent({
|
|
|
30918
30955
|
const entityTypes = getEventEntityTypes(event);
|
|
30919
30956
|
const hoverTimeoutRef = useRef15(null);
|
|
30920
30957
|
const onEventHoverRef = useRef15(onEventHover);
|
|
30921
|
-
|
|
30958
|
+
useEffect26(() => {
|
|
30922
30959
|
onEventHoverRef.current = onEventHover;
|
|
30923
30960
|
});
|
|
30924
30961
|
const handleEmojiMouseEnter = useCallback17(() => {
|
|
@@ -31024,7 +31061,7 @@ function AnnotationHistory({ rUri, hoveredAnnotationId, onEventHover, onEventCli
|
|
|
31024
31061
|
const events2 = !eventsData ? [] : eventsData.filter((e6) => {
|
|
31025
31062
|
return e6.type !== "job:started" && e6.type !== "job:progress" && e6.type !== "job:completed";
|
|
31026
31063
|
}).sort((a15, b8) => a15.metadata.sequenceNumber - b8.metadata.sequenceNumber);
|
|
31027
|
-
|
|
31064
|
+
useEffect27(() => {
|
|
31028
31065
|
if (containerRef.current && events2.length > 0) {
|
|
31029
31066
|
requestAnimationFrame(() => {
|
|
31030
31067
|
if (containerRef.current) {
|
|
@@ -31033,7 +31070,7 @@ function AnnotationHistory({ rUri, hoveredAnnotationId, onEventHover, onEventCli
|
|
|
31033
31070
|
});
|
|
31034
31071
|
}
|
|
31035
31072
|
}, [events2.length]);
|
|
31036
|
-
|
|
31073
|
+
useEffect27(() => {
|
|
31037
31074
|
if (!hoveredAnnotationId) return;
|
|
31038
31075
|
const eventElement = eventRefs.current.get(hoveredAnnotationId);
|
|
31039
31076
|
if (eventElement && containerRef.current) {
|
|
@@ -31091,7 +31128,7 @@ function AnnotationHistory({ rUri, hoveredAnnotationId, onEventHover, onEventCli
|
|
|
31091
31128
|
}
|
|
31092
31129
|
|
|
31093
31130
|
// src/components/resource/BrowseView.tsx
|
|
31094
|
-
import { useEffect as
|
|
31131
|
+
import { useEffect as useEffect28, useRef as useRef17, useCallback as useCallback18, useMemo as useMemo7, memo as memo2 } from "react";
|
|
31095
31132
|
import { annotationId as toAnnotationId3, resourceId as toResourceId5 } from "@semiont/core";
|
|
31096
31133
|
import { capabilitiesOf as capabilitiesOf4, getBodySource as getBodySource4, isResolvedReference as isResolvedReference4 } from "@semiont/core";
|
|
31097
31134
|
import { createHoverHandlers as createHoverHandlers3 } from "@semiont/sdk";
|
|
@@ -31164,15 +31201,15 @@ var BrowseView = memo2(function BrowseView2({
|
|
|
31164
31201
|
const inlineMod = inline ? " semiont-browse-view--inline" : "";
|
|
31165
31202
|
const render = capabilitiesOf4(mimeType)?.render ?? "none";
|
|
31166
31203
|
const { highlights, references, assessments, comments, tags: tags3 } = annotations;
|
|
31167
|
-
const allAnnotations =
|
|
31204
|
+
const allAnnotations = useMemo7(
|
|
31168
31205
|
() => [...highlights, ...references, ...assessments, ...comments, ...tags3],
|
|
31169
31206
|
[highlights, references, assessments, comments, tags3]
|
|
31170
31207
|
);
|
|
31171
|
-
const overlayAnnotations =
|
|
31208
|
+
const overlayAnnotations = useMemo7(
|
|
31172
31209
|
() => toOverlayAnnotations(allAnnotations),
|
|
31173
31210
|
[allAnnotations]
|
|
31174
31211
|
);
|
|
31175
|
-
|
|
31212
|
+
useEffect28(() => {
|
|
31176
31213
|
if (!containerRef.current || overlayAnnotations.length === 0) return;
|
|
31177
31214
|
const container = containerRef.current;
|
|
31178
31215
|
const offsetMap = buildSourceToRenderedMap(content2, container);
|
|
@@ -31181,7 +31218,7 @@ var BrowseView = memo2(function BrowseView2({
|
|
|
31181
31218
|
applyHighlights(ranges);
|
|
31182
31219
|
return () => clearHighlights(container);
|
|
31183
31220
|
}, [content2, overlayAnnotations]);
|
|
31184
|
-
|
|
31221
|
+
useEffect28(() => {
|
|
31185
31222
|
if (!containerRef.current) return;
|
|
31186
31223
|
if (!session) return;
|
|
31187
31224
|
const container = containerRef.current;
|
|
@@ -31334,7 +31371,7 @@ var BrowseView = memo2(function BrowseView2({
|
|
|
31334
31371
|
});
|
|
31335
31372
|
|
|
31336
31373
|
// src/components/resource/ResourceViewer.tsx
|
|
31337
|
-
import { useState as
|
|
31374
|
+
import { useState as useState24, useCallback as useCallback19, useRef as useRef18, useMemo as useMemo8 } from "react";
|
|
31338
31375
|
import { getExactText as getExactText3, getTargetSelector as getTargetSelector4, isHighlight as isHighlight5, isAssessment as isAssessment4, isReference as isReference6, isComment as isComment5, isTag as isTag5, getBodySource as getBodySource5 } from "@semiont/core";
|
|
31339
31376
|
import { jsx as jsx27, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
31340
31377
|
function ResourceViewer({
|
|
@@ -31376,7 +31413,7 @@ function ResourceViewer({
|
|
|
31376
31413
|
return "text/plain";
|
|
31377
31414
|
};
|
|
31378
31415
|
const mimeType = getMimeType();
|
|
31379
|
-
const [internalAnnotateMode, setInternalAnnotateMode] =
|
|
31416
|
+
const [internalAnnotateMode, setInternalAnnotateMode] = useState24(false);
|
|
31380
31417
|
const annotateMode = annotateModeProp ?? internalAnnotateMode;
|
|
31381
31418
|
const changeAnnotateMode = useCallback19((mode) => {
|
|
31382
31419
|
if (annotateModeProp === void 0) setInternalAnnotateMode(mode);
|
|
@@ -31393,30 +31430,30 @@ function ResourceViewer({
|
|
|
31393
31430
|
const handleAnnotateBodyUpdated = useCallback19(() => {
|
|
31394
31431
|
semiont?.browse.invalidateAnnotationList(rUri);
|
|
31395
31432
|
}, [semiont, rUri]);
|
|
31396
|
-
const [internalSelectionMotivation, setInternalSelectionMotivation] =
|
|
31433
|
+
const [internalSelectionMotivation, setInternalSelectionMotivation] = useState24("linking");
|
|
31397
31434
|
const selectedMotivation = selectionMotivationProp !== void 0 ? selectionMotivationProp : internalSelectionMotivation;
|
|
31398
31435
|
const changeSelectionMotivation = useCallback19((motivation) => {
|
|
31399
31436
|
if (selectionMotivationProp === void 0) setInternalSelectionMotivation(motivation);
|
|
31400
31437
|
onSelectionMotivationChange?.(motivation);
|
|
31401
31438
|
}, [selectionMotivationProp, onSelectionMotivationChange]);
|
|
31402
|
-
const [internalClickAction, setInternalClickAction] =
|
|
31439
|
+
const [internalClickAction, setInternalClickAction] = useState24("detail");
|
|
31403
31440
|
const selectedClick = clickActionProp ?? internalClickAction;
|
|
31404
31441
|
const changeClickAction = useCallback19((action) => {
|
|
31405
31442
|
if (clickActionProp === void 0) setInternalClickAction(action);
|
|
31406
31443
|
onClickActionChange?.(action);
|
|
31407
31444
|
}, [clickActionProp, onClickActionChange]);
|
|
31408
|
-
const [internalShape, setInternalShape] =
|
|
31445
|
+
const [internalShape, setInternalShape] = useState24("rectangle");
|
|
31409
31446
|
const selectedShape = shapeProp ?? internalShape;
|
|
31410
31447
|
const changeShape = useCallback19((shape) => {
|
|
31411
31448
|
if (shapeProp === void 0) setInternalShape(shape);
|
|
31412
31449
|
onShapeChange?.(shape);
|
|
31413
31450
|
}, [shapeProp, onShapeChange]);
|
|
31414
|
-
const [showJsonLdView, setShowJsonLdView] =
|
|
31415
|
-
const [jsonLdAnnotation, setJsonLdAnnotation] =
|
|
31416
|
-
const [deleteConfirmation, setDeleteConfirmation] =
|
|
31451
|
+
const [showJsonLdView, setShowJsonLdView] = useState24(false);
|
|
31452
|
+
const [jsonLdAnnotation, setJsonLdAnnotation] = useState24(null);
|
|
31453
|
+
const [deleteConfirmation, setDeleteConfirmation] = useState24(null);
|
|
31417
31454
|
const hoveredAnnotationId = hoveredAnnotationIdProp ?? null;
|
|
31418
|
-
const [scrollToAnnotationId, setScrollToAnnotationId] =
|
|
31419
|
-
const [_focusedAnnotationId, setFocusedAnnotationId] =
|
|
31455
|
+
const [scrollToAnnotationId, setScrollToAnnotationId] = useState24(null);
|
|
31456
|
+
const [_focusedAnnotationId, setFocusedAnnotationId] = useState24(null);
|
|
31420
31457
|
const focusAnnotation = useCallback19((annotationId2) => {
|
|
31421
31458
|
setFocusedAnnotationId(annotationId2);
|
|
31422
31459
|
setScrollToAnnotationId(annotationId2);
|
|
@@ -31493,7 +31530,7 @@ function ResourceViewer({
|
|
|
31493
31530
|
// Annotation clicks
|
|
31494
31531
|
"browse:click": handleAnnotationClickEvent
|
|
31495
31532
|
});
|
|
31496
|
-
const annotationsCollection =
|
|
31533
|
+
const annotationsCollection = useMemo8(
|
|
31497
31534
|
() => ({ highlights, references, assessments, comments, tags: tags3 }),
|
|
31498
31535
|
[highlights, references, assessments, comments, tags3]
|
|
31499
31536
|
);
|
|
@@ -31713,11 +31750,11 @@ function AssessmentEntry({
|
|
|
31713
31750
|
}
|
|
31714
31751
|
|
|
31715
31752
|
// src/components/resource/panels/AssessmentPanel.tsx
|
|
31716
|
-
import { useState as
|
|
31753
|
+
import { useState as useState26, useEffect as useEffect30, useRef as useRef19, useCallback as useCallback21, useMemo as useMemo9 } from "react";
|
|
31717
31754
|
import { getTextPositionSelector as getTextPositionSelector3, getTargetSelector as getTargetSelector5 } from "@semiont/core";
|
|
31718
31755
|
|
|
31719
31756
|
// src/components/resource/panels/AssistSection.tsx
|
|
31720
|
-
import { useState as
|
|
31757
|
+
import { useState as useState25, useEffect as useEffect29, useCallback as useCallback20 } from "react";
|
|
31721
31758
|
import { Fragment as Fragment4, jsx as jsx29, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
31722
31759
|
function AssistSection({
|
|
31723
31760
|
session,
|
|
@@ -31729,17 +31766,17 @@ function AssistSection({
|
|
|
31729
31766
|
}) {
|
|
31730
31767
|
const panelName = annotationType === "highlight" ? "HighlightPanel" : annotationType === "assessment" ? "AssessmentPanel" : "CommentsPanel";
|
|
31731
31768
|
const t12 = useTranslations(panelName);
|
|
31732
|
-
const [instructions, setInstructions] =
|
|
31733
|
-
const [tone, setTone] =
|
|
31769
|
+
const [instructions, setInstructions] = useState25("");
|
|
31770
|
+
const [tone, setTone] = useState25("");
|
|
31734
31771
|
const defaultDensity = annotationType === "comment" ? 5 : annotationType === "assessment" ? 4 : annotationType === "highlight" ? 5 : 5;
|
|
31735
|
-
const [density, setDensity] =
|
|
31736
|
-
const [useDensity, setUseDensity] =
|
|
31737
|
-
const [isExpanded, setIsExpanded] =
|
|
31772
|
+
const [density, setDensity] = useState25(defaultDensity);
|
|
31773
|
+
const [useDensity, setUseDensity] = useState25(true);
|
|
31774
|
+
const [isExpanded, setIsExpanded] = useState25(() => {
|
|
31738
31775
|
if (typeof window === "undefined") return true;
|
|
31739
31776
|
const stored = localStorage.getItem(`assist-section-expanded-${annotationType}`);
|
|
31740
31777
|
return stored ? stored === "true" : true;
|
|
31741
31778
|
});
|
|
31742
|
-
|
|
31779
|
+
useEffect29(() => {
|
|
31743
31780
|
if (typeof window === "undefined") return;
|
|
31744
31781
|
localStorage.setItem(`assist-section-expanded-${annotationType}`, String(isExpanded));
|
|
31745
31782
|
}, [isExpanded, annotationType]);
|
|
@@ -31967,11 +32004,11 @@ function AssessmentPanel({
|
|
|
31967
32004
|
hoveredAnnotationId
|
|
31968
32005
|
}) {
|
|
31969
32006
|
const t12 = useTranslations("AssessmentPanel");
|
|
31970
|
-
const [newAssessmentText, setNewAssessmentText] =
|
|
31971
|
-
const [focusedAnnotationId, setFocusedAnnotationId] =
|
|
32007
|
+
const [newAssessmentText, setNewAssessmentText] = useState26("");
|
|
32008
|
+
const [focusedAnnotationId, setFocusedAnnotationId] = useState26(null);
|
|
31972
32009
|
const containerRef = useRef19(null);
|
|
31973
32010
|
const entryRefs = useRef19(/* @__PURE__ */ new Map());
|
|
31974
|
-
const sortedAnnotations =
|
|
32011
|
+
const sortedAnnotations = useMemo9(() => {
|
|
31975
32012
|
return [...annotations].sort((a15, b8) => {
|
|
31976
32013
|
const aSelector = getTextPositionSelector3(getTargetSelector5(a15.target));
|
|
31977
32014
|
const bSelector = getTextPositionSelector3(getTargetSelector5(b8.target));
|
|
@@ -31986,7 +32023,7 @@ function AssessmentPanel({
|
|
|
31986
32023
|
entryRefs.current.delete(id2);
|
|
31987
32024
|
}
|
|
31988
32025
|
}, []);
|
|
31989
|
-
|
|
32026
|
+
useEffect30(() => {
|
|
31990
32027
|
if (!scrollToAnnotationId) return;
|
|
31991
32028
|
const element = entryRefs.current.get(scrollToAnnotationId);
|
|
31992
32029
|
if (element && containerRef.current) {
|
|
@@ -32001,7 +32038,7 @@ function AssessmentPanel({
|
|
|
32001
32038
|
if (onScrollCompleted) onScrollCompleted();
|
|
32002
32039
|
}
|
|
32003
32040
|
}, [scrollToAnnotationId]);
|
|
32004
|
-
|
|
32041
|
+
useEffect30(() => {
|
|
32005
32042
|
if (!hoveredAnnotationId) return;
|
|
32006
32043
|
const element = entryRefs.current.get(hoveredAnnotationId);
|
|
32007
32044
|
if (!element || !containerRef.current) return;
|
|
@@ -32030,7 +32067,7 @@ function AssessmentPanel({
|
|
|
32030
32067
|
setNewAssessmentText("");
|
|
32031
32068
|
}
|
|
32032
32069
|
};
|
|
32033
|
-
|
|
32070
|
+
useEffect30(() => {
|
|
32034
32071
|
if (!pendingAnnotation) return;
|
|
32035
32072
|
const handleEscape = (e6) => {
|
|
32036
32073
|
if (e6.key === "Escape") {
|
|
@@ -32209,7 +32246,7 @@ function CollaborationPanel({
|
|
|
32209
32246
|
}
|
|
32210
32247
|
|
|
32211
32248
|
// src/components/resource/panels/CommentEntry.tsx
|
|
32212
|
-
import { useState as
|
|
32249
|
+
import { useState as useState27, useEffect as useEffect31, useRef as useRef20, useImperativeHandle } from "react";
|
|
32213
32250
|
import { getAnnotationExactText as getAnnotationExactText2, getCommentText } from "@semiont/core";
|
|
32214
32251
|
import { jsx as jsx33, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
32215
32252
|
function formatRelativeTime3(isoString) {
|
|
@@ -32236,13 +32273,13 @@ function CommentEntry({
|
|
|
32236
32273
|
}) {
|
|
32237
32274
|
const t12 = useTranslations("CommentsPanel");
|
|
32238
32275
|
const hoverProps = useHoverEmitter(session, comment2.id);
|
|
32239
|
-
const [isEditing, setIsEditing] =
|
|
32240
|
-
const [editText, setEditText] =
|
|
32276
|
+
const [isEditing, setIsEditing] = useState27(false);
|
|
32277
|
+
const [editText, setEditText] = useState27("");
|
|
32241
32278
|
const internalRef = useRef20(null);
|
|
32242
32279
|
useImperativeHandle(ref, () => internalRef.current);
|
|
32243
32280
|
const commentText = getCommentText(comment2) || "";
|
|
32244
32281
|
const selectedText = getAnnotationExactText2(comment2);
|
|
32245
|
-
|
|
32282
|
+
useEffect31(() => {
|
|
32246
32283
|
if (isFocused && internalRef.current) {
|
|
32247
32284
|
internalRef.current.scrollIntoView({
|
|
32248
32285
|
behavior: "smooth",
|
|
@@ -32344,7 +32381,7 @@ function CommentEntry({
|
|
|
32344
32381
|
}
|
|
32345
32382
|
|
|
32346
32383
|
// src/components/resource/panels/CommentsPanel.tsx
|
|
32347
|
-
import { useState as
|
|
32384
|
+
import { useState as useState28, useEffect as useEffect32, useRef as useRef21, useCallback as useCallback22, useMemo as useMemo10 } from "react";
|
|
32348
32385
|
import { getTextPositionSelector as getTextPositionSelector4, getTargetSelector as getTargetSelector6 } from "@semiont/core";
|
|
32349
32386
|
import { jsx as jsx34, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
32350
32387
|
function getSelectorDisplayText2(selector) {
|
|
@@ -32375,11 +32412,11 @@ function CommentsPanel({
|
|
|
32375
32412
|
hoveredAnnotationId
|
|
32376
32413
|
}) {
|
|
32377
32414
|
const t12 = useTranslations("CommentsPanel");
|
|
32378
|
-
const [newCommentText, setNewCommentText] =
|
|
32379
|
-
const [focusedAnnotationId, setFocusedAnnotationId] =
|
|
32415
|
+
const [newCommentText, setNewCommentText] = useState28("");
|
|
32416
|
+
const [focusedAnnotationId, setFocusedAnnotationId] = useState28(null);
|
|
32380
32417
|
const containerRef = useRef21(null);
|
|
32381
32418
|
const entryRefs = useRef21(/* @__PURE__ */ new Map());
|
|
32382
|
-
const sortedAnnotations =
|
|
32419
|
+
const sortedAnnotations = useMemo10(() => {
|
|
32383
32420
|
return [...annotations].sort((a15, b8) => {
|
|
32384
32421
|
const aSelector = getTextPositionSelector4(getTargetSelector6(a15.target));
|
|
32385
32422
|
const bSelector = getTextPositionSelector4(getTargetSelector6(b8.target));
|
|
@@ -32394,7 +32431,7 @@ function CommentsPanel({
|
|
|
32394
32431
|
entryRefs.current.delete(id2);
|
|
32395
32432
|
}
|
|
32396
32433
|
}, []);
|
|
32397
|
-
|
|
32434
|
+
useEffect32(() => {
|
|
32398
32435
|
if (!scrollToAnnotationId) return;
|
|
32399
32436
|
const element = entryRefs.current.get(scrollToAnnotationId);
|
|
32400
32437
|
if (element && containerRef.current) {
|
|
@@ -32411,7 +32448,7 @@ function CommentsPanel({
|
|
|
32411
32448
|
}
|
|
32412
32449
|
}
|
|
32413
32450
|
}, [scrollToAnnotationId]);
|
|
32414
|
-
|
|
32451
|
+
useEffect32(() => {
|
|
32415
32452
|
if (!hoveredAnnotationId) return;
|
|
32416
32453
|
const element = entryRefs.current.get(hoveredAnnotationId);
|
|
32417
32454
|
if (!element || !containerRef.current) return;
|
|
@@ -32445,7 +32482,7 @@ function CommentsPanel({
|
|
|
32445
32482
|
setNewCommentText("");
|
|
32446
32483
|
}
|
|
32447
32484
|
};
|
|
32448
|
-
|
|
32485
|
+
useEffect32(() => {
|
|
32449
32486
|
if (!pendingAnnotation) return;
|
|
32450
32487
|
const handleEscape = (e6) => {
|
|
32451
32488
|
if (e6.key === "Escape") {
|
|
@@ -32597,7 +32634,7 @@ function HighlightEntry({
|
|
|
32597
32634
|
}
|
|
32598
32635
|
|
|
32599
32636
|
// src/components/resource/panels/HighlightPanel.tsx
|
|
32600
|
-
import { useEffect as
|
|
32637
|
+
import { useEffect as useEffect33, useState as useState29, useRef as useRef22, useCallback as useCallback23, useMemo as useMemo11 } from "react";
|
|
32601
32638
|
import { getTextPositionSelector as getTextPositionSelector5, getTargetSelector as getTargetSelector7 } from "@semiont/core";
|
|
32602
32639
|
import { jsx as jsx35, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
32603
32640
|
function HighlightPanel({
|
|
@@ -32614,10 +32651,10 @@ function HighlightPanel({
|
|
|
32614
32651
|
sourceLanguage
|
|
32615
32652
|
}) {
|
|
32616
32653
|
const t12 = useTranslations("HighlightPanel");
|
|
32617
|
-
const [focusedAnnotationId, setFocusedAnnotationId] =
|
|
32654
|
+
const [focusedAnnotationId, setFocusedAnnotationId] = useState29(null);
|
|
32618
32655
|
const containerRef = useRef22(null);
|
|
32619
32656
|
const entryRefs = useRef22(/* @__PURE__ */ new Map());
|
|
32620
|
-
const sortedAnnotations =
|
|
32657
|
+
const sortedAnnotations = useMemo11(() => {
|
|
32621
32658
|
return [...annotations].sort((a15, b8) => {
|
|
32622
32659
|
const aSelector = getTextPositionSelector5(getTargetSelector7(a15.target));
|
|
32623
32660
|
const bSelector = getTextPositionSelector5(getTargetSelector7(b8.target));
|
|
@@ -32632,7 +32669,7 @@ function HighlightPanel({
|
|
|
32632
32669
|
entryRefs.current.delete(id2);
|
|
32633
32670
|
}
|
|
32634
32671
|
}, []);
|
|
32635
|
-
|
|
32672
|
+
useEffect33(() => {
|
|
32636
32673
|
if (!scrollToAnnotationId) return;
|
|
32637
32674
|
const element = entryRefs.current.get(scrollToAnnotationId);
|
|
32638
32675
|
if (element && containerRef.current) {
|
|
@@ -32647,7 +32684,7 @@ function HighlightPanel({
|
|
|
32647
32684
|
if (onScrollCompleted) onScrollCompleted();
|
|
32648
32685
|
}
|
|
32649
32686
|
}, [scrollToAnnotationId]);
|
|
32650
|
-
|
|
32687
|
+
useEffect33(() => {
|
|
32651
32688
|
if (!hoveredAnnotationId) return;
|
|
32652
32689
|
const element = entryRefs.current.get(hoveredAnnotationId);
|
|
32653
32690
|
if (!element || !containerRef.current) return;
|
|
@@ -32670,7 +32707,7 @@ function HighlightPanel({
|
|
|
32670
32707
|
useSessionEventSubscriptions(session, {
|
|
32671
32708
|
"browse:click": handleAnnotationClick2
|
|
32672
32709
|
});
|
|
32673
|
-
|
|
32710
|
+
useEffect33(() => {
|
|
32674
32711
|
if (pendingAnnotation && pendingAnnotation.motivation === "highlighting") {
|
|
32675
32712
|
session?.client.mark.submit({
|
|
32676
32713
|
source: resourceId2,
|
|
@@ -32708,16 +32745,16 @@ function HighlightPanel({
|
|
|
32708
32745
|
}
|
|
32709
32746
|
|
|
32710
32747
|
// src/components/resource/panels/JsonLdPanel.tsx
|
|
32711
|
-
import { useEffect as
|
|
32748
|
+
import { useEffect as useEffect35, useRef as useRef23 } from "react";
|
|
32712
32749
|
|
|
32713
32750
|
// src/hooks/useResourceGraph.ts
|
|
32714
|
-
import { useEffect as
|
|
32751
|
+
import { useEffect as useEffect34, useState as useState30 } from "react";
|
|
32715
32752
|
function useResourceGraph(id2) {
|
|
32716
32753
|
const semiont = useObservable(useSemiont().activeSession$)?.client;
|
|
32717
|
-
const [graph, setGraph] =
|
|
32718
|
-
const [loading, setLoading] =
|
|
32719
|
-
const [error, setError] =
|
|
32720
|
-
|
|
32754
|
+
const [graph, setGraph] = useState30(null);
|
|
32755
|
+
const [loading, setLoading] = useState30(true);
|
|
32756
|
+
const [error, setError] = useState30(null);
|
|
32757
|
+
useEffect34(() => {
|
|
32721
32758
|
if (!semiont || !id2) {
|
|
32722
32759
|
setLoading(false);
|
|
32723
32760
|
return;
|
|
@@ -32749,7 +32786,7 @@ function JsonLdPanel({ resourceId: resourceId2 }) {
|
|
|
32749
32786
|
const { showLineNumbers } = useLineNumbers();
|
|
32750
32787
|
const { graph, loading, error } = useResourceGraph(resourceId2);
|
|
32751
32788
|
const documentText = graph ? JSON.stringify(graph, null, 2) : "";
|
|
32752
|
-
|
|
32789
|
+
useEffect35(() => {
|
|
32753
32790
|
if (!editorRef.current || !documentText) return;
|
|
32754
32791
|
const isDarkMode = document.documentElement?.classList.contains("dark") ?? false;
|
|
32755
32792
|
const extensions = [
|
|
@@ -32995,7 +33032,7 @@ function ReferenceEntry({
|
|
|
32995
33032
|
}
|
|
32996
33033
|
|
|
32997
33034
|
// src/components/resource/panels/ReferencesPanel.tsx
|
|
32998
|
-
import { useState as
|
|
33035
|
+
import { useState as useState31, useRef as useRef24, useEffect as useEffect36, useCallback as useCallback24, useMemo as useMemo12 } from "react";
|
|
32999
33036
|
import { getTextPositionSelector as getTextPositionSelector6, getTargetSelector as getTargetSelector9 } from "@semiont/core";
|
|
33000
33037
|
import { Fragment as Fragment5, jsx as jsx38, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
33001
33038
|
function getSelectorDisplayText3(selector) {
|
|
@@ -33033,23 +33070,23 @@ function ReferencesPanel({
|
|
|
33033
33070
|
sourceLanguage
|
|
33034
33071
|
}) {
|
|
33035
33072
|
const t12 = useTranslations("ReferencesPanel");
|
|
33036
|
-
const [selectedEntityTypes, setSelectedEntityTypes] =
|
|
33037
|
-
const [lastAnnotationLog, setLastDetectionLog] =
|
|
33038
|
-
const [pendingEntityTypes, setPendingEntityTypes] =
|
|
33039
|
-
const [includeDescriptiveReferences, setIncludeDescriptiveReferences] =
|
|
33040
|
-
const [focusedAnnotationId, setFocusedAnnotationId] =
|
|
33073
|
+
const [selectedEntityTypes, setSelectedEntityTypes] = useState31([]);
|
|
33074
|
+
const [lastAnnotationLog, setLastDetectionLog] = useState31(null);
|
|
33075
|
+
const [pendingEntityTypes, setPendingEntityTypes] = useState31([]);
|
|
33076
|
+
const [includeDescriptiveReferences, setIncludeDescriptiveReferences] = useState31(false);
|
|
33077
|
+
const [focusedAnnotationId, setFocusedAnnotationId] = useState31(null);
|
|
33041
33078
|
const containerRef = useRef24(null);
|
|
33042
|
-
const [isAssistExpanded, setIsDetectExpanded] =
|
|
33079
|
+
const [isAssistExpanded, setIsDetectExpanded] = useState31(() => {
|
|
33043
33080
|
if (typeof window === "undefined") return true;
|
|
33044
33081
|
const stored = localStorage.getItem("assist-section-expanded-reference");
|
|
33045
33082
|
return stored ? stored === "true" : true;
|
|
33046
33083
|
});
|
|
33047
|
-
|
|
33084
|
+
useEffect36(() => {
|
|
33048
33085
|
if (typeof window === "undefined") return;
|
|
33049
33086
|
localStorage.setItem("assist-section-expanded-reference", String(isAssistExpanded));
|
|
33050
33087
|
}, [isAssistExpanded]);
|
|
33051
33088
|
const entryRefs = useRef24(/* @__PURE__ */ new Map());
|
|
33052
|
-
const sortedAnnotations =
|
|
33089
|
+
const sortedAnnotations = useMemo12(() => {
|
|
33053
33090
|
return [...annotations].sort((a15, b8) => {
|
|
33054
33091
|
const aSelector = getTextPositionSelector6(getTargetSelector9(a15.target));
|
|
33055
33092
|
const bSelector = getTextPositionSelector6(getTargetSelector9(b8.target));
|
|
@@ -33064,7 +33101,7 @@ function ReferencesPanel({
|
|
|
33064
33101
|
entryRefs.current.delete(id2);
|
|
33065
33102
|
}
|
|
33066
33103
|
}, []);
|
|
33067
|
-
|
|
33104
|
+
useEffect36(() => {
|
|
33068
33105
|
if (!scrollToAnnotationId) return;
|
|
33069
33106
|
const element = entryRefs.current.get(scrollToAnnotationId);
|
|
33070
33107
|
if (element && containerRef.current) {
|
|
@@ -33083,7 +33120,7 @@ function ReferencesPanel({
|
|
|
33083
33120
|
console.warn("[ReferencesPanel] Element not found for scrollToAnnotationId:", scrollToAnnotationId);
|
|
33084
33121
|
}
|
|
33085
33122
|
}, [scrollToAnnotationId]);
|
|
33086
|
-
|
|
33123
|
+
useEffect36(() => {
|
|
33087
33124
|
if (!hoveredAnnotationId) return;
|
|
33088
33125
|
const element = entryRefs.current.get(hoveredAnnotationId);
|
|
33089
33126
|
if (!element || !containerRef.current) return;
|
|
@@ -33118,7 +33155,7 @@ function ReferencesPanel({
|
|
|
33118
33155
|
});
|
|
33119
33156
|
};
|
|
33120
33157
|
const hasSavedLogRef = useRef24(false);
|
|
33121
|
-
|
|
33158
|
+
useEffect36(() => {
|
|
33122
33159
|
if (isAssisting) {
|
|
33123
33160
|
hasSavedLogRef.current = false;
|
|
33124
33161
|
return;
|
|
@@ -33146,7 +33183,7 @@ function ReferencesPanel({
|
|
|
33146
33183
|
setPendingEntityTypes([]);
|
|
33147
33184
|
}
|
|
33148
33185
|
};
|
|
33149
|
-
|
|
33186
|
+
useEffect36(() => {
|
|
33150
33187
|
if (!pendingAnnotation) return;
|
|
33151
33188
|
const handleEscape = (e6) => {
|
|
33152
33189
|
if (e6.key === "Escape") {
|
|
@@ -33586,7 +33623,7 @@ function StatisticsPanel({
|
|
|
33586
33623
|
}
|
|
33587
33624
|
|
|
33588
33625
|
// src/components/resource/panels/TagEntry.tsx
|
|
33589
|
-
import { useMemo as
|
|
33626
|
+
import { useMemo as useMemo13 } from "react";
|
|
33590
33627
|
import { getAnnotationExactText as getAnnotationExactText5 } from "@semiont/core";
|
|
33591
33628
|
import { jsx as jsx41, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
33592
33629
|
function TagEntry({
|
|
@@ -33600,7 +33637,7 @@ function TagEntry({
|
|
|
33600
33637
|
const selectedText = getAnnotationExactText5(tag);
|
|
33601
33638
|
const category = getTagCategory(tag);
|
|
33602
33639
|
const schemaId = getTagSchemaId(tag);
|
|
33603
|
-
const tagSchemas$ =
|
|
33640
|
+
const tagSchemas$ = useMemo13(
|
|
33604
33641
|
() => session?.client.browse.tagSchemas() ?? null,
|
|
33605
33642
|
[session]
|
|
33606
33643
|
);
|
|
@@ -33638,7 +33675,7 @@ function TagEntry({
|
|
|
33638
33675
|
}
|
|
33639
33676
|
|
|
33640
33677
|
// src/components/resource/panels/TaggingPanel.tsx
|
|
33641
|
-
import { useState as
|
|
33678
|
+
import { useState as useState32, useEffect as useEffect37, useRef as useRef25, useCallback as useCallback25, useMemo as useMemo14 } from "react";
|
|
33642
33679
|
import { getTextPositionSelector as getTextPositionSelector7, getTargetSelector as getTargetSelector10 } from "@semiont/core";
|
|
33643
33680
|
import { Fragment as Fragment7, jsx as jsx42, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
33644
33681
|
function getSelectorDisplayText4(selector) {
|
|
@@ -33669,28 +33706,28 @@ function TaggingPanel({
|
|
|
33669
33706
|
sourceLanguage
|
|
33670
33707
|
}) {
|
|
33671
33708
|
const t12 = useTranslations("TaggingPanel");
|
|
33672
|
-
const tagSchemas$ =
|
|
33709
|
+
const tagSchemas$ = useMemo14(
|
|
33673
33710
|
() => session?.client.browse.tagSchemas() ?? null,
|
|
33674
33711
|
[session]
|
|
33675
33712
|
);
|
|
33676
33713
|
const schemasObserved = useObservable(tagSchemas$);
|
|
33677
33714
|
const schemas = schemasObserved ?? [];
|
|
33678
33715
|
const noSchemasRegistered = schemasObserved !== void 0 && schemasObserved.length === 0;
|
|
33679
|
-
const [selectedSchemaId, setSelectedSchemaId] =
|
|
33680
|
-
const [selectedCategories, setSelectedCategories] =
|
|
33681
|
-
|
|
33716
|
+
const [selectedSchemaId, setSelectedSchemaId] = useState32("");
|
|
33717
|
+
const [selectedCategories, setSelectedCategories] = useState32(/* @__PURE__ */ new Set());
|
|
33718
|
+
useEffect37(() => {
|
|
33682
33719
|
if (!selectedSchemaId && schemas.length > 0) {
|
|
33683
33720
|
setSelectedSchemaId(schemas[0].id);
|
|
33684
33721
|
}
|
|
33685
33722
|
}, [schemas, selectedSchemaId]);
|
|
33686
|
-
const [focusedAnnotationId, setFocusedAnnotationId] =
|
|
33723
|
+
const [focusedAnnotationId, setFocusedAnnotationId] = useState32(null);
|
|
33687
33724
|
const containerRef = useRef25(null);
|
|
33688
|
-
const [isAssistExpanded, setIsDetectExpanded] =
|
|
33725
|
+
const [isAssistExpanded, setIsDetectExpanded] = useState32(() => {
|
|
33689
33726
|
if (typeof window === "undefined") return true;
|
|
33690
33727
|
const stored = localStorage.getItem("assist-section-expanded-tag");
|
|
33691
33728
|
return stored ? stored === "true" : true;
|
|
33692
33729
|
});
|
|
33693
|
-
|
|
33730
|
+
useEffect37(() => {
|
|
33694
33731
|
if (typeof window === "undefined") return;
|
|
33695
33732
|
localStorage.setItem("assist-section-expanded-tag", String(isAssistExpanded));
|
|
33696
33733
|
}, [isAssistExpanded]);
|
|
@@ -33702,7 +33739,7 @@ function TaggingPanel({
|
|
|
33702
33739
|
"browse:click": handleAnnotationClick2
|
|
33703
33740
|
});
|
|
33704
33741
|
const entryRefs = useRef25(/* @__PURE__ */ new Map());
|
|
33705
|
-
const sortedAnnotations =
|
|
33742
|
+
const sortedAnnotations = useMemo14(() => {
|
|
33706
33743
|
return [...annotations].sort((a15, b8) => {
|
|
33707
33744
|
const aSelector = getTextPositionSelector7(getTargetSelector10(a15.target));
|
|
33708
33745
|
const bSelector = getTextPositionSelector7(getTargetSelector10(b8.target));
|
|
@@ -33717,7 +33754,7 @@ function TaggingPanel({
|
|
|
33717
33754
|
entryRefs.current.delete(id2);
|
|
33718
33755
|
}
|
|
33719
33756
|
}, []);
|
|
33720
|
-
|
|
33757
|
+
useEffect37(() => {
|
|
33721
33758
|
if (!scrollToAnnotationId) return;
|
|
33722
33759
|
const element = entryRefs.current.get(scrollToAnnotationId);
|
|
33723
33760
|
if (element && containerRef.current) {
|
|
@@ -33732,7 +33769,7 @@ function TaggingPanel({
|
|
|
33732
33769
|
if (onScrollCompleted) onScrollCompleted();
|
|
33733
33770
|
}
|
|
33734
33771
|
}, [scrollToAnnotationId]);
|
|
33735
|
-
|
|
33772
|
+
useEffect37(() => {
|
|
33736
33773
|
if (!hoveredAnnotationId) return;
|
|
33737
33774
|
const element = entryRefs.current.get(hoveredAnnotationId);
|
|
33738
33775
|
if (!element || !containerRef.current) return;
|
|
@@ -33783,7 +33820,7 @@ function TaggingPanel({
|
|
|
33783
33820
|
setSelectedCategories(/* @__PURE__ */ new Set());
|
|
33784
33821
|
}
|
|
33785
33822
|
};
|
|
33786
|
-
|
|
33823
|
+
useEffect37(() => {
|
|
33787
33824
|
if (!pendingAnnotation) return;
|
|
33788
33825
|
const handleEscape = (e6) => {
|
|
33789
33826
|
if (e6.key === "Escape") {
|
|
@@ -34014,7 +34051,7 @@ function TaggingPanel({
|
|
|
34014
34051
|
}
|
|
34015
34052
|
|
|
34016
34053
|
// src/components/resource/panels/UnifiedAnnotationsPanel.tsx
|
|
34017
|
-
import { useState as
|
|
34054
|
+
import { useState as useState33, useEffect as useEffect38 } from "react";
|
|
34018
34055
|
import { jsx as jsx43, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
34019
34056
|
var TAB_ORDER = ["statistics", "reference", "highlight", "assessment", "comment", "tag"];
|
|
34020
34057
|
function UnifiedAnnotationsPanel(props) {
|
|
@@ -34036,7 +34073,7 @@ function UnifiedAnnotationsPanel(props) {
|
|
|
34036
34073
|
}
|
|
34037
34074
|
}
|
|
34038
34075
|
const grouped = groups;
|
|
34039
|
-
const [activeTab, setActiveTab] =
|
|
34076
|
+
const [activeTab, setActiveTab] = useState33(() => {
|
|
34040
34077
|
if (typeof window === "undefined") return props.initialTab || "statistics";
|
|
34041
34078
|
const storageKey = props.resourceId ? `annotations-tab-${props.resourceId}` : "annotations-tab-global";
|
|
34042
34079
|
const stored = localStorage.getItem(storageKey);
|
|
@@ -34045,17 +34082,17 @@ function UnifiedAnnotationsPanel(props) {
|
|
|
34045
34082
|
}
|
|
34046
34083
|
return props.initialTab || "statistics";
|
|
34047
34084
|
});
|
|
34048
|
-
|
|
34085
|
+
useEffect38(() => {
|
|
34049
34086
|
if (typeof window === "undefined") return;
|
|
34050
34087
|
const storageKey = props.resourceId ? `annotations-tab-${props.resourceId}` : "annotations-tab-global";
|
|
34051
34088
|
localStorage.setItem(storageKey, activeTab);
|
|
34052
34089
|
}, [activeTab, props.resourceId]);
|
|
34053
|
-
|
|
34090
|
+
useEffect38(() => {
|
|
34054
34091
|
if (props.initialTab && props.initialTabGeneration !== void 0) {
|
|
34055
34092
|
setActiveTab(props.initialTab);
|
|
34056
34093
|
}
|
|
34057
34094
|
}, [props.initialTabGeneration]);
|
|
34058
|
-
|
|
34095
|
+
useEffect38(() => {
|
|
34059
34096
|
if (props.pendingAnnotation) {
|
|
34060
34097
|
const motivationToTab = {
|
|
34061
34098
|
"linking": "reference",
|
|
@@ -34217,7 +34254,7 @@ function ImageViewer({ imageUrl, alt = "Resource image" }) {
|
|
|
34217
34254
|
}
|
|
34218
34255
|
|
|
34219
34256
|
// src/components/navigation/Footer.tsx
|
|
34220
|
-
import { useState as
|
|
34257
|
+
import { useState as useState34 } from "react";
|
|
34221
34258
|
import { Fragment as Fragment8, jsx as jsx45, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
34222
34259
|
function Footer({
|
|
34223
34260
|
Link,
|
|
@@ -34228,7 +34265,7 @@ function Footer({
|
|
|
34228
34265
|
sourceCodeUrl = "https://github.com/The-AI-Alliance/semiont",
|
|
34229
34266
|
showPolicyLinks = true
|
|
34230
34267
|
}) {
|
|
34231
|
-
const [showCookiePreferences, setShowCookiePreferences] =
|
|
34268
|
+
const [showCookiePreferences, setShowCookiePreferences] = useState34(false);
|
|
34232
34269
|
return /* @__PURE__ */ jsxs38(Fragment8, { children: [
|
|
34233
34270
|
/* @__PURE__ */ jsx45("footer", { role: "contentinfo", className: "semiont-footer", children: /* @__PURE__ */ jsx45("div", { className: "semiont-footer__container", children: /* @__PURE__ */ jsxs38("div", { className: "semiont-footer__content", children: [
|
|
34234
34271
|
/* @__PURE__ */ jsx45("div", { className: "semiont-footer__copyright", children: t12("copyright", { year: (/* @__PURE__ */ new Date()).getFullYear() }) }),
|
|
@@ -34358,7 +34395,7 @@ function NavigationMenu({
|
|
|
34358
34395
|
}
|
|
34359
34396
|
|
|
34360
34397
|
// src/components/navigation/ObservableLink.tsx
|
|
34361
|
-
import { useCallback as useCallback26, useRef as useRef26, useEffect as
|
|
34398
|
+
import { useCallback as useCallback26, useRef as useRef26, useEffect as useEffect39 } from "react";
|
|
34362
34399
|
import { jsx as jsx47 } from "react/jsx-runtime";
|
|
34363
34400
|
function ObservableLink({
|
|
34364
34401
|
href,
|
|
@@ -34369,7 +34406,7 @@ function ObservableLink({
|
|
|
34369
34406
|
}) {
|
|
34370
34407
|
const semiont = useSemiont();
|
|
34371
34408
|
const onClickRef = useRef26(onClick);
|
|
34372
|
-
|
|
34409
|
+
useEffect39(() => {
|
|
34373
34410
|
onClickRef.current = onClick;
|
|
34374
34411
|
});
|
|
34375
34412
|
const handleClick = useCallback26((e6) => {
|
|
@@ -34391,7 +34428,7 @@ function ObservableLink({
|
|
|
34391
34428
|
}
|
|
34392
34429
|
|
|
34393
34430
|
// src/components/navigation/SimpleNavigation.tsx
|
|
34394
|
-
import { useState as
|
|
34431
|
+
import { useState as useState35, useRef as useRef27, useEffect as useEffect40 } from "react";
|
|
34395
34432
|
import { jsx as jsx48, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
34396
34433
|
function SimpleNavigation({
|
|
34397
34434
|
title,
|
|
@@ -34406,12 +34443,12 @@ function SimpleNavigation({
|
|
|
34406
34443
|
}) {
|
|
34407
34444
|
const ChevronLeftIcon = icons.chevronLeft;
|
|
34408
34445
|
const BarsIcon = icons.bars;
|
|
34409
|
-
const [isDropdownOpen, setIsDropdownOpen] =
|
|
34446
|
+
const [isDropdownOpen, setIsDropdownOpen] = useState35(false);
|
|
34410
34447
|
const dropdownRef = useRef27(null);
|
|
34411
34448
|
const semiont = useSemiont();
|
|
34412
34449
|
const toggleDropdown = () => setIsDropdownOpen(!isDropdownOpen);
|
|
34413
34450
|
const closeDropdown = () => setIsDropdownOpen(false);
|
|
34414
|
-
|
|
34451
|
+
useEffect40(() => {
|
|
34415
34452
|
const handleClickOutside = (event) => {
|
|
34416
34453
|
if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
|
|
34417
34454
|
closeDropdown();
|
|
@@ -34487,19 +34524,19 @@ function SimpleNavigation({
|
|
|
34487
34524
|
}
|
|
34488
34525
|
|
|
34489
34526
|
// src/components/navigation/CollapsibleResourceNavigation.tsx
|
|
34490
|
-
import { useCallback as useCallback32, useState as
|
|
34527
|
+
import { useCallback as useCallback32, useState as useState39, useRef as useRef32, useEffect as useEffect45 } from "react";
|
|
34491
34528
|
|
|
34492
34529
|
// ../../node_modules/@dnd-kit/core/dist/core.esm.js
|
|
34493
|
-
import React18, { createContext as createContext5, useContext as useContext5, useEffect as
|
|
34530
|
+
import React18, { createContext as createContext5, useContext as useContext5, useEffect as useEffect42, useState as useState37, useCallback as useCallback29, useMemo as useMemo16, useRef as useRef29, memo as memo3, useReducer, cloneElement, forwardRef } from "react";
|
|
34494
34531
|
import { createPortal, unstable_batchedUpdates } from "react-dom";
|
|
34495
34532
|
|
|
34496
34533
|
// ../../node_modules/@dnd-kit/utilities/dist/utilities.esm.js
|
|
34497
|
-
import { useMemo as
|
|
34534
|
+
import { useMemo as useMemo15, useLayoutEffect, useEffect as useEffect41, useRef as useRef28, useCallback as useCallback27 } from "react";
|
|
34498
34535
|
function useCombinedRefs() {
|
|
34499
34536
|
for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
34500
34537
|
refs[_key] = arguments[_key];
|
|
34501
34538
|
}
|
|
34502
|
-
return
|
|
34539
|
+
return useMemo15(
|
|
34503
34540
|
() => (node) => {
|
|
34504
34541
|
refs.forEach((ref) => ref(node));
|
|
34505
34542
|
},
|
|
@@ -34562,7 +34599,7 @@ function getOwnerDocument(target) {
|
|
|
34562
34599
|
}
|
|
34563
34600
|
return document;
|
|
34564
34601
|
}
|
|
34565
|
-
var useIsomorphicLayoutEffect = canUseDOM ? useLayoutEffect :
|
|
34602
|
+
var useIsomorphicLayoutEffect = canUseDOM ? useLayoutEffect : useEffect41;
|
|
34566
34603
|
function useEvent(handler) {
|
|
34567
34604
|
const handlerRef = useRef28(handler);
|
|
34568
34605
|
useIsomorphicLayoutEffect(() => {
|
|
@@ -34602,7 +34639,7 @@ function useLatestValue(value, dependencies) {
|
|
|
34602
34639
|
}
|
|
34603
34640
|
function useLazyMemo(callback, dependencies) {
|
|
34604
34641
|
const valueRef = useRef28();
|
|
34605
|
-
return
|
|
34642
|
+
return useMemo15(
|
|
34606
34643
|
() => {
|
|
34607
34644
|
const newValue = callback(valueRef.current);
|
|
34608
34645
|
valueRef.current = newValue;
|
|
@@ -34629,14 +34666,14 @@ function useNodeRef(onChange) {
|
|
|
34629
34666
|
}
|
|
34630
34667
|
function usePrevious(value) {
|
|
34631
34668
|
const ref = useRef28();
|
|
34632
|
-
|
|
34669
|
+
useEffect41(() => {
|
|
34633
34670
|
ref.current = value;
|
|
34634
34671
|
}, [value]);
|
|
34635
34672
|
return ref.current;
|
|
34636
34673
|
}
|
|
34637
34674
|
var ids = {};
|
|
34638
34675
|
function useUniqueId(prefix, value) {
|
|
34639
|
-
return
|
|
34676
|
+
return useMemo15(() => {
|
|
34640
34677
|
if (value) {
|
|
34641
34678
|
return value;
|
|
34642
34679
|
}
|
|
@@ -34770,7 +34807,7 @@ function findFirstFocusableNode(element) {
|
|
|
34770
34807
|
}
|
|
34771
34808
|
|
|
34772
34809
|
// ../../node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js
|
|
34773
|
-
import React17, { useState as
|
|
34810
|
+
import React17, { useState as useState36, useCallback as useCallback28 } from "react";
|
|
34774
34811
|
var hiddenStyles = {
|
|
34775
34812
|
display: "none"
|
|
34776
34813
|
};
|
|
@@ -34813,7 +34850,7 @@ function LiveRegion(_ref) {
|
|
|
34813
34850
|
}, announcement);
|
|
34814
34851
|
}
|
|
34815
34852
|
function useAnnouncement() {
|
|
34816
|
-
const [announcement, setAnnouncement] =
|
|
34853
|
+
const [announcement, setAnnouncement] = useState36("");
|
|
34817
34854
|
const announce = useCallback28((value) => {
|
|
34818
34855
|
if (value != null) {
|
|
34819
34856
|
setAnnouncement(value);
|
|
@@ -34829,7 +34866,7 @@ function useAnnouncement() {
|
|
|
34829
34866
|
var DndMonitorContext = /* @__PURE__ */ createContext5(null);
|
|
34830
34867
|
function useDndMonitor(listener) {
|
|
34831
34868
|
const registerListener = useContext5(DndMonitorContext);
|
|
34832
|
-
|
|
34869
|
+
useEffect42(() => {
|
|
34833
34870
|
if (!registerListener) {
|
|
34834
34871
|
throw new Error("useDndMonitor must be used within a children of <DndContext>");
|
|
34835
34872
|
}
|
|
@@ -34838,7 +34875,7 @@ function useDndMonitor(listener) {
|
|
|
34838
34875
|
}, [listener, registerListener]);
|
|
34839
34876
|
}
|
|
34840
34877
|
function useDndMonitorProvider() {
|
|
34841
|
-
const [listeners] =
|
|
34878
|
+
const [listeners] = useState37(() => /* @__PURE__ */ new Set());
|
|
34842
34879
|
const registerListener = useCallback29((listener) => {
|
|
34843
34880
|
listeners.add(listener);
|
|
34844
34881
|
return () => listeners.delete(listener);
|
|
@@ -34904,11 +34941,11 @@ function Accessibility(_ref) {
|
|
|
34904
34941
|
announcement
|
|
34905
34942
|
} = useAnnouncement();
|
|
34906
34943
|
const liveRegionId = useUniqueId("DndLiveRegion");
|
|
34907
|
-
const [mounted, setMounted] =
|
|
34908
|
-
|
|
34944
|
+
const [mounted, setMounted] = useState37(false);
|
|
34945
|
+
useEffect42(() => {
|
|
34909
34946
|
setMounted(true);
|
|
34910
34947
|
}, []);
|
|
34911
|
-
useDndMonitor(
|
|
34948
|
+
useDndMonitor(useMemo16(() => ({
|
|
34912
34949
|
onDragStart(_ref2) {
|
|
34913
34950
|
let {
|
|
34914
34951
|
active
|
|
@@ -34986,7 +35023,7 @@ var Action;
|
|
|
34986
35023
|
function noop() {
|
|
34987
35024
|
}
|
|
34988
35025
|
function useSensor(sensor, options) {
|
|
34989
|
-
return
|
|
35026
|
+
return useMemo16(
|
|
34990
35027
|
() => ({
|
|
34991
35028
|
sensor,
|
|
34992
35029
|
options: options != null ? options : {}
|
|
@@ -34999,7 +35036,7 @@ function useSensors() {
|
|
|
34999
35036
|
for (var _len = arguments.length, sensors = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
35000
35037
|
sensors[_key] = arguments[_key];
|
|
35001
35038
|
}
|
|
35002
|
-
return
|
|
35039
|
+
return useMemo16(
|
|
35003
35040
|
() => [...sensors].filter((sensor) => sensor != null),
|
|
35004
35041
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
35005
35042
|
[...sensors]
|
|
@@ -36249,7 +36286,7 @@ function useAutoScroller(_ref) {
|
|
|
36249
36286
|
x: 0,
|
|
36250
36287
|
y: 0
|
|
36251
36288
|
});
|
|
36252
|
-
const rect =
|
|
36289
|
+
const rect = useMemo16(() => {
|
|
36253
36290
|
switch (activator) {
|
|
36254
36291
|
case AutoScrollActivator.Pointer:
|
|
36255
36292
|
return pointerCoordinates ? {
|
|
@@ -36272,8 +36309,8 @@ function useAutoScroller(_ref) {
|
|
|
36272
36309
|
const scrollTop = scrollSpeed.current.y * scrollDirection.current.y;
|
|
36273
36310
|
scrollContainer.scrollBy(scrollLeft, scrollTop);
|
|
36274
36311
|
}, []);
|
|
36275
|
-
const sortedScrollableAncestors =
|
|
36276
|
-
|
|
36312
|
+
const sortedScrollableAncestors = useMemo16(() => order === TraversalOrder.TreeOrder ? [...scrollableAncestors].reverse() : scrollableAncestors, [order, scrollableAncestors]);
|
|
36313
|
+
useEffect42(
|
|
36277
36314
|
() => {
|
|
36278
36315
|
if (!enabled || !scrollableAncestors.length || !rect) {
|
|
36279
36316
|
clearAutoScrollInterval();
|
|
@@ -36386,7 +36423,7 @@ function useCachedNode(draggableNodes, id2) {
|
|
|
36386
36423
|
}, [node, id2]);
|
|
36387
36424
|
}
|
|
36388
36425
|
function useCombineActivators(sensors, getSyntheticHandler) {
|
|
36389
|
-
return
|
|
36426
|
+
return useMemo16(() => sensors.reduce((accumulator, sensor) => {
|
|
36390
36427
|
const {
|
|
36391
36428
|
sensor: Sensor
|
|
36392
36429
|
} = sensor;
|
|
@@ -36414,7 +36451,7 @@ function useDroppableMeasuring(containers, _ref) {
|
|
|
36414
36451
|
dependencies,
|
|
36415
36452
|
config
|
|
36416
36453
|
} = _ref;
|
|
36417
|
-
const [queue, setQueue] =
|
|
36454
|
+
const [queue, setQueue] = useState37(null);
|
|
36418
36455
|
const {
|
|
36419
36456
|
frequency,
|
|
36420
36457
|
measure,
|
|
@@ -36463,10 +36500,10 @@ function useDroppableMeasuring(containers, _ref) {
|
|
|
36463
36500
|
}
|
|
36464
36501
|
return previousValue;
|
|
36465
36502
|
}, [containers, queue, dragging, disabled, measure]);
|
|
36466
|
-
|
|
36503
|
+
useEffect42(() => {
|
|
36467
36504
|
containersRef.current = containers;
|
|
36468
36505
|
}, [containers]);
|
|
36469
|
-
|
|
36506
|
+
useEffect42(
|
|
36470
36507
|
() => {
|
|
36471
36508
|
if (disabled) {
|
|
36472
36509
|
return;
|
|
@@ -36476,7 +36513,7 @@ function useDroppableMeasuring(containers, _ref) {
|
|
|
36476
36513
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
36477
36514
|
[dragging, disabled]
|
|
36478
36515
|
);
|
|
36479
|
-
|
|
36516
|
+
useEffect42(
|
|
36480
36517
|
() => {
|
|
36481
36518
|
if (queue && queue.length > 0) {
|
|
36482
36519
|
setQueue(null);
|
|
@@ -36485,7 +36522,7 @@ function useDroppableMeasuring(containers, _ref) {
|
|
|
36485
36522
|
//eslint-disable-next-line react-hooks/exhaustive-deps
|
|
36486
36523
|
[JSON.stringify(queue)]
|
|
36487
36524
|
);
|
|
36488
|
-
|
|
36525
|
+
useEffect42(
|
|
36489
36526
|
() => {
|
|
36490
36527
|
if (disabled || typeof frequency !== "number" || timeoutId.current !== null) {
|
|
36491
36528
|
return;
|
|
@@ -36534,7 +36571,7 @@ function useMutationObserver(_ref) {
|
|
|
36534
36571
|
disabled
|
|
36535
36572
|
} = _ref;
|
|
36536
36573
|
const handleMutations = useEvent(callback);
|
|
36537
|
-
const mutationObserver =
|
|
36574
|
+
const mutationObserver = useMemo16(() => {
|
|
36538
36575
|
if (disabled || typeof window === "undefined" || typeof window.MutationObserver === "undefined") {
|
|
36539
36576
|
return void 0;
|
|
36540
36577
|
}
|
|
@@ -36543,7 +36580,7 @@ function useMutationObserver(_ref) {
|
|
|
36543
36580
|
} = window;
|
|
36544
36581
|
return new MutationObserver2(handleMutations);
|
|
36545
36582
|
}, [handleMutations, disabled]);
|
|
36546
|
-
|
|
36583
|
+
useEffect42(() => {
|
|
36547
36584
|
return () => mutationObserver == null ? void 0 : mutationObserver.disconnect();
|
|
36548
36585
|
}, [mutationObserver]);
|
|
36549
36586
|
return mutationObserver;
|
|
@@ -36554,7 +36591,7 @@ function useResizeObserver(_ref) {
|
|
|
36554
36591
|
disabled
|
|
36555
36592
|
} = _ref;
|
|
36556
36593
|
const handleResize = useEvent(callback);
|
|
36557
|
-
const resizeObserver =
|
|
36594
|
+
const resizeObserver = useMemo16(
|
|
36558
36595
|
() => {
|
|
36559
36596
|
if (disabled || typeof window === "undefined" || typeof window.ResizeObserver === "undefined") {
|
|
36560
36597
|
return void 0;
|
|
@@ -36567,7 +36604,7 @@ function useResizeObserver(_ref) {
|
|
|
36567
36604
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
36568
36605
|
[disabled]
|
|
36569
36606
|
);
|
|
36570
|
-
|
|
36607
|
+
useEffect42(() => {
|
|
36571
36608
|
return () => resizeObserver == null ? void 0 : resizeObserver.disconnect();
|
|
36572
36609
|
}, [resizeObserver]);
|
|
36573
36610
|
return resizeObserver;
|
|
@@ -36579,7 +36616,7 @@ function useRect(element, measure, fallbackRect2) {
|
|
|
36579
36616
|
if (measure === void 0) {
|
|
36580
36617
|
measure = defaultMeasure;
|
|
36581
36618
|
}
|
|
36582
|
-
const [rect, setRect] =
|
|
36619
|
+
const [rect, setRect] = useState37(null);
|
|
36583
36620
|
function measureRect() {
|
|
36584
36621
|
setRect((currentRect) => {
|
|
36585
36622
|
if (!element) {
|
|
@@ -36647,13 +36684,13 @@ function useScrollableAncestors(node) {
|
|
|
36647
36684
|
}
|
|
36648
36685
|
return getScrollableAncestors(node);
|
|
36649
36686
|
}, [node]);
|
|
36650
|
-
|
|
36687
|
+
useEffect42(() => {
|
|
36651
36688
|
previousNode.current = node;
|
|
36652
36689
|
}, [node]);
|
|
36653
36690
|
return ancestors;
|
|
36654
36691
|
}
|
|
36655
36692
|
function useScrollOffsets(elements) {
|
|
36656
|
-
const [scrollCoordinates, setScrollCoordinates] =
|
|
36693
|
+
const [scrollCoordinates, setScrollCoordinates] = useState37(null);
|
|
36657
36694
|
const prevElements = useRef29(elements);
|
|
36658
36695
|
const handleScroll = useCallback29((event) => {
|
|
36659
36696
|
const scrollingElement = getScrollableElement(event.target);
|
|
@@ -36668,7 +36705,7 @@ function useScrollOffsets(elements) {
|
|
|
36668
36705
|
return new Map(scrollCoordinates2);
|
|
36669
36706
|
});
|
|
36670
36707
|
}, []);
|
|
36671
|
-
|
|
36708
|
+
useEffect42(() => {
|
|
36672
36709
|
const previousElements = prevElements.current;
|
|
36673
36710
|
if (elements !== previousElements) {
|
|
36674
36711
|
cleanup(previousElements);
|
|
@@ -36696,7 +36733,7 @@ function useScrollOffsets(elements) {
|
|
|
36696
36733
|
});
|
|
36697
36734
|
}
|
|
36698
36735
|
}, [handleScroll, elements]);
|
|
36699
|
-
return
|
|
36736
|
+
return useMemo16(() => {
|
|
36700
36737
|
if (elements.length) {
|
|
36701
36738
|
return scrollCoordinates ? Array.from(scrollCoordinates.values()).reduce((acc, coordinates) => add(acc, coordinates), defaultCoordinates) : getScrollOffsets(elements);
|
|
36702
36739
|
}
|
|
@@ -36708,14 +36745,14 @@ function useScrollOffsetsDelta(scrollOffsets, dependencies) {
|
|
|
36708
36745
|
dependencies = [];
|
|
36709
36746
|
}
|
|
36710
36747
|
const initialScrollOffsets = useRef29(null);
|
|
36711
|
-
|
|
36748
|
+
useEffect42(
|
|
36712
36749
|
() => {
|
|
36713
36750
|
initialScrollOffsets.current = null;
|
|
36714
36751
|
},
|
|
36715
36752
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
36716
36753
|
dependencies
|
|
36717
36754
|
);
|
|
36718
|
-
|
|
36755
|
+
useEffect42(() => {
|
|
36719
36756
|
const hasScrollOffsets = scrollOffsets !== defaultCoordinates;
|
|
36720
36757
|
if (hasScrollOffsets && !initialScrollOffsets.current) {
|
|
36721
36758
|
initialScrollOffsets.current = scrollOffsets;
|
|
@@ -36727,7 +36764,7 @@ function useScrollOffsetsDelta(scrollOffsets, dependencies) {
|
|
|
36727
36764
|
return initialScrollOffsets.current ? subtract(scrollOffsets, initialScrollOffsets.current) : defaultCoordinates;
|
|
36728
36765
|
}
|
|
36729
36766
|
function useSensorSetup(sensors) {
|
|
36730
|
-
|
|
36767
|
+
useEffect42(
|
|
36731
36768
|
() => {
|
|
36732
36769
|
if (!canUseDOM) {
|
|
36733
36770
|
return;
|
|
@@ -36755,7 +36792,7 @@ function useSensorSetup(sensors) {
|
|
|
36755
36792
|
);
|
|
36756
36793
|
}
|
|
36757
36794
|
function useSyntheticListeners(listeners, id2) {
|
|
36758
|
-
return
|
|
36795
|
+
return useMemo16(() => {
|
|
36759
36796
|
return listeners.reduce((acc, _ref) => {
|
|
36760
36797
|
let {
|
|
36761
36798
|
eventName,
|
|
@@ -36769,7 +36806,7 @@ function useSyntheticListeners(listeners, id2) {
|
|
|
36769
36806
|
}, [listeners, id2]);
|
|
36770
36807
|
}
|
|
36771
36808
|
function useWindowRect(element) {
|
|
36772
|
-
return
|
|
36809
|
+
return useMemo16(() => element ? getWindowClientRect(element) : null, [element]);
|
|
36773
36810
|
}
|
|
36774
36811
|
var defaultValue$2 = [];
|
|
36775
36812
|
function useRects(elements, measure) {
|
|
@@ -36778,7 +36815,7 @@ function useRects(elements, measure) {
|
|
|
36778
36815
|
}
|
|
36779
36816
|
const [firstElement] = elements;
|
|
36780
36817
|
const windowRect2 = useWindowRect(firstElement ? getWindow(firstElement) : null);
|
|
36781
|
-
const [rects, setRects] =
|
|
36818
|
+
const [rects, setRects] = useState37(defaultValue$2);
|
|
36782
36819
|
function measureRects() {
|
|
36783
36820
|
setRects(() => {
|
|
36784
36821
|
if (!elements.length) {
|
|
@@ -36811,7 +36848,7 @@ function useDragOverlayMeasuring(_ref) {
|
|
|
36811
36848
|
let {
|
|
36812
36849
|
measure
|
|
36813
36850
|
} = _ref;
|
|
36814
|
-
const [rect, setRect] =
|
|
36851
|
+
const [rect, setRect] = useState37(null);
|
|
36815
36852
|
const handleResize = useCallback29((entries) => {
|
|
36816
36853
|
for (const {
|
|
36817
36854
|
target
|
|
@@ -36841,7 +36878,7 @@ function useDragOverlayMeasuring(_ref) {
|
|
|
36841
36878
|
setRect(node ? measure(node) : null);
|
|
36842
36879
|
}, [measure, resizeObserver]);
|
|
36843
36880
|
const [nodeRef, setRef] = useNodeRef(handleNodeChange);
|
|
36844
|
-
return
|
|
36881
|
+
return useMemo16(() => ({
|
|
36845
36882
|
nodeRef,
|
|
36846
36883
|
rect,
|
|
36847
36884
|
setRef
|
|
@@ -37067,7 +37104,7 @@ function RestoreFocus(_ref) {
|
|
|
37067
37104
|
} = useContext5(InternalContext);
|
|
37068
37105
|
const previousActivatorEvent = usePrevious(activatorEvent);
|
|
37069
37106
|
const previousActiveId = usePrevious(active == null ? void 0 : active.id);
|
|
37070
|
-
|
|
37107
|
+
useEffect42(() => {
|
|
37071
37108
|
if (disabled) {
|
|
37072
37109
|
return;
|
|
37073
37110
|
}
|
|
@@ -37118,7 +37155,7 @@ function applyModifiers(modifiers2, _ref) {
|
|
|
37118
37155
|
}, transform) : transform;
|
|
37119
37156
|
}
|
|
37120
37157
|
function useMeasuringConfiguration(config) {
|
|
37121
|
-
return
|
|
37158
|
+
return useMemo16(
|
|
37122
37159
|
() => ({
|
|
37123
37160
|
draggable: {
|
|
37124
37161
|
...defaultMeasuringConfiguration.draggable,
|
|
@@ -37212,7 +37249,7 @@ var DndContext = /* @__PURE__ */ memo3(function DndContext2(_ref) {
|
|
|
37212
37249
|
const store = useReducer(reducer, void 0, getInitialState);
|
|
37213
37250
|
const [state, dispatch] = store;
|
|
37214
37251
|
const [dispatchMonitorEvent, registerMonitorListener] = useDndMonitorProvider();
|
|
37215
|
-
const [status, setStatus] =
|
|
37252
|
+
const [status, setStatus] = useState37(Status.Uninitialized);
|
|
37216
37253
|
const isInitialized = status === Status.Initialized;
|
|
37217
37254
|
const {
|
|
37218
37255
|
draggable: {
|
|
@@ -37229,7 +37266,7 @@ var DndContext = /* @__PURE__ */ memo3(function DndContext2(_ref) {
|
|
|
37229
37266
|
initial: null,
|
|
37230
37267
|
translated: null
|
|
37231
37268
|
});
|
|
37232
|
-
const active =
|
|
37269
|
+
const active = useMemo16(() => {
|
|
37233
37270
|
var _node$data;
|
|
37234
37271
|
return activeId != null ? {
|
|
37235
37272
|
id: activeId,
|
|
@@ -37239,11 +37276,11 @@ var DndContext = /* @__PURE__ */ memo3(function DndContext2(_ref) {
|
|
|
37239
37276
|
} : null;
|
|
37240
37277
|
}, [activeId, node]);
|
|
37241
37278
|
const activeRef = useRef29(null);
|
|
37242
|
-
const [activeSensor, setActiveSensor] =
|
|
37243
|
-
const [activatorEvent, setActivatorEvent] =
|
|
37279
|
+
const [activeSensor, setActiveSensor] = useState37(null);
|
|
37280
|
+
const [activatorEvent, setActivatorEvent] = useState37(null);
|
|
37244
37281
|
const latestProps = useLatestValue(props, Object.values(props));
|
|
37245
37282
|
const draggableDescribedById = useUniqueId("DndDescribedBy", id2);
|
|
37246
|
-
const enabledDroppableContainers =
|
|
37283
|
+
const enabledDroppableContainers = useMemo16(() => droppableContainers.getEnabled(), [droppableContainers]);
|
|
37247
37284
|
const measuringConfiguration = useMeasuringConfiguration(measuring);
|
|
37248
37285
|
const {
|
|
37249
37286
|
droppableRects,
|
|
@@ -37255,7 +37292,7 @@ var DndContext = /* @__PURE__ */ memo3(function DndContext2(_ref) {
|
|
|
37255
37292
|
config: measuringConfiguration.droppable
|
|
37256
37293
|
});
|
|
37257
37294
|
const activeNode = useCachedNode(draggableNodes, activeId);
|
|
37258
|
-
const activationCoordinates =
|
|
37295
|
+
const activationCoordinates = useMemo16(() => activatorEvent ? getEventCoordinates(activatorEvent) : null, [activatorEvent]);
|
|
37259
37296
|
const autoScrollOptions = getAutoScrollerOptions();
|
|
37260
37297
|
const initialActiveNodeRect = useInitialRect(activeNode, measuringConfiguration.draggable.measure);
|
|
37261
37298
|
useLayoutShiftScrollCompensation({
|
|
@@ -37324,7 +37361,7 @@ var DndContext = /* @__PURE__ */ memo3(function DndContext2(_ref) {
|
|
|
37324
37361
|
pointerCoordinates
|
|
37325
37362
|
}) : null;
|
|
37326
37363
|
const overId = getFirstCollision(collisions, "id");
|
|
37327
|
-
const [over, setOver] =
|
|
37364
|
+
const [over, setOver] = useState37(null);
|
|
37328
37365
|
const appliedTranslate = usesDragOverlay ? modifiedTranslate : add(modifiedTranslate, activeNodeScrollDelta);
|
|
37329
37366
|
const transform = adjustScale(appliedTranslate, (_over$rect = over == null ? void 0 : over.rect) != null ? _over$rect : null, activeNodeRect);
|
|
37330
37367
|
const activeSensorRef = useRef29(null);
|
|
@@ -37518,7 +37555,7 @@ var DndContext = /* @__PURE__ */ memo3(function DndContext2(_ref) {
|
|
|
37518
37555
|
setStatus(Status.Initialized);
|
|
37519
37556
|
}
|
|
37520
37557
|
}, [activeNodeRect, status]);
|
|
37521
|
-
|
|
37558
|
+
useEffect42(
|
|
37522
37559
|
() => {
|
|
37523
37560
|
const {
|
|
37524
37561
|
onDragMove
|
|
@@ -37553,7 +37590,7 @@ var DndContext = /* @__PURE__ */ memo3(function DndContext2(_ref) {
|
|
|
37553
37590
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
37554
37591
|
[scrollAdjustedTranslate.x, scrollAdjustedTranslate.y]
|
|
37555
37592
|
);
|
|
37556
|
-
|
|
37593
|
+
useEffect42(
|
|
37557
37594
|
() => {
|
|
37558
37595
|
const {
|
|
37559
37596
|
active: active2,
|
|
@@ -37626,7 +37663,7 @@ var DndContext = /* @__PURE__ */ memo3(function DndContext2(_ref) {
|
|
|
37626
37663
|
scrollableAncestors,
|
|
37627
37664
|
scrollableAncestorRects
|
|
37628
37665
|
});
|
|
37629
|
-
const publicContext =
|
|
37666
|
+
const publicContext = useMemo16(() => {
|
|
37630
37667
|
const context = {
|
|
37631
37668
|
active,
|
|
37632
37669
|
activeNode,
|
|
@@ -37648,7 +37685,7 @@ var DndContext = /* @__PURE__ */ memo3(function DndContext2(_ref) {
|
|
|
37648
37685
|
};
|
|
37649
37686
|
return context;
|
|
37650
37687
|
}, [active, activeNode, activeNodeRect, activatorEvent, collisions, containerNodeRect, dragOverlay, draggableNodes, droppableContainers, droppableRects, over, measureDroppableContainers, scrollableAncestors, scrollableAncestorRects, measuringConfiguration, measuringScheduled, windowRect2]);
|
|
37651
|
-
const internalContext =
|
|
37688
|
+
const internalContext = useMemo16(() => {
|
|
37652
37689
|
const context = {
|
|
37653
37690
|
activatorEvent,
|
|
37654
37691
|
activators,
|
|
@@ -37743,7 +37780,7 @@ function useDraggable(_ref) {
|
|
|
37743
37780
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
37744
37781
|
[draggableNodes, id2]
|
|
37745
37782
|
);
|
|
37746
|
-
const memoizedAttributes =
|
|
37783
|
+
const memoizedAttributes = useMemo16(() => ({
|
|
37747
37784
|
role,
|
|
37748
37785
|
tabIndex,
|
|
37749
37786
|
"aria-disabled": disabled,
|
|
@@ -37836,7 +37873,7 @@ function useDroppable(_ref) {
|
|
|
37836
37873
|
}, [resizeObserver]);
|
|
37837
37874
|
const [nodeRef, setNodeRef] = useNodeRef(handleNodeChange);
|
|
37838
37875
|
const dataRef = useLatestValue(data2);
|
|
37839
|
-
|
|
37876
|
+
useEffect42(() => {
|
|
37840
37877
|
if (!resizeObserver || !nodeRef.current) {
|
|
37841
37878
|
return;
|
|
37842
37879
|
}
|
|
@@ -37844,7 +37881,7 @@ function useDroppable(_ref) {
|
|
|
37844
37881
|
resizeObserverConnected.current = false;
|
|
37845
37882
|
resizeObserver.observe(nodeRef.current);
|
|
37846
37883
|
}, [nodeRef, resizeObserver]);
|
|
37847
|
-
|
|
37884
|
+
useEffect42(
|
|
37848
37885
|
() => {
|
|
37849
37886
|
dispatch({
|
|
37850
37887
|
type: Action.RegisterDroppable,
|
|
@@ -37866,7 +37903,7 @@ function useDroppable(_ref) {
|
|
|
37866
37903
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
37867
37904
|
[id2]
|
|
37868
37905
|
);
|
|
37869
|
-
|
|
37906
|
+
useEffect42(() => {
|
|
37870
37907
|
if (disabled !== previous.current.disabled) {
|
|
37871
37908
|
dispatch({
|
|
37872
37909
|
type: Action.SetDroppableDisabled,
|
|
@@ -37888,7 +37925,7 @@ function useDroppable(_ref) {
|
|
|
37888
37925
|
}
|
|
37889
37926
|
|
|
37890
37927
|
// ../../node_modules/@dnd-kit/sortable/dist/sortable.esm.js
|
|
37891
|
-
import React19, { useMemo as
|
|
37928
|
+
import React19, { useMemo as useMemo17, useRef as useRef30, useEffect as useEffect43, useState as useState38, useContext as useContext6 } from "react";
|
|
37892
37929
|
function arrayMove(array, from, to) {
|
|
37893
37930
|
const newArray = array.slice();
|
|
37894
37931
|
newArray.splice(to < 0 ? newArray.length + to : to, 0, newArray.splice(from, 1)[0]);
|
|
@@ -38042,7 +38079,7 @@ function SortableContext(_ref) {
|
|
|
38042
38079
|
} = useDndContext();
|
|
38043
38080
|
const containerId = useUniqueId(ID_PREFIX2, id2);
|
|
38044
38081
|
const useDragOverlay = Boolean(dragOverlay.rect !== null);
|
|
38045
|
-
const items =
|
|
38082
|
+
const items = useMemo17(() => userDefinedItems.map((item) => typeof item === "object" && "id" in item ? item.id : item), [userDefinedItems]);
|
|
38046
38083
|
const isDragging = active != null;
|
|
38047
38084
|
const activeIndex = active ? items.indexOf(active.id) : -1;
|
|
38048
38085
|
const overIndex = over ? items.indexOf(over.id) : -1;
|
|
@@ -38055,10 +38092,10 @@ function SortableContext(_ref) {
|
|
|
38055
38092
|
measureDroppableContainers(items);
|
|
38056
38093
|
}
|
|
38057
38094
|
}, [itemsHaveChanged, items, isDragging, measureDroppableContainers]);
|
|
38058
|
-
|
|
38095
|
+
useEffect43(() => {
|
|
38059
38096
|
previousItemsRef.current = items;
|
|
38060
38097
|
}, [items]);
|
|
38061
|
-
const contextValue =
|
|
38098
|
+
const contextValue = useMemo17(
|
|
38062
38099
|
() => ({
|
|
38063
38100
|
activeIndex,
|
|
38064
38101
|
containerId,
|
|
@@ -38129,7 +38166,7 @@ function useDerivedTransform(_ref) {
|
|
|
38129
38166
|
node,
|
|
38130
38167
|
rect
|
|
38131
38168
|
} = _ref;
|
|
38132
|
-
const [derivedTransform, setDerivedtransform] =
|
|
38169
|
+
const [derivedTransform, setDerivedtransform] = useState38(null);
|
|
38133
38170
|
const previousIndex = useRef30(index);
|
|
38134
38171
|
useIsomorphicLayoutEffect(() => {
|
|
38135
38172
|
if (!disabled && index !== previousIndex.current && node.current) {
|
|
@@ -38153,7 +38190,7 @@ function useDerivedTransform(_ref) {
|
|
|
38153
38190
|
previousIndex.current = index;
|
|
38154
38191
|
}
|
|
38155
38192
|
}, [disabled, index, node, rect]);
|
|
38156
|
-
|
|
38193
|
+
useEffect43(() => {
|
|
38157
38194
|
if (derivedTransform) {
|
|
38158
38195
|
setDerivedtransform(null);
|
|
38159
38196
|
}
|
|
@@ -38185,7 +38222,7 @@ function useSortable(_ref) {
|
|
|
38185
38222
|
} = useContext6(Context2);
|
|
38186
38223
|
const disabled = normalizeLocalDisabled(localDisabled, globalDisabled);
|
|
38187
38224
|
const index = items.indexOf(id2);
|
|
38188
|
-
const data2 =
|
|
38225
|
+
const data2 = useMemo17(() => ({
|
|
38189
38226
|
sortable: {
|
|
38190
38227
|
containerId,
|
|
38191
38228
|
index,
|
|
@@ -38193,7 +38230,7 @@ function useSortable(_ref) {
|
|
|
38193
38230
|
},
|
|
38194
38231
|
...customData
|
|
38195
38232
|
}), [containerId, customData, index, items]);
|
|
38196
|
-
const itemsAfterCurrentSortable =
|
|
38233
|
+
const itemsAfterCurrentSortable = useMemo17(() => items.slice(items.indexOf(id2)), [items, id2]);
|
|
38197
38234
|
const {
|
|
38198
38235
|
rect,
|
|
38199
38236
|
node,
|
|
@@ -38275,7 +38312,7 @@ function useSortable(_ref) {
|
|
|
38275
38312
|
node,
|
|
38276
38313
|
rect
|
|
38277
38314
|
});
|
|
38278
|
-
|
|
38315
|
+
useEffect43(() => {
|
|
38279
38316
|
if (isSorting && previous.current.newIndex !== newIndex) {
|
|
38280
38317
|
previous.current.newIndex = newIndex;
|
|
38281
38318
|
}
|
|
@@ -38286,7 +38323,7 @@ function useSortable(_ref) {
|
|
|
38286
38323
|
previous.current.items = items;
|
|
38287
38324
|
}
|
|
38288
38325
|
}, [isSorting, newIndex, containerId, items]);
|
|
38289
|
-
|
|
38326
|
+
useEffect43(() => {
|
|
38290
38327
|
if (activeId === previous.current.activeId) {
|
|
38291
38328
|
return;
|
|
38292
38329
|
}
|
|
@@ -38471,7 +38508,7 @@ function isAfter(a15, b8) {
|
|
|
38471
38508
|
}
|
|
38472
38509
|
|
|
38473
38510
|
// src/components/navigation/SortableResourceTab.tsx
|
|
38474
|
-
import { useCallback as useCallback30, useRef as useRef31, useEffect as
|
|
38511
|
+
import { useCallback as useCallback30, useRef as useRef31, useEffect as useEffect44 } from "react";
|
|
38475
38512
|
import { jsx as jsx49, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
38476
38513
|
function SortableResourceTab({
|
|
38477
38514
|
resource,
|
|
@@ -38495,7 +38532,7 @@ function SortableResourceTab({
|
|
|
38495
38532
|
isDragging: isSortableDragging
|
|
38496
38533
|
} = useSortable({ id: resource.id });
|
|
38497
38534
|
const onReorderRef = useRef31(onReorder);
|
|
38498
|
-
|
|
38535
|
+
useEffect44(() => {
|
|
38499
38536
|
onReorderRef.current = onReorder;
|
|
38500
38537
|
});
|
|
38501
38538
|
const style = {
|
|
@@ -38622,7 +38659,7 @@ function CollapsibleResourceNavigation({
|
|
|
38622
38659
|
}) {
|
|
38623
38660
|
const ChevronLeftIcon = icons.chevronLeft;
|
|
38624
38661
|
const BarsIcon = icons.bars;
|
|
38625
|
-
const [isDropdownOpen, setIsDropdownOpen] =
|
|
38662
|
+
const [isDropdownOpen, setIsDropdownOpen] = useState39(false);
|
|
38626
38663
|
const dropdownRef = useRef32(null);
|
|
38627
38664
|
const { announcePickup, announceDrop, announceKeyboardReorder, announceCannotMove } = useDragAnnouncements();
|
|
38628
38665
|
const t12 = useTranslations("CollapsibleResourceNavigation");
|
|
@@ -38638,7 +38675,7 @@ function CollapsibleResourceNavigation({
|
|
|
38638
38675
|
};
|
|
38639
38676
|
const toggleDropdown = () => setIsDropdownOpen(!isDropdownOpen);
|
|
38640
38677
|
const closeDropdown = () => setIsDropdownOpen(false);
|
|
38641
|
-
|
|
38678
|
+
useEffect45(() => {
|
|
38642
38679
|
const handleClickOutside = (event) => {
|
|
38643
38680
|
if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
|
|
38644
38681
|
closeDropdown();
|
|
@@ -38836,10 +38873,10 @@ function CollapsibleResourceNavigation({
|
|
|
38836
38873
|
}
|
|
38837
38874
|
|
|
38838
38875
|
// src/components/modals/ReferenceWizardModal.tsx
|
|
38839
|
-
import { useState as
|
|
38876
|
+
import { useState as useState43, useEffect as useEffect47, useCallback as useCallback33 } from "react";
|
|
38840
38877
|
|
|
38841
38878
|
// src/components/modals/GatherContextStep.tsx
|
|
38842
|
-
import { useState as
|
|
38879
|
+
import { useState as useState40, useEffect as useEffect46, useRef as useRef33 } from "react";
|
|
38843
38880
|
|
|
38844
38881
|
// src/components/modals/ContextSummary.tsx
|
|
38845
38882
|
import { deriveViews } from "@semiont/core";
|
|
@@ -38906,12 +38943,12 @@ function GatherContextStep({
|
|
|
38906
38943
|
onCompose,
|
|
38907
38944
|
translations: t12
|
|
38908
38945
|
}) {
|
|
38909
|
-
const [sourceExpanded, setSourceExpanded] =
|
|
38946
|
+
const [sourceExpanded, setSourceExpanded] = useState40(false);
|
|
38910
38947
|
const contextReady = !contextLoading && !contextError && !!context;
|
|
38911
38948
|
const focus = context?.focus.kind === "annotation" ? context.focus : null;
|
|
38912
38949
|
const resourceFocus = context?.focus.kind === "resource" ? context.focus : null;
|
|
38913
38950
|
const highlightRef = useRef33(null);
|
|
38914
|
-
|
|
38951
|
+
useEffect46(() => {
|
|
38915
38952
|
if (highlightRef.current) {
|
|
38916
38953
|
highlightRef.current.scrollIntoView({ block: "center", behavior: "instant" });
|
|
38917
38954
|
}
|
|
@@ -39052,7 +39089,7 @@ function GatherContextStep({
|
|
|
39052
39089
|
}
|
|
39053
39090
|
|
|
39054
39091
|
// src/components/modals/ConfigureGenerationStep.tsx
|
|
39055
|
-
import { useState as
|
|
39092
|
+
import { useState as useState41 } from "react";
|
|
39056
39093
|
import { LOCALES as LOCALES2 } from "@semiont/core";
|
|
39057
39094
|
import { jsx as jsx53, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
39058
39095
|
function ConfigureGenerationStep({
|
|
@@ -39064,12 +39101,12 @@ function ConfigureGenerationStep({
|
|
|
39064
39101
|
onGenerate,
|
|
39065
39102
|
translations: t12
|
|
39066
39103
|
}) {
|
|
39067
|
-
const [title, setTitle] =
|
|
39068
|
-
const [storagePath, setStoragePath] =
|
|
39069
|
-
const [prompt, setPrompt] =
|
|
39070
|
-
const [language2, setLanguage] =
|
|
39071
|
-
const [temperature, setTemperature] =
|
|
39072
|
-
const [maxTokens, setMaxTokens] =
|
|
39104
|
+
const [title, setTitle] = useState41(defaultTitle);
|
|
39105
|
+
const [storagePath, setStoragePath] = useState41("");
|
|
39106
|
+
const [prompt, setPrompt] = useState41("");
|
|
39107
|
+
const [language2, setLanguage] = useState41(locale);
|
|
39108
|
+
const [temperature, setTemperature] = useState41(0.7);
|
|
39109
|
+
const [maxTokens, setMaxTokens] = useState41(500);
|
|
39073
39110
|
const handleSubmit = (e6) => {
|
|
39074
39111
|
e6.preventDefault();
|
|
39075
39112
|
const trimmedPrompt = prompt.trim();
|
|
@@ -39228,7 +39265,7 @@ function ConfigureGenerationStep({
|
|
|
39228
39265
|
}
|
|
39229
39266
|
|
|
39230
39267
|
// src/components/modals/ConfigureSearchStep.tsx
|
|
39231
|
-
import { useState as
|
|
39268
|
+
import { useState as useState42 } from "react";
|
|
39232
39269
|
import { jsx as jsx54, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
39233
39270
|
function ConfigureSearchStep({
|
|
39234
39271
|
isSearching = false,
|
|
@@ -39237,8 +39274,8 @@ function ConfigureSearchStep({
|
|
|
39237
39274
|
onSearch,
|
|
39238
39275
|
translations: t12
|
|
39239
39276
|
}) {
|
|
39240
|
-
const [limit, setLimit] =
|
|
39241
|
-
const [useSemanticScoring, setUseSemanticScoring] =
|
|
39277
|
+
const [limit, setLimit] = useState42(10);
|
|
39278
|
+
const [useSemanticScoring, setUseSemanticScoring] = useState42(true);
|
|
39242
39279
|
const handleSubmit = (e6) => {
|
|
39243
39280
|
e6.preventDefault();
|
|
39244
39281
|
onSearch({ limit, useSemanticScoring });
|
|
@@ -39430,10 +39467,10 @@ function ReferenceWizardModal({
|
|
|
39430
39467
|
translations: t12
|
|
39431
39468
|
}) {
|
|
39432
39469
|
const session = useObservable(useSemiont().activeSession$);
|
|
39433
|
-
const [wizardStep, setWizardStep] =
|
|
39434
|
-
const [isSearching, setIsSearching] =
|
|
39435
|
-
const [userHint, setUserHint] =
|
|
39436
|
-
|
|
39470
|
+
const [wizardStep, setWizardStep] = useState43({ step: "gather" });
|
|
39471
|
+
const [isSearching, setIsSearching] = useState43(false);
|
|
39472
|
+
const [userHint, setUserHint] = useState43("");
|
|
39473
|
+
useEffect47(() => {
|
|
39437
39474
|
if (isOpen) {
|
|
39438
39475
|
setWizardStep({ step: "gather" });
|
|
39439
39476
|
setIsSearching(false);
|
|
@@ -39622,16 +39659,16 @@ function ReferenceWizardModal({
|
|
|
39622
39659
|
}
|
|
39623
39660
|
|
|
39624
39661
|
// src/components/modals/ResourceGenerateModal.tsx
|
|
39625
|
-
import { useState as
|
|
39662
|
+
import { useState as useState45, useEffect as useEffect48, useCallback as useCallback34 } from "react";
|
|
39626
39663
|
|
|
39627
39664
|
// src/components/modals/ConfigureGatherStep.tsx
|
|
39628
|
-
import { useState as
|
|
39665
|
+
import { useState as useState44 } from "react";
|
|
39629
39666
|
import { jsx as jsx57, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
39630
39667
|
function ConfigureGatherStep({ defaults, onGather, onCancel, translations: t12, children }) {
|
|
39631
|
-
const [includeContent, setIncludeContent] =
|
|
39632
|
-
const [includeSummary, setIncludeSummary] =
|
|
39633
|
-
const [depth, setDepth] =
|
|
39634
|
-
const [maxResources, setMaxResources] =
|
|
39668
|
+
const [includeContent, setIncludeContent] = useState44(defaults?.includeContent ?? true);
|
|
39669
|
+
const [includeSummary, setIncludeSummary] = useState44(defaults?.includeSummary ?? true);
|
|
39670
|
+
const [depth, setDepth] = useState44(defaults?.depth ?? 2);
|
|
39671
|
+
const [maxResources, setMaxResources] = useState44(defaults?.maxResources ?? 10);
|
|
39635
39672
|
const handleSubmit = (e6) => {
|
|
39636
39673
|
e6.preventDefault();
|
|
39637
39674
|
onGather({ includeContent, includeSummary, depth, maxResources });
|
|
@@ -39704,12 +39741,12 @@ function ResourceGenerateModal({
|
|
|
39704
39741
|
onGenerateSubmit,
|
|
39705
39742
|
translations: t12
|
|
39706
39743
|
}) {
|
|
39707
|
-
const [step, setStep] =
|
|
39744
|
+
const [step, setStep] = useState45("configure-gather");
|
|
39708
39745
|
const { context, loading, error, gather, reset } = useResourceGather();
|
|
39709
39746
|
const client = useObservable(useSemiont().activeSession$)?.client;
|
|
39710
39747
|
const entityTypeOptions = useObservable(client?.browse.entityTypes()) ?? [];
|
|
39711
|
-
const [excludeEntityTypes, setExcludeEntityTypes] =
|
|
39712
|
-
|
|
39748
|
+
const [excludeEntityTypes, setExcludeEntityTypes] = useState45([]);
|
|
39749
|
+
useEffect48(() => {
|
|
39713
39750
|
if (isOpen) {
|
|
39714
39751
|
setStep("configure-gather");
|
|
39715
39752
|
setExcludeEntityTypes([]);
|
|
@@ -39875,7 +39912,7 @@ function ResourceGenerateModal({
|
|
|
39875
39912
|
}
|
|
39876
39913
|
|
|
39877
39914
|
// src/components/modals/SearchModal.tsx
|
|
39878
|
-
import { useState as
|
|
39915
|
+
import { useState as useState46, useEffect as useEffect49, useRef as useRef34 } from "react";
|
|
39879
39916
|
var import_operators = __toESM(require_operators(), 1);
|
|
39880
39917
|
import { getResourceId } from "@semiont/core";
|
|
39881
39918
|
import { createSearchPipeline } from "@semiont/sdk";
|
|
@@ -39924,7 +39961,7 @@ function SearchModal({
|
|
|
39924
39961
|
const semiont = useObservable(useSemiont().activeSession$)?.client;
|
|
39925
39962
|
const semiontRef = useRef34(semiont);
|
|
39926
39963
|
semiontRef.current = semiont;
|
|
39927
|
-
const [selectedIndex, setSelectedIndex] =
|
|
39964
|
+
const [selectedIndex, setSelectedIndex] = useState46(0);
|
|
39928
39965
|
const t12 = {
|
|
39929
39966
|
placeholder: translations.placeholder || "Search resources, entities...",
|
|
39930
39967
|
searching: translations.searching || "Searching...",
|
|
@@ -39936,7 +39973,7 @@ function SearchModal({
|
|
|
39936
39973
|
enter: translations.enter || "Enter",
|
|
39937
39974
|
esc: translations.esc || "ESC"
|
|
39938
39975
|
};
|
|
39939
|
-
const [pipeline] =
|
|
39976
|
+
const [pipeline] = useState46(
|
|
39940
39977
|
() => createSearchPipeline(
|
|
39941
39978
|
(q2) => semiontRef.current.browse.resources({ search: q2, limit: SEARCH_LIMIT }).pipe(
|
|
39942
39979
|
(0, import_operators.map)((resources) => {
|
|
@@ -39956,21 +39993,21 @@ function SearchModal({
|
|
|
39956
39993
|
{ debounceMs: SEARCH_DEBOUNCE_MS }
|
|
39957
39994
|
)
|
|
39958
39995
|
);
|
|
39959
|
-
|
|
39996
|
+
useEffect49(() => () => pipeline.dispose(), [pipeline]);
|
|
39960
39997
|
const query = useObservable(pipeline.query$) ?? "";
|
|
39961
39998
|
const searchState = useObservable(pipeline.state$);
|
|
39962
39999
|
const results = searchState?.results ?? [];
|
|
39963
40000
|
const loading = searchState?.isSearching ?? false;
|
|
39964
|
-
|
|
40001
|
+
useEffect49(() => {
|
|
39965
40002
|
if (isOpen) {
|
|
39966
40003
|
pipeline.setQuery("");
|
|
39967
40004
|
setSelectedIndex(0);
|
|
39968
40005
|
}
|
|
39969
40006
|
}, [isOpen, pipeline]);
|
|
39970
|
-
|
|
40007
|
+
useEffect49(() => {
|
|
39971
40008
|
setSelectedIndex(0);
|
|
39972
40009
|
}, [results.length]);
|
|
39973
|
-
|
|
40010
|
+
useEffect49(() => {
|
|
39974
40011
|
if (!query.trim()) return;
|
|
39975
40012
|
if (loading) {
|
|
39976
40013
|
announceSearching();
|
|
@@ -40086,7 +40123,7 @@ function SearchModal({
|
|
|
40086
40123
|
}
|
|
40087
40124
|
|
|
40088
40125
|
// src/components/modals/ResourceSearchModal.tsx
|
|
40089
|
-
import { useState as
|
|
40126
|
+
import { useState as useState47, useEffect as useEffect50, useRef as useRef35 } from "react";
|
|
40090
40127
|
var import_operators2 = __toESM(require_operators(), 1);
|
|
40091
40128
|
import { getResourceId as getResourceId2, getPrimaryRepresentation } from "@semiont/core";
|
|
40092
40129
|
import { createSearchPipeline as createSearchPipeline2 } from "@semiont/sdk";
|
|
@@ -40122,7 +40159,7 @@ function ResourceSearchModal({
|
|
|
40122
40159
|
noResults: translations.noResults || "No documents found",
|
|
40123
40160
|
close: translations.close || "\u2715"
|
|
40124
40161
|
};
|
|
40125
|
-
const [pipeline] =
|
|
40162
|
+
const [pipeline] = useState47(
|
|
40126
40163
|
() => createSearchPipeline2(
|
|
40127
40164
|
(q2) => semiontRef.current.browse.resources({ search: q2, limit: SEARCH_LIMIT2 }).pipe(
|
|
40128
40165
|
(0, import_operators2.map)((resources) => {
|
|
@@ -40133,17 +40170,17 @@ function ResourceSearchModal({
|
|
|
40133
40170
|
{ debounceMs: SEARCH_DEBOUNCE_MS2, initialQuery: searchTerm }
|
|
40134
40171
|
)
|
|
40135
40172
|
);
|
|
40136
|
-
|
|
40173
|
+
useEffect50(() => () => pipeline.dispose(), [pipeline]);
|
|
40137
40174
|
const search = useObservable(pipeline.query$) ?? "";
|
|
40138
40175
|
const searchState = useObservable(pipeline.state$);
|
|
40139
40176
|
const results = searchState?.results ?? [];
|
|
40140
40177
|
const loading = searchState?.isSearching ?? false;
|
|
40141
|
-
|
|
40178
|
+
useEffect50(() => {
|
|
40142
40179
|
if (isOpen && searchTerm) {
|
|
40143
40180
|
pipeline.setQuery(searchTerm);
|
|
40144
40181
|
}
|
|
40145
40182
|
}, [isOpen, searchTerm, pipeline]);
|
|
40146
|
-
|
|
40183
|
+
useEffect50(() => {
|
|
40147
40184
|
if (!search.trim()) return;
|
|
40148
40185
|
if (loading) {
|
|
40149
40186
|
announceSearching();
|
|
@@ -40263,7 +40300,7 @@ function SkipLinks() {
|
|
|
40263
40300
|
}
|
|
40264
40301
|
|
|
40265
40302
|
// src/components/StatusDisplay.tsx
|
|
40266
|
-
import { useEffect as
|
|
40303
|
+
import { useEffect as useEffect51, useState as useState48 } from "react";
|
|
40267
40304
|
import { jsx as jsx62, jsxs as jsxs54 } from "react/jsx-runtime";
|
|
40268
40305
|
function StatusDisplay({
|
|
40269
40306
|
isFullyAuthenticated = false,
|
|
@@ -40271,10 +40308,10 @@ function StatusDisplay({
|
|
|
40271
40308
|
hasValidBackendToken = false
|
|
40272
40309
|
}) {
|
|
40273
40310
|
const semiont = useObservable(useSemiont().activeSession$)?.client;
|
|
40274
|
-
const [data2, setData] =
|
|
40275
|
-
const [loading, setLoading] =
|
|
40276
|
-
const [error, setError] =
|
|
40277
|
-
|
|
40311
|
+
const [data2, setData] = useState48(null);
|
|
40312
|
+
const [loading, setLoading] = useState48(true);
|
|
40313
|
+
const [error, setError] = useState48(null);
|
|
40314
|
+
useEffect51(() => {
|
|
40278
40315
|
if (!semiont) {
|
|
40279
40316
|
setLoading(false);
|
|
40280
40317
|
return;
|
|
@@ -40366,11 +40403,11 @@ function SessionTimer() {
|
|
|
40366
40403
|
}
|
|
40367
40404
|
|
|
40368
40405
|
// src/components/SessionExpiryBanner.tsx
|
|
40369
|
-
import { useState as
|
|
40406
|
+
import { useState as useState49 } from "react";
|
|
40370
40407
|
import { jsx as jsx63, jsxs as jsxs56 } from "react/jsx-runtime";
|
|
40371
40408
|
function SessionExpiryBanner() {
|
|
40372
40409
|
const { timeRemaining, isExpiringSoon } = useSessionExpiry();
|
|
40373
|
-
const [dismissed, setDismissed] =
|
|
40410
|
+
const [dismissed, setDismissed] = useState49(false);
|
|
40374
40411
|
const formattedTime = formatTime(timeRemaining);
|
|
40375
40412
|
if (!isExpiringSoon || dismissed || !formattedTime) {
|
|
40376
40413
|
return null;
|
|
@@ -40591,7 +40628,7 @@ function UnifiedHeader({
|
|
|
40591
40628
|
}
|
|
40592
40629
|
|
|
40593
40630
|
// src/components/layout/LeftSidebar.tsx
|
|
40594
|
-
import { useState as
|
|
40631
|
+
import { useState as useState50, useEffect as useEffect52 } from "react";
|
|
40595
40632
|
import { jsx as jsx67, jsxs as jsxs59 } from "react/jsx-runtime";
|
|
40596
40633
|
function LeftSidebar({
|
|
40597
40634
|
Link,
|
|
@@ -40606,7 +40643,7 @@ function LeftSidebar({
|
|
|
40606
40643
|
isModerator = false,
|
|
40607
40644
|
currentPath
|
|
40608
40645
|
}) {
|
|
40609
|
-
const [isCollapsed, setIsCollapsed] =
|
|
40646
|
+
const [isCollapsed, setIsCollapsed] = useState50(false);
|
|
40610
40647
|
const { width, setWidth, minWidth, maxWidth } = usePanelWidth({
|
|
40611
40648
|
defaultWidth: 256,
|
|
40612
40649
|
// 16rem
|
|
@@ -40616,7 +40653,7 @@ function LeftSidebar({
|
|
|
40616
40653
|
// 25rem
|
|
40617
40654
|
storageKey: "semiont-left-sidebar-width"
|
|
40618
40655
|
});
|
|
40619
|
-
|
|
40656
|
+
useEffect52(() => {
|
|
40620
40657
|
if (collapsible) {
|
|
40621
40658
|
const saved = localStorage.getItem(storageKey);
|
|
40622
40659
|
if (saved === "true") {
|
|
@@ -41579,7 +41616,7 @@ function ExportCard({ onExport, isExporting, translations: t12 }) {
|
|
|
41579
41616
|
}
|
|
41580
41617
|
|
|
41581
41618
|
// src/features/admin-exchange/components/ImportCard.tsx
|
|
41582
|
-
import { useRef as useRef36, useState as
|
|
41619
|
+
import { useRef as useRef36, useState as useState51, useCallback as useCallback36 } from "react";
|
|
41583
41620
|
import { jsx as jsx76, jsxs as jsxs66 } from "react/jsx-runtime";
|
|
41584
41621
|
function ImportCard({
|
|
41585
41622
|
onFileSelected,
|
|
@@ -41591,8 +41628,8 @@ function ImportCard({
|
|
|
41591
41628
|
translations: t12
|
|
41592
41629
|
}) {
|
|
41593
41630
|
const fileInputRef = useRef36(null);
|
|
41594
|
-
const [isDragActive, setIsDragActive] =
|
|
41595
|
-
const [showConfirm, setShowConfirm] =
|
|
41631
|
+
const [isDragActive, setIsDragActive] = useState51(false);
|
|
41632
|
+
const [showConfirm, setShowConfirm] = useState51(false);
|
|
41596
41633
|
const handleDragOver = useCallback36((e6) => {
|
|
41597
41634
|
e6.preventDefault();
|
|
41598
41635
|
setIsDragActive(true);
|
|
@@ -42005,7 +42042,7 @@ function LinkedDataPage({
|
|
|
42005
42042
|
}
|
|
42006
42043
|
|
|
42007
42044
|
// src/features/admin-users/components/AdminUsersPage.tsx
|
|
42008
|
-
import { useState as
|
|
42045
|
+
import { useState as useState52 } from "react";
|
|
42009
42046
|
import { Fragment as Fragment14, jsx as jsx81, jsxs as jsxs71 } from "react/jsx-runtime";
|
|
42010
42047
|
function UserTableRow({
|
|
42011
42048
|
user,
|
|
@@ -42087,9 +42124,9 @@ function AdminUsersPage({
|
|
|
42087
42124
|
Toolbar: Toolbar2,
|
|
42088
42125
|
buttonStyles: buttonStyles2
|
|
42089
42126
|
}) {
|
|
42090
|
-
const [searchTerm, setSearchTerm] =
|
|
42091
|
-
const [selectedRole, setSelectedRole] =
|
|
42092
|
-
const [selectedStatus, setSelectedStatus] =
|
|
42127
|
+
const [searchTerm, setSearchTerm] = useState52("");
|
|
42128
|
+
const [selectedRole, setSelectedRole] = useState52("all");
|
|
42129
|
+
const [selectedStatus, setSelectedStatus] = useState52("all");
|
|
42093
42130
|
const filteredUsers = users.filter((user) => {
|
|
42094
42131
|
const matchesSearch = (user.name || "").toLowerCase().includes(searchTerm.toLowerCase()) || user.email.toLowerCase().includes(searchTerm.toLowerCase());
|
|
42095
42132
|
const userRole = user.isAdmin ? "admin" : "user";
|
|
@@ -42477,7 +42514,7 @@ function SignInForm({
|
|
|
42477
42514
|
}
|
|
42478
42515
|
|
|
42479
42516
|
// src/features/auth/components/SignUpForm.tsx
|
|
42480
|
-
import { useState as
|
|
42517
|
+
import { useState as useState53 } from "react";
|
|
42481
42518
|
import { jsx as jsx83, jsxs as jsxs73 } from "react/jsx-runtime";
|
|
42482
42519
|
function GoogleIcon2() {
|
|
42483
42520
|
return /* @__PURE__ */ jsxs73("svg", { className: "semiont-icon semiont-icon--small semiont-icon--inline", viewBox: "0 0 24 24", children: [
|
|
@@ -42512,7 +42549,7 @@ function GoogleIcon2() {
|
|
|
42512
42549
|
] });
|
|
42513
42550
|
}
|
|
42514
42551
|
function SignUpForm({ onSignUp, Link, translations: t12 }) {
|
|
42515
|
-
const [isLoading, setIsLoading] =
|
|
42552
|
+
const [isLoading, setIsLoading] = useState53(false);
|
|
42516
42553
|
const handleSignUp = async () => {
|
|
42517
42554
|
setIsLoading(true);
|
|
42518
42555
|
try {
|
|
@@ -42969,7 +43006,7 @@ function TagSchemasPage({
|
|
|
42969
43006
|
}
|
|
42970
43007
|
|
|
42971
43008
|
// src/features/resource-compose/components/ResourceComposePage.tsx
|
|
42972
|
-
import { useState as
|
|
43009
|
+
import { useState as useState54, useEffect as useEffect53 } from "react";
|
|
42973
43010
|
import { deriveViews as deriveViews2 } from "@semiont/core";
|
|
42974
43011
|
import { capabilitiesOf as capabilitiesOf5, AUTHORABLE_MEDIA_TYPES, MEDIA_TYPES, mediaTypeForExtension, isSupportedMediaType, LOCALES as LOCALES3 } from "@semiont/core";
|
|
42975
43012
|
|
|
@@ -43072,20 +43109,20 @@ function ResourceComposePage({
|
|
|
43072
43109
|
Toolbar: Toolbar2
|
|
43073
43110
|
}) {
|
|
43074
43111
|
const { announceFormSubmitting, announceFormSuccess, announceFormError } = useFormAnnouncements();
|
|
43075
|
-
const [newResourceName, setNewResourceName] =
|
|
43076
|
-
const [newResourceContent, setNewResourceContent] =
|
|
43077
|
-
const [selectedEntityTypes, setSelectedEntityTypes] =
|
|
43078
|
-
const [isCreating, setIsCreating] =
|
|
43079
|
-
const [inputMethod, setInputMethod] =
|
|
43080
|
-
const [uploadedFile, setUploadedFile] =
|
|
43081
|
-
const [fileMimeType, setFileMimeType] =
|
|
43082
|
-
const [filePreviewUrl, setFilePreviewUrl] =
|
|
43083
|
-
const [selectedFormat, setSelectedFormat] =
|
|
43084
|
-
const [selectedLanguage, setSelectedLanguage] =
|
|
43085
|
-
const [selectedCharset, setSelectedCharset] =
|
|
43086
|
-
const [storagePath, setStoragePath] =
|
|
43087
|
-
const [archiveOriginal, setArchiveOriginal] =
|
|
43088
|
-
|
|
43112
|
+
const [newResourceName, setNewResourceName] = useState54("");
|
|
43113
|
+
const [newResourceContent, setNewResourceContent] = useState54("");
|
|
43114
|
+
const [selectedEntityTypes, setSelectedEntityTypes] = useState54([]);
|
|
43115
|
+
const [isCreating, setIsCreating] = useState54(false);
|
|
43116
|
+
const [inputMethod, setInputMethod] = useState54("write");
|
|
43117
|
+
const [uploadedFile, setUploadedFile] = useState54(null);
|
|
43118
|
+
const [fileMimeType, setFileMimeType] = useState54("text/markdown");
|
|
43119
|
+
const [filePreviewUrl, setFilePreviewUrl] = useState54(null);
|
|
43120
|
+
const [selectedFormat, setSelectedFormat] = useState54("text/markdown");
|
|
43121
|
+
const [selectedLanguage, setSelectedLanguage] = useState54(initialLocale);
|
|
43122
|
+
const [selectedCharset, setSelectedCharset] = useState54("");
|
|
43123
|
+
const [storagePath, setStoragePath] = useState54("");
|
|
43124
|
+
const [archiveOriginal, setArchiveOriginal] = useState54(true);
|
|
43125
|
+
useEffect53(() => {
|
|
43089
43126
|
if (mode === "clone" && cloneData) {
|
|
43090
43127
|
setNewResourceName(cloneData.sourceResource.name);
|
|
43091
43128
|
setNewResourceContent(cloneData.sourceContent);
|
|
@@ -43120,7 +43157,7 @@ function ResourceComposePage({
|
|
|
43120
43157
|
reader.readAsText(file);
|
|
43121
43158
|
}
|
|
43122
43159
|
};
|
|
43123
|
-
|
|
43160
|
+
useEffect53(() => {
|
|
43124
43161
|
return () => {
|
|
43125
43162
|
if (filePreviewUrl) {
|
|
43126
43163
|
URL.revokeObjectURL(filePreviewUrl);
|
|
@@ -43753,7 +43790,7 @@ function ResourceDiscoveryPage({
|
|
|
43753
43790
|
}
|
|
43754
43791
|
|
|
43755
43792
|
// src/features/resource-viewer/components/ResourceViewerPage.tsx
|
|
43756
|
-
import { useState as
|
|
43793
|
+
import { useState as useState55, useEffect as useEffect54, useCallback as useCallback38 } from "react";
|
|
43757
43794
|
import { annotationId } from "@semiont/core";
|
|
43758
43795
|
import { getLanguage, getPrimaryRepresentation as getPrimaryRepresentation2, getPrimaryMediaType as getPrimaryMediaType2, capabilitiesOf as capabilitiesOf6 } from "@semiont/core";
|
|
43759
43796
|
|
|
@@ -43914,7 +43951,7 @@ function ResourceViewerPage({
|
|
|
43914
43951
|
const renderMode = capabilitiesOf6(resourceMediaType)?.render;
|
|
43915
43952
|
const isBinary = renderMode === "image" || renderMode === "pdf";
|
|
43916
43953
|
const { content: textContent, loading: textLoading, error: contentError } = useResourceContent(semiont ?? null, rUri, resource, !isBinary);
|
|
43917
|
-
|
|
43954
|
+
useEffect54(() => {
|
|
43918
43955
|
if (contentError) showError("Failed to load resource representation");
|
|
43919
43956
|
}, [contentError, showError]);
|
|
43920
43957
|
const { token: mediaToken, loading: mediaTokenLoading } = useMediaToken(semiont ?? null, rUri);
|
|
@@ -43947,7 +43984,7 @@ function ResourceViewerPage({
|
|
|
43947
43984
|
const wizardResourceId = wizardState?.resourceId ?? null;
|
|
43948
43985
|
const wizardDefaultTitle = wizardState?.defaultTitle ?? "";
|
|
43949
43986
|
const wizardEntityTypes = wizardState?.entityTypes ?? [];
|
|
43950
|
-
const [generateOpen, setGenerateOpen] =
|
|
43987
|
+
const [generateOpen, setGenerateOpen] = useState55(false);
|
|
43951
43988
|
const handleWizardClose = useCallback38(() => {
|
|
43952
43989
|
stateUnit.closeWizard();
|
|
43953
43990
|
}, [stateUnit]);
|
|
@@ -44005,7 +44042,7 @@ function ResourceViewerPage({
|
|
|
44005
44042
|
reason: "compose-from-wizard"
|
|
44006
44043
|
});
|
|
44007
44044
|
}, [session]);
|
|
44008
|
-
|
|
44045
|
+
useEffect54(() => {
|
|
44009
44046
|
if (resource && rUri) {
|
|
44010
44047
|
const mediaType = getPrimaryMediaType2(resource);
|
|
44011
44048
|
browser2.addOpenResource(rUri, resource.name, mediaType || void 0, resource.storageUri);
|
|
@@ -44014,7 +44051,7 @@ function ResourceViewerPage({
|
|
|
44014
44051
|
}
|
|
44015
44052
|
}
|
|
44016
44053
|
}, [resource, rUri, browser2]);
|
|
44017
|
-
|
|
44054
|
+
useEffect54(() => {
|
|
44018
44055
|
if (pendingAnnotation) {
|
|
44019
44056
|
browser2.emit("panel:open", { panel: "annotations" });
|
|
44020
44057
|
}
|
|
@@ -44114,7 +44151,7 @@ function ResourceViewerPage({
|
|
|
44114
44151
|
announceResourceLoading,
|
|
44115
44152
|
announceResourceLoaded
|
|
44116
44153
|
} = useResourceLoadingAnnouncements();
|
|
44117
|
-
|
|
44154
|
+
useEffect54(() => {
|
|
44118
44155
|
if (contentLoading) {
|
|
44119
44156
|
announceResourceLoading(resource.name);
|
|
44120
44157
|
} else if (content2) {
|
|
@@ -45029,6 +45066,7 @@ export {
|
|
|
45029
45066
|
useHoverDelay,
|
|
45030
45067
|
useHoverEmitter,
|
|
45031
45068
|
useIsTyping,
|
|
45069
|
+
useKBDiscovery,
|
|
45032
45070
|
useKeyboardShortcuts,
|
|
45033
45071
|
useLanguageChangeAnnouncements,
|
|
45034
45072
|
useLineNumbers,
|