@box/threaded-annotations 1.89.6 → 1.89.8
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/chunks/messages-view.js +57 -54
- package/dist/chunks/threaded-annotations2.js +44 -41
- package/dist/esm/lib/components/v2/text-message/text-message.js +25 -24
- package/dist/i18n/en-x-pseudo.js +44 -44
- package/dist/i18n/en-x-pseudo.properties +44 -44
- package/dist/types/index.d.ts +1 -1
- package/dist/types/lib/components/v2/message-editor/message-editor.d.ts +2 -2
- package/dist/types/lib/components/v2/message-editor/message-editor.types.d.ts +1 -1
- package/dist/types/lib/components/v2/messages-view/messages-view.d.ts +2 -1
- package/dist/types/lib/components/v2/text-message/text-message.d.ts +2 -1
- package/dist/types/lib/v2/stories/shared.d.ts +1 -0
- package/dist/types/lib/v2/threaded-annotations.d.ts +1 -0
- package/package.json +11 -11
|
@@ -14,83 +14,86 @@ import '../styles/messages-view.css';var u = {
|
|
|
14
14
|
messagesView: "_messagesView_ms46c_4",
|
|
15
15
|
repliesContainer: "_repliesContainer_ms46c_53",
|
|
16
16
|
messagesFade: "_messagesFade_ms46c_59"
|
|
17
|
-
}, d = ({ messages: d, isResolved: f = !1, resolvedBy: p, resolvedAt: m,
|
|
18
|
-
let { viewState:
|
|
17
|
+
}, d = ({ messages: d, isResolved: f = !1, resolvedBy: p, resolvedAt: m, maxCharacterCount: h, onDelete: g, onThreadDelete: _, onAvatarClick: v, onCopyLink: y, onEdit: b, onEditError: x, onResolve: S, onUnresolve: C, userSelectorProps: w, annotationTarget: T, onAnnotationBadgeClick: E, originalContentDeleted: D }) => {
|
|
18
|
+
let { viewState: O, dispatch: k, isAnnotations: A } = t(), j = s(null), M = O !== e.Collapsed, N = O === e.Composing, P = d.length > 2, F = P && !M, { handleScroll: I, isOverflowing: L } = a({
|
|
19
19
|
messageCount: d.length,
|
|
20
|
-
containerRef:
|
|
21
|
-
enabled:
|
|
22
|
-
isExpanded:
|
|
23
|
-
suppressAutoScroll:
|
|
24
|
-
}),
|
|
25
|
-
if (!
|
|
26
|
-
let
|
|
20
|
+
containerRef: j,
|
|
21
|
+
enabled: A,
|
|
22
|
+
isExpanded: M,
|
|
23
|
+
suppressAutoScroll: F
|
|
24
|
+
}), R = d[0], z = d.slice(1), B = z.length >= 1, V = z[z.length - 1], H = z.slice(0, -1), U = P && !M;
|
|
25
|
+
if (!R) return null;
|
|
26
|
+
let W = H[H.length - 1]?.author, G = H.length >= 2 ? H[H.length - 2].author : void 0, K = () => k({ type: "EXPAND" });
|
|
27
27
|
return /* @__PURE__ */ l("div", {
|
|
28
|
-
className: o(u.messagesViewWrapper,
|
|
28
|
+
className: o(u.messagesViewWrapper, L && u.overflowing, L && N && u.withEditorBelow),
|
|
29
29
|
children: [/* @__PURE__ */ l("div", {
|
|
30
|
-
ref:
|
|
31
|
-
className: o(u.messagesView,
|
|
32
|
-
onScroll:
|
|
30
|
+
ref: j,
|
|
31
|
+
className: o(u.messagesView, A && u.scrollable),
|
|
32
|
+
onScroll: I,
|
|
33
33
|
children: [
|
|
34
34
|
/* @__PURE__ */ c(i, {
|
|
35
|
-
...
|
|
36
|
-
hasReplies:
|
|
37
|
-
showThreadedIndicator:
|
|
35
|
+
...R,
|
|
36
|
+
hasReplies: B,
|
|
37
|
+
showThreadedIndicator: B || f,
|
|
38
38
|
isResolved: f,
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
39
|
+
maxCharacterCount: h,
|
|
40
|
+
onDelete: g,
|
|
41
|
+
onThreadDelete: _,
|
|
42
|
+
onAvatarClick: v,
|
|
43
|
+
onCopyLink: y,
|
|
44
|
+
onEdit: b,
|
|
45
|
+
onEditError: x,
|
|
46
|
+
onResolve: S,
|
|
47
|
+
onUnresolve: C,
|
|
47
48
|
isFirstMessage: !0,
|
|
48
|
-
userSelectorProps:
|
|
49
|
-
annotationTarget:
|
|
50
|
-
onAnnotationBadgeClick:
|
|
51
|
-
originalContentDeleted:
|
|
49
|
+
userSelectorProps: w,
|
|
50
|
+
annotationTarget: T,
|
|
51
|
+
onAnnotationBadgeClick: E,
|
|
52
|
+
originalContentDeleted: D
|
|
52
53
|
}),
|
|
53
|
-
|
|
54
|
-
lastUser:
|
|
55
|
-
repliesCount:
|
|
56
|
-
secondLastUser:
|
|
57
|
-
onShowReplies:
|
|
54
|
+
U && W && /* @__PURE__ */ c(r, {
|
|
55
|
+
lastUser: W,
|
|
56
|
+
repliesCount: H.length,
|
|
57
|
+
secondLastUser: G,
|
|
58
|
+
onShowReplies: K
|
|
58
59
|
}),
|
|
59
|
-
|
|
60
|
+
M && H.length > 0 && /* @__PURE__ */ c("div", {
|
|
60
61
|
className: u.repliesContainer,
|
|
61
|
-
children:
|
|
62
|
+
children: H.map((e) => /* @__PURE__ */ c(i, {
|
|
62
63
|
...e,
|
|
63
64
|
showThreadedIndicator: !0,
|
|
64
65
|
isResolved: f,
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
66
|
+
maxCharacterCount: h,
|
|
67
|
+
onDelete: g,
|
|
68
|
+
onAvatarClick: v,
|
|
69
|
+
onCopyLink: y,
|
|
70
|
+
onEdit: b,
|
|
71
|
+
onEditError: x,
|
|
72
|
+
onResolve: S,
|
|
73
|
+
onUnresolve: C,
|
|
74
|
+
userSelectorProps: w
|
|
73
75
|
}, e.id))
|
|
74
76
|
}),
|
|
75
|
-
|
|
76
|
-
...
|
|
77
|
+
V && /* @__PURE__ */ c(i, {
|
|
78
|
+
...V,
|
|
77
79
|
showThreadedIndicator: f,
|
|
78
80
|
isResolved: f,
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
81
|
+
maxCharacterCount: h,
|
|
82
|
+
onDelete: g,
|
|
83
|
+
onAvatarClick: v,
|
|
84
|
+
onCopyLink: y,
|
|
85
|
+
onEdit: b,
|
|
86
|
+
onEditError: x,
|
|
87
|
+
onResolve: S,
|
|
88
|
+
onUnresolve: C,
|
|
89
|
+
userSelectorProps: w
|
|
87
90
|
}),
|
|
88
91
|
f && p && m && /* @__PURE__ */ c(n, {
|
|
89
92
|
authorName: p,
|
|
90
93
|
createdAt: m
|
|
91
94
|
})
|
|
92
95
|
]
|
|
93
|
-
}),
|
|
96
|
+
}), L && /* @__PURE__ */ c("div", { className: u.messagesFade })]
|
|
94
97
|
});
|
|
95
98
|
};
|
|
96
99
|
export { d as t };
|
|
@@ -10,62 +10,65 @@ import '../styles/threaded-annotations2.css';var m = {
|
|
|
10
10
|
threadedAnnotations: "_threadedAnnotations_1dfb0_1",
|
|
11
11
|
expandable: "_expandable_1dfb0_10",
|
|
12
12
|
annotations: "_annotations_1dfb0_13"
|
|
13
|
-
}, h = ({ messages: r, isResolved: h = !1, resolvedBy: g, resolvedAt: _,
|
|
14
|
-
let { viewState:
|
|
13
|
+
}, h = ({ messages: r, isResolved: h = !1, resolvedBy: g, resolvedAt: _, maxCharacterCount: v, onDelete: y, onThreadDelete: b, onAvatarClick: x, onCopyLink: S, onEdit: C, onEditError: w, onResolve: T, onUnresolve: E, onPost: D, onPostError: O, userSelectorProps: k, onEditorOpenChange: A, annotationTarget: j, onAnnotationBadgeClick: M, originalContentDeleted: N }) => {
|
|
14
|
+
let { viewState: P, dispatch: F, editingMessageId: I, replyMention: L, isReplyDisabled: R, isAnnotations: z } = i(), B = d(null), V = P !== n.Collapsed, H = r.length > 2, U = P === n.Collapsed && (H || !R && !h);
|
|
15
15
|
l(() => {
|
|
16
|
-
|
|
16
|
+
I && !r.some((e) => e.id === I) && F({ type: "CLEAR_EDIT" });
|
|
17
17
|
}, [
|
|
18
|
-
|
|
18
|
+
I,
|
|
19
19
|
r,
|
|
20
|
-
|
|
20
|
+
F
|
|
21
21
|
]), l(() => {
|
|
22
|
-
|
|
23
|
-
}, [
|
|
24
|
-
if (!
|
|
22
|
+
A?.(V);
|
|
23
|
+
}, [V, A]), l(() => {
|
|
24
|
+
if (!V) return;
|
|
25
25
|
let t = `[${Object.keys(e)[0]}]`, n = (e) => {
|
|
26
26
|
let n = e.target;
|
|
27
|
-
|
|
27
|
+
B.current?.contains(n) || document.querySelector(t)?.contains(n) || F({ type: "COLLAPSE" });
|
|
28
28
|
};
|
|
29
29
|
return document.addEventListener("mousedown", n), () => document.removeEventListener("mousedown", n);
|
|
30
|
-
}, [
|
|
31
|
-
let
|
|
32
|
-
if (!
|
|
30
|
+
}, [V, F]);
|
|
31
|
+
let W = r.length === 0, G = c(() => F({ type: "CLEAR_MENTION" }), [F]), K = u(() => L ? o(L) : null, [L]), q = c((e) => {
|
|
32
|
+
if (!U) return;
|
|
33
33
|
let t = e.target;
|
|
34
|
-
!e.currentTarget.contains(t) || t.closest("[data-no-expand]") ||
|
|
35
|
-
}, [
|
|
36
|
-
return
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
34
|
+
!e.currentTarget.contains(t) || t.closest("[data-no-expand]") || F({ type: "EXPAND" });
|
|
35
|
+
}, [U, F]);
|
|
36
|
+
return z && W ? /* @__PURE__ */ f(t, {
|
|
37
|
+
isFirstAnnotation: !0,
|
|
38
|
+
maxCharacterCount: v,
|
|
39
|
+
onPost: D,
|
|
40
|
+
onPostError: O,
|
|
41
|
+
onPostSuccess: G,
|
|
42
|
+
userSelectorProps: k
|
|
42
43
|
}) : /* @__PURE__ */ p("div", {
|
|
43
|
-
ref:
|
|
44
|
-
className: s(m.threadedAnnotations,
|
|
45
|
-
onClick:
|
|
44
|
+
ref: B,
|
|
45
|
+
className: s(m.threadedAnnotations, U && m.expandable, z && m.annotations),
|
|
46
|
+
onClick: U ? q : void 0,
|
|
46
47
|
children: [/* @__PURE__ */ f(a, {
|
|
47
48
|
messages: r,
|
|
48
49
|
isResolved: h,
|
|
49
50
|
resolvedBy: g,
|
|
50
51
|
resolvedAt: _,
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
52
|
+
maxCharacterCount: v,
|
|
53
|
+
onDelete: y,
|
|
54
|
+
onThreadDelete: b,
|
|
55
|
+
onAvatarClick: x,
|
|
56
|
+
onCopyLink: S,
|
|
57
|
+
onEdit: C,
|
|
58
|
+
onEditError: w,
|
|
59
|
+
onResolve: T,
|
|
60
|
+
onUnresolve: E,
|
|
61
|
+
userSelectorProps: k,
|
|
62
|
+
annotationTarget: j,
|
|
63
|
+
onAnnotationBadgeClick: M,
|
|
64
|
+
originalContentDeleted: N
|
|
65
|
+
}), P === n.Composing && /* @__PURE__ */ f(t, {
|
|
66
|
+
initialContent: K,
|
|
67
|
+
maxCharacterCount: v,
|
|
68
|
+
onPost: D,
|
|
69
|
+
onPostError: O,
|
|
70
|
+
onPostSuccess: G,
|
|
71
|
+
userSelectorProps: k
|
|
69
72
|
})]
|
|
70
73
|
});
|
|
71
74
|
}, g = (e) => /* @__PURE__ */ f(r, {
|
|
@@ -9,55 +9,56 @@ import { MessageRenderer as c } from "./subcomponents/message-renderer.js";
|
|
|
9
9
|
import l from "clsx";
|
|
10
10
|
import { useIntl as u } from "react-intl";
|
|
11
11
|
import { Fragment as d, jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
12
|
-
var m = ({ id: m, author: h, message: g, createdAt: _, updatedAt: v, permissions: y, showThreadedIndicator: b = !0, isResolved: x = !1, isFirstMessage: S = !1, hasReplies: C = !1,
|
|
13
|
-
let { canResolve:
|
|
12
|
+
var m = ({ id: m, author: h, message: g, createdAt: _, updatedAt: v, permissions: y, showThreadedIndicator: b = !0, isResolved: x = !1, isFirstMessage: S = !1, hasReplies: C = !1, maxCharacterCount: w, onAvatarClick: T, onCopyLink: E, onDelete: D, onThreadDelete: O, onEdit: k, onEditError: A, onResolve: j, onUnresolve: M, userSelectorProps: N, annotationTarget: P, onAnnotationBadgeClick: F, originalContentDeleted: I }) => {
|
|
13
|
+
let { canResolve: L, canEdit: R, canDelete: z } = y, B = u(), { dispatch: V, isReplyDisabled: H, isEditDisabled: U, isAnnotations: W, editingMessageId: G } = n(), K = G === m, q = !!k && !U && R;
|
|
14
14
|
return /* @__PURE__ */ p("div", {
|
|
15
|
-
"aria-label":
|
|
15
|
+
"aria-label": B.formatMessage(a.annotationMessageAriaLabel),
|
|
16
16
|
className: o.textMessage,
|
|
17
17
|
"data-message-wrapper": !0,
|
|
18
18
|
children: [/* @__PURE__ */ f(i, {
|
|
19
19
|
author: h,
|
|
20
|
-
canResolve:
|
|
20
|
+
canResolve: L,
|
|
21
21
|
isResolved: x,
|
|
22
|
-
canDelete:
|
|
23
|
-
canEdit:
|
|
22
|
+
canDelete: z,
|
|
23
|
+
canEdit: q,
|
|
24
24
|
hasReplies: C,
|
|
25
25
|
isFirstMessage: S,
|
|
26
|
-
onAvatarClick:
|
|
27
|
-
onCopyLink:
|
|
28
|
-
onDelete: () =>
|
|
29
|
-
onThreadDelete:
|
|
30
|
-
onEdit:
|
|
26
|
+
onAvatarClick: T,
|
|
27
|
+
onCopyLink: E ? () => E(m) : void 0,
|
|
28
|
+
onDelete: () => D(m),
|
|
29
|
+
onThreadDelete: O,
|
|
30
|
+
onEdit: q ? () => V({
|
|
31
31
|
type: "EDIT",
|
|
32
32
|
id: m
|
|
33
33
|
}) : void 0,
|
|
34
|
-
onResolve:
|
|
35
|
-
onUnresolve:
|
|
34
|
+
onResolve: j ? () => j(m) : void 0,
|
|
35
|
+
onUnresolve: M ? () => M(m) : void 0
|
|
36
36
|
}), /* @__PURE__ */ p("div", {
|
|
37
37
|
className: o.contentWrapper,
|
|
38
38
|
children: [/* @__PURE__ */ f("div", { className: l(o.threadedIndicator, !b && o.threadedIndicatorHidden) }), /* @__PURE__ */ p("div", {
|
|
39
39
|
className: o.messageContent,
|
|
40
|
-
children: [
|
|
40
|
+
children: [P && !W && /* @__PURE__ */ f("div", {
|
|
41
41
|
className: o.annotationBadgeWrapper,
|
|
42
42
|
children: /* @__PURE__ */ f(r, {
|
|
43
|
-
annotationTarget:
|
|
44
|
-
onClick: () =>
|
|
45
|
-
originalContentDeleted:
|
|
43
|
+
annotationTarget: P,
|
|
44
|
+
onClick: () => F?.(m),
|
|
45
|
+
originalContentDeleted: I
|
|
46
46
|
})
|
|
47
|
-
}),
|
|
47
|
+
}), K && k ? /* @__PURE__ */ f(t, {
|
|
48
48
|
initialContent: g,
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
49
|
+
maxCharacterCount: w,
|
|
50
|
+
onEditCancel: () => V({ type: "CLEAR_EDIT" }),
|
|
51
|
+
onEditSuccess: () => V({ type: "CLEAR_EDIT" }),
|
|
52
|
+
onSave: (e) => k(m, e),
|
|
53
|
+
onSaveError: A,
|
|
54
|
+
userSelectorProps: N,
|
|
54
55
|
variant: e.EDIT_MESSAGE
|
|
55
56
|
}) : /* @__PURE__ */ p(d, { children: [/* @__PURE__ */ f("div", {
|
|
56
57
|
className: o.rendererWrapper,
|
|
57
58
|
children: /* @__PURE__ */ f(c, { messageObject: g })
|
|
58
59
|
}), /* @__PURE__ */ f(s, {
|
|
59
60
|
createdAt: _,
|
|
60
|
-
onReply:
|
|
61
|
+
onReply: H ? void 0 : () => V({
|
|
61
62
|
type: "REPLY",
|
|
62
63
|
author: h
|
|
63
64
|
}),
|
package/dist/i18n/en-x-pseudo.js
CHANGED
|
@@ -1,47 +1,47 @@
|
|
|
1
1
|
export default {
|
|
2
|
-
"boxui.threadedAnnotations.threadedAnnotationsAriaLabel": "⟦萬萬萬萬萬
|
|
3
|
-
"groupSharedFeatures.threadedAnnotations.annotationMessageAriaLabel": "⟦萬萬萬萬萬
|
|
4
|
-
"groupSharedFeatures.threadedAnnotations.annotationPage": "⟦萬萬
|
|
5
|
-
"groupSharedFeatures.threadedAnnotations.cancelDeleteButtonAriaLabel": "⟦萬萬萬萬萬
|
|
6
|
-
"groupSharedFeatures.threadedAnnotations.copyLink": "⟦萬萬
|
|
7
|
-
"groupSharedFeatures.threadedAnnotations.delete": "⟦萬
|
|
8
|
-
"groupSharedFeatures.threadedAnnotations.deleteButtonAriaLabel": "⟦萬萬萬
|
|
9
|
-
"groupSharedFeatures.threadedAnnotations.deleteCancel": "⟦萬
|
|
10
|
-
"groupSharedFeatures.threadedAnnotations.deleteCommentQuestion": "⟦萬萬萬萬萬萬萬萬萬萬
|
|
11
|
-
"groupSharedFeatures.threadedAnnotations.deleteConfirmation": "⟦萬萬萬萬萬
|
|
12
|
-
"groupSharedFeatures.threadedAnnotations.deleteQuestion": "⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬
|
|
13
|
-
"groupSharedFeatures.threadedAnnotations.edit": "⟦萬
|
|
14
|
-
"groupSharedFeatures.threadedAnnotations.edited": "⟦萬萬 (
|
|
15
|
-
"groupSharedFeatures.threadedAnnotations.hideReplies": "⟦萬萬萬
|
|
16
|
-
"groupSharedFeatures.threadedAnnotations.markedAsResolved": "⟦萬萬萬萬萬 m
|
|
17
|
-
"groupSharedFeatures.threadedAnnotations.messageEditor.cancel": "⟦萬
|
|
18
|
-
"groupSharedFeatures.threadedAnnotations.messageEditor.cancelButtonAriaLabel": "⟦萬萬萬
|
|
2
|
+
"boxui.threadedAnnotations.threadedAnnotationsAriaLabel": "⟦萬萬萬萬萬 Ŧħгёąďéď âņʼnõτǻţîόņ 國國國國國⟧",
|
|
3
|
+
"groupSharedFeatures.threadedAnnotations.annotationMessageAriaLabel": "⟦萬萬萬萬萬 Àлйøťąţîòи mêѕѕαġě 國國國國國⟧",
|
|
4
|
+
"groupSharedFeatures.threadedAnnotations.annotationPage": "⟦萬萬 Pǻğê {number} 國國⟧",
|
|
5
|
+
"groupSharedFeatures.threadedAnnotations.cancelDeleteButtonAriaLabel": "⟦萬萬萬萬萬 Çάπćèľ ďèľĕţě вüŧτőη 國國國國國⟧",
|
|
6
|
+
"groupSharedFeatures.threadedAnnotations.copyLink": "⟦萬萬 ĊôΡÿ ļĩπκ 國國⟧",
|
|
7
|
+
"groupSharedFeatures.threadedAnnotations.delete": "⟦萬 Ðêľĕŧë 國⟧",
|
|
8
|
+
"groupSharedFeatures.threadedAnnotations.deleteButtonAriaLabel": "⟦萬萬萬 Ďěĺέţé вúτţòπ 國國國⟧",
|
|
9
|
+
"groupSharedFeatures.threadedAnnotations.deleteCancel": "⟦萬 Čǻлсĕľ 國⟧",
|
|
10
|
+
"groupSharedFeatures.threadedAnnotations.deleteCommentQuestion": "⟦萬萬萬萬萬萬萬萬萬萬 Ðό ўσų ŵάηŧ ťő ďęĺεŧė ťħîś čõmměńť? 國國國國國國國國國國⟧",
|
|
11
|
+
"groupSharedFeatures.threadedAnnotations.deleteConfirmation": "⟦萬萬萬萬萬 Ďêľëŧè çòиƒįѓmäŧĭöπ 國國國國國⟧",
|
|
12
|
+
"groupSharedFeatures.threadedAnnotations.deleteQuestion": "⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ðέĺęţé ţħīŝ {type, select, annotation {âпήòťàŧîσп} other {сômměʼnŧ}}{hasReplies, select, true { áŋď ѓéΡľїєś} other {}}? Ŧĥіş àċťíŏη ćäπ'ť вę ũйďõйē. 國國國國國國國國國國國國國國國國國國國國國國國國國國國國國⟧",
|
|
13
|
+
"groupSharedFeatures.threadedAnnotations.edit": "⟦萬 Ĕďīť 國⟧",
|
|
14
|
+
"groupSharedFeatures.threadedAnnotations.edited": "⟦萬萬 (Εďïťēď) 國國⟧",
|
|
15
|
+
"groupSharedFeatures.threadedAnnotations.hideReplies": "⟦萬萬萬 Ηϊďĕ яèΡĺìёѕ 國國國⟧",
|
|
16
|
+
"groupSharedFeatures.threadedAnnotations.markedAsResolved": "⟦萬萬萬萬萬 mαякėď ǻѕ ѓĕşόĺνëď 國國國國國⟧",
|
|
17
|
+
"groupSharedFeatures.threadedAnnotations.messageEditor.cancel": "⟦萬 Ċáʼnçéľ 國⟧",
|
|
18
|
+
"groupSharedFeatures.threadedAnnotations.messageEditor.cancelButtonAriaLabel": "⟦萬萬萬 Çâиćēļ вцťτσи 國國國⟧",
|
|
19
19
|
"groupSharedFeatures.threadedAnnotations.messageEditor.characterCount": "⟦萬萬萬 {count}/{maxCount} 國國國⟧",
|
|
20
|
-
"groupSharedFeatures.threadedAnnotations.messageEditor.characterLimitExceeded": "⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬
|
|
21
|
-
"groupSharedFeatures.threadedAnnotations.messageEditor.editorContentAriaLabel": "⟦萬萬萬萬
|
|
22
|
-
"groupSharedFeatures.threadedAnnotations.messageEditor.placeholderAriaLabel": "⟦萬萬萬萬萬萬萬
|
|
23
|
-
"groupSharedFeatures.threadedAnnotations.messageEditor.placeholderPrefix": "⟦萬萬萬萬萬
|
|
24
|
-
"groupSharedFeatures.threadedAnnotations.messageEditor.placeholderPrefixReply": "⟦萬萬萬萬
|
|
25
|
-
"groupSharedFeatures.threadedAnnotations.messageEditor.placeholderSuffix": "⟦萬萬
|
|
26
|
-
"groupSharedFeatures.threadedAnnotations.messageEditor.placeholderUplifted": "⟦萬萬萬萬萬萬萬萬萬
|
|
27
|
-
"groupSharedFeatures.threadedAnnotations.messageEditor.post": "⟦萬
|
|
28
|
-
"groupSharedFeatures.threadedAnnotations.messageEditor.postButtonAriaLabel": "⟦萬萬萬
|
|
29
|
-
"groupSharedFeatures.threadedAnnotations.messageEditor.postLoading": "⟦萬萬
|
|
30
|
-
"groupSharedFeatures.threadedAnnotations.messageEditor.save": "⟦萬
|
|
31
|
-
"groupSharedFeatures.threadedAnnotations.messageEditor.saveLoading": "⟦萬萬
|
|
32
|
-
"groupSharedFeatures.threadedAnnotations.messageEditor.scrollContainerAriaLabel": "⟦萬萬萬萬萬萬萬萬萬
|
|
33
|
-
"groupSharedFeatures.threadedAnnotations.moreOptionsAriaLabel": "⟦萬萬萬萬萬
|
|
34
|
-
"groupSharedFeatures.threadedAnnotations.originalContentDeleted": "⟦萬萬萬萬萬萬萬萬
|
|
35
|
-
"groupSharedFeatures.threadedAnnotations.reply": "⟦萬
|
|
36
|
-
"groupSharedFeatures.threadedAnnotations.replyButtonAriaLabel": "⟦萬萬萬
|
|
37
|
-
"groupSharedFeatures.threadedAnnotations.resolveButtonAriaLabel": "⟦萬萬
|
|
38
|
-
"groupSharedFeatures.threadedAnnotations.resolvedStateAriaLabel": "⟦萬萬萬萬萬萬萬
|
|
39
|
-
"groupSharedFeatures.threadedAnnotations.showMoreReplies": "⟦萬萬萬萬萬萬萬萬萬萬萬 {count, plural, one {# m
|
|
40
|
-
"groupSharedFeatures.threadedAnnotations.showReplies": "⟦萬萬萬萬萬萬萬萬萬萬萬萬萬 {number, plural, one {
|
|
41
|
-
"groupSharedFeatures.threadedAnnotations.showRepliesButtonAriaLabel": "⟦萬萬萬
|
|
42
|
-
"groupSharedFeatures.threadedAnnotations.textMentionAriaLabel": "⟦萬萬萬
|
|
43
|
-
"groupSharedFeatures.threadedAnnotations.textMessageAriaLabel": "⟦萬萬萬
|
|
44
|
-
"groupSharedFeatures.threadedAnnotations.unresolveButtonAriaLabel": "⟦萬萬
|
|
45
|
-
"groupSharedFeatures.threadedAnnotations.userAvatar": "⟦萬萬萬
|
|
46
|
-
"groupSharedFeatures.threadedAnnotations.userAvatarButtonAriaLabel": "⟦萬萬萬萬萬萬萬
|
|
20
|
+
"groupSharedFeatures.threadedAnnotations.messageEditor.characterLimitExceeded": "⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ŷöúґ ¢ômmεπť īŝ {excess, plural, one {# ćħáяáčťêѓ} other {# ¢ĥαŗα¢τεґś}} ťöő ļóňġ 國國國國國國國國國國國國國國國國國國⟧",
|
|
21
|
+
"groupSharedFeatures.threadedAnnotations.messageEditor.editorContentAriaLabel": "⟦萬萬萬萬 Μéśşâġё ėďϊťøг 國國國國⟧",
|
|
22
|
+
"groupSharedFeatures.threadedAnnotations.messageEditor.placeholderAriaLabel": "⟦萬萬萬萬萬萬萬 Μеşѕάğе ϊŋΡüť Ρļåćêħσļďēя 國國國國國國國⟧",
|
|
23
|
+
"groupSharedFeatures.threadedAnnotations.messageEditor.placeholderPrefix": "⟦萬萬萬萬萬 Щŗīťě ǻ ¢ömmèητ õŕ 國國國國國⟧",
|
|
24
|
+
"groupSharedFeatures.threadedAnnotations.messageEditor.placeholderPrefixReply": "⟦萬萬萬萬 Ŵґĩŧę á яèΡľγ оґ 國國國國⟧",
|
|
25
|
+
"groupSharedFeatures.threadedAnnotations.messageEditor.placeholderSuffix": "⟦萬萬 ţό mēńŧїοп 國國⟧",
|
|
26
|
+
"groupSharedFeatures.threadedAnnotations.messageEditor.placeholderUplifted": "⟦萬萬萬萬萬萬萬萬萬 Ļέâνє â çσmmèηť οг @ τõ mёлŧìōл 國國國國國國國國國⟧",
|
|
27
|
+
"groupSharedFeatures.threadedAnnotations.messageEditor.post": "⟦萬 Pσŝť 國⟧",
|
|
28
|
+
"groupSharedFeatures.threadedAnnotations.messageEditor.postButtonAriaLabel": "⟦萬萬萬 Pōśť ьúττøл 國國國⟧",
|
|
29
|
+
"groupSharedFeatures.threadedAnnotations.messageEditor.postLoading": "⟦萬萬 Ľöǻďîπġ... 國國⟧",
|
|
30
|
+
"groupSharedFeatures.threadedAnnotations.messageEditor.save": "⟦萬 Ѕâνĕ 國⟧",
|
|
31
|
+
"groupSharedFeatures.threadedAnnotations.messageEditor.saveLoading": "⟦萬萬 Ѕąνїňġ... 國國⟧",
|
|
32
|
+
"groupSharedFeatures.threadedAnnotations.messageEditor.scrollContainerAriaLabel": "⟦萬萬萬萬萬萬萬萬萬 Мéŝѕàĝè ěďįτôг ѕ¢řоľľ ¢олťąīņéŗ 國國國國國國國國國⟧",
|
|
33
|
+
"groupSharedFeatures.threadedAnnotations.moreOptionsAriaLabel": "⟦萬萬萬萬萬 Мöřе οΡţιőπś вųťţσл 國國國國國⟧",
|
|
34
|
+
"groupSharedFeatures.threadedAnnotations.originalContentDeleted": "⟦萬萬萬萬萬萬萬萬 Ǿŕïġīňąĺ ¢őπţęņť щãѕ ďёľετêď 國國國國國國國國⟧",
|
|
35
|
+
"groupSharedFeatures.threadedAnnotations.reply": "⟦萬 ŖеΡļУ 國⟧",
|
|
36
|
+
"groupSharedFeatures.threadedAnnotations.replyButtonAriaLabel": "⟦萬萬萬 ŘеΡļУ ьúţťõņ 國國國⟧",
|
|
37
|
+
"groupSharedFeatures.threadedAnnotations.resolveButtonAriaLabel": "⟦萬萬 Ѓёѕöļνє 國國⟧",
|
|
38
|
+
"groupSharedFeatures.threadedAnnotations.resolvedStateAriaLabel": "⟦萬萬萬萬萬萬萬 Γёѕŏļúťîоʼn şťàŧûѕ méŝśàĝє 國國國國國國國⟧",
|
|
39
|
+
"groupSharedFeatures.threadedAnnotations.showMoreReplies": "⟦萬萬萬萬萬萬萬萬萬萬萬 {count, plural, one {# mояё ѓēΡļў} other {# mόřє яєΡļιέş}} 國國國國國國國國國國國⟧",
|
|
40
|
+
"groupSharedFeatures.threadedAnnotations.showReplies": "⟦萬萬萬萬萬萬萬萬萬萬萬萬萬 {number, plural, one {Ѕĥøщ # ѓëΡļγ} other {Ŝħöω # môѓе ѓēΡľιëŝ}} 國國國國國國國國國國國國國⟧",
|
|
41
|
+
"groupSharedFeatures.threadedAnnotations.showRepliesButtonAriaLabel": "⟦萬萬萬 ŔĕΡĺý ьúŧťõп 國國國⟧",
|
|
42
|
+
"groupSharedFeatures.threadedAnnotations.textMentionAriaLabel": "⟦萬萬萬 Úŝеŕ mέητîоŋ 國國國⟧",
|
|
43
|
+
"groupSharedFeatures.threadedAnnotations.textMessageAriaLabel": "⟦萬萬萬 Μєѕşåğė ŧë×ţ 國國國⟧",
|
|
44
|
+
"groupSharedFeatures.threadedAnnotations.unresolveButtonAriaLabel": "⟦萬萬 Ųήѓёśöĺνė 國國⟧",
|
|
45
|
+
"groupSharedFeatures.threadedAnnotations.userAvatar": "⟦萬萬萬 Ŭŝêґ âνåţäŕ 國國國⟧",
|
|
46
|
+
"groupSharedFeatures.threadedAnnotations.userAvatarButtonAriaLabel": "⟦萬萬萬萬萬萬萬 Vîëẁ ŭşέŕ Ρřōƒϊļė вцŧτòŋ 國國國國國國國⟧"
|
|
47
47
|
}
|
|
@@ -1,90 +1,90 @@
|
|
|
1
1
|
# Aria label for the threaded annotations container button
|
|
2
|
-
boxui.threadedAnnotations.threadedAnnotationsAriaLabel = ⟦萬萬萬萬萬
|
|
2
|
+
boxui.threadedAnnotations.threadedAnnotationsAriaLabel = ⟦萬萬萬萬萬 Ŧħгёąďéď âņʼnõτǻţîόņ 國國國國國⟧
|
|
3
3
|
# Aria label for annotation message container
|
|
4
|
-
groupSharedFeatures.threadedAnnotations.annotationMessageAriaLabel = ⟦萬萬萬萬萬
|
|
4
|
+
groupSharedFeatures.threadedAnnotations.annotationMessageAriaLabel = ⟦萬萬萬萬萬 Àлйøťąţîòи mêѕѕαġě 國國國國國⟧
|
|
5
5
|
# Label showing the page number of an annotation target
|
|
6
|
-
groupSharedFeatures.threadedAnnotations.annotationPage = ⟦萬萬
|
|
6
|
+
groupSharedFeatures.threadedAnnotations.annotationPage = ⟦萬萬 Pǻğê {number} 國國⟧
|
|
7
7
|
# Aria label for cancel delete button
|
|
8
|
-
groupSharedFeatures.threadedAnnotations.cancelDeleteButtonAriaLabel = ⟦萬萬萬萬萬
|
|
8
|
+
groupSharedFeatures.threadedAnnotations.cancelDeleteButtonAriaLabel = ⟦萬萬萬萬萬 Çάπćèľ ďèľĕţě вüŧτőη 國國國國國⟧
|
|
9
9
|
# Copy link option in message context menu
|
|
10
|
-
groupSharedFeatures.threadedAnnotations.copyLink = ⟦萬萬
|
|
10
|
+
groupSharedFeatures.threadedAnnotations.copyLink = ⟦萬萬 ĊôΡÿ ļĩπκ 國國⟧
|
|
11
11
|
# Delete button text
|
|
12
|
-
groupSharedFeatures.threadedAnnotations.delete = ⟦萬
|
|
12
|
+
groupSharedFeatures.threadedAnnotations.delete = ⟦萬 Ðêľĕŧë 國⟧
|
|
13
13
|
# Aria label for delete button
|
|
14
|
-
groupSharedFeatures.threadedAnnotations.deleteButtonAriaLabel = ⟦萬萬萬
|
|
14
|
+
groupSharedFeatures.threadedAnnotations.deleteButtonAriaLabel = ⟦萬萬萬 Ďěĺέţé вúτţòπ 國國國⟧
|
|
15
15
|
# Cancel button text for delete confirmation dialog
|
|
16
|
-
groupSharedFeatures.threadedAnnotations.deleteCancel = ⟦萬
|
|
16
|
+
groupSharedFeatures.threadedAnnotations.deleteCancel = ⟦萬 Čǻлсĕľ 國⟧
|
|
17
17
|
# Confirmation text asking user if they want to delete a comment
|
|
18
|
-
groupSharedFeatures.threadedAnnotations.deleteCommentQuestion = ⟦萬萬萬萬萬萬萬萬萬萬
|
|
18
|
+
groupSharedFeatures.threadedAnnotations.deleteCommentQuestion = ⟦萬萬萬萬萬萬萬萬萬萬 Ðό ўσų ŵάηŧ ťő ďęĺεŧė ťħîś čõmměńť? 國國國國國國國國國國⟧
|
|
19
19
|
# Aria label for delete confirmation popover
|
|
20
|
-
groupSharedFeatures.threadedAnnotations.deleteConfirmation = ⟦萬萬萬萬萬
|
|
20
|
+
groupSharedFeatures.threadedAnnotations.deleteConfirmation = ⟦萬萬萬萬萬 Ďêľëŧè çòиƒįѓmäŧĭöπ 國國國國國⟧
|
|
21
21
|
# Confirmation text asking the user if they want to delete a thread. `type` is `annotation` or `comment`; `hasReplies` is `true` or `false`.
|
|
22
|
-
groupSharedFeatures.threadedAnnotations.deleteQuestion = ⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬
|
|
22
|
+
groupSharedFeatures.threadedAnnotations.deleteQuestion = ⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ðέĺęţé ţħīŝ {type, select, annotation {âпήòťàŧîσп} other {сômměʼnŧ}}{hasReplies, select, true { áŋď ѓéΡľїєś} other {}}? Ŧĥіş àċťíŏη ćäπ'ť вę ũйďõйē. 國國國國國國國國國國國國國國國國國國國國國國國國國國國國國⟧
|
|
23
23
|
# Edit option in message context menu
|
|
24
|
-
groupSharedFeatures.threadedAnnotations.edit = ⟦萬
|
|
24
|
+
groupSharedFeatures.threadedAnnotations.edit = ⟦萬 Ĕďīť 國⟧
|
|
25
25
|
# Indicator shown next to the timestamp when a message has been edited
|
|
26
|
-
groupSharedFeatures.threadedAnnotations.edited = ⟦萬萬 (
|
|
26
|
+
groupSharedFeatures.threadedAnnotations.edited = ⟦萬萬 (Εďïťēď) 國國⟧
|
|
27
27
|
# Button text to hide replies in threaded annotations
|
|
28
|
-
groupSharedFeatures.threadedAnnotations.hideReplies = ⟦萬萬萬
|
|
28
|
+
groupSharedFeatures.threadedAnnotations.hideReplies = ⟦萬萬萬 Ηϊďĕ яèΡĺìёѕ 國國國⟧
|
|
29
29
|
# Text shown after the author name when a comment thread is marked as resolved
|
|
30
|
-
groupSharedFeatures.threadedAnnotations.markedAsResolved = ⟦萬萬萬萬萬 m
|
|
30
|
+
groupSharedFeatures.threadedAnnotations.markedAsResolved = ⟦萬萬萬萬萬 mαякėď ǻѕ ѓĕşόĺνëď 國國國國國⟧
|
|
31
31
|
# Cancel button text for message editor
|
|
32
|
-
groupSharedFeatures.threadedAnnotations.messageEditor.cancel = ⟦萬
|
|
32
|
+
groupSharedFeatures.threadedAnnotations.messageEditor.cancel = ⟦萬 Ċáʼnçéľ 國⟧
|
|
33
33
|
# Aria label for the cancel button in message editor
|
|
34
|
-
groupSharedFeatures.threadedAnnotations.messageEditor.cancelButtonAriaLabel = ⟦萬萬萬
|
|
34
|
+
groupSharedFeatures.threadedAnnotations.messageEditor.cancelButtonAriaLabel = ⟦萬萬萬 Çâиćēļ вцťτσи 國國國⟧
|
|
35
35
|
# Character count display showing current count and maximum allowed
|
|
36
36
|
groupSharedFeatures.threadedAnnotations.messageEditor.characterCount = ⟦萬萬萬 {count}/{maxCount} 國國國⟧
|
|
37
37
|
# Screen reader alert and tooltip text shown when character limit is exceeded
|
|
38
|
-
groupSharedFeatures.threadedAnnotations.messageEditor.characterLimitExceeded = ⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬
|
|
38
|
+
groupSharedFeatures.threadedAnnotations.messageEditor.characterLimitExceeded = ⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ŷöúґ ¢ômmεπť īŝ {excess, plural, one {# ćħáяáčťêѓ} other {# ¢ĥαŗα¢τεґś}} ťöő ļóňġ 國國國國國國國國國國國國國國國國國國⟧
|
|
39
39
|
# Aria label for the rich text editor content area
|
|
40
|
-
groupSharedFeatures.threadedAnnotations.messageEditor.editorContentAriaLabel = ⟦萬萬萬萬
|
|
40
|
+
groupSharedFeatures.threadedAnnotations.messageEditor.editorContentAriaLabel = ⟦萬萬萬萬 Μéśşâġё ėďϊťøг 國國國國⟧
|
|
41
41
|
# Aria label for message editor placeholder
|
|
42
|
-
groupSharedFeatures.threadedAnnotations.messageEditor.placeholderAriaLabel = ⟦萬萬萬萬萬萬萬
|
|
42
|
+
groupSharedFeatures.threadedAnnotations.messageEditor.placeholderAriaLabel = ⟦萬萬萬萬萬萬萬 Μеşѕάğе ϊŋΡüť Ρļåćêħσļďēя 國國國國國國國⟧
|
|
43
43
|
# First part of placeholder text before @ symbol
|
|
44
|
-
groupSharedFeatures.threadedAnnotations.messageEditor.placeholderPrefix = ⟦萬萬萬萬萬
|
|
44
|
+
groupSharedFeatures.threadedAnnotations.messageEditor.placeholderPrefix = ⟦萬萬萬萬萬 Щŗīťě ǻ ¢ömmèητ õŕ 國國國國國⟧
|
|
45
45
|
# First part of placeholder text before @ symbol for reply
|
|
46
|
-
groupSharedFeatures.threadedAnnotations.messageEditor.placeholderPrefixReply = ⟦萬萬萬萬
|
|
46
|
+
groupSharedFeatures.threadedAnnotations.messageEditor.placeholderPrefixReply = ⟦萬萬萬萬 Ŵґĩŧę á яèΡľγ оґ 國國國國⟧
|
|
47
47
|
# Last part of placeholder text after @ symbol
|
|
48
|
-
groupSharedFeatures.threadedAnnotations.messageEditor.placeholderSuffix = ⟦萬萬
|
|
48
|
+
groupSharedFeatures.threadedAnnotations.messageEditor.placeholderSuffix = ⟦萬萬 ţό mēńŧїοп 國國⟧
|
|
49
49
|
# Placeholder text for uplifted message editor
|
|
50
|
-
groupSharedFeatures.threadedAnnotations.messageEditor.placeholderUplifted = ⟦萬萬萬萬萬萬萬萬萬
|
|
50
|
+
groupSharedFeatures.threadedAnnotations.messageEditor.placeholderUplifted = ⟦萬萬萬萬萬萬萬萬萬 Ļέâνє â çσmmèηť οг @ τõ mёлŧìōл 國國國國國國國國國⟧
|
|
51
51
|
# Post button text for message editor
|
|
52
|
-
groupSharedFeatures.threadedAnnotations.messageEditor.post = ⟦萬
|
|
52
|
+
groupSharedFeatures.threadedAnnotations.messageEditor.post = ⟦萬 Pσŝť 國⟧
|
|
53
53
|
# Aria label for the post button in message editor
|
|
54
|
-
groupSharedFeatures.threadedAnnotations.messageEditor.postButtonAriaLabel = ⟦萬萬萬
|
|
54
|
+
groupSharedFeatures.threadedAnnotations.messageEditor.postButtonAriaLabel = ⟦萬萬萬 Pōśť ьúττøл 國國國⟧
|
|
55
55
|
# Aria label for post button loading state
|
|
56
|
-
groupSharedFeatures.threadedAnnotations.messageEditor.postLoading = ⟦萬萬
|
|
56
|
+
groupSharedFeatures.threadedAnnotations.messageEditor.postLoading = ⟦萬萬 Ľöǻďîπġ... 國國⟧
|
|
57
57
|
# Save button text for message editor
|
|
58
|
-
groupSharedFeatures.threadedAnnotations.messageEditor.save = ⟦萬
|
|
58
|
+
groupSharedFeatures.threadedAnnotations.messageEditor.save = ⟦萬 Ѕâνĕ 國⟧
|
|
59
59
|
# Aria label for save button loading state
|
|
60
|
-
groupSharedFeatures.threadedAnnotations.messageEditor.saveLoading = ⟦萬萬
|
|
60
|
+
groupSharedFeatures.threadedAnnotations.messageEditor.saveLoading = ⟦萬萬 Ѕąνїňġ... 國國⟧
|
|
61
61
|
# Aria label for the scrollable message editor content container
|
|
62
|
-
groupSharedFeatures.threadedAnnotations.messageEditor.scrollContainerAriaLabel = ⟦萬萬萬萬萬萬萬萬萬
|
|
62
|
+
groupSharedFeatures.threadedAnnotations.messageEditor.scrollContainerAriaLabel = ⟦萬萬萬萬萬萬萬萬萬 Мéŝѕàĝè ěďįτôг ѕ¢řоľľ ¢олťąīņéŗ 國國國國國國國國國⟧
|
|
63
63
|
# Aria label for more options button in annotation message
|
|
64
|
-
groupSharedFeatures.threadedAnnotations.moreOptionsAriaLabel = ⟦萬萬萬萬萬
|
|
64
|
+
groupSharedFeatures.threadedAnnotations.moreOptionsAriaLabel = ⟦萬萬萬萬萬 Мöřе οΡţιőπś вųťţσл 國國國國國⟧
|
|
65
65
|
# Tooltip shown when the annotation badge refers to deleted content
|
|
66
|
-
groupSharedFeatures.threadedAnnotations.originalContentDeleted = ⟦萬萬萬萬萬萬萬萬
|
|
66
|
+
groupSharedFeatures.threadedAnnotations.originalContentDeleted = ⟦萬萬萬萬萬萬萬萬 Ǿŕïġīňąĺ ¢őπţęņť щãѕ ďёľετêď 國國國國國國國國⟧
|
|
67
67
|
# Reply button text to start composing a reply
|
|
68
|
-
groupSharedFeatures.threadedAnnotations.reply = ⟦萬
|
|
68
|
+
groupSharedFeatures.threadedAnnotations.reply = ⟦萬 ŖеΡļУ 國⟧
|
|
69
69
|
# Aria label for the reply button that opens the message editor
|
|
70
|
-
groupSharedFeatures.threadedAnnotations.replyButtonAriaLabel = ⟦萬萬萬
|
|
70
|
+
groupSharedFeatures.threadedAnnotations.replyButtonAriaLabel = ⟦萬萬萬 ŘеΡļУ ьúţťõņ 國國國⟧
|
|
71
71
|
# Aria label and tooltip content for the resolve button
|
|
72
|
-
groupSharedFeatures.threadedAnnotations.resolveButtonAriaLabel = ⟦萬萬
|
|
72
|
+
groupSharedFeatures.threadedAnnotations.resolveButtonAriaLabel = ⟦萬萬 Ѓёѕöļνє 國國⟧
|
|
73
73
|
# Aria label for the resolution status message container
|
|
74
|
-
groupSharedFeatures.threadedAnnotations.resolvedStateAriaLabel = ⟦萬萬萬萬萬萬萬
|
|
74
|
+
groupSharedFeatures.threadedAnnotations.resolvedStateAriaLabel = ⟦萬萬萬萬萬萬萬 Γёѕŏļúťîоʼn şťàŧûѕ méŝśàĝє 國國國國國國國⟧
|
|
75
75
|
# Button text to show more replies with count
|
|
76
|
-
groupSharedFeatures.threadedAnnotations.showMoreReplies = ⟦萬萬萬萬萬萬萬萬萬萬萬 {count, plural, one {# m
|
|
76
|
+
groupSharedFeatures.threadedAnnotations.showMoreReplies = ⟦萬萬萬萬萬萬萬萬萬萬萬 {count, plural, one {# mояё ѓēΡļў} other {# mόřє яєΡļιέş}} 國國國國國國國國國國國⟧
|
|
77
77
|
# Button text to show replies with count
|
|
78
|
-
groupSharedFeatures.threadedAnnotations.showReplies = ⟦萬萬萬萬萬萬萬萬萬萬萬萬萬 {number, plural, one {
|
|
78
|
+
groupSharedFeatures.threadedAnnotations.showReplies = ⟦萬萬萬萬萬萬萬萬萬萬萬萬萬 {number, plural, one {Ѕĥøщ # ѓëΡļγ} other {Ŝħöω # môѓе ѓēΡľιëŝ}} 國國國國國國國國國國國國國⟧
|
|
79
79
|
# Aria label for the reply button
|
|
80
|
-
groupSharedFeatures.threadedAnnotations.showRepliesButtonAriaLabel = ⟦萬萬萬
|
|
80
|
+
groupSharedFeatures.threadedAnnotations.showRepliesButtonAriaLabel = ⟦萬萬萬 ŔĕΡĺý ьúŧťõп 國國國⟧
|
|
81
81
|
# Aria label for user mention links
|
|
82
|
-
groupSharedFeatures.threadedAnnotations.textMentionAriaLabel = ⟦萬萬萬
|
|
82
|
+
groupSharedFeatures.threadedAnnotations.textMentionAriaLabel = ⟦萬萬萬 Úŝеŕ mέητîоŋ 國國國⟧
|
|
83
83
|
# Aria label for message text content
|
|
84
|
-
groupSharedFeatures.threadedAnnotations.textMessageAriaLabel = ⟦萬萬萬
|
|
84
|
+
groupSharedFeatures.threadedAnnotations.textMessageAriaLabel = ⟦萬萬萬 Μєѕşåğė ŧë×ţ 國國國⟧
|
|
85
85
|
# Aria label and tooltip content for the unresolve button
|
|
86
|
-
groupSharedFeatures.threadedAnnotations.unresolveButtonAriaLabel = ⟦萬萬
|
|
86
|
+
groupSharedFeatures.threadedAnnotations.unresolveButtonAriaLabel = ⟦萬萬 Ųήѓёśöĺνė 國國⟧
|
|
87
87
|
# Alt text for user avatar image
|
|
88
|
-
groupSharedFeatures.threadedAnnotations.userAvatar = ⟦萬萬萬
|
|
88
|
+
groupSharedFeatures.threadedAnnotations.userAvatar = ⟦萬萬萬 Ŭŝêґ âνåţäŕ 國國國⟧
|
|
89
89
|
# Aria label for clickable user avatar button
|
|
90
|
-
groupSharedFeatures.threadedAnnotations.userAvatarButtonAriaLabel = ⟦萬萬萬萬萬萬萬
|
|
90
|
+
groupSharedFeatures.threadedAnnotations.userAvatarButtonAriaLabel = ⟦萬萬萬萬萬萬萬 Vîëẁ ŭşέŕ Ρřōƒϊļė вцŧτòŋ 國國國國國國國⟧
|
package/dist/types/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export * from './lib/components/text-message/types';
|
|
|
2
2
|
export * from './lib/document-node-types';
|
|
3
3
|
export * from './lib/threaded-annotations';
|
|
4
4
|
export { MentionContextProvider, useMentionContext, type MentionContextData, type MentionContextProviderProps, } from './lib/components/mention-component/mention-context';
|
|
5
|
-
export { MessageEditor as MessageEditorV2, type MessageEditorProps as MessageEditorPropsV2, } from './lib/components/v2/message-editor/message-editor';
|
|
5
|
+
export { MessageEditor as MessageEditorV2, type CreateMessageEditorProps as CreateMessageEditorPropsV2, type MessageEditorProps as MessageEditorPropsV2, } from './lib/components/v2/message-editor/message-editor';
|
|
6
6
|
export { ThreadedAnnotations as ThreadedAnnotationsV2, type ThreadedAnnotationsProps as ThreadedAnnotationsPropsV2, } from './lib/v2/threaded-annotations';
|
|
7
7
|
export { type DocumentNode as DocumentNodeV2, type EditorMentionAttributes as EditorMentionAttributesV2, type MentionNode as MentionNodeV2, type MentionRenderAttributes as MentionRenderAttributesV2, type ParagraphNode as ParagraphNodeV2, type TextNode as TextNodeV2, } from './lib/v2/types/document-node-types';
|
|
8
8
|
export { type Permissions, type TextMessageAuthorType as TextMessageAuthorTypeV2, type TextMessageType as TextMessageTypeV2, } from './lib/v2/types/message-types';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { MessageEditorVariant, MessageEditorProps } from './message-editor.types';
|
|
2
|
-
export { MessageEditorVariant, type MessageEditorProps };
|
|
1
|
+
import { MessageEditorVariant, CreateMessageEditorProps, MessageEditorProps } from './message-editor.types';
|
|
2
|
+
export { MessageEditorVariant, type CreateMessageEditorProps, type MessageEditorProps };
|
|
3
3
|
export declare const MessageEditor: (props: MessageEditorProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -17,7 +17,7 @@ interface BaseMessageEditorProps {
|
|
|
17
17
|
/** Properties for the user selector component from blueprint-web. */
|
|
18
18
|
userSelectorProps: Omit<HeadlessUserSelectorProps, 'inputElementRef' | 'onSelectedUserChange' | 'open' | 'rootElement' | 'value'>;
|
|
19
19
|
}
|
|
20
|
-
interface CreateMessageEditorProps extends BaseMessageEditorProps {
|
|
20
|
+
export interface CreateMessageEditorProps extends BaseMessageEditorProps {
|
|
21
21
|
/**
|
|
22
22
|
* A callback function to be executed when the user posts a message.
|
|
23
23
|
* @param content The content of the message in JSON format or null.
|
|
@@ -7,6 +7,7 @@ export interface MessagesViewProps {
|
|
|
7
7
|
isResolved?: boolean;
|
|
8
8
|
resolvedBy?: string;
|
|
9
9
|
resolvedAt?: number;
|
|
10
|
+
maxCharacterCount?: number;
|
|
10
11
|
onDelete: (id: string) => void;
|
|
11
12
|
onThreadDelete?: () => void;
|
|
12
13
|
onAvatarClick: (id: number) => void;
|
|
@@ -20,4 +21,4 @@ export interface MessagesViewProps {
|
|
|
20
21
|
onAnnotationBadgeClick?: (id: string) => void;
|
|
21
22
|
originalContentDeleted?: boolean;
|
|
22
23
|
}
|
|
23
|
-
export declare const MessagesView: ({ messages, isResolved, resolvedBy, resolvedAt, onDelete, onThreadDelete, onAvatarClick, onCopyLink, onEdit, onEditError, onResolve, onUnresolve, userSelectorProps, annotationTarget, onAnnotationBadgeClick, originalContentDeleted, }: MessagesViewProps) => import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
export declare const MessagesView: ({ messages, isResolved, resolvedBy, resolvedAt, maxCharacterCount, onDelete, onThreadDelete, onAvatarClick, onCopyLink, onEdit, onEditError, onResolve, onUnresolve, userSelectorProps, annotationTarget, onAnnotationBadgeClick, originalContentDeleted, }: MessagesViewProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -11,6 +11,7 @@ export interface TextMessageProps extends TextMessageType {
|
|
|
11
11
|
isFirstMessage?: boolean;
|
|
12
12
|
/** Whether the thread has at least one reply (only meaningful on the root message). */
|
|
13
13
|
hasReplies?: boolean;
|
|
14
|
+
maxCharacterCount?: number;
|
|
14
15
|
onDelete: (id: string) => void;
|
|
15
16
|
onThreadDelete?: () => void;
|
|
16
17
|
onAvatarClick: (id: number) => void;
|
|
@@ -31,4 +32,4 @@ export interface TextMessageProps extends TextMessageType {
|
|
|
31
32
|
* the message content itself, a relative timestamp, and providing a mechanism
|
|
32
33
|
* for deleting the message.
|
|
33
34
|
*/
|
|
34
|
-
export declare const TextMessage: ({ id, author, message, createdAt, updatedAt, permissions, showThreadedIndicator, isResolved, isFirstMessage, hasReplies, onAvatarClick, onCopyLink, onDelete, onThreadDelete, onEdit, onEditError, onResolve, onUnresolve, userSelectorProps, annotationTarget, onAnnotationBadgeClick, originalContentDeleted, }: TextMessageProps) => import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
export declare const TextMessage: ({ id, author, message, createdAt, updatedAt, permissions, showThreadedIndicator, isResolved, isFirstMessage, hasReplies, maxCharacterCount, onAvatarClick, onCopyLink, onDelete, onThreadDelete, onEdit, onEditError, onResolve, onUnresolve, userSelectorProps, annotationTarget, onAnnotationBadgeClick, originalContentDeleted, }: TextMessageProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -9,6 +9,7 @@ interface InteractiveModuleBaseProps {
|
|
|
9
9
|
initialMessages?: TextMessageType[];
|
|
10
10
|
isReplyDisabled?: boolean;
|
|
11
11
|
isEditDisabled?: boolean;
|
|
12
|
+
maxCharacterCount?: number;
|
|
12
13
|
onCopyLink?: (id: string) => void;
|
|
13
14
|
}
|
|
14
15
|
type InteractiveModuleProps = (InteractiveModuleBaseProps & {
|
|
@@ -11,6 +11,7 @@ interface ThreadedAnnotationsBaseProps {
|
|
|
11
11
|
resolvedBy?: string;
|
|
12
12
|
/** Unix timestamp (ms) when the thread was resolved. */
|
|
13
13
|
resolvedAt?: number;
|
|
14
|
+
maxCharacterCount?: number;
|
|
14
15
|
onDelete: (id: string) => void;
|
|
15
16
|
onThreadDelete?: () => void;
|
|
16
17
|
onAvatarClick: (id: number) => void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@box/threaded-annotations",
|
|
3
|
-
"version": "1.89.
|
|
3
|
+
"version": "1.89.8",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@tanstack/react-virtual": "^3.10.8",
|
|
@@ -16,23 +16,23 @@
|
|
|
16
16
|
"uuid": "^9.0.1"
|
|
17
17
|
},
|
|
18
18
|
"peerDependencies": {
|
|
19
|
-
"@box/blueprint-web": "^14.
|
|
20
|
-
"@box/blueprint-web-assets": "^4.118.
|
|
21
|
-
"@box/collaboration-popover": "^1.62.
|
|
22
|
-
"@box/readable-time": "^1.41.
|
|
23
|
-
"@box/user-selector": "^1.76.
|
|
19
|
+
"@box/blueprint-web": "^14.31.0",
|
|
20
|
+
"@box/blueprint-web-assets": "^4.118.3",
|
|
21
|
+
"@box/collaboration-popover": "^1.62.9",
|
|
22
|
+
"@box/readable-time": "^1.41.9",
|
|
23
|
+
"@box/user-selector": "^1.76.9",
|
|
24
24
|
"clsx": "^1.2.1",
|
|
25
25
|
"react": "^18.0.0",
|
|
26
26
|
"react-dom": "^18.0.0",
|
|
27
27
|
"react-intl": "^6.4.2"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
|
-
"@box/blueprint-web": "^14.
|
|
31
|
-
"@box/blueprint-web-assets": "^4.118.
|
|
30
|
+
"@box/blueprint-web": "^14.31.0",
|
|
31
|
+
"@box/blueprint-web-assets": "^4.118.3",
|
|
32
32
|
"@box/eslint-plugin-blueprint": "1.2.1",
|
|
33
|
-
"@box/readable-time": "^1.41.
|
|
34
|
-
"@box/storybook-utils": "^0.19.
|
|
35
|
-
"@box/user-selector": "^1.76.
|
|
33
|
+
"@box/readable-time": "^1.41.9",
|
|
34
|
+
"@box/storybook-utils": "^0.19.7",
|
|
35
|
+
"@box/user-selector": "^1.76.9",
|
|
36
36
|
"react": "^18.0.0",
|
|
37
37
|
"react-dom": "^18.0.0"
|
|
38
38
|
},
|