@box/threaded-annotations 1.84.14 → 1.85.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist/chunks/delete-confirmation-popover.js +16 -13
  2. package/dist/chunks/messages-view.js +41 -37
  3. package/dist/chunks/threaded-annotations2.js +32 -31
  4. package/dist/esm/lib/components/v2/message-header/message-header.js +63 -53
  5. package/dist/esm/lib/components/v2/message-header/message-options-menu.js +29 -26
  6. package/dist/esm/lib/components/v2/message-header/messages.js +7 -3
  7. package/dist/esm/lib/components/v2/text-message/text-message.js +19 -17
  8. package/dist/i18n/bn-IN.js +2 -1
  9. package/dist/i18n/bn-IN.properties +6 -4
  10. package/dist/i18n/da-DK.js +2 -1
  11. package/dist/i18n/da-DK.properties +6 -4
  12. package/dist/i18n/de-DE.js +2 -1
  13. package/dist/i18n/de-DE.properties +6 -4
  14. package/dist/i18n/en-AU.js +2 -1
  15. package/dist/i18n/en-AU.properties +6 -4
  16. package/dist/i18n/en-CA.js +2 -1
  17. package/dist/i18n/en-CA.properties +6 -4
  18. package/dist/i18n/en-GB.js +2 -1
  19. package/dist/i18n/en-GB.properties +6 -4
  20. package/dist/i18n/en-US.js +2 -1
  21. package/dist/i18n/en-US.properties +6 -4
  22. package/dist/i18n/en-x-pseudo.js +43 -42
  23. package/dist/i18n/en-x-pseudo.properties +47 -45
  24. package/dist/i18n/es-419.js +2 -1
  25. package/dist/i18n/es-419.properties +6 -4
  26. package/dist/i18n/es-ES.js +2 -1
  27. package/dist/i18n/es-ES.properties +6 -4
  28. package/dist/i18n/fi-FI.js +2 -1
  29. package/dist/i18n/fi-FI.properties +6 -4
  30. package/dist/i18n/fr-CA.js +2 -1
  31. package/dist/i18n/fr-CA.properties +6 -4
  32. package/dist/i18n/fr-FR.js +2 -1
  33. package/dist/i18n/fr-FR.properties +6 -4
  34. package/dist/i18n/hi-IN.js +2 -1
  35. package/dist/i18n/hi-IN.properties +6 -4
  36. package/dist/i18n/it-IT.js +2 -1
  37. package/dist/i18n/it-IT.properties +6 -4
  38. package/dist/i18n/ja-JP.js +2 -1
  39. package/dist/i18n/ja-JP.properties +6 -4
  40. package/dist/i18n/json/src/lib/components/v2/message-header/messages.json +1 -1
  41. package/dist/i18n/ko-KR.js +2 -1
  42. package/dist/i18n/ko-KR.properties +6 -4
  43. package/dist/i18n/nb-NO.js +2 -1
  44. package/dist/i18n/nb-NO.properties +6 -4
  45. package/dist/i18n/nl-NL.js +2 -1
  46. package/dist/i18n/nl-NL.properties +6 -4
  47. package/dist/i18n/pl-PL.js +2 -1
  48. package/dist/i18n/pl-PL.properties +6 -4
  49. package/dist/i18n/pt-BR.js +2 -1
  50. package/dist/i18n/pt-BR.properties +6 -4
  51. package/dist/i18n/ru-RU.js +2 -1
  52. package/dist/i18n/ru-RU.properties +6 -4
  53. package/dist/i18n/sv-SE.js +2 -1
  54. package/dist/i18n/sv-SE.properties +6 -4
  55. package/dist/i18n/tr-TR.js +2 -1
  56. package/dist/i18n/tr-TR.properties +6 -4
  57. package/dist/i18n/zh-CN.js +2 -1
  58. package/dist/i18n/zh-CN.properties +6 -4
  59. package/dist/i18n/zh-TW.js +2 -1
  60. package/dist/i18n/zh-TW.properties +6 -4
  61. package/dist/types/lib/components/v2/message-header/delete-confirmation-popover.d.ts +5 -1
  62. package/dist/types/lib/components/v2/message-header/message-header.d.ts +9 -5
  63. package/dist/types/lib/components/v2/message-header/message-options-menu.d.ts +5 -3
  64. package/dist/types/lib/components/v2/message-header/messages.d.ts +6 -1
  65. package/dist/types/lib/components/v2/messages-view/messages-view.d.ts +2 -1
  66. package/dist/types/lib/components/v2/text-message/text-message.d.ts +4 -1
  67. package/dist/types/lib/v2/stories/shared.d.ts +1 -0
  68. package/dist/types/lib/v2/test-utils/test-selectors.d.ts +1 -0
  69. package/dist/types/lib/v2/threaded-annotations.d.ts +5 -0
  70. package/package.json +6 -6
@@ -6,6 +6,8 @@ groupSharedFeatures.threadedAnnotations.annotationMessageAriaLabel = Aantekening
6
6
  groupSharedFeatures.threadedAnnotations.annotationPage = Pagina {number}
7
7
  # Aria label for cancel delete button
8
8
  groupSharedFeatures.threadedAnnotations.cancelDeleteButtonAriaLabel = Knop Verwijdering annuleren
9
+ # Copy link option in message context menu
10
+ groupSharedFeatures.threadedAnnotations.copyLink = Copy link
9
11
  # Delete button text
10
12
  groupSharedFeatures.threadedAnnotations.delete = Verwijderen
11
13
  # Aria label for delete button
@@ -14,10 +16,10 @@ groupSharedFeatures.threadedAnnotations.deleteButtonAriaLabel = Knop Verwijderen
14
16
  groupSharedFeatures.threadedAnnotations.deleteCancel = Annuleren
15
17
  # Confirmation text asking user if they want to delete a comment
16
18
  groupSharedFeatures.threadedAnnotations.deleteCommentQuestion = Wil je deze opmerking verwijderen?
17
- # Confirmation text asking user if they want to delete a comment and its replies
18
- groupSharedFeatures.threadedAnnotations.deleteCommentWithRepliesQuestion = Deze opmerking en antwoorden verwijderen? Deze actie kan niet ongedaan worden gemaakt.
19
19
  # Aria label for delete confirmation popover
20
20
  groupSharedFeatures.threadedAnnotations.deleteConfirmation = Bevestiging verwijderen
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 = Delete this {type, select, annotation {annotation} other {comment}}{hasReplies, select, true { and replies} other {}}? This action can't be undone.
21
23
  # Edit option in message context menu
22
24
  groupSharedFeatures.threadedAnnotations.edit = Bewerken
23
25
  # Button text to hide replies in threaded annotations
