dsh-figmark 1.2.4 → 1.2.5
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/CHANGELOG.md +17 -0
- package/lib/client.js +255 -174
- package/market/index.json +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.2.5 — 2026-11-07
|
|
4
|
+
|
|
5
|
+
本版修正本机网页元素标注的重新编辑与删除,并整理待发送标注卡片的展开和附件行为。
|
|
6
|
+
|
|
7
|
+
### Improved
|
|
8
|
+
|
|
9
|
+
- 元素评论框收起后,直接点击页面上已标注的元素外框即可重新打开。
|
|
10
|
+
- 元素评论框增加删除按钮,删除后可通过原有的撤销操作恢复。
|
|
11
|
+
- 待发送标注卡片在原位置展开和收起;卡片标题、箭头与整块标题区域都可操作,展开后不再嵌套第二张卡片。
|
|
12
|
+
- 本机网页上的长元素名称会限制在标注标签宽度内,中文名称不再溢出。
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
|
|
16
|
+
- 修复文字标注在原生输入框中使用 `annotation.txt` 作为发送占位时,会把该文件显示成多余附件的问题。
|
|
17
|
+
- 空输入直接发送仍会使用输入框的发送按钮;临时准入资源会在提交前移除,不会进入实际消息。
|
|
18
|
+
- 对齐元素评论框内删除按钮与另外两个操作按钮的宽高。
|
|
19
|
+
|
|
3
20
|
## 1.2.4 — 2026-11-06
|
|
4
21
|
|
|
5
22
|
本版统一批注卡片的预览与发送方式,修复缩放网页导出错位,并改进本机网页的检索和状态保留。
|
package/lib/client.js
CHANGED
|
@@ -3988,6 +3988,7 @@ window.__ModuleLoader__.load({
|
|
|
3988
3988
|
style: { pointerEvents: "none" },
|
|
3989
3989
|
children: [boxed ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("rect", {
|
|
3990
3990
|
"data-da-element-box": mark.id,
|
|
3991
|
+
onPointerDown: props.onPress,
|
|
3991
3992
|
x: box.x,
|
|
3992
3993
|
y: box.y,
|
|
3993
3994
|
width: box.width,
|
|
@@ -4019,7 +4020,8 @@ window.__ModuleLoader__.load({
|
|
|
4019
4020
|
const code = elideCode(anchorCodeName(mark.anchor));
|
|
4020
4021
|
const pad = 4 * unit;
|
|
4021
4022
|
const fontSize = CODE_FONT_SIZE * unit;
|
|
4022
|
-
const
|
|
4023
|
+
const advance = Array.from(code).reduce((sum, char) => sum + (char.charCodeAt(0) > 255 ? 1 : .62), 0);
|
|
4024
|
+
const width = Math.min(advance * fontSize + pad * 2, Math.max(pad * 2, paper.right - paper.left));
|
|
4023
4025
|
const height = fontSize + pad * 1.6;
|
|
4024
4026
|
const gap = 4 * unit;
|
|
4025
4027
|
const limit = Math.max(paper.left, paper.right - width);
|
|
@@ -4037,17 +4039,27 @@ window.__ModuleLoader__.load({
|
|
|
4037
4039
|
fillOpacity: .94,
|
|
4038
4040
|
stroke: mark.color,
|
|
4039
4041
|
strokeWidth: 1.2 * unit
|
|
4040
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("
|
|
4041
|
-
"data-da-element-code": mark.id,
|
|
4042
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("foreignObject", {
|
|
4042
4043
|
x: x + pad,
|
|
4043
|
-
y
|
|
4044
|
-
|
|
4045
|
-
|
|
4046
|
-
|
|
4047
|
-
|
|
4048
|
-
|
|
4049
|
-
|
|
4050
|
-
|
|
4044
|
+
y,
|
|
4045
|
+
width: Math.max(0, width - pad * 2),
|
|
4046
|
+
height,
|
|
4047
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
4048
|
+
"data-da-element-code": mark.id,
|
|
4049
|
+
title: anchorCodeName(mark.anchor),
|
|
4050
|
+
style: {
|
|
4051
|
+
display: "block",
|
|
4052
|
+
overflow: "hidden",
|
|
4053
|
+
textOverflow: "ellipsis",
|
|
4054
|
+
whiteSpace: "nowrap",
|
|
4055
|
+
fontFamily: CODE_FONT_FAMILY,
|
|
4056
|
+
fontSize,
|
|
4057
|
+
fontWeight: 600,
|
|
4058
|
+
color: CODE_TEXT_COLOR,
|
|
4059
|
+
lineHeight: `${height}px`
|
|
4060
|
+
},
|
|
4061
|
+
children: code
|
|
4062
|
+
})
|
|
4051
4063
|
})] });
|
|
4052
4064
|
}
|
|
4053
4065
|
/** One mark: its shape, its hit area, and whatever its selection asks for. */
|
|
@@ -4138,7 +4150,10 @@ window.__ModuleLoader__.load({
|
|
|
4138
4150
|
bottom: -props.originY + props.height - 2
|
|
4139
4151
|
},
|
|
4140
4152
|
boxed: props.elementExtent === "box",
|
|
4141
|
-
named: selected
|
|
4153
|
+
named: selected,
|
|
4154
|
+
onPress: (event) => {
|
|
4155
|
+
onPressMark(mark, event);
|
|
4156
|
+
}
|
|
4142
4157
|
}),
|
|
4143
4158
|
selected && !isDraft && isPoint ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FixedFrame, {
|
|
4144
4159
|
box: pointMarkBox(shown, unit),
|
|
@@ -4981,22 +4996,34 @@ window.__ModuleLoader__.load({
|
|
|
4981
4996
|
try {
|
|
4982
4997
|
live = shell.snapshot;
|
|
4983
4998
|
} catch {
|
|
4984
|
-
for (const claim of claims)
|
|
4999
|
+
for (const claim of claims) {
|
|
5000
|
+
claim.armed.admission?.release();
|
|
5001
|
+
claim.done();
|
|
5002
|
+
}
|
|
4985
5003
|
return;
|
|
4986
5004
|
}
|
|
4987
5005
|
if (live.phase !== void 0 && live.phase !== "plain") {
|
|
4988
|
-
for (const claim of claims)
|
|
5006
|
+
for (const claim of claims) {
|
|
5007
|
+
claim.armed.admission?.release();
|
|
5008
|
+
claim.done();
|
|
5009
|
+
}
|
|
4989
5010
|
return;
|
|
4990
5011
|
}
|
|
4991
5012
|
const draft = live.draft;
|
|
4992
5013
|
if (claims.every((claim) => !draft.includes(claim.armed.text))) {
|
|
4993
|
-
for (const claim of claims)
|
|
5014
|
+
for (const claim of claims) {
|
|
5015
|
+
claim.armed.admission?.release();
|
|
5016
|
+
claim.done();
|
|
5017
|
+
}
|
|
4994
5018
|
return;
|
|
4995
5019
|
}
|
|
4996
5020
|
try {
|
|
4997
5021
|
shell.setDraft(merge.typed);
|
|
4998
5022
|
} catch {}
|
|
4999
|
-
for (const claim of claims)
|
|
5023
|
+
for (const claim of claims) {
|
|
5024
|
+
if (claim.armed.admission !== void 0) attach(shell, claim.armed.admission.ids.filter((id) => !live.attachmentIds?.includes(id)));
|
|
5025
|
+
if (claim.armed.staged !== true) for (const id of claim.armed.attachmentIds) shell.removeAttachment?.(id);
|
|
5026
|
+
}
|
|
5000
5027
|
}
|
|
5001
5028
|
/**
|
|
5002
5029
|
* Take one card off whatever patch its shell is currently carrying.
|
|
@@ -5068,6 +5095,7 @@ window.__ModuleLoader__.load({
|
|
|
5068
5095
|
}
|
|
5069
5096
|
const send = () => {
|
|
5070
5097
|
try {
|
|
5098
|
+
for (const claim of claims) for (const id of claim.armed.admission?.ids ?? []) if (shell.removeAttachment?.(id) !== true) return;
|
|
5071
5099
|
original.apply(shell, args);
|
|
5072
5100
|
} finally {
|
|
5073
5101
|
waiting = false;
|
|
@@ -5130,14 +5158,26 @@ window.__ModuleLoader__.load({
|
|
|
5130
5158
|
const pageCapture = input.pageCapture === "attached" && attached === 0 ? "failed" : input.pageCapture;
|
|
5131
5159
|
const message = buildAnnotationMessage(document_, paths, locale, attached > 0, Math.min(input.pageImages ?? 0, attached), pageCapture);
|
|
5132
5160
|
if (armed !== void 0 && input.conversation !== void 0) {
|
|
5133
|
-
const
|
|
5161
|
+
const admission = armed.attachmentIds.length === 0;
|
|
5162
|
+
const drafts = admission && armed.shell.removeAttachment !== void 0 ? holdFiles(input.conversation, sessionId, [new File([Uint8Array.from(atob("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII="), (char) => char.charCodeAt(0))], "figmark-draft.png", { type: "image/png" })]) : [];
|
|
5163
|
+
const ids = admission ? drafts.map((draft) => draft.id) : armed.attachmentIds;
|
|
5164
|
+
const conversation = input.conversation;
|
|
5134
5165
|
if (ids.length > 0 && attach(armed.shell, ids)) armed = {
|
|
5135
5166
|
...armed,
|
|
5136
5167
|
attachmentIds: ids,
|
|
5137
|
-
staged: true
|
|
5168
|
+
staged: true,
|
|
5169
|
+
...admission ? {
|
|
5170
|
+
previewUrls: drafts.flatMap((draft) => draft.previewUrl === void 0 ? [] : [draft.previewUrl]),
|
|
5171
|
+
admission: {
|
|
5172
|
+
ids,
|
|
5173
|
+
release: () => {
|
|
5174
|
+
for (const id of ids) conversation.releaseDraftAttachment?.(id);
|
|
5175
|
+
}
|
|
5176
|
+
}
|
|
5177
|
+
} : {}
|
|
5138
5178
|
};
|
|
5139
5179
|
else {
|
|
5140
|
-
for (const id of ids)
|
|
5180
|
+
for (const id of ids) conversation.releaseDraftAttachment?.(id);
|
|
5141
5181
|
armed = void 0;
|
|
5142
5182
|
}
|
|
5143
5183
|
}
|
|
@@ -8602,12 +8642,13 @@ body[data-ds-dark-theme] .da-root{--da-quiet:#9aa0a8}
|
|
|
8602
8642
|
/* The hand-off appears only once the field says something: an empty pill is a
|
|
8603
8643
|
place to type, not a decision to make. */
|
|
8604
8644
|
.da-comment-send{display:flex;align-items:center;gap:4px;flex:0 0 auto;padding-bottom:3px;padding-right:3px}
|
|
8645
|
+
.da-comment-remove{flex:0 0 30px;margin-bottom:3px}
|
|
8605
8646
|
.da-comment-send-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;
|
|
8606
8647
|
border:0;border-radius:50%;background:var(--dsw-alias-interactive-bg-hover,rgba(127,127,127,.12));
|
|
8607
8648
|
color:var(--dsw-alias-label-secondary,currentColor);cursor:pointer;padding:0}
|
|
8608
8649
|
.da-comment-send-btn:hover{background:var(--dsw-alias-interactive-bg-hover,rgba(127,127,127,.2));
|
|
8609
8650
|
color:var(--dsw-alias-label-primary,currentColor)}
|
|
8610
|
-
.da-comment-send-btn:disabled{opacity:.45;cursor:default}
|
|
8651
|
+
.da-comment-send-btn[aria-disabled="true"],.da-comment-send-btn:disabled{opacity:.45;cursor:default}
|
|
8611
8652
|
.da-comment-send-btn svg{width:15px;height:15px}
|
|
8612
8653
|
/* Both ways out of the pill are the same neutral chip. Which hand-off is "primary"
|
|
8613
8654
|
is the reader's judgement at the moment of sending, not something the panel gets to
|
|
@@ -8838,7 +8879,6 @@ body[data-ds-dark-theme] .da-root{--da-quiet:#9aa0a8}
|
|
|
8838
8879
|
.da-card-head{width:100%;box-sizing:border-box;border:0;text-align:left;display:flex;align-items:center;gap:8px;min-width:0;padding:7px 9px;
|
|
8839
8880
|
border-bottom:0.5px solid var(--dsw-alias-border-l2,rgba(128,128,128,.2));
|
|
8840
8881
|
background:var(--dsw-alias-bg-layer-1,rgba(128,128,128,.025))}
|
|
8841
|
-
.da-card-head-static{cursor:default}
|
|
8842
8882
|
.da-card-shot{position:relative;display:flex;flex:0 0 auto;align-items:center;justify-content:center;width:34px;height:34px;overflow:hidden;border-radius:7px;
|
|
8843
8883
|
border:0.5px solid var(--dsw-alias-border-l2,rgba(128,128,128,.18));
|
|
8844
8884
|
background:var(--dsw-alias-bg-layer-3,rgba(128,128,128,.1));color:var(--da-accent,#176df2)}
|
|
@@ -8986,7 +9026,17 @@ body[data-ds-dark-theme] .da-root{--da-quiet:#9aa0a8}
|
|
|
8986
9026
|
.da-card[data-expanded="true"] .da-card-name{white-space:normal;overflow-wrap:anywhere}
|
|
8987
9027
|
.da-card-target{overflow-wrap:anywhere}
|
|
8988
9028
|
.da-staged-type{font-size:9px;font-weight:650;letter-spacing:.04em;color:var(--dsw-alias-label-tertiary,inherit)}
|
|
8989
|
-
.da-staged-
|
|
9029
|
+
.da-staged-card[data-expanded="true"]{width:min(440px,100%)}
|
|
9030
|
+
.da-staged-card[data-expanded="true"] .da-staged-line{display:none}
|
|
9031
|
+
.da-staged-chevron{display:flex;flex:0 0 18px;margin-left:auto;color:var(--dsw-alias-label-tertiary,#858991)}
|
|
9032
|
+
.da-staged-chevron svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.5}
|
|
9033
|
+
.da-staged-open[aria-expanded="true"] .da-staged-chevron{transform:rotate(90deg)}
|
|
9034
|
+
.da-staged-text{flex:1 1 auto;padding-right:0}
|
|
9035
|
+
.da-staged-open{padding-right:18px}
|
|
9036
|
+
.da-staged-details{display:block;width:100%;margin-top:8px;border-top:1px solid var(--dsw-alias-border-main,rgba(128,128,128,.18))}
|
|
9037
|
+
.da-staged-details .da-card{width:100%;max-width:none;margin:0;border:0;border-radius:0;box-shadow:none;background:transparent}
|
|
9038
|
+
.da-staged-details .da-card-body{padding:8px 0 0}
|
|
9039
|
+
.da-overlay[data-tool="select"] [data-da-element-box]{pointer-events:all;cursor:pointer}
|
|
8990
9040
|
.da-staged-details[hidden]{display:none}
|
|
8991
9041
|
.da-staged-send{border:0;border-radius:6px;background:none;min-height:28px;padding:4px 8px;font-size:11px;color:var(--da-accent,#176df2)}
|
|
8992
9042
|
.da-staged-send[disabled]{opacity:.6;cursor:default}
|
|
@@ -9953,46 +10003,60 @@ body[data-ds-dark-theme] .da-root{--da-quiet:#9aa0a8}
|
|
|
9953
10003
|
left: props.at.left,
|
|
9954
10004
|
top: props.at.top
|
|
9955
10005
|
},
|
|
9956
|
-
children: [
|
|
9957
|
-
|
|
9958
|
-
|
|
9959
|
-
|
|
9960
|
-
|
|
9961
|
-
|
|
9962
|
-
|
|
9963
|
-
|
|
9964
|
-
|
|
9965
|
-
|
|
9966
|
-
onKeyDown: (event) => {
|
|
9967
|
-
if (event.key !== "Escape") return;
|
|
9968
|
-
event.preventDefault();
|
|
9969
|
-
event.stopPropagation();
|
|
9970
|
-
event.currentTarget.blur();
|
|
9971
|
-
}
|
|
9972
|
-
}), hasDetail(mark) ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
9973
|
-
className: "da-comment-send",
|
|
9974
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
9975
|
-
type: "button",
|
|
9976
|
-
className: "da-comment-send-btn da-comment-send-primary",
|
|
9977
|
-
disabled: props.busy,
|
|
9978
|
-
"aria-label": t("sendToAgent"),
|
|
9979
|
-
title: t("sendToAgent"),
|
|
9980
|
-
onClick: () => {
|
|
9981
|
-
props.onSendToAgent();
|
|
10006
|
+
children: [
|
|
10007
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("textarea", {
|
|
10008
|
+
ref: props.inputRef,
|
|
10009
|
+
className: "da-comment",
|
|
10010
|
+
value: mark.detail ?? "",
|
|
10011
|
+
placeholder: hasDetail(mark) ? t("detailPlaceholder") : t("addComment"),
|
|
10012
|
+
rows: 1,
|
|
10013
|
+
maxLength: MAX_DETAIL_CHARS,
|
|
10014
|
+
onChange: (event) => {
|
|
10015
|
+
props.onWrite(event.target.value);
|
|
9982
10016
|
},
|
|
9983
|
-
|
|
9984
|
-
|
|
10017
|
+
onKeyDown: (event) => {
|
|
10018
|
+
if (event.key !== "Escape") return;
|
|
10019
|
+
event.preventDefault();
|
|
10020
|
+
event.stopPropagation();
|
|
10021
|
+
event.currentTarget.blur();
|
|
10022
|
+
}
|
|
10023
|
+
}),
|
|
10024
|
+
hasDetail(mark) ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
10025
|
+
className: "da-comment-send",
|
|
10026
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
10027
|
+
type: "button",
|
|
10028
|
+
className: "da-comment-send-btn da-comment-send-primary",
|
|
10029
|
+
disabled: props.busy,
|
|
10030
|
+
"aria-label": t("sendToAgent"),
|
|
10031
|
+
title: t("sendToAgent"),
|
|
10032
|
+
onClick: () => {
|
|
10033
|
+
props.onSendToAgent();
|
|
10034
|
+
},
|
|
10035
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SendIcon, {})
|
|
10036
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
10037
|
+
type: "button",
|
|
10038
|
+
className: "da-comment-send-btn",
|
|
10039
|
+
disabled: props.busy,
|
|
10040
|
+
"aria-label": t("sendToComposer"),
|
|
10041
|
+
title: t("sendToComposer"),
|
|
10042
|
+
onClick: () => {
|
|
10043
|
+
props.onSendToComposer();
|
|
10044
|
+
},
|
|
10045
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChatIcon, {})
|
|
10046
|
+
})]
|
|
10047
|
+
}) : null,
|
|
10048
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
9985
10049
|
type: "button",
|
|
9986
|
-
className: "da-comment-send-btn",
|
|
9987
|
-
|
|
9988
|
-
|
|
9989
|
-
|
|
10050
|
+
className: "da-comment-send-btn da-comment-remove",
|
|
10051
|
+
"aria-label": t("delete"),
|
|
10052
|
+
title: t("delete"),
|
|
10053
|
+
"aria-disabled": props.busy,
|
|
9990
10054
|
onClick: () => {
|
|
9991
|
-
props.
|
|
10055
|
+
if (!props.busy) props.onRemove();
|
|
9992
10056
|
},
|
|
9993
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
9994
|
-
})
|
|
9995
|
-
|
|
10057
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TrashIcon, {})
|
|
10058
|
+
})
|
|
10059
|
+
]
|
|
9996
10060
|
});
|
|
9997
10061
|
}
|
|
9998
10062
|
//#endregion
|
|
@@ -15578,6 +15642,9 @@ body[data-ds-dark-theme] .da-root{--da-quiet:#9aa0a8}
|
|
|
15578
15642
|
onWrite: (value) => {
|
|
15579
15643
|
setMarkDetail(selected.id, value);
|
|
15580
15644
|
},
|
|
15645
|
+
onRemove: () => {
|
|
15646
|
+
removeMark(selected.id);
|
|
15647
|
+
},
|
|
15581
15648
|
onSendToAgent: () => {
|
|
15582
15649
|
sendOne(selected, "agent");
|
|
15583
15650
|
},
|
|
@@ -15911,47 +15978,46 @@ body[data-ds-dark-theme] .da-root{--da-quiet:#9aa0a8}
|
|
|
15911
15978
|
})
|
|
15912
15979
|
})
|
|
15913
15980
|
] });
|
|
15981
|
+
const head = /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
15982
|
+
type: "button",
|
|
15983
|
+
className: "da-card-head",
|
|
15984
|
+
"aria-expanded": expanded,
|
|
15985
|
+
"aria-controls": bodyId,
|
|
15986
|
+
title: resolveTranslate(props, expanded ? "cardCollapse" : "cardExpand"),
|
|
15987
|
+
onClick: () => {
|
|
15988
|
+
setExpanded((value) => !value);
|
|
15989
|
+
},
|
|
15990
|
+
children: headContent
|
|
15991
|
+
});
|
|
15992
|
+
const body = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
15993
|
+
className: "da-card-body",
|
|
15994
|
+
id: bodyId,
|
|
15995
|
+
children: [
|
|
15996
|
+
shown.map((mark, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CardRow, {
|
|
15997
|
+
mark,
|
|
15998
|
+
ordinal: index + 1,
|
|
15999
|
+
expanded,
|
|
16000
|
+
page: mark.page === void 0 ? void 0 : resolveTranslate(props, "cardPage", { n: mark.page })
|
|
16001
|
+
}, `${String(mark.page ?? "")}-${String(index)}`)),
|
|
16002
|
+
rest > 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
16003
|
+
className: "da-card-rest",
|
|
16004
|
+
children: resolveTranslate(props, "cardMore", { n: rest })
|
|
16005
|
+
}) : null,
|
|
16006
|
+
data.target === "" ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
16007
|
+
className: "da-card-row da-card-target",
|
|
16008
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
16009
|
+
className: "da-card-goal",
|
|
16010
|
+
children: resolveTranslate(props, "cardGoal")
|
|
16011
|
+
}), data.target]
|
|
16012
|
+
})
|
|
16013
|
+
]
|
|
16014
|
+
});
|
|
15914
16015
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
15915
16016
|
className: "da-card",
|
|
15916
16017
|
"data-expanded": expanded,
|
|
15917
16018
|
children: [
|
|
15918
|
-
embedded ?
|
|
15919
|
-
|
|
15920
|
-
children: headContent
|
|
15921
|
-
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
15922
|
-
type: "button",
|
|
15923
|
-
className: "da-card-head",
|
|
15924
|
-
"aria-expanded": expanded,
|
|
15925
|
-
"aria-controls": bodyId,
|
|
15926
|
-
title: resolveTranslate(props, expanded ? "cardCollapse" : "cardExpand"),
|
|
15927
|
-
onClick: () => {
|
|
15928
|
-
setExpanded((value) => !value);
|
|
15929
|
-
},
|
|
15930
|
-
children: headContent
|
|
15931
|
-
}),
|
|
15932
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
15933
|
-
className: "da-card-body",
|
|
15934
|
-
id: bodyId,
|
|
15935
|
-
children: [
|
|
15936
|
-
shown.map((mark, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CardRow, {
|
|
15937
|
-
mark,
|
|
15938
|
-
ordinal: index + 1,
|
|
15939
|
-
expanded,
|
|
15940
|
-
page: mark.page === void 0 ? void 0 : resolveTranslate(props, "cardPage", { n: mark.page })
|
|
15941
|
-
}, `${String(mark.page ?? "")}-${String(index)}`)),
|
|
15942
|
-
rest > 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
15943
|
-
className: "da-card-rest",
|
|
15944
|
-
children: resolveTranslate(props, "cardMore", { n: rest })
|
|
15945
|
-
}) : null,
|
|
15946
|
-
data.target === "" ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
15947
|
-
className: "da-card-row da-card-target",
|
|
15948
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
15949
|
-
className: "da-card-goal",
|
|
15950
|
-
children: resolveTranslate(props, "cardGoal")
|
|
15951
|
-
}), data.target]
|
|
15952
|
-
})
|
|
15953
|
-
]
|
|
15954
|
-
}),
|
|
16019
|
+
embedded ? null : head,
|
|
16020
|
+
body,
|
|
15955
16021
|
embedded ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
15956
16022
|
className: "da-card-actions",
|
|
15957
16023
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
@@ -16386,97 +16452,112 @@ body[data-ds-dark-theme] .da-root{--da-quiet:#9aa0a8}
|
|
|
16386
16452
|
children: [
|
|
16387
16453
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
16388
16454
|
className: "da-staged-card",
|
|
16455
|
+
"data-expanded": expanded,
|
|
16389
16456
|
title: hover,
|
|
16390
|
-
children: [
|
|
16391
|
-
|
|
16392
|
-
|
|
16393
|
-
|
|
16394
|
-
|
|
16395
|
-
|
|
16396
|
-
|
|
16397
|
-
|
|
16398
|
-
|
|
16399
|
-
|
|
16400
|
-
className: "da-staged-shot",
|
|
16401
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(FigureIcon, {}), thumb === void 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
|
|
16402
|
-
alt: "",
|
|
16403
|
-
src: thumb,
|
|
16404
|
-
onError: () => {
|
|
16405
|
-
setShot(false);
|
|
16406
|
-
}
|
|
16407
|
-
})]
|
|
16408
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
16409
|
-
className: "da-staged-text",
|
|
16457
|
+
children: [
|
|
16458
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
|
|
16459
|
+
type: "button",
|
|
16460
|
+
className: "da-staged-open",
|
|
16461
|
+
"aria-expanded": expanded,
|
|
16462
|
+
"aria-controls": detailId,
|
|
16463
|
+
title: resolveTranslate(props, expanded ? "cardCollapse" : "cardExpand"),
|
|
16464
|
+
onClick: () => {
|
|
16465
|
+
setExpanded((value) => !value);
|
|
16466
|
+
},
|
|
16410
16467
|
children: [
|
|
16411
16468
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
16412
|
-
className: "da-staged-
|
|
16413
|
-
children: [
|
|
16414
|
-
|
|
16415
|
-
|
|
16416
|
-
|
|
16417
|
-
|
|
16418
|
-
}
|
|
16419
|
-
|
|
16420
|
-
className: "da-staged-capture",
|
|
16421
|
-
children: captureNotice
|
|
16422
|
-
}),
|
|
16423
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
16424
|
-
className: "da-staged-count",
|
|
16425
|
-
"aria-label": resolveTranslate(props, "cardCount", { n: data.marks.length }),
|
|
16426
|
-
children: resolveTranslate(props, "pendingCount", { n: data.marks.length })
|
|
16427
|
-
})
|
|
16428
|
-
]
|
|
16429
|
-
}),
|
|
16430
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
16431
|
-
className: "da-staged-type",
|
|
16432
|
-
children: subject.badge
|
|
16469
|
+
className: "da-staged-shot",
|
|
16470
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(FigureIcon, {}), thumb === void 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
|
|
16471
|
+
alt: "",
|
|
16472
|
+
src: thumb,
|
|
16473
|
+
onError: () => {
|
|
16474
|
+
setShot(false);
|
|
16475
|
+
}
|
|
16476
|
+
})]
|
|
16433
16477
|
}),
|
|
16434
|
-
|
|
16435
|
-
className: "da-staged-
|
|
16436
|
-
title: detail,
|
|
16478
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
16479
|
+
className: "da-staged-text",
|
|
16437
16480
|
children: [
|
|
16438
|
-
|
|
16439
|
-
className: "da-
|
|
16440
|
-
children:
|
|
16481
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
16482
|
+
className: "da-staged-head",
|
|
16483
|
+
children: [
|
|
16484
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
16485
|
+
className: "da-staged-title",
|
|
16486
|
+
title: name,
|
|
16487
|
+
children: name
|
|
16488
|
+
}),
|
|
16489
|
+
captureNotice === "" ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
16490
|
+
className: "da-staged-capture",
|
|
16491
|
+
children: captureNotice
|
|
16492
|
+
}),
|
|
16493
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
16494
|
+
className: "da-staged-count",
|
|
16495
|
+
"aria-label": resolveTranslate(props, "cardCount", { n: data.marks.length }),
|
|
16496
|
+
children: resolveTranslate(props, "pendingCount", { n: data.marks.length })
|
|
16497
|
+
})
|
|
16498
|
+
]
|
|
16441
16499
|
}),
|
|
16442
16500
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
16443
|
-
className: "da-staged-
|
|
16444
|
-
children:
|
|
16501
|
+
className: "da-staged-type",
|
|
16502
|
+
children: subject.badge
|
|
16445
16503
|
}),
|
|
16446
|
-
first
|
|
16447
|
-
className: "da-staged-
|
|
16448
|
-
|
|
16504
|
+
first === void 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
16505
|
+
className: "da-staged-line",
|
|
16506
|
+
title: detail,
|
|
16507
|
+
children: [
|
|
16508
|
+
first.page === void 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
16509
|
+
className: "da-card-page",
|
|
16510
|
+
children: resolveTranslate(props, "cardPage", { n: first.page })
|
|
16511
|
+
}),
|
|
16512
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
16513
|
+
className: "da-staged-shape",
|
|
16514
|
+
children: shortLabel(first.label)
|
|
16515
|
+
}),
|
|
16516
|
+
first.comment === "" ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
16517
|
+
className: "da-staged-said",
|
|
16518
|
+
children: first.comment
|
|
16519
|
+
})
|
|
16520
|
+
]
|
|
16449
16521
|
})
|
|
16450
16522
|
]
|
|
16523
|
+
}),
|
|
16524
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
16525
|
+
className: "da-staged-chevron",
|
|
16526
|
+
"aria-hidden": "true",
|
|
16527
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
|
|
16528
|
+
viewBox: "0 0 16 16",
|
|
16529
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d: "m6 3.5 4.5 4.5L6 12.5" })
|
|
16530
|
+
})
|
|
16451
16531
|
})
|
|
16452
16532
|
]
|
|
16453
|
-
})
|
|
16454
|
-
|
|
16455
|
-
|
|
16456
|
-
|
|
16457
|
-
|
|
16458
|
-
|
|
16459
|
-
|
|
16460
|
-
|
|
16461
|
-
|
|
16462
|
-
|
|
16463
|
-
|
|
16464
|
-
|
|
16465
|
-
|
|
16466
|
-
|
|
16467
|
-
|
|
16468
|
-
|
|
16469
|
-
|
|
16470
|
-
|
|
16471
|
-
|
|
16472
|
-
|
|
16473
|
-
|
|
16474
|
-
|
|
16475
|
-
|
|
16476
|
-
|
|
16477
|
-
|
|
16478
|
-
|
|
16479
|
-
|
|
16533
|
+
}),
|
|
16534
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
16535
|
+
type: "button",
|
|
16536
|
+
className: "da-staged-x",
|
|
16537
|
+
"aria-label": removeLabel,
|
|
16538
|
+
title: removeLabel,
|
|
16539
|
+
disabled: busy,
|
|
16540
|
+
onClick: () => {
|
|
16541
|
+
if (sending.current) return;
|
|
16542
|
+
if (armed !== void 0) disarmReview(armed, entry.conversation);
|
|
16543
|
+
unparkAnnotation(sessionId, entry.id);
|
|
16544
|
+
},
|
|
16545
|
+
children: "×"
|
|
16546
|
+
}),
|
|
16547
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
16548
|
+
id: detailId,
|
|
16549
|
+
className: "da-staged-details",
|
|
16550
|
+
hidden: !expanded,
|
|
16551
|
+
children: expanded ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(AnnotationCard, {
|
|
16552
|
+
node: { data },
|
|
16553
|
+
raw: entry.raw,
|
|
16554
|
+
interactive: false,
|
|
16555
|
+
embedded: true,
|
|
16556
|
+
t: props.t,
|
|
16557
|
+
localeId: props.localeId
|
|
16558
|
+
}) : null
|
|
16559
|
+
})
|
|
16560
|
+
]
|
|
16480
16561
|
}),
|
|
16481
16562
|
armed === void 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
16482
16563
|
type: "button",
|
package/market/index.json
CHANGED