@box/threaded-annotations 1.83.0 → 1.83.2

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.
@@ -7,31 +7,33 @@ import o from "clsx";
7
7
  import { useRef as s } from "react";
8
8
  import { jsx as c, jsxs as l } from "react/jsx-runtime";
9
9
  import '../styles/messages-view.css';var u = {
10
- messagesViewWrapper: "_messagesViewWrapper_1w62w_4",
11
- overflowing: "_overflowing_1w62w_9",
12
- scrollable: "_scrollable_1w62w_12",
13
- messagesView: "_messagesView_1w62w_4",
14
- repliesContainer: "_repliesContainer_1w62w_52",
15
- messagesFade: "_messagesFade_1w62w_58"
10
+ messagesViewWrapper: "_messagesViewWrapper_1yvpu_4",
11
+ overflowing: "_overflowing_1yvpu_9",
12
+ scrollable: "_scrollable_1yvpu_9",
13
+ withEditorBelow: "_withEditorBelow_1yvpu_12",
14
+ messagesView: "_messagesView_1yvpu_4",
15
+ repliesContainer: "_repliesContainer_1yvpu_52",
16
+ messagesFade: "_messagesFade_1yvpu_58"
16
17
  }, d = ({ messages: d, isResolved: f = !1, resolvedBy: p, resolvedAt: m, onDelete: h, onThreadDelete: g, onAvatarClick: _, onEdit: v, onResolve: y, onUnresolve: b, annotationTarget: x, onAnnotationBadgeClick: S }) => {
17
- let { viewState: C, dispatch: w, isAnnotations: T } = t(), E = s(null), D = C !== e.Collapsed, O = d.length > 2, { handleScroll: k, isOverflowing: A } = a({
18
+ let { viewState: C, dispatch: w, isAnnotations: T } = t(), E = s(null), D = C !== e.Collapsed, O = C === e.Composing, k = d.length > 2, A = k && !D, { handleScroll: j, isOverflowing: M } = a({
18
19
  messageCount: d.length,
19
20
  containerRef: E,
20
21
  enabled: T,
21
- isExpanded: D
22
- }), j = d[0], M = d.slice(1), N = M.length >= 1, P = M[M.length - 1], F = M.slice(0, -1), I = O && !D;
23
- if (!j) return null;
24
- let L = F[F.length - 1]?.author, R = F.length >= 2 ? F[F.length - 2].author : void 0, z = () => w({ type: "EXPAND" });
22
+ isExpanded: D,
23
+ suppressAutoScroll: A
24
+ }), N = d[0], P = d.slice(1), F = P.length >= 1, I = P[P.length - 1], L = P.slice(0, -1), R = k && !D;
25
+ if (!N) return null;
26
+ let z = L[L.length - 1]?.author, B = L.length >= 2 ? L[L.length - 2].author : void 0, V = () => w({ type: "EXPAND" });
25
27
  return /* @__PURE__ */ l("div", {
26
- className: o(u.messagesViewWrapper, A && u.overflowing),
28
+ className: o(u.messagesViewWrapper, M && u.overflowing, M && O && u.withEditorBelow),
27
29
  children: [/* @__PURE__ */ l("div", {
28
30
  ref: E,
29
31
  className: o(u.messagesView, T && u.scrollable),
30
- onScroll: k,
32
+ onScroll: j,
31
33
  children: [
32
34
  /* @__PURE__ */ c(i, {
33
- ...j,
34
- showThreadedIndicator: N || f,
35
+ ...N,
36
+ showThreadedIndicator: F || f,
35
37
  isResolved: f,
36
38
  onDelete: h,
37
39
  onThreadDelete: g,
@@ -43,15 +45,15 @@ import '../styles/messages-view.css';var u = {
43
45
  annotationTarget: x,
44
46
  onAnnotationBadgeClick: S
45
47
  }),
46
- I && L && /* @__PURE__ */ c(r, {
47
- lastUser: L,
48
- repliesCount: F.length,
49
- secondLastUser: R,
50
- onShowReplies: z
48
+ R && z && /* @__PURE__ */ c(r, {
49
+ lastUser: z,
50
+ repliesCount: L.length,
51
+ secondLastUser: B,
52
+ onShowReplies: V
51
53
  }),
52
- D && F.length > 0 && /* @__PURE__ */ c("div", {
54
+ D && L.length > 0 && /* @__PURE__ */ c("div", {
53
55
  className: u.repliesContainer,
54
- children: F.map((e) => /* @__PURE__ */ c(i, {
56
+ children: L.map((e) => /* @__PURE__ */ c(i, {
55
57
  ...e,
56
58
  showThreadedIndicator: !0,
57
59
  isResolved: f,
@@ -62,8 +64,8 @@ import '../styles/messages-view.css';var u = {
62
64
  onUnresolve: b
63
65
  }, e.id))
64
66
  }),
65
- P && /* @__PURE__ */ c(i, {
66
- ...P,
67
+ I && /* @__PURE__ */ c(i, {
68
+ ...I,
67
69
  showThreadedIndicator: f,
68
70
  isResolved: f,
69
71
  onDelete: h,
@@ -77,7 +79,7 @@ import '../styles/messages-view.css';var u = {
77
79
  createdAt: m
78
80
  })
79
81
  ]
80
- }), A && /* @__PURE__ */ c("div", { className: u.messagesFade })]
82
+ }), M && /* @__PURE__ */ c("div", { className: u.messagesFade })]
81
83
  });
82
84
  };
83
85
  export { d as t };
@@ -5,15 +5,15 @@ import i from "clsx";
5
5
  import { useIntl as a } from "react-intl";
6
6
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
7
7
  import '../styles/show-replies-button.css';var c = {
8
- showRepliesButtonWrapper: "_showRepliesButtonWrapper_1vzki_1",
9
- contentWrapper: "_contentWrapper_1vzki_5",
10
- threadedIndicator: "_threadedIndicator_1vzki_9",
11
- buttonWrapper: "_buttonWrapper_1vzki_25",
12
- repliesText: "_repliesText_1vzki_36",
13
- avatarWrapper: "_avatarWrapper_1vzki_42",
14
- lastUserAvatar: "_lastUserAvatar_1vzki_46",
15
- secondLastUserAvatar: "_secondLastUserAvatar_1vzki_47",
16
- lastUserAvatarStacked: "_lastUserAvatarStacked_1vzki_52"
8
+ showRepliesButtonWrapper: "_showRepliesButtonWrapper_b1es9_1",
9
+ contentWrapper: "_contentWrapper_b1es9_5",
10
+ threadedIndicator: "_threadedIndicator_b1es9_9",
11
+ buttonWrapper: "_buttonWrapper_b1es9_25",
12
+ repliesText: "_repliesText_b1es9_36",
13
+ avatarWrapper: "_avatarWrapper_b1es9_42",
14
+ lastUserAvatar: "_lastUserAvatar_b1es9_46",
15
+ secondLastUserAvatar: "_secondLastUserAvatar_b1es9_47",
16
+ lastUserAvatarStacked: "_lastUserAvatarStacked_b1es9_52"
17
17
  }, l = ({ onShowReplies: l, repliesCount: u, lastUser: d, secondLastUser: f }) => {
18
18
  let p = a(), m = p.formatMessage(t.showReplies, { number: u });
19
19
  return /* @__PURE__ */ o("div", {
@@ -1,37 +1,42 @@
1
1
  import { useCallback as e, useEffect as t, useRef as n, useState as r } from "react";
2
- var i = 150, a = ({ messageCount: a, containerRef: o, enabled: s, isExpanded: c = !1 }) => {
3
- let l = n(!0), u = n(!1), [d, f] = r(!1), p = e(() => {
4
- o.current && l.current && o.current.scrollTo({
2
+ var i = 150, a = ({ messageCount: a, containerRef: o, enabled: s, isExpanded: c = !1, suppressAutoScroll: l = !1 }) => {
3
+ let u = n(!0), d = n(!1), [f, p] = r(!1), m = e(() => {
4
+ o.current && u.current && o.current.scrollTo({
5
5
  top: o.current.scrollHeight,
6
6
  behavior: "smooth"
7
7
  });
8
8
  }, [o]);
9
9
  return t(() => {
10
10
  if (s) {
11
- if (u.current = !0, a > 0) {
11
+ if (l) {
12
+ d.current = !1;
13
+ return;
14
+ }
15
+ if (d.current = !0, a > 0) {
12
16
  let e = requestAnimationFrame(() => {
13
17
  requestAnimationFrame(() => {
14
- p(), u.current = !1;
18
+ m(), d.current = !1;
15
19
  });
16
20
  });
17
21
  return () => {
18
- cancelAnimationFrame(e), u.current = !1;
22
+ cancelAnimationFrame(e), d.current = !1;
19
23
  };
20
24
  }
21
- u.current = !1;
25
+ d.current = !1;
22
26
  }
23
27
  }, [
24
28
  a,
25
- p,
26
- s
29
+ m,
30
+ s,
31
+ l
27
32
  ]), t(() => {
28
33
  if (!s) {
29
- f(!1);
34
+ p(!1);
30
35
  return;
31
36
  }
32
37
  let e = requestAnimationFrame(() => {
33
38
  requestAnimationFrame(() => {
34
- o.current && f(o.current.scrollHeight > o.current.clientHeight);
39
+ o.current && p(o.current.scrollHeight > o.current.clientHeight);
35
40
  });
36
41
  });
37
42
  return () => cancelAnimationFrame(e);
@@ -44,21 +49,21 @@ var i = 150, a = ({ messageCount: a, containerRef: o, enabled: s, isExpanded: c
44
49
  handleScroll: () => {
45
50
  if (!s || !o.current) return;
46
51
  let { scrollTop: e, clientHeight: t, scrollHeight: n } = o.current, r = n - (e + t);
47
- if (u.current) {
52
+ if (d.current) {
48
53
  if (r === 0) {
49
- u.current = !1;
54
+ d.current = !1;
50
55
  return;
51
56
  }
52
57
  return;
53
58
  }
54
59
  if (r > i) {
55
- l.current = !1;
60
+ u.current = !1;
56
61
  return;
57
62
  }
58
- l.current = !0;
63
+ u.current = !0;
59
64
  },
60
- handleScrollToBottom: p,
61
- isOverflowing: d
65
+ handleScrollToBottom: m,
66
+ isOverflowing: f
62
67
  };
63
68
  };
64
69
  export { a as useAutoScroll };
@@ -1,44 +1,44 @@
1
1
  export default {
2
- "boxui.threadedAnnotations.threadedAnnotationsAriaLabel": "⟦萬萬萬萬萬 Ťнŗèąďęď âππöťąţíõπ 國國國國國⟧",
3
- "groupSharedFeatures.threadedAnnotations.annotationMessageAriaLabel": "⟦萬萬萬萬萬 Àňʼnöťăţιóņ mëşśâğё 國國國國國⟧",
4
- "groupSharedFeatures.threadedAnnotations.annotationPage": "⟦萬萬 Pαĝе {number} 國國⟧",
5
- "groupSharedFeatures.threadedAnnotations.cancelDeleteButtonAriaLabel": "⟦萬萬萬萬萬 Čăйĉęĺ ďеļèţе ьùŧťοπ 國國國國國⟧",
6
- "groupSharedFeatures.threadedAnnotations.delete": "⟦萬 Ðèľėτè 國⟧",
7
- "groupSharedFeatures.threadedAnnotations.deleteButtonAriaLabel": "⟦萬萬萬 Ďėļĕτĕ ьûťτоπ 國國國⟧",
8
- "groupSharedFeatures.threadedAnnotations.deleteCancel": "⟦萬 Ċάπċёļ 國⟧",
9
- "groupSharedFeatures.threadedAnnotations.deleteCommentQuestion": "⟦萬萬萬萬萬萬萬萬萬萬 Ðô ỳóų ŵǻпτ ťò ďėļέτè ťĥìś ćоmmêŋť? 國國國國國國國國國國⟧",
10
- "groupSharedFeatures.threadedAnnotations.deleteCommentWithRepliesQuestion": "⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ðěĺєŧέ ťнίŝ çómmёņŧ áйď гĕΡļіěş? Ťнîş ăĉťіøņ ¢ǻи'ţ ьė úʼnďöηė. 國國國國國國國國國國國國國國國國國國⟧",
11
- "groupSharedFeatures.threadedAnnotations.deleteConfirmation": "⟦萬萬萬萬萬 Ðěľéţě ċŏπƒíѓmāτίőп 國國國國國⟧",
12
- "groupSharedFeatures.threadedAnnotations.edit": "⟦萬 Εďįτ 國⟧",
13
- "groupSharedFeatures.threadedAnnotations.hideReplies": "⟦萬萬萬 Ħīďέ ŗėΡľίëѕ 國國國⟧",
14
- "groupSharedFeatures.threadedAnnotations.markedAsResolved": "⟦萬萬萬萬萬 mâяķëď áѕ гéŝõľνěď 國國國國國⟧",
15
- "groupSharedFeatures.threadedAnnotations.messageEditor.cancel": "⟦萬 Ĉāήċęľ 國⟧",
16
- "groupSharedFeatures.threadedAnnotations.messageEditor.cancelButtonAriaLabel": "⟦萬萬萬 Ćâňĉёľ вŭŧţõņ 國國國⟧",
2
+ "boxui.threadedAnnotations.threadedAnnotationsAriaLabel": "⟦萬萬萬萬萬 Ţĥřęãďёď άňиŏτäťіŏπ 國國國國國⟧",
3
+ "groupSharedFeatures.threadedAnnotations.annotationMessageAriaLabel": "⟦萬萬萬萬萬 Ãňņоţąťįоņ mêśşāĝę 國國國國國⟧",
4
+ "groupSharedFeatures.threadedAnnotations.annotationPage": "⟦萬萬 Pǻğë {number} 國國⟧",
5
+ "groupSharedFeatures.threadedAnnotations.cancelDeleteButtonAriaLabel": "⟦萬萬萬萬萬 Çăήĉêľ ďêľёťė ьůţτőл 國國國國國⟧",
6
+ "groupSharedFeatures.threadedAnnotations.delete": "⟦萬 Ďęĺéťė 國⟧",
7
+ "groupSharedFeatures.threadedAnnotations.deleteButtonAriaLabel": "⟦萬萬萬 Ðеĺеτė ьцťŧŏņ 國國國⟧",
8
+ "groupSharedFeatures.threadedAnnotations.deleteCancel": "⟦萬 Çáπčéĺ 國⟧",
9
+ "groupSharedFeatures.threadedAnnotations.deleteCommentQuestion": "⟦萬萬萬萬萬萬萬萬萬萬 Ðő ÿôц ẁǻņť ţò ďęľεţĕ ťніŝ ćömmĕлť? 國國國國國國國國國國⟧",
10
+ "groupSharedFeatures.threadedAnnotations.deleteCommentWithRepliesQuestion": "⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ďёļêťε ťнĩś çоmmёпŧ áπď яêΡľίéş? Ŧĥïѕ áćτïōň ċαη'ŧ вε µńďōņé. 國國國國國國國國國國國國國國國國國國⟧",
11
+ "groupSharedFeatures.threadedAnnotations.deleteConfirmation": "⟦萬萬萬萬萬 Ðęĺěţе čοņƒіŕmáτίόŋ 國國國國國⟧",
12
+ "groupSharedFeatures.threadedAnnotations.edit": "⟦萬 Ěďíţ 國⟧",
13
+ "groupSharedFeatures.threadedAnnotations.hideReplies": "⟦萬萬萬 Ħĩďě ŗėΡĺįέş 國國國⟧",
14
+ "groupSharedFeatures.threadedAnnotations.markedAsResolved": "⟦萬萬萬萬萬 máŕķёď âş ŕěşóľνěď 國國國國國⟧",
15
+ "groupSharedFeatures.threadedAnnotations.messageEditor.cancel": "⟦萬 Çάŋĉęľ 國⟧",
16
+ "groupSharedFeatures.threadedAnnotations.messageEditor.cancelButtonAriaLabel": "⟦萬萬萬 Ĉàηćέĺ вûţŧοņ 國國國⟧",
17
17
  "groupSharedFeatures.threadedAnnotations.messageEditor.characterCount": "⟦萬萬萬 {count}/{maxCount} 國國國⟧",
18
- "groupSharedFeatures.threadedAnnotations.messageEditor.characterLimitExceeded": "⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ύőμŗ ċõmmєήţ ϊś {excess, plural, one {# ĉнáґά¢ťέя} other {# ¢ħǻŗäĉťęґş}} ťòο ĺòлĝ 國國國國國國國國國國國國國國國國國國⟧",
19
- "groupSharedFeatures.threadedAnnotations.messageEditor.editorContentAriaLabel": "⟦萬萬萬萬 Μεşŝãĝě еďìŧòг 國國國國⟧",
20
- "groupSharedFeatures.threadedAnnotations.messageEditor.placeholderAriaLabel": "⟦萬萬萬萬萬萬萬 Меşŝäğė ĩńΡųŧ Ρľάĉеĥöĺďēґ 國國國國國國國⟧",
21
- "groupSharedFeatures.threadedAnnotations.messageEditor.placeholderPrefix": "⟦萬萬萬萬萬 Ẃгíτє ą ¢οmmёпŧ ŏŕ 國國國國國⟧",
22
- "groupSharedFeatures.threadedAnnotations.messageEditor.placeholderPrefixReply": "⟦萬萬萬萬 Щѓίţє ă гёΡĺУ ог 國國國國⟧",
23
- "groupSharedFeatures.threadedAnnotations.messageEditor.placeholderSuffix": "⟦萬萬 τó męʼnţĭοʼn 國國⟧",
24
- "groupSharedFeatures.threadedAnnotations.messageEditor.placeholderUplifted": "⟦萬萬萬萬萬萬萬萬萬 Ĺèăνè ά сòmmêńτ оŕ @ ţό mёйťįол 國國國國國國國國國⟧",
25
- "groupSharedFeatures.threadedAnnotations.messageEditor.post": "⟦萬 Pŏşŧ 國⟧",
26
- "groupSharedFeatures.threadedAnnotations.messageEditor.postButtonAriaLabel": "⟦萬萬萬 Pоѕŧ вμťτōņ 國國國⟧",
27
- "groupSharedFeatures.threadedAnnotations.messageEditor.postLoading": "⟦萬萬 Ĺŏąďιņĝ... 國國⟧",
28
- "groupSharedFeatures.threadedAnnotations.messageEditor.save": "⟦萬 Ѕāνĕ 國⟧",
29
- "groupSharedFeatures.threadedAnnotations.messageEditor.saveLoading": "⟦萬萬 Ѕåνìπĝ... 國國⟧",
30
- "groupSharedFeatures.threadedAnnotations.messageEditor.scrollContainerAriaLabel": "⟦萬萬萬萬萬萬萬萬萬 Μеśśáĝε ёďïţоѓ şсřøļĺ ĉøήŧâĭńєя 國國國國國國國國國⟧",
31
- "groupSharedFeatures.threadedAnnotations.moreOptionsAriaLabel": "⟦萬萬萬萬萬 Μöŗę öΡťîöňś ьµŧťóή 國國國國國⟧",
32
- "groupSharedFeatures.threadedAnnotations.reply": "⟦萬 ΓеΡĺУ 國⟧",
33
- "groupSharedFeatures.threadedAnnotations.replyButtonAriaLabel": "⟦萬萬萬 ΓėΡľÿ ьūţτŏŋ 國國國⟧",
34
- "groupSharedFeatures.threadedAnnotations.resolveButtonAriaLabel": "⟦萬萬 Ŕέśøĺνē 國國⟧",
35
- "groupSharedFeatures.threadedAnnotations.resolvedStateAriaLabel": "⟦萬萬萬萬萬萬萬 Řеѕόļűŧíôη ŝταŧúş méŝşäġė 國國國國國國國⟧",
36
- "groupSharedFeatures.threadedAnnotations.showMoreReplies": "⟦萬萬萬萬萬萬萬萬萬萬萬 {count, plural, one {# mŏřе řęΡļŷ} other {# mοяё яēΡĺιëѕ}} 國國國國國國國國國國國⟧",
37
- "groupSharedFeatures.threadedAnnotations.showReplies": "⟦萬萬萬萬萬萬萬萬萬萬萬萬萬 {number, plural, one {Ŝĥôш # ŗеΡļÿ} other {Ѕнóẃ # mόŕέ гéΡľĭеş}} 國國國國國國國國國國國國國⟧",
38
- "groupSharedFeatures.threadedAnnotations.showRepliesButtonAriaLabel": "⟦萬萬萬 ЯĕΡļỳ вűŧťõη 國國國⟧",
39
- "groupSharedFeatures.threadedAnnotations.textMentionAriaLabel": "⟦萬萬萬 Üśëя mєπτіóʼn 國國國⟧",
40
- "groupSharedFeatures.threadedAnnotations.textMessageAriaLabel": "⟦萬萬萬 Μěŝŝàğé τехτ 國國國⟧",
41
- "groupSharedFeatures.threadedAnnotations.unresolveButtonAriaLabel": "⟦萬萬 Ùņѓéşøľνε 國國⟧",
42
- "groupSharedFeatures.threadedAnnotations.userAvatar": "⟦萬萬萬 Џѕéѓ ανåţáŗ 國國國⟧",
43
- "groupSharedFeatures.threadedAnnotations.userAvatarButtonAriaLabel": "⟦萬萬萬萬萬萬萬 Vĩèώ ũśέŗ Ρяòƒĩĺè вůŧţой 國國國國國國國⟧"
18
+ "groupSharedFeatures.threadedAnnotations.messageEditor.characterLimitExceeded": "⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ýŏцг ćōmmєηŧ îş {excess, plural, one {# снάгāčťĕř} other {# сĥăѓαċťεгş}} ţоő ļŏηġ 國國國國國國國國國國國國國國國國國國⟧",
19
+ "groupSharedFeatures.threadedAnnotations.messageEditor.editorContentAriaLabel": "⟦萬萬萬萬 Μėѕŝäġê êďιτöґ 國國國國⟧",
20
+ "groupSharedFeatures.threadedAnnotations.messageEditor.placeholderAriaLabel": "⟦萬萬萬萬萬萬萬 Μєѕŝάğë ιŋΡŭŧ Ρļαċėħŏļďеř 國國國國國國國⟧",
21
+ "groupSharedFeatures.threadedAnnotations.messageEditor.placeholderPrefix": "⟦萬萬萬萬萬 Ẁяīţë ă ¢ŏmméиţ όŗ 國國國國國⟧",
22
+ "groupSharedFeatures.threadedAnnotations.messageEditor.placeholderPrefixReply": "⟦萬萬萬萬 Ẃŗїťė ă ґέΡļý õř 國國國國⟧",
23
+ "groupSharedFeatures.threadedAnnotations.messageEditor.placeholderSuffix": "⟦萬萬 τô mëňτìοń 國國⟧",
24
+ "groupSharedFeatures.threadedAnnotations.messageEditor.placeholderUplifted": "⟦萬萬萬萬萬萬萬萬萬 Ļέàνε å ċōmmеʼnţ όг @ ŧø mëŋťĭöň 國國國國國國國國國⟧",
25
+ "groupSharedFeatures.threadedAnnotations.messageEditor.post": "⟦萬 Pőŝť 國⟧",
26
+ "groupSharedFeatures.threadedAnnotations.messageEditor.postButtonAriaLabel": "⟦萬萬萬 Pøѕţ ьůťŧőņ 國國國⟧",
27
+ "groupSharedFeatures.threadedAnnotations.messageEditor.postLoading": "⟦萬萬 Ĺőąďϊиğ... 國國⟧",
28
+ "groupSharedFeatures.threadedAnnotations.messageEditor.save": "⟦萬 Şâνé 國⟧",
29
+ "groupSharedFeatures.threadedAnnotations.messageEditor.saveLoading": "⟦萬萬 Śąνїňġ... 國國⟧",
30
+ "groupSharedFeatures.threadedAnnotations.messageEditor.scrollContainerAriaLabel": "⟦萬萬萬萬萬萬萬萬萬 Мέşѕαğέ ĕďιţσя śċŗοļľ ċόňţáíпĕг 國國國國國國國國國⟧",
31
+ "groupSharedFeatures.threadedAnnotations.moreOptionsAriaLabel": "⟦萬萬萬萬萬 Мöґě òΡťįőиş вúτţøη 國國國國國⟧",
32
+ "groupSharedFeatures.threadedAnnotations.reply": "⟦萬 ŖёΡļỳ 國⟧",
33
+ "groupSharedFeatures.threadedAnnotations.replyButtonAriaLabel": "⟦萬萬萬 ҐèΡľÿ вűţŧŏη 國國國⟧",
34
+ "groupSharedFeatures.threadedAnnotations.resolveButtonAriaLabel": "⟦萬萬 Ґěşòĺνē 國國⟧",
35
+ "groupSharedFeatures.threadedAnnotations.resolvedStateAriaLabel": "⟦萬萬萬萬萬萬萬 Ŗėşõľųτіõņ ѕťǻťüѕ mёśşąġě 國國國國國國國⟧",
36
+ "groupSharedFeatures.threadedAnnotations.showMoreReplies": "⟦萬萬萬萬萬萬萬萬萬萬萬 {count, plural, one {# mõгë гēΡĺў} other {# mοŕё ѓęΡļĭēş}} 國國國國國國國國國國國⟧",
37
+ "groupSharedFeatures.threadedAnnotations.showReplies": "⟦萬萬萬萬萬萬萬萬萬萬萬萬萬 {number, plural, one {Śħόẃ # гĕΡĺý} other {Śнøẃ # mőřε яεΡļĭèş}} 國國國國國國國國國國國國國⟧",
38
+ "groupSharedFeatures.threadedAnnotations.showRepliesButtonAriaLabel": "⟦萬萬萬 ŔėΡľγ ьμťŧõп 國國國⟧",
39
+ "groupSharedFeatures.threadedAnnotations.textMentionAriaLabel": "⟦萬萬萬 Űѕĕŕ mέŋţīõи 國國國⟧",
40
+ "groupSharedFeatures.threadedAnnotations.textMessageAriaLabel": "⟦萬萬萬 Мĕŝѕăĝе ţéхť 國國國⟧",
41
+ "groupSharedFeatures.threadedAnnotations.unresolveButtonAriaLabel": "⟦萬萬 Ųηґęśøĺνě 國國⟧",
42
+ "groupSharedFeatures.threadedAnnotations.userAvatar": "⟦萬萬萬 Üşĕг ãναŧαя 國國國⟧",
43
+ "groupSharedFeatures.threadedAnnotations.userAvatarButtonAriaLabel": "⟦萬萬萬萬萬萬萬 Vïеш ŭѕėѓ Ρяοƒιļē вũτţόʼn 國國國國國國國⟧"
44
44
  }
@@ -1,84 +1,84 @@
1
1
  # Aria label for the threaded annotations container button
2
- boxui.threadedAnnotations.threadedAnnotationsAriaLabel = ⟦萬萬萬萬萬 Ťнŗèąďęď âππöťąţíõπ 國國國國國⟧
2
+ boxui.threadedAnnotations.threadedAnnotationsAriaLabel = ⟦萬萬萬萬萬 Ţĥřęãďёď άňиŏτäťіŏπ 國國國國國⟧
3
3
  # Aria label for annotation message container
4
- groupSharedFeatures.threadedAnnotations.annotationMessageAriaLabel = ⟦萬萬萬萬萬 Àňʼnöťăţιóņ mëşśâğё 國國國國國⟧
4
+ groupSharedFeatures.threadedAnnotations.annotationMessageAriaLabel = ⟦萬萬萬萬萬 Ãňņоţąťįоņ mêśşāĝę 國國國國國⟧
5
5
  # Label showing the page number of an annotation target
6
- groupSharedFeatures.threadedAnnotations.annotationPage = ⟦萬萬 Pαĝе {number} 國國⟧
6
+ groupSharedFeatures.threadedAnnotations.annotationPage = ⟦萬萬 Pǻğë {number} 國國⟧
7
7
  # Aria label for cancel delete button
8
- groupSharedFeatures.threadedAnnotations.cancelDeleteButtonAriaLabel = ⟦萬萬萬萬萬 Čăйĉęĺ ďеļèţе ьùŧťοπ 國國國國國⟧
8
+ groupSharedFeatures.threadedAnnotations.cancelDeleteButtonAriaLabel = ⟦萬萬萬萬萬 Çăήĉêľ ďêľёťė ьůţτőл 國國國國國⟧
9
9
  # Delete button text
10
- groupSharedFeatures.threadedAnnotations.delete = ⟦萬 Ðèľėτè 國⟧
10
+ groupSharedFeatures.threadedAnnotations.delete = ⟦萬 Ďęĺéťė 國⟧
11
11
  # Aria label for delete button
12
- groupSharedFeatures.threadedAnnotations.deleteButtonAriaLabel = ⟦萬萬萬 Ďėļĕτĕ ьûťτоπ 國國國⟧
12
+ groupSharedFeatures.threadedAnnotations.deleteButtonAriaLabel = ⟦萬萬萬 Ðеĺеτė ьцťŧŏņ 國國國⟧
13
13
  # Cancel button text for delete confirmation dialog
14
- groupSharedFeatures.threadedAnnotations.deleteCancel = ⟦萬 Ċάπċёļ 國⟧
14
+ groupSharedFeatures.threadedAnnotations.deleteCancel = ⟦萬 Çáπčéĺ 國⟧
15
15
  # Confirmation text asking user if they want to delete a comment
16
- groupSharedFeatures.threadedAnnotations.deleteCommentQuestion = ⟦萬萬萬萬萬萬萬萬萬萬 Ðô ỳóų ŵǻпτ ťò ďėļέτè ťĥìś ćоmmêŋť? 國國國國國國國國國國⟧
16
+ groupSharedFeatures.threadedAnnotations.deleteCommentQuestion = ⟦萬萬萬萬萬萬萬萬萬萬 Ðő ÿôц ẁǻņť ţò ďęľεţĕ ťніŝ ćömmĕлť? 國國國國國國國國國國⟧
17
17
  # Confirmation text asking user if they want to delete a comment and its replies
18
- groupSharedFeatures.threadedAnnotations.deleteCommentWithRepliesQuestion = ⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ðěĺєŧέ ťнίŝ çómmёņŧ áйď гĕΡļіěş? Ťнîş ăĉťіøņ ¢ǻи'ţ ьė úʼnďöηė. 國國國國國國國國國國國國國國國國國國⟧
18
+ groupSharedFeatures.threadedAnnotations.deleteCommentWithRepliesQuestion = ⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ďёļêťε ťнĩś çоmmёпŧ áπď яêΡľίéş? Ŧĥïѕ áćτïōň ċαη'ŧ вε µńďōņé. 國國國國國國國國國國國國國國國國國國⟧
19
19
  # Aria label for delete confirmation popover
20
- groupSharedFeatures.threadedAnnotations.deleteConfirmation = ⟦萬萬萬萬萬 Ðěľéţě ċŏπƒíѓmāτίőп 國國國國國⟧
20
+ groupSharedFeatures.threadedAnnotations.deleteConfirmation = ⟦萬萬萬萬萬 Ðęĺěţе čοņƒіŕmáτίόŋ 國國國國國⟧
21
21
  # Edit option in message context menu
22
- groupSharedFeatures.threadedAnnotations.edit = ⟦萬 Εďįτ 國⟧
22
+ groupSharedFeatures.threadedAnnotations.edit = ⟦萬 Ěďíţ 國⟧
23
23
  # Button text to hide replies in threaded annotations
24
- groupSharedFeatures.threadedAnnotations.hideReplies = ⟦萬萬萬 Ħīďέ ŗėΡľίëѕ 國國國⟧
24
+ groupSharedFeatures.threadedAnnotations.hideReplies = ⟦萬萬萬 Ħĩďě ŗėΡĺįέş 國國國⟧
25
25
  # Text shown after the author name when a comment thread is marked as resolved
26
- groupSharedFeatures.threadedAnnotations.markedAsResolved = ⟦萬萬萬萬萬 mâяķëď áѕ гéŝõľνěď 國國國國國⟧
26
+ groupSharedFeatures.threadedAnnotations.markedAsResolved = ⟦萬萬萬萬萬 máŕķёď âş ŕěşóľνěď 國國國國國⟧
27
27
  # Cancel button text for message editor
28
- groupSharedFeatures.threadedAnnotations.messageEditor.cancel = ⟦萬 Ĉāήċęľ 國⟧
28
+ groupSharedFeatures.threadedAnnotations.messageEditor.cancel = ⟦萬 Çάŋĉęľ 國⟧
29
29
  # Aria label for the cancel button in message editor
30
- groupSharedFeatures.threadedAnnotations.messageEditor.cancelButtonAriaLabel = ⟦萬萬萬 Ćâňĉёľ вŭŧţõņ 國國國⟧
30
+ groupSharedFeatures.threadedAnnotations.messageEditor.cancelButtonAriaLabel = ⟦萬萬萬 Ĉàηćέĺ вûţŧοņ 國國國⟧
31
31
  # Character count display showing current count and maximum allowed
32
32
  groupSharedFeatures.threadedAnnotations.messageEditor.characterCount = ⟦萬萬萬 {count}/{maxCount} 國國國⟧
33
33
  # Screen reader alert and tooltip text shown when character limit is exceeded
34
- groupSharedFeatures.threadedAnnotations.messageEditor.characterLimitExceeded = ⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ύőμŗ ċõmmєήţ ϊś {excess, plural, one {# ĉнáґά¢ťέя} other {# ¢ħǻŗäĉťęґş}} ťòο ĺòлĝ 國國國國國國國國國國國國國國國國國國⟧
34
+ groupSharedFeatures.threadedAnnotations.messageEditor.characterLimitExceeded = ⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ýŏцг ćōmmєηŧ îş {excess, plural, one {# снάгāčťĕř} other {# сĥăѓαċťεгş}} ţоő ļŏηġ 國國國國國國國國國國國國國國國國國國⟧
35
35
  # Aria label for the rich text editor content area
36
- groupSharedFeatures.threadedAnnotations.messageEditor.editorContentAriaLabel = ⟦萬萬萬萬 Μεşŝãĝě еďìŧòг 國國國國⟧
36
+ groupSharedFeatures.threadedAnnotations.messageEditor.editorContentAriaLabel = ⟦萬萬萬萬 Μėѕŝäġê êďιτöґ 國國國國⟧
37
37
  # Aria label for message editor placeholder
38
- groupSharedFeatures.threadedAnnotations.messageEditor.placeholderAriaLabel = ⟦萬萬萬萬萬萬萬 Меşŝäğė ĩńΡųŧ Ρľάĉеĥöĺďēґ 國國國國國國國⟧
38
+ groupSharedFeatures.threadedAnnotations.messageEditor.placeholderAriaLabel = ⟦萬萬萬萬萬萬萬 Μєѕŝάğë ιŋΡŭŧ Ρļαċėħŏļďеř 國國國國國國國⟧
39
39
  # First part of placeholder text before @ symbol
40
- groupSharedFeatures.threadedAnnotations.messageEditor.placeholderPrefix = ⟦萬萬萬萬萬 Ẃгíτє ą ¢οmmёпŧ ŏŕ 國國國國國⟧
40
+ groupSharedFeatures.threadedAnnotations.messageEditor.placeholderPrefix = ⟦萬萬萬萬萬 Ẁяīţë ă ¢ŏmméиţ όŗ 國國國國國⟧
41
41
  # First part of placeholder text before @ symbol for reply
42
- groupSharedFeatures.threadedAnnotations.messageEditor.placeholderPrefixReply = ⟦萬萬萬萬 Щѓίţє ă гёΡĺУ ог 國國國國⟧
42
+ groupSharedFeatures.threadedAnnotations.messageEditor.placeholderPrefixReply = ⟦萬萬萬萬 Ẃŗїťė ă ґέΡļý õř 國國國國⟧
43
43
  # Last part of placeholder text after @ symbol
44
- groupSharedFeatures.threadedAnnotations.messageEditor.placeholderSuffix = ⟦萬萬 τó męʼnţĭοʼn 國國⟧
44
+ groupSharedFeatures.threadedAnnotations.messageEditor.placeholderSuffix = ⟦萬萬 τô mëňτìοń 國國⟧
45
45
  # Placeholder text for uplifted message editor
46
- groupSharedFeatures.threadedAnnotations.messageEditor.placeholderUplifted = ⟦萬萬萬萬萬萬萬萬萬 Ĺèăνè ά сòmmêńτ оŕ @ ţό mёйťįол 國國國國國國國國國⟧
46
+ groupSharedFeatures.threadedAnnotations.messageEditor.placeholderUplifted = ⟦萬萬萬萬萬萬萬萬萬 Ļέàνε å ċōmmеʼnţ όг @ ŧø mëŋťĭöň 國國國國國國國國國⟧
47
47
  # Post button text for message editor
48
- groupSharedFeatures.threadedAnnotations.messageEditor.post = ⟦萬 Pŏşŧ 國⟧
48
+ groupSharedFeatures.threadedAnnotations.messageEditor.post = ⟦萬 Pőŝť 國⟧
49
49
  # Aria label for the post button in message editor
50
- groupSharedFeatures.threadedAnnotations.messageEditor.postButtonAriaLabel = ⟦萬萬萬 Pоѕŧ вμťτōņ 國國國⟧
50
+ groupSharedFeatures.threadedAnnotations.messageEditor.postButtonAriaLabel = ⟦萬萬萬 Pøѕţ ьůťŧőņ 國國國⟧
51
51
  # Aria label for post button loading state
52
- groupSharedFeatures.threadedAnnotations.messageEditor.postLoading = ⟦萬萬 Ĺŏąďιņĝ... 國國⟧
52
+ groupSharedFeatures.threadedAnnotations.messageEditor.postLoading = ⟦萬萬 Ĺőąďϊиğ... 國國⟧
53
53
  # Save button text for message editor
54
- groupSharedFeatures.threadedAnnotations.messageEditor.save = ⟦萬 Ѕāνĕ 國⟧
54
+ groupSharedFeatures.threadedAnnotations.messageEditor.save = ⟦萬 Şâνé 國⟧
55
55
  # Aria label for save button loading state
56
- groupSharedFeatures.threadedAnnotations.messageEditor.saveLoading = ⟦萬萬 Ѕåνìπĝ... 國國⟧
56
+ groupSharedFeatures.threadedAnnotations.messageEditor.saveLoading = ⟦萬萬 Śąνїňġ... 國國⟧
57
57
  # Aria label for the scrollable message editor content container
58
- groupSharedFeatures.threadedAnnotations.messageEditor.scrollContainerAriaLabel = ⟦萬萬萬萬萬萬萬萬萬 Μеśśáĝε ёďïţоѓ şсřøļĺ ĉøήŧâĭńєя 國國國國國國國國國⟧
58
+ groupSharedFeatures.threadedAnnotations.messageEditor.scrollContainerAriaLabel = ⟦萬萬萬萬萬萬萬萬萬 Мέşѕαğέ ĕďιţσя śċŗοļľ ċόňţáíпĕг 國國國國國國國國國⟧
59
59
  # Aria label for more options button in annotation message
60
- groupSharedFeatures.threadedAnnotations.moreOptionsAriaLabel = ⟦萬萬萬萬萬 Μöŗę öΡťîöňś ьµŧťóή 國國國國國⟧
60
+ groupSharedFeatures.threadedAnnotations.moreOptionsAriaLabel = ⟦萬萬萬萬萬 Мöґě òΡťįőиş вúτţøη 國國國國國⟧
61
61
  # Reply button text to start composing a reply
62
- groupSharedFeatures.threadedAnnotations.reply = ⟦萬 ΓеΡĺУ 國⟧
62
+ groupSharedFeatures.threadedAnnotations.reply = ⟦萬 ŖёΡļỳ 國⟧
63
63
  # Aria label for the reply button that opens the message editor
64
- groupSharedFeatures.threadedAnnotations.replyButtonAriaLabel = ⟦萬萬萬 ΓėΡľÿ ьūţτŏŋ 國國國⟧
64
+ groupSharedFeatures.threadedAnnotations.replyButtonAriaLabel = ⟦萬萬萬 ҐèΡľÿ вűţŧŏη 國國國⟧
65
65
  # Aria label for resolve button
66
- groupSharedFeatures.threadedAnnotations.resolveButtonAriaLabel = ⟦萬萬 Ŕέśøĺνē 國國⟧
66
+ groupSharedFeatures.threadedAnnotations.resolveButtonAriaLabel = ⟦萬萬 Ґěşòĺνē 國國⟧
67
67
  # Aria label for the resolution status message container
68
- groupSharedFeatures.threadedAnnotations.resolvedStateAriaLabel = ⟦萬萬萬萬萬萬萬 Řеѕόļűŧíôη ŝταŧúş méŝşäġė 國國國國國國國⟧
68
+ groupSharedFeatures.threadedAnnotations.resolvedStateAriaLabel = ⟦萬萬萬萬萬萬萬 Ŗėşõľųτіõņ ѕťǻťüѕ mёśşąġě 國國國國國國國⟧
69
69
  # Button text to show more replies with count
70
- groupSharedFeatures.threadedAnnotations.showMoreReplies = ⟦萬萬萬萬萬萬萬萬萬萬萬 {count, plural, one {# mŏřе řęΡļŷ} other {# mοяё яēΡĺιëѕ}} 國國國國國國國國國國國⟧
70
+ groupSharedFeatures.threadedAnnotations.showMoreReplies = ⟦萬萬萬萬萬萬萬萬萬萬萬 {count, plural, one {# mõгë гēΡĺў} other {# mοŕё ѓęΡļĭēş}} 國國國國國國國國國國國⟧
71
71
  # Button text to show replies with count
72
- groupSharedFeatures.threadedAnnotations.showReplies = ⟦萬萬萬萬萬萬萬萬萬萬萬萬萬 {number, plural, one {Ŝĥôш # ŗеΡļÿ} other {Ѕнóẃ # mόŕέ гéΡľĭеş}} 國國國國國國國國國國國國國⟧
72
+ groupSharedFeatures.threadedAnnotations.showReplies = ⟦萬萬萬萬萬萬萬萬萬萬萬萬萬 {number, plural, one {Śħόẃ # гĕΡĺý} other {Śнøẃ # mőřε яεΡļĭèş}} 國國國國國國國國國國國國國⟧
73
73
  # Aria label for the reply button
74
- groupSharedFeatures.threadedAnnotations.showRepliesButtonAriaLabel = ⟦萬萬萬 ЯĕΡļỳ вűŧťõη 國國國⟧
74
+ groupSharedFeatures.threadedAnnotations.showRepliesButtonAriaLabel = ⟦萬萬萬 ŔėΡľγ ьμťŧõп 國國國⟧
75
75
  # Aria label for user mention links
76
- groupSharedFeatures.threadedAnnotations.textMentionAriaLabel = ⟦萬萬萬 Üśëя mєπτіóʼn 國國國⟧
76
+ groupSharedFeatures.threadedAnnotations.textMentionAriaLabel = ⟦萬萬萬 Űѕĕŕ mέŋţīõи 國國國⟧
77
77
  # Aria label for message text content
78
- groupSharedFeatures.threadedAnnotations.textMessageAriaLabel = ⟦萬萬萬 Μěŝŝàğé τехτ 國國國⟧
78
+ groupSharedFeatures.threadedAnnotations.textMessageAriaLabel = ⟦萬萬萬 Мĕŝѕăĝе ţéхť 國國國⟧
79
79
  # Aria label for unresolve button
80
- groupSharedFeatures.threadedAnnotations.unresolveButtonAriaLabel = ⟦萬萬 Ùņѓéşøľνε 國國⟧
80
+ groupSharedFeatures.threadedAnnotations.unresolveButtonAriaLabel = ⟦萬萬 Ųηґęśøĺνě 國國⟧
81
81
  # Alt text for user avatar image
82
- groupSharedFeatures.threadedAnnotations.userAvatar = ⟦萬萬萬 Џѕéѓ ανåţáŗ 國國國⟧
82
+ groupSharedFeatures.threadedAnnotations.userAvatar = ⟦萬萬萬 Üşĕг ãναŧαя 國國國⟧
83
83
  # Aria label for clickable user avatar button
84
- groupSharedFeatures.threadedAnnotations.userAvatarButtonAriaLabel = ⟦萬萬萬萬萬萬萬 Vĩèώ ũśέŗ Ρяòƒĩĺè вůŧţой 國國國國國國國⟧
84
+ groupSharedFeatures.threadedAnnotations.userAvatarButtonAriaLabel = ⟦萬萬萬萬萬萬萬 Vïеш ŭѕėѓ Ρяοƒιļē вũτţόʼn 國國國國國國國⟧
@@ -1 +1 @@
1
- ._messagesViewWrapper_1w62w_4{z-index:0;width:100%;position:relative}._messagesViewWrapper_1w62w_4._overflowing_1w62w_9{margin-bottom:-1.125rem}._messagesViewWrapper_1w62w_4._overflowing_1w62w_9 ._scrollable_1w62w_12{padding-bottom:var(--space-4)}._messagesView_1w62w_4{width:100%;height:100%;padding-top:var(--space-1);padding-left:var(--space-1);flex-direction:column;display:flex}._messagesView_1w62w_4._scrollable_1w62w_12{max-height:27rem;margin-right:calc(-1 * var(--space-3) + .125rem);padding-right:calc(var(--space-3) - .125rem);scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--black-opacity-50) transparent;overflow:hidden auto}@supports not (scrollbar-color:gray transparent){._messagesView_1w62w_4._scrollable_1w62w_12{scrollbar-width:initial}._messagesView_1w62w_4._scrollable_1w62w_12::-webkit-scrollbar{width:var(--size-2);background-color:#0000}._messagesView_1w62w_4._scrollable_1w62w_12::-webkit-scrollbar-thumb{background:var(--black-opacity-50);border-radius:var(--radius-2)}._messagesView_1w62w_4._scrollable_1w62w_12::-webkit-scrollbar-thumb:hover{background:var(--black-opacity-50)}}._messagesView_1w62w_4 ._repliesContainer_1w62w_52{flex-direction:column;width:100%;display:flex}._messagesFade_1w62w_58{z-index:1;height:var(--size-8);background:linear-gradient(to bottom, transparent, var(--fade-bg,var(--surface-surface)));pointer-events:none;position:absolute;bottom:0;left:0;right:0}
1
+ ._messagesViewWrapper_1yvpu_4{z-index:0;width:100%;position:relative}._messagesViewWrapper_1yvpu_4._overflowing_1yvpu_9 ._scrollable_1yvpu_9{padding-bottom:var(--space-4)}._messagesViewWrapper_1yvpu_4._withEditorBelow_1yvpu_12{margin-bottom:-1.125rem}._messagesView_1yvpu_4{width:100%;height:100%;padding-top:var(--space-1);padding-left:var(--space-1);flex-direction:column;display:flex}._messagesView_1yvpu_4._scrollable_1yvpu_9{max-height:27rem;margin-right:calc(-1 * var(--space-3) + .125rem);padding-right:calc(var(--space-3) - .125rem);scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--black-opacity-50) transparent;overflow:hidden auto}@supports not (scrollbar-color:gray transparent){._messagesView_1yvpu_4._scrollable_1yvpu_9{scrollbar-width:initial}._messagesView_1yvpu_4._scrollable_1yvpu_9::-webkit-scrollbar{width:var(--size-2);background-color:#0000}._messagesView_1yvpu_4._scrollable_1yvpu_9::-webkit-scrollbar-thumb{background:var(--black-opacity-50);border-radius:var(--radius-2)}._messagesView_1yvpu_4._scrollable_1yvpu_9::-webkit-scrollbar-thumb:hover{background:var(--black-opacity-50)}}._messagesView_1yvpu_4 ._repliesContainer_1yvpu_52{flex-direction:column;width:100%;display:flex}._messagesFade_1yvpu_58{z-index:1;height:var(--size-8);background:linear-gradient(to bottom, transparent, var(--fade-bg,var(--surface-surface)));pointer-events:none;position:absolute;bottom:0;left:0;right:0}
@@ -1 +1 @@
1
- ._showRepliesButtonWrapper_1vzki_1{flex-direction:column;display:flex}._showRepliesButtonWrapper_1vzki_1 ._contentWrapper_1vzki_5{gap:6px;display:flex}._showRepliesButtonWrapper_1vzki_1 ._contentWrapper_1vzki_5 ._threadedIndicator_1vzki_9{width:var(--space-7);flex-shrink:0;position:relative}._showRepliesButtonWrapper_1vzki_1 ._contentWrapper_1vzki_5 ._threadedIndicator_1vzki_9:after{content:"";left:50%;top:calc(var(--border-2) * -1);bottom:calc(var(--border-2) * -1);width:var(--border-2);background-color:var(--border-divider-border);border-radius:var(--radius-1);position:absolute;transform:translate(-50%)}._showRepliesButtonWrapper_1vzki_1 ._contentWrapper_1vzki_5 ._buttonWrapper_1vzki_25{align-items:center;gap:var(--space-2);cursor:pointer;background:0 0;border:none;padding:4px 0 12px;display:inline-flex}._showRepliesButtonWrapper_1vzki_1 ._contentWrapper_1vzki_5 ._buttonWrapper_1vzki_25 ._repliesText_1vzki_36{text-align:center}._showRepliesButtonWrapper_1vzki_1 ._contentWrapper_1vzki_5 ._buttonWrapper_1vzki_25:hover ._repliesText_1vzki_36{--text-color-on-light-secondary:var(--text-text-on-light-secondary-hover)}._showRepliesButtonWrapper_1vzki_1 ._contentWrapper_1vzki_5 ._buttonWrapper_1vzki_25 ._avatarWrapper_1vzki_42{display:flex;position:relative}._showRepliesButtonWrapper_1vzki_1 ._contentWrapper_1vzki_5 ._buttonWrapper_1vzki_25 ._avatarWrapper_1vzki_42 ._lastUserAvatar_1vzki_46,._showRepliesButtonWrapper_1vzki_1 ._contentWrapper_1vzki_5 ._buttonWrapper_1vzki_25 ._avatarWrapper_1vzki_42 ._secondLastUserAvatar_1vzki_47{border:var(--border-3) solid var(--avatar-border-color,var(--gray-white));border-radius:50%;position:relative}._showRepliesButtonWrapper_1vzki_1 ._contentWrapper_1vzki_5 ._buttonWrapper_1vzki_25 ._avatarWrapper_1vzki_42 ._lastUserAvatarStacked_1vzki_52{margin-left:calc(var(--space-2) * -1)}
1
+ ._showRepliesButtonWrapper_b1es9_1{flex-direction:column;display:flex}._showRepliesButtonWrapper_b1es9_1 ._contentWrapper_b1es9_5{gap:6px;display:flex}._showRepliesButtonWrapper_b1es9_1 ._contentWrapper_b1es9_5 ._threadedIndicator_b1es9_9{width:var(--space-7);flex-shrink:0;position:relative}._showRepliesButtonWrapper_b1es9_1 ._contentWrapper_b1es9_5 ._threadedIndicator_b1es9_9:after{content:"";left:50%;top:calc(var(--border-2) * -1);bottom:calc(var(--border-2));width:var(--border-2);background-color:var(--border-divider-border);border-radius:var(--radius-1);position:absolute;transform:translate(-50%)}._showRepliesButtonWrapper_b1es9_1 ._contentWrapper_b1es9_5 ._buttonWrapper_b1es9_25{align-items:center;gap:var(--space-2);cursor:pointer;background:0 0;border:none;padding:4px 0 12px;display:inline-flex}._showRepliesButtonWrapper_b1es9_1 ._contentWrapper_b1es9_5 ._buttonWrapper_b1es9_25 ._repliesText_b1es9_36{text-align:center}._showRepliesButtonWrapper_b1es9_1 ._contentWrapper_b1es9_5 ._buttonWrapper_b1es9_25:hover ._repliesText_b1es9_36{--text-color-on-light-secondary:var(--text-text-on-light-secondary-hover)}._showRepliesButtonWrapper_b1es9_1 ._contentWrapper_b1es9_5 ._buttonWrapper_b1es9_25 ._avatarWrapper_b1es9_42{display:flex;position:relative}._showRepliesButtonWrapper_b1es9_1 ._contentWrapper_b1es9_5 ._buttonWrapper_b1es9_25 ._avatarWrapper_b1es9_42 ._lastUserAvatar_b1es9_46,._showRepliesButtonWrapper_b1es9_1 ._contentWrapper_b1es9_5 ._buttonWrapper_b1es9_25 ._avatarWrapper_b1es9_42 ._secondLastUserAvatar_b1es9_47{border:var(--border-3) solid var(--avatar-border-color,var(--gray-white));border-radius:50%;position:relative}._showRepliesButtonWrapper_b1es9_1 ._contentWrapper_b1es9_5 ._buttonWrapper_b1es9_25 ._avatarWrapper_b1es9_42 ._lastUserAvatarStacked_b1es9_52{margin-left:calc(var(--space-2) * -1)}
@@ -3,8 +3,10 @@ interface UseAutoScrollProps {
3
3
  containerRef: React.RefObject<HTMLDivElement>;
4
4
  enabled: boolean;
5
5
  isExpanded?: boolean;
6
+ /** When true, skip programmatic scroll-to-bottom on message updates (e.g. collapsed thread with hidden middle replies). */
7
+ suppressAutoScroll?: boolean;
6
8
  }
7
- export declare const useAutoScroll: ({ messageCount, containerRef, enabled, isExpanded }: UseAutoScrollProps) => {
9
+ export declare const useAutoScroll: ({ messageCount, containerRef, enabled, isExpanded, suppressAutoScroll, }: UseAutoScrollProps) => {
8
10
  handleScroll: () => void;
9
11
  handleScrollToBottom: () => void;
10
12
  isOverflowing: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@box/threaded-annotations",
3
- "version": "1.83.0",
3
+ "version": "1.83.2",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "dependencies": {
6
6
  "@tanstack/react-virtual": "^3.10.8",
@@ -16,22 +16,22 @@
16
16
  "uuid": "^9.0.1"
17
17
  },
18
18
  "peerDependencies": {
19
- "@box/blueprint-web": "^14.16.0",
20
- "@box/blueprint-web-assets": "^4.115.0",
21
- "@box/collaboration-popover": "^1.61.0",
22
- "@box/readable-time": "^1.40.0",
23
- "@box/user-selector": "^1.75.0",
19
+ "@box/blueprint-web": "^14.16.1",
20
+ "@box/blueprint-web-assets": "^4.115.1",
21
+ "@box/collaboration-popover": "^1.61.2",
22
+ "@box/readable-time": "^1.40.2",
23
+ "@box/user-selector": "^1.75.2",
24
24
  "react": "^18.0.0",
25
25
  "react-dom": "^18.0.0",
26
26
  "react-intl": "^6.4.2"
27
27
  },
28
28
  "devDependencies": {
29
- "@box/blueprint-web": "^14.16.0",
30
- "@box/blueprint-web-assets": "^4.115.0",
29
+ "@box/blueprint-web": "^14.16.1",
30
+ "@box/blueprint-web-assets": "^4.115.1",
31
31
  "@box/eslint-plugin-blueprint": "1.1.17",
32
- "@box/readable-time": "^1.40.0",
33
- "@box/storybook-utils": "^0.18.0",
34
- "@box/user-selector": "^1.75.0",
32
+ "@box/readable-time": "^1.40.2",
33
+ "@box/storybook-utils": "^0.18.1",
34
+ "@box/user-selector": "^1.75.2",
35
35
  "react": "^18.0.0",
36
36
  "react-dom": "^18.0.0"
37
37
  },