@@ -64,7 +66,7 @@ groupSharedFeatures.threadedAnnotations.originalContentDeleted = Oorspronkelijke
64
66
  groupSharedFeatures.threadedAnnotations.reply = Beantwoorden
65
67
  # Aria label for the reply button that opens the message editor
66
68
  groupSharedFeatures.threadedAnnotations.replyButtonAriaLabel = Knop Beantwoorden
67
- # Aria label for resolve button
69
+ # Aria label and tooltip content for the resolve button
68
70
  groupSharedFeatures.threadedAnnotations.resolveButtonAriaLabel = Oplossen
69
71
  # Aria label for the resolution status message container
70
72
  groupSharedFeatures.threadedAnnotations.resolvedStateAriaLabel = Statusbericht oplossing
@@ -78,7 +80,7 @@ groupSharedFeatures.threadedAnnotations.showRepliesButtonAriaLabel = Knop Beantw
78
80
  groupSharedFeatures.threadedAnnotations.textMentionAriaLabel = Gebruikersvermelding
79
81
  # Aria label for message text content
80
82
  groupSharedFeatures.threadedAnnotations.textMessageAriaLabel = Berichttekst
81
- # Aria label for unresolve button
83
+ # Aria label and tooltip content for the unresolve button
82
84
  groupSharedFeatures.threadedAnnotations.unresolveButtonAriaLabel = Oplossing ongedaan maken
83
85
  # Alt text for user avatar image
84
86
  groupSharedFeatures.threadedAnnotations.userAvatar = Avatar van de gebruiker
