@burdenoff/microfe-conversations 2026.830.1 → 2026.924.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.
- package/dist/conversations/components/ConversationRow.js +81 -81
- package/dist/conversations/components/ConversationRow.js.map +1 -1
- package/dist/conversations/components/MessageBubble.js +116 -113
- package/dist/conversations/components/MessageBubble.js.map +1 -1
- package/dist/conversations/components/PermissionGuard.js +13 -16
- package/dist/conversations/components/PermissionGuard.js.map +1 -1
- package/dist/conversations/index.js +1 -0
- package/dist/conversations/pages/ConversationAdminPages.js +64 -79
- package/dist/conversations/pages/ConversationAdminPages.js.map +1 -1
- package/dist/conversations/pages/ConversationDetailPage.js +120 -120
- package/dist/conversations/pages/ConversationDetailPage.js.map +1 -1
- package/dist/conversations/utils/i18n.js +3 -3
- package/dist/conversations/utils/i18n.js.map +1 -1
- package/dist/conversations/utils/mappers.js +19 -11
- package/dist/conversations/utils/mappers.js.map +1 -1
- package/dist/generated/wspace-operations.js +7 -0
- package/dist/generated/wspace-operations.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/translations/en.js +319 -0
- package/dist/translations/en.js.map +1 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3,5 +3,6 @@ import { ConversationsRoot as t } from "./conversations/ConversationsRoot.js";
|
|
|
3
3
|
import { ConversationsUserRoot as n } from "./conversations/ConversationsUserRoot.js";
|
|
4
4
|
import { ConversationsAdminRoot as r } from "./conversations/ConversationsAdminRoot.js";
|
|
5
5
|
import { useConversationsStore as i } from "./conversations/store/conversationsStore.js";
|
|
6
|
+
import { enTranslations as a } from "./translations/en.js";
|
|
6
7
|
import "./conversations/index.js";
|
|
7
|
-
export { r as ConversationsAdminRoot, t as ConversationsRoot, n as ConversationsUserRoot, e as useConversations, i as useConversationsStore };
|
|
8
|
+
export { r as ConversationsAdminRoot, t as ConversationsRoot, n as ConversationsUserRoot, a as enTranslations, e as useConversations, i as useConversationsStore };
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
//#region src/translations/en.ts
|
|
2
|
+
var e = { conversations: {
|
|
3
|
+
title: "Conversations",
|
|
4
|
+
inbox: "Inbox",
|
|
5
|
+
allConversations: "All conversations",
|
|
6
|
+
newConversation: "New conversation",
|
|
7
|
+
new: "New",
|
|
8
|
+
archived: "Archived",
|
|
9
|
+
settings: "Settings",
|
|
10
|
+
conversationsReady: "Conversations Ready",
|
|
11
|
+
moduleLoadError: "Something went wrong loading this module. Please refresh the page.",
|
|
12
|
+
createConversation: "Create Conversation",
|
|
13
|
+
cancel: "Cancel",
|
|
14
|
+
save: "Save",
|
|
15
|
+
saving: "Saving...",
|
|
16
|
+
saveChanges: "Save Changes",
|
|
17
|
+
edit: "Edit",
|
|
18
|
+
delete: "Delete",
|
|
19
|
+
pin: "Pin",
|
|
20
|
+
unpin: "Unpin",
|
|
21
|
+
mute: "Mute",
|
|
22
|
+
unmute: "Unmute",
|
|
23
|
+
archive: "Archive",
|
|
24
|
+
unarchive: "Unarchive",
|
|
25
|
+
leave: "Leave",
|
|
26
|
+
more: "More",
|
|
27
|
+
moreOptions: "More options",
|
|
28
|
+
back: "Back",
|
|
29
|
+
backToInbox: "Back to conversations",
|
|
30
|
+
loading: "Loading conversations...",
|
|
31
|
+
creating: "Creating...",
|
|
32
|
+
exporting: "Exporting…",
|
|
33
|
+
accessDenied: "Access Denied",
|
|
34
|
+
noPermissionView: "You don't have permission to view this page.",
|
|
35
|
+
couldNotLoad: "Could not load conversations",
|
|
36
|
+
unavailableTitle: "Conversation unavailable",
|
|
37
|
+
unavailable: "We couldn't load this conversation. Please try again.",
|
|
38
|
+
notFound: "Conversation not found",
|
|
39
|
+
notFoundDescription: "This conversation may have been deleted, archived, or you no longer have access to it.",
|
|
40
|
+
failedToLoadPage: "Failed to load page",
|
|
41
|
+
pageChunkLoadFailed: "The page chunk could not be loaded. This may be due to a network issue.",
|
|
42
|
+
tryAgain: "Try Again",
|
|
43
|
+
errorDetails: "Error details",
|
|
44
|
+
listPaneLabel: "Conversations list",
|
|
45
|
+
detailPaneLabel: "Conversation detail",
|
|
46
|
+
purpose: "Your messaging hub: direct messages, group chats, and topic channels with the people in this workspace. Search, filter, or start a new conversation to keep work discussions in one place.",
|
|
47
|
+
search: "Search conversations...",
|
|
48
|
+
searchAria: "Search conversations",
|
|
49
|
+
clearSearch: "Clear conversation search",
|
|
50
|
+
createNewConversation: "Create a new conversation",
|
|
51
|
+
unread: "Unread",
|
|
52
|
+
pinned: "Pinned",
|
|
53
|
+
openConversation: "Open conversation",
|
|
54
|
+
pinnedLabel: "Pinned",
|
|
55
|
+
mutedLabel: "Muted",
|
|
56
|
+
tabs: {
|
|
57
|
+
all: "All",
|
|
58
|
+
direct: "Direct",
|
|
59
|
+
groups: "Groups",
|
|
60
|
+
channels: "Channels",
|
|
61
|
+
archived: "Archived"
|
|
62
|
+
},
|
|
63
|
+
empty: {
|
|
64
|
+
all: {
|
|
65
|
+
title: "No conversations yet",
|
|
66
|
+
description: "Start your first conversation with someone in this workspace."
|
|
67
|
+
},
|
|
68
|
+
direct: {
|
|
69
|
+
title: "No direct conversations yet",
|
|
70
|
+
description: "Start one with a workspace member from the New conversation button above."
|
|
71
|
+
},
|
|
72
|
+
groups: {
|
|
73
|
+
title: "Create a group",
|
|
74
|
+
description: "Groups let you chat with multiple people in one thread. Tap New to start one."
|
|
75
|
+
},
|
|
76
|
+
channels: {
|
|
77
|
+
title: "Subscribe to a channel",
|
|
78
|
+
description: "Channels are topic-based discussions visible to everyone who joins them."
|
|
79
|
+
},
|
|
80
|
+
archived: {
|
|
81
|
+
title: "No archived conversations",
|
|
82
|
+
description: "Archived conversations are hidden from your main inbox. Move conversations here from the row actions menu."
|
|
83
|
+
},
|
|
84
|
+
search: {
|
|
85
|
+
title: "No matches",
|
|
86
|
+
description: "No conversations matching"
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
detailLoading: "Loading conversation…",
|
|
90
|
+
loadingMessages: "Loading messages...",
|
|
91
|
+
noMessagesTitle: "No messages yet",
|
|
92
|
+
noMessagesYet: "Start the conversation below — say hello, ask a question, or share an update.",
|
|
93
|
+
writeFirstMessage: "Write a message",
|
|
94
|
+
members: "Members",
|
|
95
|
+
membersCountLabel: "members",
|
|
96
|
+
membersLabel: "members",
|
|
97
|
+
moreMembersPrefix: "and",
|
|
98
|
+
moreMembersSuffix: "more",
|
|
99
|
+
member: "Member",
|
|
100
|
+
participants: "Participants",
|
|
101
|
+
openContext: "Open context",
|
|
102
|
+
directConversation: "Direct conversation",
|
|
103
|
+
channel: "Channel",
|
|
104
|
+
announcement: "Announcement",
|
|
105
|
+
replyingTo: "Replying to",
|
|
106
|
+
cancelReply: "Cancel reply",
|
|
107
|
+
messageComposer: "Message composer",
|
|
108
|
+
messageConversationPrefix: "Message",
|
|
109
|
+
sendMessage: "Send message",
|
|
110
|
+
editingMessage: "Editing message",
|
|
111
|
+
editMessageAria: "Edit message",
|
|
112
|
+
confirmDeleteMessage: "Delete this message? This action cannot be undone.",
|
|
113
|
+
confirmLeaveConversation: "Leave this conversation? You will lose access unless someone adds you again.",
|
|
114
|
+
messagesUnavailable: "Messages couldn't be loaded right now. The conversation header and actions are still available.",
|
|
115
|
+
pinConversation: "Pin conversation",
|
|
116
|
+
unpinConversation: "Unpin conversation",
|
|
117
|
+
muteConversation: "Mute conversation",
|
|
118
|
+
unmuteConversation: "Unmute conversation",
|
|
119
|
+
archiveConversation: "Archive conversation",
|
|
120
|
+
leaveConversation: "Leave conversation",
|
|
121
|
+
contextEntityMeta: " · {{entityType}} {{entityId}}",
|
|
122
|
+
edited: "edited",
|
|
123
|
+
failed: "Failed",
|
|
124
|
+
messageActions: "Message actions",
|
|
125
|
+
react: "React",
|
|
126
|
+
reactWith: "React with",
|
|
127
|
+
reply: "Reply",
|
|
128
|
+
pinMessage: "Pin message",
|
|
129
|
+
unpinMessage: "Unpin message",
|
|
130
|
+
sentAttachment: "Sent an attachment",
|
|
131
|
+
noMessages: "No messages yet",
|
|
132
|
+
unreadCountLabel: "unread",
|
|
133
|
+
fileSizeUnits: {
|
|
134
|
+
B: "B",
|
|
135
|
+
KB: "KB",
|
|
136
|
+
MB: "MB",
|
|
137
|
+
GB: "GB"
|
|
138
|
+
},
|
|
139
|
+
now: "now",
|
|
140
|
+
yesterday: "Yesterday",
|
|
141
|
+
time: {
|
|
142
|
+
minutesAgo: "{{count}}m",
|
|
143
|
+
hoursAgo: "{{count}}h",
|
|
144
|
+
daysAgo: "{{count}}d"
|
|
145
|
+
},
|
|
146
|
+
conversationType: "Conversation Type",
|
|
147
|
+
directMessage: "Direct Message",
|
|
148
|
+
directMessageDescription: "One-on-one private conversation",
|
|
149
|
+
groupChat: "Group Chat",
|
|
150
|
+
groupChatDescription: "Invite multiple people to a group conversation",
|
|
151
|
+
channelDescription: "A topic-based channel that anyone can join",
|
|
152
|
+
announcementDescription: "Broadcast messages to a large audience",
|
|
153
|
+
visibility: "Visibility",
|
|
154
|
+
public: "Public",
|
|
155
|
+
publicDescription: "Anyone in the workspace can discover and join",
|
|
156
|
+
private: "Private",
|
|
157
|
+
privateDescription: "Only invited members can access",
|
|
158
|
+
protected: "Protected",
|
|
159
|
+
protectedDescription: "Discoverable but requires approval to join",
|
|
160
|
+
name: "Name",
|
|
161
|
+
description: "Description",
|
|
162
|
+
recipient: "Recipient",
|
|
163
|
+
optional: "optional",
|
|
164
|
+
participantCountHint: "{{count}} selected",
|
|
165
|
+
channelNamePlaceholder: "e.g., engineering-general",
|
|
166
|
+
conversationNamePlaceholder: "e.g., Product Launch Q1",
|
|
167
|
+
descriptionPlaceholder: "What is this conversation about?",
|
|
168
|
+
memberSearchPlaceholder: "Search members by name or email…",
|
|
169
|
+
memberSearchLoading: "Loading members…",
|
|
170
|
+
memberSearchNoResults: "No members found.",
|
|
171
|
+
memberSearchEmpty: "No more members to add.",
|
|
172
|
+
removeParticipant: "Remove participant",
|
|
173
|
+
directMessageSingleHint: "A direct message has exactly one recipient. Selecting another replaces the current one.",
|
|
174
|
+
settingsFor: "Conversation settings for",
|
|
175
|
+
selectConversationForSettings: "Select a conversation to edit settings",
|
|
176
|
+
loadingSettings: "Loading settings...",
|
|
177
|
+
openConversationFirst: "Open a conversation first, then come back to settings.",
|
|
178
|
+
settingsPurpose: "Fine-tune how this conversation behaves for you — choose how loudly it notifies you, whether typing and read receipts are shown, and export the full message history for records or compliance.",
|
|
179
|
+
notifications: "Notifications",
|
|
180
|
+
notificationsDescription: "Configure delivery behavior for this conversation",
|
|
181
|
+
defaultNotificationLevel: "Default Notification Level",
|
|
182
|
+
defaultNotificationLevelHint: "This updates conversation settings JSON via GraphQL.",
|
|
183
|
+
allMessages: "All Messages",
|
|
184
|
+
mentionsOnly: "Mentions Only",
|
|
185
|
+
directOnly: "Direct Only",
|
|
186
|
+
none: "None",
|
|
187
|
+
messageBehavior: "Message Behavior",
|
|
188
|
+
messageBehaviorDescription: "Tune read and typing experience",
|
|
189
|
+
typingIndicators: "Typing Indicators",
|
|
190
|
+
typingIndicatorsDescription: "Show others when someone is typing",
|
|
191
|
+
readReceipts: "Read Receipts",
|
|
192
|
+
readReceiptsDescription: "Display read status for conversation participants",
|
|
193
|
+
exportData: "Export Data",
|
|
194
|
+
exportDataDescription: "Download conversation comments in your preferred format",
|
|
195
|
+
exportReady: "Export ready — downloading…",
|
|
196
|
+
settingsSaved: "Settings saved.",
|
|
197
|
+
nextSteps: {
|
|
198
|
+
title: "Get the most out of this conversation",
|
|
199
|
+
send: {
|
|
200
|
+
label: "Send your first reply",
|
|
201
|
+
description: "Jump to the composer and start the conversation."
|
|
202
|
+
},
|
|
203
|
+
participants: {
|
|
204
|
+
label: "Review participants",
|
|
205
|
+
description: "See who can read and post in this conversation."
|
|
206
|
+
},
|
|
207
|
+
context: {
|
|
208
|
+
label: "Open the related item",
|
|
209
|
+
description: "Jump to the page or record this conversation is about."
|
|
210
|
+
},
|
|
211
|
+
pin: { label: "Pin for quick access" },
|
|
212
|
+
unpin: { label: "Unpin this conversation" },
|
|
213
|
+
pinDescription: "Keep important conversations at the top of your inbox."
|
|
214
|
+
},
|
|
215
|
+
quota: {
|
|
216
|
+
dismiss: "Dismiss",
|
|
217
|
+
viewBilling: "View Billing",
|
|
218
|
+
conversations: {
|
|
219
|
+
title: "Conversation Quota Reached",
|
|
220
|
+
description: "You've reached the conversation limit for your current plan. View billing to upgrade or add more capacity."
|
|
221
|
+
},
|
|
222
|
+
messages: {
|
|
223
|
+
title: "Message Quota Reached",
|
|
224
|
+
description: "You've reached the message limit for your current plan. View billing to upgrade or add more capacity."
|
|
225
|
+
}
|
|
226
|
+
},
|
|
227
|
+
detailEmpty: {
|
|
228
|
+
title: "Select a conversation",
|
|
229
|
+
description: "Pick a conversation from the list — or start a new one.",
|
|
230
|
+
newCta: "Start a new conversation"
|
|
231
|
+
},
|
|
232
|
+
admin: {
|
|
233
|
+
overview: "Overview",
|
|
234
|
+
moderation: "Moderation",
|
|
235
|
+
moderationDescription: "Reported and flagged messages, moderation actions, and reviewer assignments.",
|
|
236
|
+
bulkOperations: "Bulk Operations",
|
|
237
|
+
bulkOperationsDescription: "Bulk archive / unarchive, participant edits, and cross-conversation actions.",
|
|
238
|
+
auditLog: "Audit Log",
|
|
239
|
+
auditLogDescription: "Activity stream for admin / moderator actions on workspace conversations.",
|
|
240
|
+
appInstallations: "App Installations",
|
|
241
|
+
appInstallationsDescription: "Install, configure, and remove conversation apps and integrations.",
|
|
242
|
+
statusReady: "Conversations Admin",
|
|
243
|
+
purpose: "Govern every conversation in this workspace from one place — moderate reported messages, run bulk archive or cleanup operations, audit moderator actions, and manage the apps that plug into conversations.",
|
|
244
|
+
landingTitle: "Conversations admin",
|
|
245
|
+
landingDescription: "Governance tools for workspace conversations. Select a section below to continue.",
|
|
246
|
+
nextSteps: {
|
|
247
|
+
title: "Recommended next steps",
|
|
248
|
+
moderation: {
|
|
249
|
+
label: "Clear the moderation queue",
|
|
250
|
+
description: "Review reported messages and apply decisions."
|
|
251
|
+
},
|
|
252
|
+
bulk: {
|
|
253
|
+
label: "Tidy up conversations in bulk",
|
|
254
|
+
description: "Archive or remove stale conversations across the workspace."
|
|
255
|
+
},
|
|
256
|
+
audit: {
|
|
257
|
+
label: "Check recent admin activity",
|
|
258
|
+
description: "See what moderators and admins have changed lately."
|
|
259
|
+
}
|
|
260
|
+
},
|
|
261
|
+
moderationPageTitle: "Moderation queue",
|
|
262
|
+
moderationPageDescription: "Review reported messages and apply moderator decisions.",
|
|
263
|
+
moderationPurpose: "Keep conversations safe: people can report messages they find abusive, spammy, or off-topic, and they land here for a moderator to hide the message or dismiss the report. Work the queue down to zero to stay on top of issues.",
|
|
264
|
+
selectWorkspace: "Select a workspace",
|
|
265
|
+
selectWorkspaceModerationDescription: "Choose a workspace to review reported conversation messages.",
|
|
266
|
+
loadingReports: "Loading reports…",
|
|
267
|
+
noReportsTitle: "No reports waiting for review",
|
|
268
|
+
noReportsDescription: "Reported messages will appear here as they are submitted.",
|
|
269
|
+
reportedAt: "Reported {{date}}",
|
|
270
|
+
reportMeta: "Message {{messageId}} in conversation {{conversationId}} by {{authorId}}; reported by {{reportedBy}}",
|
|
271
|
+
messageContentUnavailable: "Message content unavailable",
|
|
272
|
+
hideAndResolve: "Hide and resolve",
|
|
273
|
+
dismiss: "Dismiss",
|
|
274
|
+
hidden: "Hidden",
|
|
275
|
+
bulkOperationsPageTitle: "Bulk operations",
|
|
276
|
+
bulkOperationsPageDescription: "Select workspace conversations and apply archive, unarchive, or delete operations.",
|
|
277
|
+
bulkPurpose: "Clean up at scale instead of one conversation at a time — select many conversations, then archive them to declutter inboxes, unarchive to restore, or delete the ones you no longer need. Handy for closing out finished projects or removing test threads.",
|
|
278
|
+
selectWorkspaceBulkDescription: "Choose a workspace to manage conversations in bulk.",
|
|
279
|
+
loadingConversations: "Loading conversations…",
|
|
280
|
+
bulkAction: "Bulk action",
|
|
281
|
+
applyToCount: "Apply to {{count}}",
|
|
282
|
+
succeeded: "Succeeded",
|
|
283
|
+
failed: "Failed",
|
|
284
|
+
selectConversationAria: "Select {{title}}",
|
|
285
|
+
untitledConversation: "Untitled conversation",
|
|
286
|
+
conversationMeta: "{{type}} · {{state}} · Updated {{date}}",
|
|
287
|
+
auditLogPageTitle: "Audit log",
|
|
288
|
+
auditLogPageDescription: "Activity stream for admin and moderator actions on workspace conversations.",
|
|
289
|
+
auditPurpose: "An accountability trail of who changed what — every admin and moderator action on workspace conversations is recorded here. Use it to investigate an incident, confirm a change was made, or satisfy a compliance review.",
|
|
290
|
+
loadingActivity: "Loading activity…",
|
|
291
|
+
noActivityTitle: "No activity found",
|
|
292
|
+
noActivityDescription: "Conversation admin actions will appear here.",
|
|
293
|
+
noDescription: "No description provided",
|
|
294
|
+
auditMeta: "User {{userId}} · Resource {{resourceId}}",
|
|
295
|
+
workspaceResource: "workspace",
|
|
296
|
+
appInstallationsPageTitle: "App installations",
|
|
297
|
+
appInstallationsPageDescription: "Install, configure, and remove conversation apps and integrations.",
|
|
298
|
+
appsPurpose: "Extend conversations with apps and integrations — install bots, automations, or third-party connectors scoped to this workspace, adjust their settings, and remove the ones you no longer use.",
|
|
299
|
+
installApp: "Install app",
|
|
300
|
+
installAppDescription: "Install a workspace-scoped conversation app by app ID.",
|
|
301
|
+
appIdPlaceholder: "app-id",
|
|
302
|
+
appId: "App ID",
|
|
303
|
+
appSettingsJson: "App settings JSON",
|
|
304
|
+
install: "Install",
|
|
305
|
+
installAppError: "Enter an app ID and a valid JSON settings object.",
|
|
306
|
+
loadingAppInstallations: "Loading app installations…",
|
|
307
|
+
appVersionMeta: "Version {{version}} · Installed by {{installedBy}} on {{installedAt}}",
|
|
308
|
+
uninstall: "Uninstall",
|
|
309
|
+
uninstallConfirm: "Uninstall {{appId}}? This removes the app and its settings from this workspace.",
|
|
310
|
+
editSettingsJson: "Edit settings (JSON)",
|
|
311
|
+
settingsForApp: "Settings for {{appId}}",
|
|
312
|
+
saveSettings: "Save settings",
|
|
313
|
+
settingsInvalidJson: "Installation settings must be a valid JSON object."
|
|
314
|
+
}
|
|
315
|
+
} };
|
|
316
|
+
//#endregion
|
|
317
|
+
export { e as enTranslations };
|
|
318
|
+
|
|
319
|
+
//# sourceMappingURL=en.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"en.js","names":[],"sources":["../../src/translations/en.ts"],"sourcesContent":["/**\n * Bundled English translations for microfe-conversations.\n *\n * These serve as the offline fallback when the platform i18n API is\n * unavailable. The global-i18n-svc is the source of truth at runtime;\n * this file only ensures the MFE remains usable when that API fails.\n *\n * Host app shells can merge these translations into their own\n * `fallbackTranslations` config:\n *\n * import { enTranslations as conversationsEn } from \"@burdenoff/microfe-conversations/translations\";\n *\n * Organised by surface: shared/common, inbox/list, detail, settings,\n * new-conversation dialog, and admin governance pages.\n */\n\nexport const enTranslations = {\n conversations: {\n title: \"Conversations\",\n inbox: \"Inbox\",\n allConversations: \"All conversations\",\n newConversation: \"New conversation\",\n new: \"New\",\n archived: \"Archived\",\n settings: \"Settings\",\n conversationsReady: \"Conversations Ready\",\n moduleLoadError:\n \"Something went wrong loading this module. Please refresh the page.\",\n\n // Common actions\n createConversation: \"Create Conversation\",\n cancel: \"Cancel\",\n save: \"Save\",\n saving: \"Saving...\",\n saveChanges: \"Save Changes\",\n edit: \"Edit\",\n delete: \"Delete\",\n pin: \"Pin\",\n unpin: \"Unpin\",\n mute: \"Mute\",\n unmute: \"Unmute\",\n archive: \"Archive\",\n unarchive: \"Unarchive\",\n leave: \"Leave\",\n more: \"More\",\n moreOptions: \"More options\",\n back: \"Back\",\n backToInbox: \"Back to conversations\",\n loading: \"Loading conversations...\",\n creating: \"Creating...\",\n exporting: \"Exporting…\",\n\n // Permissions / errors\n accessDenied: \"Access Denied\",\n noPermissionView: \"You don't have permission to view this page.\",\n couldNotLoad: \"Could not load conversations\",\n unavailableTitle: \"Conversation unavailable\",\n unavailable: \"We couldn't load this conversation. Please try again.\",\n notFound: \"Conversation not found\",\n notFoundDescription:\n \"This conversation may have been deleted, archived, or you no longer have access to it.\",\n failedToLoadPage: \"Failed to load page\",\n pageChunkLoadFailed:\n \"The page chunk could not be loaded. This may be due to a network issue.\",\n tryAgain: \"Try Again\",\n errorDetails: \"Error details\",\n\n // Inbox chrome\n listPaneLabel: \"Conversations list\",\n detailPaneLabel: \"Conversation detail\",\n purpose:\n \"Your messaging hub: direct messages, group chats, and topic channels with the people in this workspace. Search, filter, or start a new conversation to keep work discussions in one place.\",\n search: \"Search conversations...\",\n searchAria: \"Search conversations\",\n clearSearch: \"Clear conversation search\",\n createNewConversation: \"Create a new conversation\",\n unread: \"Unread\",\n pinned: \"Pinned\",\n openConversation: \"Open conversation\",\n pinnedLabel: \"Pinned\",\n mutedLabel: \"Muted\",\n\n tabs: {\n all: \"All\",\n direct: \"Direct\",\n groups: \"Groups\",\n channels: \"Channels\",\n archived: \"Archived\",\n },\n\n // Empty states\n empty: {\n all: {\n title: \"No conversations yet\",\n description:\n \"Start your first conversation with someone in this workspace.\",\n },\n direct: {\n title: \"No direct conversations yet\",\n description:\n \"Start one with a workspace member from the New conversation button above.\",\n },\n groups: {\n title: \"Create a group\",\n description:\n \"Groups let you chat with multiple people in one thread. Tap New to start one.\",\n },\n channels: {\n title: \"Subscribe to a channel\",\n description:\n \"Channels are topic-based discussions visible to everyone who joins them.\",\n },\n archived: {\n title: \"No archived conversations\",\n description:\n \"Archived conversations are hidden from your main inbox. Move conversations here from the row actions menu.\",\n },\n search: {\n title: \"No matches\",\n description: \"No conversations matching\",\n },\n },\n\n // Detail page\n detailLoading: \"Loading conversation…\",\n loadingMessages: \"Loading messages...\",\n noMessagesTitle: \"No messages yet\",\n noMessagesYet:\n \"Start the conversation below — say hello, ask a question, or share an update.\",\n writeFirstMessage: \"Write a message\",\n members: \"Members\",\n membersCountLabel: \"members\",\n membersLabel: \"members\",\n moreMembersPrefix: \"and\",\n moreMembersSuffix: \"more\",\n member: \"Member\",\n participants: \"Participants\",\n openContext: \"Open context\",\n directConversation: \"Direct conversation\",\n channel: \"Channel\",\n announcement: \"Announcement\",\n replyingTo: \"Replying to\",\n cancelReply: \"Cancel reply\",\n messageComposer: \"Message composer\",\n messageConversationPrefix: \"Message\",\n sendMessage: \"Send message\",\n editingMessage: \"Editing message\",\n editMessageAria: \"Edit message\",\n confirmDeleteMessage: \"Delete this message? This action cannot be undone.\",\n confirmLeaveConversation:\n \"Leave this conversation? You will lose access unless someone adds you again.\",\n messagesUnavailable:\n \"Messages couldn't be loaded right now. The conversation header and actions are still available.\",\n pinConversation: \"Pin conversation\",\n unpinConversation: \"Unpin conversation\",\n muteConversation: \"Mute conversation\",\n unmuteConversation: \"Unmute conversation\",\n archiveConversation: \"Archive conversation\",\n leaveConversation: \"Leave conversation\",\n contextEntityMeta: \" · {{entityType}} {{entityId}}\",\n\n // Message bubble\n edited: \"edited\",\n failed: \"Failed\",\n messageActions: \"Message actions\",\n react: \"React\",\n reactWith: \"React with\",\n reply: \"Reply\",\n pinMessage: \"Pin message\",\n unpinMessage: \"Unpin message\",\n sentAttachment: \"Sent an attachment\",\n noMessages: \"No messages yet\",\n unreadCountLabel: \"unread\",\n fileSizeUnits: {\n B: \"B\",\n KB: \"KB\",\n MB: \"MB\",\n GB: \"GB\",\n },\n\n // Relative time\n now: \"now\",\n yesterday: \"Yesterday\",\n time: {\n minutesAgo: \"{{count}}m\",\n hoursAgo: \"{{count}}h\",\n daysAgo: \"{{count}}d\",\n },\n\n // New conversation dialog\n conversationType: \"Conversation Type\",\n directMessage: \"Direct Message\",\n directMessageDescription: \"One-on-one private conversation\",\n groupChat: \"Group Chat\",\n groupChatDescription: \"Invite multiple people to a group conversation\",\n channelDescription: \"A topic-based channel that anyone can join\",\n announcementDescription: \"Broadcast messages to a large audience\",\n visibility: \"Visibility\",\n public: \"Public\",\n publicDescription: \"Anyone in the workspace can discover and join\",\n private: \"Private\",\n privateDescription: \"Only invited members can access\",\n protected: \"Protected\",\n protectedDescription: \"Discoverable but requires approval to join\",\n name: \"Name\",\n description: \"Description\",\n recipient: \"Recipient\",\n optional: \"optional\",\n participantCountHint: \"{{count}} selected\",\n channelNamePlaceholder: \"e.g., engineering-general\",\n conversationNamePlaceholder: \"e.g., Product Launch Q1\",\n descriptionPlaceholder: \"What is this conversation about?\",\n memberSearchPlaceholder: \"Search members by name or email…\",\n memberSearchLoading: \"Loading members…\",\n memberSearchNoResults: \"No members found.\",\n memberSearchEmpty: \"No more members to add.\",\n removeParticipant: \"Remove participant\",\n directMessageSingleHint:\n \"A direct message has exactly one recipient. Selecting another replaces the current one.\",\n\n // Settings page\n settingsFor: \"Conversation settings for\",\n selectConversationForSettings: \"Select a conversation to edit settings\",\n loadingSettings: \"Loading settings...\",\n openConversationFirst:\n \"Open a conversation first, then come back to settings.\",\n settingsPurpose:\n \"Fine-tune how this conversation behaves for you — choose how loudly it notifies you, whether typing and read receipts are shown, and export the full message history for records or compliance.\",\n notifications: \"Notifications\",\n notificationsDescription:\n \"Configure delivery behavior for this conversation\",\n defaultNotificationLevel: \"Default Notification Level\",\n defaultNotificationLevelHint:\n \"This updates conversation settings JSON via GraphQL.\",\n allMessages: \"All Messages\",\n mentionsOnly: \"Mentions Only\",\n directOnly: \"Direct Only\",\n none: \"None\",\n messageBehavior: \"Message Behavior\",\n messageBehaviorDescription: \"Tune read and typing experience\",\n typingIndicators: \"Typing Indicators\",\n typingIndicatorsDescription: \"Show others when someone is typing\",\n readReceipts: \"Read Receipts\",\n readReceiptsDescription:\n \"Display read status for conversation participants\",\n exportData: \"Export Data\",\n exportDataDescription:\n \"Download conversation comments in your preferred format\",\n exportReady: \"Export ready — downloading…\",\n settingsSaved: \"Settings saved.\",\n\n // Next steps\n nextSteps: {\n title: \"Get the most out of this conversation\",\n send: {\n label: \"Send your first reply\",\n description: \"Jump to the composer and start the conversation.\",\n },\n participants: {\n label: \"Review participants\",\n description: \"See who can read and post in this conversation.\",\n },\n context: {\n label: \"Open the related item\",\n description: \"Jump to the page or record this conversation is about.\",\n },\n pin: {\n label: \"Pin for quick access\",\n },\n unpin: {\n label: \"Unpin this conversation\",\n },\n pinDescription: \"Keep important conversations at the top of your inbox.\",\n },\n\n // Quota\n quota: {\n dismiss: \"Dismiss\",\n viewBilling: \"View Billing\",\n conversations: {\n title: \"Conversation Quota Reached\",\n description:\n \"You've reached the conversation limit for your current plan. View billing to upgrade or add more capacity.\",\n },\n messages: {\n title: \"Message Quota Reached\",\n description:\n \"You've reached the message limit for your current plan. View billing to upgrade or add more capacity.\",\n },\n },\n\n // Detail empty state\n detailEmpty: {\n title: \"Select a conversation\",\n description: \"Pick a conversation from the list — or start a new one.\",\n newCta: \"Start a new conversation\",\n },\n\n // Admin governance\n admin: {\n overview: \"Overview\",\n moderation: \"Moderation\",\n moderationDescription:\n \"Reported and flagged messages, moderation actions, and reviewer assignments.\",\n bulkOperations: \"Bulk Operations\",\n bulkOperationsDescription:\n \"Bulk archive / unarchive, participant edits, and cross-conversation actions.\",\n auditLog: \"Audit Log\",\n auditLogDescription:\n \"Activity stream for admin / moderator actions on workspace conversations.\",\n appInstallations: \"App Installations\",\n appInstallationsDescription:\n \"Install, configure, and remove conversation apps and integrations.\",\n statusReady: \"Conversations Admin\",\n purpose:\n \"Govern every conversation in this workspace from one place — moderate reported messages, run bulk archive or cleanup operations, audit moderator actions, and manage the apps that plug into conversations.\",\n landingTitle: \"Conversations admin\",\n landingDescription:\n \"Governance tools for workspace conversations. Select a section below to continue.\",\n nextSteps: {\n title: \"Recommended next steps\",\n moderation: {\n label: \"Clear the moderation queue\",\n description: \"Review reported messages and apply decisions.\",\n },\n bulk: {\n label: \"Tidy up conversations in bulk\",\n description:\n \"Archive or remove stale conversations across the workspace.\",\n },\n audit: {\n label: \"Check recent admin activity\",\n description: \"See what moderators and admins have changed lately.\",\n },\n },\n\n // Moderation queue\n moderationPageTitle: \"Moderation queue\",\n moderationPageDescription:\n \"Review reported messages and apply moderator decisions.\",\n moderationPurpose:\n \"Keep conversations safe: people can report messages they find abusive, spammy, or off-topic, and they land here for a moderator to hide the message or dismiss the report. Work the queue down to zero to stay on top of issues.\",\n selectWorkspace: \"Select a workspace\",\n selectWorkspaceModerationDescription:\n \"Choose a workspace to review reported conversation messages.\",\n loadingReports: \"Loading reports…\",\n noReportsTitle: \"No reports waiting for review\",\n noReportsDescription:\n \"Reported messages will appear here as they are submitted.\",\n reportedAt: \"Reported {{date}}\",\n reportMeta:\n \"Message {{messageId}} in conversation {{conversationId}} by {{authorId}}; reported by {{reportedBy}}\",\n messageContentUnavailable: \"Message content unavailable\",\n hideAndResolve: \"Hide and resolve\",\n dismiss: \"Dismiss\",\n hidden: \"Hidden\",\n\n // Bulk operations\n bulkOperationsPageTitle: \"Bulk operations\",\n bulkOperationsPageDescription:\n \"Select workspace conversations and apply archive, unarchive, or delete operations.\",\n bulkPurpose:\n \"Clean up at scale instead of one conversation at a time — select many conversations, then archive them to declutter inboxes, unarchive to restore, or delete the ones you no longer need. Handy for closing out finished projects or removing test threads.\",\n selectWorkspaceBulkDescription:\n \"Choose a workspace to manage conversations in bulk.\",\n loadingConversations: \"Loading conversations…\",\n bulkAction: \"Bulk action\",\n applyToCount: \"Apply to {{count}}\",\n succeeded: \"Succeeded\",\n failed: \"Failed\",\n selectConversationAria: \"Select {{title}}\",\n untitledConversation: \"Untitled conversation\",\n conversationMeta: \"{{type}} · {{state}} · Updated {{date}}\",\n\n // Audit log\n auditLogPageTitle: \"Audit log\",\n auditLogPageDescription:\n \"Activity stream for admin and moderator actions on workspace conversations.\",\n auditPurpose:\n \"An accountability trail of who changed what — every admin and moderator action on workspace conversations is recorded here. Use it to investigate an incident, confirm a change was made, or satisfy a compliance review.\",\n loadingActivity: \"Loading activity…\",\n noActivityTitle: \"No activity found\",\n noActivityDescription: \"Conversation admin actions will appear here.\",\n noDescription: \"No description provided\",\n auditMeta: \"User {{userId}} · Resource {{resourceId}}\",\n workspaceResource: \"workspace\",\n\n // App installations\n appInstallationsPageTitle: \"App installations\",\n appInstallationsPageDescription:\n \"Install, configure, and remove conversation apps and integrations.\",\n appsPurpose:\n \"Extend conversations with apps and integrations — install bots, automations, or third-party connectors scoped to this workspace, adjust their settings, and remove the ones you no longer use.\",\n installApp: \"Install app\",\n installAppDescription:\n \"Install a workspace-scoped conversation app by app ID.\",\n appIdPlaceholder: \"app-id\",\n appId: \"App ID\",\n appSettingsJson: \"App settings JSON\",\n install: \"Install\",\n installAppError: \"Enter an app ID and a valid JSON settings object.\",\n loadingAppInstallations: \"Loading app installations…\",\n appVersionMeta:\n \"Version {{version}} · Installed by {{installedBy}} on {{installedAt}}\",\n uninstall: \"Uninstall\",\n uninstallConfirm:\n \"Uninstall {{appId}}? This removes the app and its settings from this workspace.\",\n editSettingsJson: \"Edit settings (JSON)\",\n settingsForApp: \"Settings for {{appId}}\",\n saveSettings: \"Save settings\",\n settingsInvalidJson: \"Installation settings must be a valid JSON object.\",\n },\n },\n};\n"],"mappings":"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AGD,aAAa;EACX,OAAO;EACP,aAAa;EACb,QAAQ;EACT;CAGD,OAAO;EACL,UAAU;EACV,YAAY;EACZ,uBACE;EACF,gBAAgB;EAChB,2BACE;EACF,UAAU;EACV,qBACE;EACF,kBAAkB;EAClB,6BACE;EACF,aAAa;EACb,SACE;EACF,cAAc;EACd,oBACE;EACF,WAAW;GACT,OAAO;GACP,YAAY;IACV,OAAO;IACP,aAAa;IACd;GACD,MAAM;IACJ,OAAO;IACP,aACE;IACH;GACD,OAAO;IACL,OAAO;IACP,aAAa;IACd;GACF;EAGD,qBAAqB;EACrB,2BACE;EACF,mBACE;EACF,iBAAiB;EACjB,sCACE;EACF,gBAAgB;EAChB,gBAAgB;EAChB,sBACE;EACF,YAAY;EACZ,YACE;EACF,2BAA2B;EAC3B,gBAAgB;EAChB,SAAS;EACT,QAAQ;EAGR,yBAAyB;EACzB,+BACE;EACF,aACE;EACF,gCACE;EACF,sBAAsB;EACtB,YAAY;EACZ,cAAc;EACd,WAAW;EACX,QAAQ;EACR,wBAAwB;EACxB,sBAAsB;EACtB,kBAAkB;EAGlB,mBAAmB;EACnB,yBACE;EACF,cACE;EACF,iBAAiB;EACjB,iBAAiB;EACjB,uBAAuB;EACvB,eAAe;EACf,WAAW;EACX,mBAAmB;EAGnB,2BAA2B;EAC3B,iCACE;EACF,aACE;EACF,YAAY;EACZ,uBACE;EACF,kBAAkB;EAClB,OAAO;EACP,iBAAiB;EACjB,SAAS;EACT,iBAAiB;EACjB,yBAAyB;EACzB,gBACE;EACF,WAAW;EACX,kBACE;EACF,kBAAkB;EAClB,gBAAgB;EAChB,cAAc;EACd,qBAAqB;EACtB;CACF,EACF"}
|
package/package.json
CHANGED