@@ -3,12 +3,13 @@ export default {
3
3
  "groupSharedFeatures.threadedAnnotations.annotationMessageAriaLabel": "Komunikat uwagi",
4
4
  "groupSharedFeatures.threadedAnnotations.annotationPage": "Strona {number}",
5
5
  "groupSharedFeatures.threadedAnnotations.cancelDeleteButtonAriaLabel": "Przycisk anulowania usuwania",
6
+ "groupSharedFeatures.threadedAnnotations.copyLink": "Copy link",
6
7
  "groupSharedFeatures.threadedAnnotations.delete": "Usuń",
7
8
  "groupSharedFeatures.threadedAnnotations.deleteButtonAriaLabel": "Przycisk usuwania",
8
9
  "groupSharedFeatures.threadedAnnotations.deleteCancel": "Anuluj",
9
10
  "groupSharedFeatures.threadedAnnotations.deleteCommentQuestion": "Czy chcesz usunąć ten komentarz?",
10
- "groupSharedFeatures.threadedAnnotations.deleteCommentWithRepliesQuestion": "Usunąć ten komentarz i odpowiedzi? Nie można cofnąć tego działania.",
11
11
  "groupSharedFeatures.threadedAnnotations.deleteConfirmation": "Potwierdzenie usunięcia",
12
+ "groupSharedFeatures.threadedAnnotations.deleteQuestion": "Delete this {type, select, annotation {annotation} other {comment}}{hasReplies, select, true { and replies} other {}}? This action can't be undone.",
12
13
  "groupSharedFeatures.threadedAnnotations.edit": "Edytuj",
13
14
  "groupSharedFeatures.threadedAnnotations.hideReplies": "Ukryj odpowiedzi",
14
15
  "groupSharedFeatures.threadedAnnotations.markedAsResolved": "oznaczono jako rozwiązane",
@@ -6,6 +6,8 @@ groupSharedFeatures.threadedAnnotations.annotationMessageAriaLabel = Komunikat u
6
6
  groupSharedFeatures.threadedAnnotations.annotationPage = Strona {number}
7
7
  # Aria label for cancel delete button
8
8
  groupSharedFeatures.threadedAnnotations.cancelDeleteButtonAriaLabel = Przycisk anulowania usuwania
9
+ # Copy link option in message context menu
10
+ groupSharedFeatures.threadedAnnotations.copyLink = Copy link
9
11
  # Delete button text
10
12
  groupSharedFeatures.threadedAnnotations.delete = Usuń
11
13
  # Aria label for delete button
@@ -14,10 +16,10 @@ groupSharedFeatures.threadedAnnotations.deleteButtonAriaLabel = Przycisk usuwani
14
16
  groupSharedFeatures.threadedAnnotations.deleteCancel = Anuluj
15
17
  # Confirmation text asking user if they want to delete a comment
16
18
  groupSharedFeatures.threadedAnnotations.deleteCommentQuestion = Czy chcesz usunąć ten komentarz?
17
- # Confirmation text asking user if they want to delete a comment and its replies
18
- groupSharedFeatures.threadedAnnotations.deleteCommentWithRepliesQuestion = Usunąć ten komentarz i odpowiedzi? Nie można cofnąć tego działania.
19
19
  # Aria label for delete confirmation popover
20
20
  groupSharedFeatures.threadedAnnotations.deleteConfirmation = Potwierdzenie usunięcia
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 = Delete this {type, select, annotation {annotation} other {comment}}{hasReplies, select, true { and replies} other {}}? This action can't be undone.
21
23
  # Edit option in message context menu
22
24
  groupSharedFeatures.threadedAnnotations.edit = Edytuj
23
25
  # Button text to hide replies in threaded annotations
@@ -64,7 +66,7 @@ groupSharedFeatures.threadedAnnotations.originalContentDeleted = Oryginalna zawa
64
66
  groupSharedFeatures.threadedAnnotations.reply = Odpowiedz
65
67
  # Aria label for the reply button that opens the message editor
66
68
  groupSharedFeatures.threadedAnnotations.replyButtonAriaLabel = Przycisk odpowiedzi
67
- # Aria label for resolve button
69
+ # Aria label and tooltip content for the resolve button
68
70
  groupSharedFeatures.threadedAnnotations.resolveButtonAriaLabel = Rozstrzygnij
69
71
  # Aria label for the resolution status message container
70
72
  groupSharedFeatures.threadedAnnotations.resolvedStateAriaLabel = Wiadomość o statusie rozwiązania
@@ -78,7 +80,7 @@ groupSharedFeatures.threadedAnnotations.showRepliesButtonAriaLabel = Przycisk od
78
80
  groupSharedFeatures.threadedAnnotations.textMentionAriaLabel = Wspomnienie użytkownika
79
81
  # Aria label for message text content
80
82
  groupSharedFeatures.threadedAnnotations.textMessageAriaLabel = Tekst wiadomości
81
- # Aria label for unresolve button
83
+ # Aria label and tooltip content for the unresolve button
82
84
  groupSharedFeatures.threadedAnnotations.unresolveButtonAriaLabel = Anuluj rozstrzygnięcie
83
85
  # Alt text for user avatar image
84
86
  groupSharedFeatures.threadedAnnotations.userAvatar = Awatar użytkownika
@@ -3,12 +3,13 @@ export default {
3
3
  "groupSharedFeatures.threadedAnnotations.annotationMessageAriaLabel": "Mensagem de anotação",
4
4
  "groupSharedFeatures.threadedAnnotations.annotationPage": "Página {number}",
5
5
  "groupSharedFeatures.threadedAnnotations.cancelDeleteButtonAriaLabel": "Botão Cancelar exclusão",
6
+ "groupSharedFeatures.threadedAnnotations.copyLink": "Copy link",
6
7
  "groupSharedFeatures.threadedAnnotations.delete": "Excluir",
7
8
  "groupSharedFeatures.threadedAnnotations.deleteButtonAriaLabel": "Botão Excluir",
8
9
  "groupSharedFeatures.threadedAnnotations.deleteCancel": "Cancelar",
9
10
  "groupSharedFeatures.threadedAnnotations.deleteCommentQuestion": "Você deseja excluir esse comentário?",
10
- "groupSharedFeatures.threadedAnnotations.deleteCommentWithRepliesQuestion": "Excluir este comentário e respostas? Essa ação não pode ser desfeita.",
11
11
  "groupSharedFeatures.threadedAnnotations.deleteConfirmation": "Confirmação de exclusão",
12
+ "groupSharedFeatures.threadedAnnotations.deleteQuestion": "Delete this {type, select, annotation {annotation} other {comment}}{hasReplies, select, true { and replies} other {}}? This action can't be undone.",
12
13
  "groupSharedFeatures.threadedAnnotations.edit": "Editar",
13
14
  "groupSharedFeatures.threadedAnnotations.hideReplies": "Ocultar respostas",
14
15
  "groupSharedFeatures.threadedAnnotations.markedAsResolved": "marcado como resolvido",
@@ -6,6 +6,8 @@ groupSharedFeatures.threadedAnnotations.annotationMessageAriaLabel = Mensagem de
6
6
  groupSharedFeatures.threadedAnnotations.annotationPage = Página {number}
7
7
  # Aria label for cancel delete button
8
8
  groupSharedFeatures.threadedAnnotations.cancelDeleteButtonAriaLabel = Botão Cancelar exclusão
9
+ # Copy link option in message context menu
10
+ groupSharedFeatures.threadedAnnotations.copyLink = Copy link
9
11
  # Delete button text
10
12
  groupSharedFeatures.threadedAnnotations.delete = Excluir
11
13
  # Aria label for delete button
@@ -14,10 +16,10 @@ groupSharedFeatures.threadedAnnotations.deleteButtonAriaLabel = Botão Excluir
14
16
  groupSharedFeatures.threadedAnnotations.deleteCancel = Cancelar
15
17
  # Confirmation text asking user if they want to delete a comment
16
18
  groupSharedFeatures.threadedAnnotations.deleteCommentQuestion = Você deseja excluir esse comentário?
17
- # Confirmation text asking user if they want to delete a comment and its replies
18
- groupSharedFeatures.threadedAnnotations.deleteCommentWithRepliesQuestion = Excluir este comentário e respostas? Essa ação não pode ser desfeita.
19
19
  # Aria label for delete confirmation popover
20
20
  groupSharedFeatures.threadedAnnotations.deleteConfirmation = Confirmação de exclusão
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 = Delete this {type, select, annotation {annotation} other {comment}}{hasReplies, select, true { and replies} other {}}? This action can't be undone.
21
23
  # Edit option in message context menu
22
24
  groupSharedFeatures.threadedAnnotations.edit = Editar
23
25
  # Button text to hide replies in threaded annotations
@@ -64,7 +66,7 @@ groupSharedFeatures.threadedAnnotations.originalContentDeleted = O conteúdo ori
64
66
  groupSharedFeatures.threadedAnnotations.reply = Responder
65
67
  # Aria label for the reply button that opens the message editor
66
68
  groupSharedFeatures.threadedAnnotations.replyButtonAriaLabel = Botão Responder
67
- # Aria label for resolve button
69
+ # Aria label and tooltip content for the resolve button
68
70
  groupSharedFeatures.threadedAnnotations.resolveButtonAriaLabel = Resolver
69
71
  # Aria label for the resolution status message container
70
72
  groupSharedFeatures.threadedAnnotations.resolvedStateAriaLabel = Mensagem de status de resolução
@@ -78,7 +80,7 @@ groupSharedFeatures.threadedAnnotations.showRepliesButtonAriaLabel = Botão Resp
78
80
  groupSharedFeatures.threadedAnnotations.textMentionAriaLabel = Menção do usuário
79
81
  # Aria label for message text content
80
82
  groupSharedFeatures.threadedAnnotations.textMessageAriaLabel = Texto da mensagem
81
- # Aria label for unresolve button
83
+ # Aria label and tooltip content for the unresolve button
82
84
  groupSharedFeatures.threadedAnnotations.unresolveButtonAriaLabel = Não resolver
83
85
  # Alt text for user avatar image
84
86
  groupSharedFeatures.threadedAnnotations.userAvatar = Avatar do usuário
@@ -3,12 +3,13 @@ export default {
3
3
  "groupSharedFeatures.threadedAnnotations.annotationMessageAriaLabel": "Сообщение примечания",
4
4
  "groupSharedFeatures.threadedAnnotations.annotationPage": "Стр. {number}",
5
5
  "groupSharedFeatures.threadedAnnotations.cancelDeleteButtonAriaLabel": "Кнопка отмены удаления",
6
+ "groupSharedFeatures.threadedAnnotations.copyLink": "Copy link",
6
7
  "groupSharedFeatures.threadedAnnotations.delete": "Удалить",
7
8
  "groupSharedFeatures.threadedAnnotations.deleteButtonAriaLabel": "Кнопка удаления",
8
9
  "groupSharedFeatures.threadedAnnotations.deleteCancel": "Отмена",
9
10
  "groupSharedFeatures.threadedAnnotations.deleteCommentQuestion": "Удалить этот комментарий?",
10
- "groupSharedFeatures.threadedAnnotations.deleteCommentWithRepliesQuestion": "Удалить этот комментарий и ответы? Это действие невозможно отменить.",
11
11
  "groupSharedFeatures.threadedAnnotations.deleteConfirmation": "Подтверждение удаления",
12
+ "groupSharedFeatures.threadedAnnotations.deleteQuestion": "Delete this {type, select, annotation {annotation} other {comment}}{hasReplies, select, true { and replies} other {}}? This action can't be undone.",
12
13
  "groupSharedFeatures.threadedAnnotations.edit": "Изменить",
13
14
  "groupSharedFeatures.threadedAnnotations.hideReplies": "Скрыть ответы",
14
15
  "groupSharedFeatures.threadedAnnotations.markedAsResolved": "отмечено как решено",
@@ -6,6 +6,8 @@ groupSharedFeatures.threadedAnnotations.annotationMessageAriaLabel = Сообщ
6
6
  groupSharedFeatures.threadedAnnotations.annotationPage = Стр. {number}
7
7
  # Aria label for cancel delete button
8
8
  groupSharedFeatures.threadedAnnotations.cancelDeleteButtonAriaLabel = Кнопка отмены удаления
9
+ # Copy link option in message context menu
10
+ groupSharedFeatures.threadedAnnotations.copyLink = Copy link
9
11
  # Delete button text
10
12
  groupSharedFeatures.threadedAnnotations.delete = Удалить
11
13
  # Aria label for delete button
@@ -14,10 +16,10 @@ groupSharedFeatures.threadedAnnotations.deleteButtonAriaLabel = Кнопка у
14
16
  groupSharedFeatures.threadedAnnotations.deleteCancel = Отмена
15
17
  # Confirmation text asking user if they want to delete a comment
16
18
  groupSharedFeatures.threadedAnnotations.deleteCommentQuestion = Удалить этот комментарий?
17
- # Confirmation text asking user if they want to delete a comment and its replies
18
- groupSharedFeatures.threadedAnnotations.deleteCommentWithRepliesQuestion = Удалить этот комментарий и ответы? Это действие невозможно отменить.
19
19
  # Aria label for delete confirmation popover
20
20
  groupSharedFeatures.threadedAnnotations.deleteConfirmation = Подтверждение удаления
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 = Delete this {type, select, annotation {annotation} other {comment}}{hasReplies, select, true { and replies} other {}}? This action can't be undone.
21
23
  # Edit option in message context menu
22
24
  groupSharedFeatures.threadedAnnotations.edit = Изменить
23
25
  # Button text to hide replies in threaded annotations
@@ -64,7 +66,7 @@ groupSharedFeatures.threadedAnnotations.originalContentDeleted = Оригина
64
66
  groupSharedFeatures.threadedAnnotations.reply = Ответить
65
67
  # Aria label for the reply button that opens the message editor
66
68
  groupSharedFeatures.threadedAnnotations.replyButtonAriaLabel = Кнопка ответа
67
- # Aria label for resolve button
69
+ # Aria label and tooltip content for the resolve button
68
70
  groupSharedFeatures.threadedAnnotations.resolveButtonAriaLabel = Разрешить
69
71
  # Aria label for the resolution status message container
70
72
  groupSharedFeatures.threadedAnnotations.resolvedStateAriaLabel = Сообщение о статусе решения
@@ -78,7 +80,7 @@ groupSharedFeatures.threadedAnnotations.showRepliesButtonAriaLabel = Кнопк
78
80
  groupSharedFeatures.threadedAnnotations.textMentionAriaLabel = Упоминание пользователя
79
81
  # Aria label for message text content
80
82
  groupSharedFeatures.threadedAnnotations.textMessageAriaLabel = Текст сообщения
81
- # Aria label for unresolve button
83
+ # Aria label and tooltip content for the unresolve button
82
84
  groupSharedFeatures.threadedAnnotations.unresolveButtonAriaLabel = Отменить разрешение
83
85
  # Alt text for user avatar image
84
86
  groupSharedFeatures.threadedAnnotations.userAvatar = Аватар пользователя
@@ -3,12 +3,13 @@ export default {
3
3
  "groupSharedFeatures.threadedAnnotations.annotationMessageAriaLabel": "Meddelande om anteckning",
4
4
  "groupSharedFeatures.threadedAnnotations.annotationPage": "Sidan {number}",
5
5
  "groupSharedFeatures.threadedAnnotations.cancelDeleteButtonAriaLabel": "Knappen Avbryt radera",
6
+ "groupSharedFeatures.threadedAnnotations.copyLink": "Copy link",
6
7
  "groupSharedFeatures.threadedAnnotations.delete": "Radera",
7
8
  "groupSharedFeatures.threadedAnnotations.deleteButtonAriaLabel": "Knappen Radera",
8
9
  "groupSharedFeatures.threadedAnnotations.deleteCancel": "Avbryt",
9
10
  "groupSharedFeatures.threadedAnnotations.deleteCommentQuestion": "Vill du radera den här kommentaren?",
10
- "groupSharedFeatures.threadedAnnotations.deleteCommentWithRepliesQuestion": "Radera den här kommentaren och svaren? Den här åtgärden kan inte återkallas.",
11
11
  "groupSharedFeatures.threadedAnnotations.deleteConfirmation": "Bekräftelse av radering",
12
+ "groupSharedFeatures.threadedAnnotations.deleteQuestion": "Delete this {type, select, annotation {annotation} other {comment}}{hasReplies, select, true { and replies} other {}}? This action can't be undone.",
12
13
  "groupSharedFeatures.threadedAnnotations.edit": "Redigera",
13
14
  "groupSharedFeatures.threadedAnnotations.hideReplies": "Dölj svar",
14
15
  "groupSharedFeatures.threadedAnnotations.markedAsResolved": "markerat som löst",
@@ -6,6 +6,8 @@ groupSharedFeatures.threadedAnnotations.annotationMessageAriaLabel = Meddelande
6
6
  groupSharedFeatures.threadedAnnotations.annotationPage = Sidan {number}
7
7
  # Aria label for cancel delete button
8
8
  groupSharedFeatures.threadedAnnotations.cancelDeleteButtonAriaLabel = Knappen Avbryt radera
9
+ # Copy link option in message context menu
10
+ groupSharedFeatures.threadedAnnotations.copyLink = Copy link
9
11
  # Delete button text
10
12
  groupSharedFeatures.threadedAnnotations.delete = Radera
11
13
  # Aria label for delete button
@@ -14,10 +16,10 @@ groupSharedFeatures.threadedAnnotations.deleteButtonAriaLabel = Knappen Radera
14
16
  groupSharedFeatures.threadedAnnotations.deleteCancel = Avbryt
15
17
  # Confirmation text asking user if they want to delete a comment
16
18
  groupSharedFeatures.threadedAnnotations.deleteCommentQuestion = Vill du radera den här kommentaren?
17
- # Confirmation text asking user if they want to delete a comment and its replies
18
- groupSharedFeatures.threadedAnnotations.deleteCommentWithRepliesQuestion = Radera den här kommentaren och svaren? Den här åtgärden kan inte återkallas.
19
19
  # Aria label for delete confirmation popover
20
20
  groupSharedFeatures.threadedAnnotations.deleteConfirmation = Bekräftelse av radering
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 = Delete this {type, select, annotation {annotation} other {comment}}{hasReplies, select, true { and replies} other {}}? This action can't be undone.
21
23
  # Edit option in message context menu
22
24
  groupSharedFeatures.threadedAnnotations.edit = Redigera
23
25
  # Button text to hide replies in threaded annotations
@@ -64,7 +66,7 @@ groupSharedFeatures.threadedAnnotations.originalContentDeleted = Ursprungligt in
64
66
  groupSharedFeatures.threadedAnnotations.reply = Svara
65
67
  # Aria label for the reply button that opens the message editor
66
68
  groupSharedFeatures.threadedAnnotations.replyButtonAriaLabel = Knappen Svara
67
- # Aria label for resolve button
69
+ # Aria label and tooltip content for the resolve button
68
70
  groupSharedFeatures.threadedAnnotations.resolveButtonAriaLabel = Löst
69
71
  # Aria label for the resolution status message container
70
72
  groupSharedFeatures.threadedAnnotations.resolvedStateAriaLabel = Meddelande om lösningsstatus
@@ -78,7 +80,7 @@ groupSharedFeatures.threadedAnnotations.showRepliesButtonAriaLabel = Knappen Sva
78
80
  groupSharedFeatures.threadedAnnotations.textMentionAriaLabel = Omnämnande av användare
79
81
  # Aria label for message text content
80
82
  groupSharedFeatures.threadedAnnotations.textMessageAriaLabel = Meddelandetext
81
- # Aria label for unresolve button
83
+ # Aria label and tooltip content for the unresolve button
82
84
  groupSharedFeatures.threadedAnnotations.unresolveButtonAriaLabel = Olöst
83
85
  # Alt text for user avatar image
84
86
  groupSharedFeatures.threadedAnnotations.userAvatar = Avatar för användare
@@ -3,12 +3,13 @@ export default {
3
3
  "groupSharedFeatures.threadedAnnotations.annotationMessageAriaLabel": "Açıklama mesajı",
4
4
  "groupSharedFeatures.threadedAnnotations.annotationPage": "Sayfa {number}",
5
5
  "groupSharedFeatures.threadedAnnotations.cancelDeleteButtonAriaLabel": "Silmeyi iptal et düğmesi",
6
+ "groupSharedFeatures.threadedAnnotations.copyLink": "Copy link",
6
7
  "groupSharedFeatures.threadedAnnotations.delete": "Sil",
7
8
  "groupSharedFeatures.threadedAnnotations.deleteButtonAriaLabel": "Sil düğmesi",
8
9
  "groupSharedFeatures.threadedAnnotations.deleteCancel": "İptal Et",
9
10
  "groupSharedFeatures.threadedAnnotations.deleteCommentQuestion": "Bu yorumu silmek istiyor musunuz?",
10
- "groupSharedFeatures.threadedAnnotations.deleteCommentWithRepliesQuestion": "Bu yorum ve yanıtlar silinsin mi? Bu işlem geri alınamaz.",
11
11
  "groupSharedFeatures.threadedAnnotations.deleteConfirmation": "Onayı sil",
12
+ "groupSharedFeatures.threadedAnnotations.deleteQuestion": "Delete this {type, select, annotation {annotation} other {comment}}{hasReplies, select, true { and replies} other {}}? This action can't be undone.",
12
13
  "groupSharedFeatures.threadedAnnotations.edit": "Düzenle",
13
14
  "groupSharedFeatures.threadedAnnotations.hideReplies": "Yanıtları gizle",
14
15
  "groupSharedFeatures.threadedAnnotations.markedAsResolved": "çözülmüş olarak işaretlendi",
@@ -6,6 +6,8 @@ groupSharedFeatures.threadedAnnotations.annotationMessageAriaLabel = Açıklama
6
6
  groupSharedFeatures.threadedAnnotations.annotationPage = Sayfa {number}
7
7
  # Aria label for cancel delete button
8
8
  groupSharedFeatures.threadedAnnotations.cancelDeleteButtonAriaLabel = Silmeyi iptal et düğmesi
9
+ # Copy link option in message context menu
10
+ groupSharedFeatures.threadedAnnotations.copyLink = Copy link
9
11
  # Delete button text
10
12
  groupSharedFeatures.threadedAnnotations.delete = Sil
11
13
  # Aria label for delete button
@@ -14,10 +16,10 @@ groupSharedFeatures.threadedAnnotations.deleteButtonAriaLabel = Sil düğmesi
14
16
  groupSharedFeatures.threadedAnnotations.deleteCancel = İptal Et
15
17
  # Confirmation text asking user if they want to delete a comment
16
18
  groupSharedFeatures.threadedAnnotations.deleteCommentQuestion = Bu yorumu silmek istiyor musunuz?
17
- # Confirmation text asking user if they want to delete a comment and its replies
18
- groupSharedFeatures.threadedAnnotations.deleteCommentWithRepliesQuestion = Bu yorum ve yanıtlar silinsin mi? Bu işlem geri alınamaz.
19
19
  # Aria label for delete confirmation popover
20
20
  groupSharedFeatures.threadedAnnotations.deleteConfirmation = Onayı sil
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 = Delete this {type, select, annotation {annotation} other {comment}}{hasReplies, select, true { and replies} other {}}? This action can't be undone.
21
23
  # Edit option in message context menu
22
24
  groupSharedFeatures.threadedAnnotations.edit = Düzenle
23
25
  # Button text to hide replies in threaded annotations
@@ -64,7 +66,7 @@ groupSharedFeatures.threadedAnnotations.originalContentDeleted = Orijinal içeri
64
66
  groupSharedFeatures.threadedAnnotations.reply = Yanıtla
65
67
  # Aria label for the reply button that opens the message editor
66
68
  groupSharedFeatures.threadedAnnotations.replyButtonAriaLabel = Yanıtla düğmesi
67
- # Aria label for resolve button
69
+ # Aria label and tooltip content for the resolve button
68
70
  groupSharedFeatures.threadedAnnotations.resolveButtonAriaLabel = Çöz
69
71
  # Aria label for the resolution status message container
70
72
  groupSharedFeatures.threadedAnnotations.resolvedStateAriaLabel = Çözüm durumu mesajı
@@ -78,7 +80,7 @@ groupSharedFeatures.threadedAnnotations.showRepliesButtonAriaLabel = Yanıtla d
78
80
  groupSharedFeatures.threadedAnnotations.textMentionAriaLabel = Kullanıcıdan bahsetme
79
81
  # Aria label for message text content
80
82
  groupSharedFeatures.threadedAnnotations.textMessageAriaLabel = Mesaj metni
81
- # Aria label for unresolve button
83
+ # Aria label and tooltip content for the unresolve button
82
84
  groupSharedFeatures.threadedAnnotations.unresolveButtonAriaLabel = Çözümü kaldır
83
85
  # Alt text for user avatar image
84
86
  groupSharedFeatures.threadedAnnotations.userAvatar = Kullanıcı avatarı
@@ -3,12 +3,13 @@ export default {
3
3
  "groupSharedFeatures.threadedAnnotations.annotationMessageAriaLabel": "批注消息",
4
4
  "groupSharedFeatures.threadedAnnotations.annotationPage": "第 {number} 页",
5
5
  "groupSharedFeatures.threadedAnnotations.cancelDeleteButtonAriaLabel": "取消删除按钮",
6
+ "groupSharedFeatures.threadedAnnotations.copyLink": "Copy link",
6
7
  "groupSharedFeatures.threadedAnnotations.delete": "删除",
7
8
  "groupSharedFeatures.threadedAnnotations.deleteButtonAriaLabel": "删除按钮",
8
9
  "groupSharedFeatures.threadedAnnotations.deleteCancel": "取消",
9
10
  "groupSharedFeatures.threadedAnnotations.deleteCommentQuestion": "是否要删除此评论?",
10
- "groupSharedFeatures.threadedAnnotations.deleteCommentWithRepliesQuestion": "是否要删除此评论及回复?此操作无法撤销。",
11
11
  "groupSharedFeatures.threadedAnnotations.deleteConfirmation": "删除确认",
12
+ "groupSharedFeatures.threadedAnnotations.deleteQuestion": "Delete this {type, select, annotation {annotation} other {comment}}{hasReplies, select, true { and replies} other {}}? This action can't be undone.",
12
13
  "groupSharedFeatures.threadedAnnotations.edit": "编辑",
13
14
  "groupSharedFeatures.threadedAnnotations.hideReplies": "隐藏回复",
14
15
  "groupSharedFeatures.threadedAnnotations.markedAsResolved": "标记为已解决",
@@ -6,6 +6,8 @@ groupSharedFeatures.threadedAnnotations.annotationMessageAriaLabel = 批注消
6
6
  groupSharedFeatures.threadedAnnotations.annotationPage = 第 {number} 页
7
7
  # Aria label for cancel delete button
8
8
  groupSharedFeatures.threadedAnnotations.cancelDeleteButtonAriaLabel = 取消删除按钮
9
+ # Copy link option in message context menu
10
+ groupSharedFeatures.threadedAnnotations.copyLink = Copy link
9
11
  # Delete button text
10
12
  groupSharedFeatures.threadedAnnotations.delete = 删除
11
13
  # Aria label for delete button
@@ -14,10 +16,10 @@ groupSharedFeatures.threadedAnnotations.deleteButtonAriaLabel = 删除按钮
14
16
  groupSharedFeatures.threadedAnnotations.deleteCancel = 取消
15
17
  # Confirmation text asking user if they want to delete a comment
16
18
  groupSharedFeatures.threadedAnnotations.deleteCommentQuestion = 是否要删除此评论?
17
- # Confirmation text asking user if they want to delete a comment and its replies
18
- groupSharedFeatures.threadedAnnotations.deleteCommentWithRepliesQuestion = 是否要删除此评论及回复?此操作无法撤销。
19
19
  # Aria label for delete confirmation popover
20
20
  groupSharedFeatures.threadedAnnotations.deleteConfirmation = 删除确认
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 = Delete this {type, select, annotation {annotation} other {comment}}{hasReplies, select, true { and replies} other {}}? This action can't be undone.
21
23
  # Edit option in message context menu
22
24
  groupSharedFeatures.threadedAnnotations.edit = 编辑
23
25
  # Button text to hide replies in threaded annotations
@@ -64,7 +66,7 @@ groupSharedFeatures.threadedAnnotations.originalContentDeleted = 原始内容已
64
66
  groupSharedFeatures.threadedAnnotations.reply = 回复
65
67
  # Aria label for the reply button that opens the message editor
66
68
  groupSharedFeatures.threadedAnnotations.replyButtonAriaLabel = 回复按钮
67
- # Aria label for resolve button
69
+ # Aria label and tooltip content for the resolve button
68
70
  groupSharedFeatures.threadedAnnotations.resolveButtonAriaLabel = 解决
69
71
  # Aria label for the resolution status message container
70
72
  groupSharedFeatures.threadedAnnotations.resolvedStateAriaLabel = 解决状态消息
@@ -78,7 +80,7 @@ groupSharedFeatures.threadedAnnotations.showRepliesButtonAriaLabel = 回复按
78
80
  groupSharedFeatures.threadedAnnotations.textMentionAriaLabel = 用户提及
79
81
  # Aria label for message text content
80
82
  groupSharedFeatures.threadedAnnotations.textMessageAriaLabel = 消息文本
81
- # Aria label for unresolve button
83
+ # Aria label and tooltip content for the unresolve button
82
84
  groupSharedFeatures.threadedAnnotations.unresolveButtonAriaLabel = 未解决
83
85
  # Alt text for user avatar image
84
86
  groupSharedFeatures.threadedAnnotations.userAvatar = 用户头像
@@ -3,12 +3,13 @@ export default {
3
3
  "groupSharedFeatures.threadedAnnotations.annotationMessageAriaLabel": "註解訊息",
4
4
  "groupSharedFeatures.threadedAnnotations.annotationPage": "第 {number} 頁",
5
5
  "groupSharedFeatures.threadedAnnotations.cancelDeleteButtonAriaLabel": "取消刪除按鈕",
6
+ "groupSharedFeatures.threadedAnnotations.copyLink": "Copy link",
6
7
  "groupSharedFeatures.threadedAnnotations.delete": "刪除",
7
8
  "groupSharedFeatures.threadedAnnotations.deleteButtonAriaLabel": "刪除按鈕",
8
9
  "groupSharedFeatures.threadedAnnotations.deleteCancel": "取消",
9
10
  "groupSharedFeatures.threadedAnnotations.deleteCommentQuestion": "是否要刪除此留言?",
10
- "groupSharedFeatures.threadedAnnotations.deleteCommentWithRepliesQuestion": "是否要刪除此留言與回覆?此動作無法復原。",
11
11
  "groupSharedFeatures.threadedAnnotations.deleteConfirmation": "刪除確認",
12
+ "groupSharedFeatures.threadedAnnotations.deleteQuestion": "Delete this {type, select, annotation {annotation} other {comment}}{hasReplies, select, true { and replies} other {}}? This action can't be undone.",
12
13
  "groupSharedFeatures.threadedAnnotations.edit": "編輯",
13
14
  "groupSharedFeatures.threadedAnnotations.hideReplies": "隱藏回覆",
14
15
  "groupSharedFeatures.threadedAnnotations.markedAsResolved": "標記為已解決",
@@ -6,6 +6,8 @@ groupSharedFeatures.threadedAnnotations.annotationMessageAriaLabel = 註解訊
6
6
  groupSharedFeatures.threadedAnnotations.annotationPage = 第 {number} 頁
7
7
  # Aria label for cancel delete button
8
8
  groupSharedFeatures.threadedAnnotations.cancelDeleteButtonAriaLabel = 取消刪除按鈕
9
+ # Copy link option in message context menu
10
+ groupSharedFeatures.threadedAnnotations.copyLink = Copy link
9
11
  # Delete button text
10
12
  groupSharedFeatures.threadedAnnotations.delete = 刪除
11
13
  # Aria label for delete button
@@ -14,10 +16,10 @@ groupSharedFeatures.threadedAnnotations.deleteButtonAriaLabel = 刪除按鈕
14
16
  groupSharedFeatures.threadedAnnotations.deleteCancel = 取消
15
17
  # Confirmation text asking user if they want to delete a comment
16
18
  groupSharedFeatures.threadedAnnotations.deleteCommentQuestion = 是否要刪除此留言?
17
- # Confirmation text asking user if they want to delete a comment and its replies
18
- groupSharedFeatures.threadedAnnotations.deleteCommentWithRepliesQuestion = 是否要刪除此留言與回覆?此動作無法復原。
19
19
  # Aria label for delete confirmation popover
20
20
  groupSharedFeatures.threadedAnnotations.deleteConfirmation = 刪除確認
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 = Delete this {type, select, annotation {annotation} other {comment}}{hasReplies, select, true { and replies} other {}}? This action can't be undone.
21
23
  # Edit option in message context menu
22
24
  groupSharedFeatures.threadedAnnotations.edit = 編輯
23
25
  # Button text to hide replies in threaded annotations
@@ -64,7 +66,7 @@ groupSharedFeatures.threadedAnnotations.originalContentDeleted = 原始內容已
64
66
  groupSharedFeatures.threadedAnnotations.reply = 回覆
65
67
  # Aria label for the reply button that opens the message editor
66
68
  groupSharedFeatures.threadedAnnotations.replyButtonAriaLabel = 回覆按鈕
67
- # Aria label for resolve button
69
+ # Aria label and tooltip content for the resolve button
68
70
  groupSharedFeatures.threadedAnnotations.resolveButtonAriaLabel = 已回覆
69
71
  # Aria label for the resolution status message container
70
72
  groupSharedFeatures.threadedAnnotations.resolvedStateAriaLabel = 解決狀態訊息
@@ -78,7 +80,7 @@ groupSharedFeatures.threadedAnnotations.showRepliesButtonAriaLabel = 回覆按
78
80
  groupSharedFeatures.threadedAnnotations.textMentionAriaLabel = 使用者提及
79
81
  # Aria label for message text content
80
82
  groupSharedFeatures.threadedAnnotations.textMessageAriaLabel = 訊息文字
81
- # Aria label for unresolve button
83
+ # Aria label and tooltip content for the unresolve button
82
84
  groupSharedFeatures.threadedAnnotations.unresolveButtonAriaLabel = 取消解決
83
85
  # Alt text for user avatar image
84
86
  groupSharedFeatures.threadedAnnotations.userAvatar = 使用者頭像
@@ -1,4 +1,8 @@
1
1
  export interface DeleteConfirmationPopoverProps {
2
+ /** When true, labels the thread as an annotation instead of a comment. */
3
+ isAnnotation?: boolean;
4
+ /** When true, the confirmation wording includes "and replies". */
5
+ hasReplies?: boolean;
2
6
  open: boolean;
3
7
  onOpenChange: (open: boolean) => void;
4
8
  onConfirm: () => void;
@@ -8,4 +12,4 @@ export interface DeleteConfirmationPopoverProps {
8
12
  * Renders a delete confirmation popover anchored to the bottom-right.
9
13
  * Used when the user selects Delete from the message options menu.
10
14
  */
11
- export declare const DeleteConfirmationPopover: ({ open, onOpenChange, onConfirm, onCancel, }: DeleteConfirmationPopoverProps) => import("react/jsx-runtime").JSX.Element;
15
+ export declare const DeleteConfirmationPopover: ({ hasReplies, isAnnotation, open, onOpenChange, onConfirm, onCancel, }: DeleteConfirmationPopoverProps) => import("react/jsx-runtime").JSX.Element;
@@ -10,23 +10,27 @@ export interface MessageHeaderProps {
10
10
  canEdit?: boolean;
11
11
  /** Whether the Delete option is available in the options menu. */
12
12
  canDelete?: boolean;
13
+ /** Whether the thread has at least one reply (changes the delete confirmation copy on the root message). */
14
+ hasReplies?: boolean;
13
15
  /** Whether the message is the first message in the thread. */
14
16
  isFirstMessage?: boolean;
15
17
  /** Callback invoked when the user clicks the author avatar. */
16
18
  onAvatarClick: (id: number) => void;
19
+ /** Callback invoked when the user selects Copy link from the options menu. */
20
+ onCopyLink?: () => void;
21
+ /** Callback invoked when the user selects Delete from the options menu. */
22
+ onDelete?: () => void;
17
23
  /** Callback invoked when the user selects Edit from the options menu. */
18
24
  onEdit?: () => void;
19
25
  /** Callback invoked when the user selects Resolve from the options menu. */
20
26
  onResolve?: () => void;
21
- /** Callback invoked when the user selects Unresolve from the options menu. */
22
- onUnresolve?: () => void;
23
- /** Callback invoked when the user selects Delete from the options menu. */
24
- onDelete?: () => void;
25
27
  /** Callback invoked when the user confirms deletion of the entire thread (only used when isFirstMessage is true). */
26
28
  onThreadDelete?: () => void;
29
+ /** Callback invoked when the user selects Unresolve from the options menu. */
30
+ onUnresolve?: () => void;
27
31
  }
28
32
  /**
29
33
  * Renders the header section of a threaded message, including
30
34
  * the author avatar, name, and an optional delete action.
31
35
  */
32
- export declare const MessageHeader: ({ author, canResolve, isResolved, canEdit, canDelete, isFirstMessage, onAvatarClick, onEdit, onResolve, onUnresolve, onDelete, onThreadDelete, }: MessageHeaderProps) => import("react/jsx-runtime").JSX.Element;
36
+ export declare const MessageHeader: ({ author, canResolve, isResolved, canEdit, canDelete, hasReplies, isFirstMessage, onAvatarClick, onCopyLink, onDelete, onEdit, onResolve, onThreadDelete, onUnresolve, }: MessageHeaderProps) => import("react/jsx-runtime").JSX.Element;
@@ -2,11 +2,13 @@ export interface MessageOptionsMenuProps {
2
2
  canDelete?: boolean;
3
3
  canEdit?: boolean;
4
4
  disabled?: boolean;
5
- onEdit?: () => void;
5
+ onCopyLink?: () => void;
6
6
  onDelete?: () => void;
7
+ onEdit?: () => void;
7
8
  onOpenChange?: (isOpen: boolean) => void;
8
9
  }
9
10
  /**
10
- * Renders a context menu for an annotation message with Edit and Delete options.
11
+ * Renders a context menu for an annotation message with Edit, Copy link, and Delete options.
12
+ * Returns null when no items would be shown.
11
13
  */
12
- export declare const MessageOptionsMenu: ({ canDelete, canEdit, disabled, onEdit, onDelete, onOpenChange, }: MessageOptionsMenuProps) => import("react/jsx-runtime").JSX.Element;
14
+ export declare const MessageOptionsMenu: ({ canDelete, canEdit, disabled, onCopyLink, onDelete, onEdit, onOpenChange, }: MessageOptionsMenuProps) => import("react/jsx-runtime").JSX.Element;
@@ -4,7 +4,7 @@ declare const messages: {
4
4
  description: string;
5
5
  id: string;
6
6
  };
7
- deleteCommentQuestion: {
7
+ deleteQuestion: {
8
8
  defaultMessage: string;
9
9
  description: string;
10
10
  id: string;
@@ -29,6 +29,11 @@ declare const messages: {
29
29
  description: string;
30
30
  id: string;
31
31
  };
32
+ copyLink: {
33
+ defaultMessage: string;
34
+ description: string;
35
+ id: string;
36
+ };
32
37
  deleteButtonAriaLabel: {
33
38
  defaultMessage: string;
34
39
  description: string;
@@ -8,6 +8,7 @@ export interface MessagesViewProps {
8
8
  onDelete: (id: string) => void;
9
9
  onThreadDelete?: () => void;
10
10
  onAvatarClick: (id: number) => void;
11
+ onCopyLink?: (id: string) => void;
11
12
  onEdit?: (id: string) => void;
12
13
  onResolve?: (id: string) => void;
13
14
  onUnresolve?: (id: string) => void;
@@ -15,4 +16,4 @@ export interface MessagesViewProps {
15
16
  onAnnotationBadgeClick?: (id: string) => void;
16
17
  originalContentDeleted?: boolean;
17
18
  }
18
- export declare const MessagesView: ({ messages, isResolved, resolvedBy, resolvedAt, onDelete, onThreadDelete, onAvatarClick, onEdit, onResolve, onUnresolve, annotationTarget, onAnnotationBadgeClick, originalContentDeleted, }: MessagesViewProps) => import("react/jsx-runtime").JSX.Element;
19
+ export declare const MessagesView: ({ messages, isResolved, resolvedBy, resolvedAt, onDelete, onThreadDelete, onAvatarClick, onCopyLink, onEdit, onResolve, onUnresolve, annotationTarget, onAnnotationBadgeClick, originalContentDeleted, }: MessagesViewProps) => import("react/jsx-runtime").JSX.Element;
@@ -7,9 +7,12 @@ export interface TextMessageProps extends TextMessageType {
7
7
  showThreadedIndicator?: boolean;
8
8
  isResolved?: boolean;
9
9
  isFirstMessage?: boolean;
10
+ /** Whether the thread has at least one reply (only meaningful on the root message). */
11
+ hasReplies?: boolean;
10
12
  onDelete: (id: string) => void;
11
13
  onThreadDelete?: () => void;
12
14
  onAvatarClick: (id: number) => void;
15
+ onCopyLink?: (id: string) => void;
13
16
  onEdit?: (id: string) => void;
14
17
  onResolve?: (id: string) => void;
15
18
  onUnresolve?: (id: string) => void;
@@ -24,4 +27,4 @@ export interface TextMessageProps extends TextMessageType {
24
27
  * the message content itself, a relative timestamp, and providing a mechanism
25
28
  * for deleting the message.
26
29
  */
27
- export declare const TextMessage: ({ id, author, message, createdAt, permissions, showThreadedIndicator, isResolved, isFirstMessage, onAvatarClick, onDelete, onThreadDelete, onEdit, onResolve, onUnresolve, annotationTarget, onAnnotationBadgeClick, originalContentDeleted, }: TextMessageProps) => import("react/jsx-runtime").JSX.Element;
30
+ export declare const TextMessage: ({ id, author, message, createdAt, permissions, showThreadedIndicator, isResolved, isFirstMessage, hasReplies, onAvatarClick, onCopyLink, onDelete, onThreadDelete, onEdit, onResolve, onUnresolve, annotationTarget, onAnnotationBadgeClick, originalContentDeleted, }: TextMessageProps) => import("react/jsx-runtime").JSX.Element;
@@ -8,6 +8,7 @@ export declare const DefaultThreadedAnnotations: (props: ThreadedAnnotationsProp
8
8
  interface InteractiveModuleBaseProps {
9
9
  initialMessages?: TextMessageType[];
10
10
  isReplyDisabled?: boolean;
11
+ onCopyLink?: (id: string) => void;
11
12
  }
12
13
  type InteractiveModuleProps = (InteractiveModuleBaseProps & {
13
14
  isAnnotations: true;
@@ -1,5 +1,6 @@
1
1
  export declare const TEST_SELECTORS: {
2
2
  CANCEL_BUTTON: string;
3
+ COPY_LINK_MENU_ITEM: string;
3
4
  POST_BUTTON: string;
4
5
  SAVE_BUTTON: string;
5
6
  REPLY_BUTTON: string;
@@ -13,6 +13,11 @@ interface ThreadedAnnotationsBaseProps {
13
13
  onDelete: (id: string) => void;
14
14
  onThreadDelete?: () => void;
15
15
  onAvatarClick: (id: number) => void;
16
+ /**
17
+ * Called when the user selects Copy link from a message's options menu. When omitted, the menu
18
+ * item is hidden. The consumer owns URL construction and clipboard writes.
19
+ */
20
+ onCopyLink?: (id: string) => void;
16
21
  onEdit?: (id: string) => void;
17
22
  onResolve?: (id: string) => void;
18
23
  onUnresolve?: (id: string) => void;