@bcrumbs.net/inbox 0.0.63 → 0.0.64

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 (63) hide show
  1. package/assets/ar/inbox.json +3 -0
  2. package/assets/en/inbox.json +3 -0
  3. package/e2e/auth.setup.d.ts +1 -0
  4. package/e2e/checkout/checkout.flows.d.ts +18 -0
  5. package/e2e/global.teardown.d.ts +1 -0
  6. package/e2e/support/auth.d.ts +18 -0
  7. package/e2e/support/cleanup.d.ts +20 -0
  8. package/e2e/support/config.d.ts +23 -0
  9. package/e2e/support/fixtures.d.ts +16 -0
  10. package/e2e/support/identifiers.d.ts +13 -0
  11. package/e2e/support/index.d.ts +6 -0
  12. package/index.cjs.js +1286 -376
  13. package/index.esm.js +1288 -379
  14. package/package.json +2 -2
  15. package/playwright.config.d.ts +0 -4
  16. package/src/app/ai/components/playground/ThreadMessages.d.ts +3 -1
  17. package/src/app/auth/components/AcceptInvitation.d.ts +2 -0
  18. package/src/app/auth/components/AuthLanguagePicker.d.ts +3 -0
  19. package/src/app/auth/components/AuthVisualCarousel.d.ts +1 -0
  20. package/src/app/auth/components/ClerkSessionBridge.d.ts +4 -0
  21. package/src/app/auth/config/clerkAppearance.d.ts +153 -49
  22. package/src/app/auth/config/clerkLocalization.d.ts +6 -0
  23. package/src/app/auth/pages/Auth.style.d.ts +14 -0
  24. package/src/app/auth/pages/Login.d.ts +1 -0
  25. package/src/app/billing/pages/GatewayWelcomePage.d.ts +2 -0
  26. package/src/app/billing/pages/GuidePage.d.ts +1 -0
  27. package/src/app/billing/utils/isGatewayPlan.d.ts +2 -0
  28. package/src/app/broadcast/constants.d.ts +2 -0
  29. package/src/app/contact/components/ImportProgressDialog.d.ts +2 -1
  30. package/src/app/generic/hooks/usePaginatedQuery.d.ts +1 -0
  31. package/src/app/inbox/components/Chat/ChatContent.d.ts +3 -1
  32. package/src/app/inbox/components/NewDetails/ContactActionsMenu.d.ts +9 -0
  33. package/src/app/inbox/components/NewDetails/UserHeader.d.ts +2 -1
  34. package/src/app/inbox/components/Shared/SharedStyle.d.ts +8 -0
  35. package/src/app/inbox/hooks/useConvEnhance.d.ts +3 -1
  36. package/src/app/inbox/hooks/useConversationsPerodicFetch.d.ts +7 -0
  37. package/src/app/inbox/utils/convAssistStorage.d.ts +9 -4
  38. package/src/app/inbox/utils/convs.d.ts +4 -0
  39. package/src/app/inbox/utils/sounds.d.ts +2 -0
  40. package/src/app/layout/components/LogoutPopin.d.ts +6 -3
  41. package/src/app/layout/components/language/index.d.ts +5 -1
  42. package/src/app/layout/constants/index.d.ts +35 -0
  43. package/src/app/managemnet/config/webhookDefinition.d.ts +4 -0
  44. package/src/app/managemnet/pages/generalSettings/WritingAssistanceSettings.d.ts +9 -0
  45. package/src/app/managemnet/pages/generalSettings/holidayConstants.d.ts +5 -0
  46. package/src/app/managemnet/pages/generalSettings/writingConstants.d.ts +6 -0
  47. package/src/app/resources/components/Agents/CreateAgent.d.ts +7 -3
  48. package/src/app/resources/components/ListResources/Utils.d.ts +1 -0
  49. package/src/app/subscriptions/components/NewSubscription/SubscriptionSuccess.d.ts +3 -1
  50. package/src/app/subscriptions/components/Plans/PlanCard.d.ts +3 -1
  51. package/src/app/subscriptions/components/Plans/ShowcasePlans.d.ts +3 -1
  52. package/src/app/subscriptions/components/SubscriptionSettings/SubscriptionCreditsCard.d.ts +5 -0
  53. package/src/app/subscriptions/components/SubscriptionSettings/SubscriptionProfile.d.ts +0 -1
  54. package/src/app/subscriptions/components/SubscriptionSettings/SubscriptionUsers.d.ts +0 -1
  55. package/src/app/subscriptions/components/SubscriptionSettings/index.d.ts +17 -2
  56. package/src/app/subscriptions/constants/Plans.d.ts +2 -1
  57. package/src/app/subscriptions/utils/estimateUpgradeProration.d.ts +7 -0
  58. package/src/assets/locales/translations.d.ts +145 -0
  59. package/src/environments/environment.dev.d.ts +2 -0
  60. package/src/environments/types.d.ts +2 -0
  61. package/src/graphql.autogenerated.d.ts +908 -2
  62. package/src/graphql.billing.autogenerated.d.ts +193 -0
  63. package/src/lib/index.d.ts +1 -0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bcrumbs.net/inbox",
3
3
  "description": "Inbox widget for Bread Crumbs portals",
4
- "version": "0.0.63",
4
+ "version": "0.0.64",
5
5
  "keyword": [
6
6
  "bcrumbs",
7
7
  "bc-ui",
@@ -25,7 +25,7 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "@bcrumbs.net/bc-shared": "^0.0.11",
28
- "@bcrumbs.net/bc-ui": "^0.0.16",
28
+ "@bcrumbs.net/bc-ui": "^0.0.17",
29
29
  "@bcrumbs.net/bc-api": "^0.0.49",
30
30
  "@azure/storage-blob": "^12.25.0"
31
31
  },
@@ -1,7 +1,3 @@
1
- /**
2
- * Read environment variables from file.
3
- * https://github.com/motdotla/dotenv
4
- */
5
1
  /**
6
2
  * See https://playwright.dev/docs/test-configuration.
7
3
  */
@@ -1,6 +1,8 @@
1
1
  type ThreadMessagesProps = {
2
2
  /** Overrides the container padding (defaults to 24px) when the parent already provides some (e.g. Crumby ChatView surface). */
3
3
  padding?: string;
4
+ /** Overrides the message-text size for the compact Crumby chat (e.g. `TextSizeRem.XS`). Unset in the playground. */
5
+ fontSize?: string;
4
6
  };
5
- declare const ThreadMessages: ({ padding }: ThreadMessagesProps) => import("@emotion/react/jsx-runtime").JSX.Element;
7
+ declare const ThreadMessages: ({ padding, fontSize }: ThreadMessagesProps) => import("@emotion/react/jsx-runtime").JSX.Element;
6
8
  export default ThreadMessages;
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,3 @@
1
+ /** Top-corner language control for unauthenticated auth screens. */
2
+ export declare function AuthLanguagePicker(): import("@emotion/react/jsx-runtime").JSX.Element;
3
+ export default AuthLanguagePicker;
@@ -0,0 +1 @@
1
+ export declare const AuthVisualCarousel: () => import("@emotion/react/jsx-runtime").JSX.Element;
@@ -2,6 +2,10 @@
2
2
  * Keeps localStorage.token in sync with the Clerk session JWT so Apollo handleAuth
3
3
  * and BCRoutesGuard continue to work without per-client changes.
4
4
  *
5
+ * Clerk session *tokens* stay short-lived (~60s default). The Clerk *session*
6
+ * (cookie) is configured for 30 days in the Clerk Dashboard. This bridge refreshes
7
+ * the JWT in place and does not treat JWT expiry as logout.
8
+ *
5
9
  * Prefer the AspNetUsers id returned by /auth/authorize so the rest of the portal
6
10
  * keeps seeing the same user id shape as legacy login.
7
11
  *
@@ -1,10 +1,12 @@
1
+ import { FontFamilyStack } from '@bcrumbs.net/bc-ui';
1
2
  /**
2
- * Clerk UI theme aligned with legacy auth pages (Poppins + legacy type scale).
3
+ * Clerk UI theme aligned with legacy auth pages.
4
+ * Uses --bc-font-stack-poppins so Arabic (lang=ar) swaps to AvenirArabic.
3
5
  */
4
6
  export declare const clerkAppearance: {
5
7
  variables: {
6
- fontFamily: string;
7
- fontFamilyButtons: string;
8
+ fontFamily: FontFamilyStack;
9
+ fontFamilyButtons: FontFamilyStack;
8
10
  fontSize: string;
9
11
  colorPrimary: string;
10
12
  colorTextOnPrimaryBackground: string;
@@ -23,7 +25,7 @@ export declare const clerkAppearance: {
23
25
  card: {
24
26
  boxShadow: string;
25
27
  width: string;
26
- fontFamily: string;
28
+ fontFamily: FontFamilyStack;
27
29
  paddingTop: string;
28
30
  paddingBottom: string;
29
31
  };
@@ -32,32 +34,51 @@ export declare const clerkAppearance: {
32
34
  paddingTop: string;
33
35
  };
34
36
  headerTitle: {
35
- fontFamily: string;
37
+ fontFamily: FontFamilyStack;
36
38
  fontSize: string;
37
39
  fontWeight: string;
38
40
  lineHeight: string;
39
41
  color: string;
40
42
  };
41
43
  headerSubtitle: {
42
- fontFamily: string;
44
+ fontFamily: FontFamilyStack;
43
45
  fontSize: string;
44
46
  fontWeight: string;
45
47
  lineHeight: string;
46
48
  color: string;
47
49
  };
48
50
  formFieldLabel: {
49
- fontFamily: string;
51
+ fontFamily: FontFamilyStack;
50
52
  fontSize: string;
51
53
  fontWeight: string;
52
54
  color: string;
53
55
  };
54
56
  formFieldInput: {
55
- fontFamily: string;
57
+ fontFamily: FontFamilyStack;
56
58
  fontSize: string;
57
59
  fontWeight: string;
60
+ height: string;
61
+ minHeight: string;
62
+ padding: string;
63
+ borderRadius: string;
64
+ border: string;
65
+ backgroundColor: string;
66
+ color: string;
67
+ boxShadow: string;
68
+ '&:focus': {
69
+ borderColor: string;
70
+ boxShadow: string;
71
+ outline: string;
72
+ };
73
+ '&:hover': {
74
+ borderColor: string;
75
+ };
76
+ };
77
+ formFieldInputShowPasswordButton: {
78
+ color: string;
58
79
  };
59
80
  formButtonPrimary: {
60
- fontFamily: string;
81
+ fontFamily: FontFamilyStack;
61
82
  fontSize: string;
62
83
  fontWeight: string;
63
84
  lineHeight: string;
@@ -81,11 +102,14 @@ export declare const clerkAppearance: {
81
102
  backgroundColor: string;
82
103
  };
83
104
  };
105
+ buttonArrowIcon: {
106
+ display: string;
107
+ };
84
108
  socialButtons: {
85
109
  gap: string;
86
110
  };
87
111
  socialButtonsBlockButton: {
88
- fontFamily: string;
112
+ fontFamily: FontFamilyStack;
89
113
  fontSize: string;
90
114
  fontWeight: string;
91
115
  lineHeight: string;
@@ -104,7 +128,7 @@ export declare const clerkAppearance: {
104
128
  };
105
129
  };
106
130
  socialButtonsBlockButtonText: {
107
- fontFamily: string;
131
+ fontFamily: FontFamilyStack;
108
132
  fontSize: string;
109
133
  fontWeight: string;
110
134
  };
@@ -112,28 +136,40 @@ export declare const clerkAppearance: {
112
136
  width: string;
113
137
  height: string;
114
138
  };
139
+ lastAuthenticationStrategyBadge: {
140
+ fontFamily: FontFamilyStack;
141
+ fontSize: string;
142
+ fontWeight: string;
143
+ lineHeight: string;
144
+ minHeight: string;
145
+ height: string;
146
+ padding: string;
147
+ display: string;
148
+ alignItems: string;
149
+ boxSizing: string;
150
+ };
115
151
  footerActionText: {
116
- fontFamily: string;
152
+ fontFamily: FontFamilyStack;
117
153
  fontSize: string;
118
154
  };
119
155
  footerActionLink: {
120
- fontFamily: string;
156
+ fontFamily: FontFamilyStack;
121
157
  fontSize: string;
122
158
  };
123
159
  identityPreviewText: {
124
- fontFamily: string;
160
+ fontFamily: FontFamilyStack;
125
161
  fontSize: string;
126
162
  };
127
163
  formFieldSuccessText: {
128
- fontFamily: string;
164
+ fontFamily: FontFamilyStack;
129
165
  fontSize: string;
130
166
  };
131
167
  formFieldErrorText: {
132
- fontFamily: string;
168
+ fontFamily: FontFamilyStack;
133
169
  fontSize: string;
134
170
  };
135
171
  dividerText: {
136
- fontFamily: string;
172
+ fontFamily: FontFamilyStack;
137
173
  fontSize: string;
138
174
  };
139
175
  };
@@ -162,7 +198,7 @@ export declare const clerkSignInAppearance: {
162
198
  card: {
163
199
  boxShadow: string;
164
200
  width: string;
165
- fontFamily: string;
201
+ fontFamily: FontFamilyStack;
166
202
  paddingTop: string;
167
203
  paddingBottom: string;
168
204
  };
@@ -171,32 +207,51 @@ export declare const clerkSignInAppearance: {
171
207
  paddingTop: string;
172
208
  };
173
209
  headerTitle: {
174
- fontFamily: string;
210
+ fontFamily: FontFamilyStack;
175
211
  fontSize: string;
176
212
  fontWeight: string;
177
213
  lineHeight: string;
178
214
  color: string;
179
215
  };
180
216
  headerSubtitle: {
181
- fontFamily: string;
217
+ fontFamily: FontFamilyStack;
182
218
  fontSize: string;
183
219
  fontWeight: string;
184
220
  lineHeight: string;
185
221
  color: string;
186
222
  };
187
223
  formFieldLabel: {
188
- fontFamily: string;
224
+ fontFamily: FontFamilyStack;
189
225
  fontSize: string;
190
226
  fontWeight: string;
191
227
  color: string;
192
228
  };
193
229
  formFieldInput: {
194
- fontFamily: string;
230
+ fontFamily: FontFamilyStack;
195
231
  fontSize: string;
196
232
  fontWeight: string;
233
+ height: string;
234
+ minHeight: string;
235
+ padding: string;
236
+ borderRadius: string;
237
+ border: string;
238
+ backgroundColor: string;
239
+ color: string;
240
+ boxShadow: string;
241
+ '&:focus': {
242
+ borderColor: string;
243
+ boxShadow: string;
244
+ outline: string;
245
+ };
246
+ '&:hover': {
247
+ borderColor: string;
248
+ };
249
+ };
250
+ formFieldInputShowPasswordButton: {
251
+ color: string;
197
252
  };
198
253
  formButtonPrimary: {
199
- fontFamily: string;
254
+ fontFamily: FontFamilyStack;
200
255
  fontSize: string;
201
256
  fontWeight: string;
202
257
  lineHeight: string;
@@ -220,11 +275,14 @@ export declare const clerkSignInAppearance: {
220
275
  backgroundColor: string;
221
276
  };
222
277
  };
278
+ buttonArrowIcon: {
279
+ display: string;
280
+ };
223
281
  socialButtons: {
224
282
  gap: string;
225
283
  };
226
284
  socialButtonsBlockButton: {
227
- fontFamily: string;
285
+ fontFamily: FontFamilyStack;
228
286
  fontSize: string;
229
287
  fontWeight: string;
230
288
  lineHeight: string;
@@ -243,7 +301,7 @@ export declare const clerkSignInAppearance: {
243
301
  };
244
302
  };
245
303
  socialButtonsBlockButtonText: {
246
- fontFamily: string;
304
+ fontFamily: FontFamilyStack;
247
305
  fontSize: string;
248
306
  fontWeight: string;
249
307
  };
@@ -251,34 +309,46 @@ export declare const clerkSignInAppearance: {
251
309
  width: string;
252
310
  height: string;
253
311
  };
312
+ lastAuthenticationStrategyBadge: {
313
+ fontFamily: FontFamilyStack;
314
+ fontSize: string;
315
+ fontWeight: string;
316
+ lineHeight: string;
317
+ minHeight: string;
318
+ height: string;
319
+ padding: string;
320
+ display: string;
321
+ alignItems: string;
322
+ boxSizing: string;
323
+ };
254
324
  footerActionText: {
255
- fontFamily: string;
325
+ fontFamily: FontFamilyStack;
256
326
  fontSize: string;
257
327
  };
258
328
  footerActionLink: {
259
- fontFamily: string;
329
+ fontFamily: FontFamilyStack;
260
330
  fontSize: string;
261
331
  };
262
332
  identityPreviewText: {
263
- fontFamily: string;
333
+ fontFamily: FontFamilyStack;
264
334
  fontSize: string;
265
335
  };
266
336
  formFieldSuccessText: {
267
- fontFamily: string;
337
+ fontFamily: FontFamilyStack;
268
338
  fontSize: string;
269
339
  };
270
340
  formFieldErrorText: {
271
- fontFamily: string;
341
+ fontFamily: FontFamilyStack;
272
342
  fontSize: string;
273
343
  };
274
344
  dividerText: {
275
- fontFamily: string;
345
+ fontFamily: FontFamilyStack;
276
346
  fontSize: string;
277
347
  };
278
348
  };
279
349
  variables: {
280
- fontFamily: string;
281
- fontFamilyButtons: string;
350
+ fontFamily: FontFamilyStack;
351
+ fontFamilyButtons: FontFamilyStack;
282
352
  fontSize: string;
283
353
  colorPrimary: string;
284
354
  colorTextOnPrimaryBackground: string;
@@ -305,7 +375,7 @@ export declare const clerkSignUpAppearance: {
305
375
  card: {
306
376
  boxShadow: string;
307
377
  width: string;
308
- fontFamily: string;
378
+ fontFamily: FontFamilyStack;
309
379
  paddingTop: string;
310
380
  paddingBottom: string;
311
381
  };
@@ -314,32 +384,51 @@ export declare const clerkSignUpAppearance: {
314
384
  paddingTop: string;
315
385
  };
316
386
  headerTitle: {
317
- fontFamily: string;
387
+ fontFamily: FontFamilyStack;
318
388
  fontSize: string;
319
389
  fontWeight: string;
320
390
  lineHeight: string;
321
391
  color: string;
322
392
  };
323
393
  headerSubtitle: {
324
- fontFamily: string;
394
+ fontFamily: FontFamilyStack;
325
395
  fontSize: string;
326
396
  fontWeight: string;
327
397
  lineHeight: string;
328
398
  color: string;
329
399
  };
330
400
  formFieldLabel: {
331
- fontFamily: string;
401
+ fontFamily: FontFamilyStack;
332
402
  fontSize: string;
333
403
  fontWeight: string;
334
404
  color: string;
335
405
  };
336
406
  formFieldInput: {
337
- fontFamily: string;
407
+ fontFamily: FontFamilyStack;
338
408
  fontSize: string;
339
409
  fontWeight: string;
410
+ height: string;
411
+ minHeight: string;
412
+ padding: string;
413
+ borderRadius: string;
414
+ border: string;
415
+ backgroundColor: string;
416
+ color: string;
417
+ boxShadow: string;
418
+ '&:focus': {
419
+ borderColor: string;
420
+ boxShadow: string;
421
+ outline: string;
422
+ };
423
+ '&:hover': {
424
+ borderColor: string;
425
+ };
426
+ };
427
+ formFieldInputShowPasswordButton: {
428
+ color: string;
340
429
  };
341
430
  formButtonPrimary: {
342
- fontFamily: string;
431
+ fontFamily: FontFamilyStack;
343
432
  fontSize: string;
344
433
  fontWeight: string;
345
434
  lineHeight: string;
@@ -363,11 +452,14 @@ export declare const clerkSignUpAppearance: {
363
452
  backgroundColor: string;
364
453
  };
365
454
  };
455
+ buttonArrowIcon: {
456
+ display: string;
457
+ };
366
458
  socialButtons: {
367
459
  gap: string;
368
460
  };
369
461
  socialButtonsBlockButton: {
370
- fontFamily: string;
462
+ fontFamily: FontFamilyStack;
371
463
  fontSize: string;
372
464
  fontWeight: string;
373
465
  lineHeight: string;
@@ -386,7 +478,7 @@ export declare const clerkSignUpAppearance: {
386
478
  };
387
479
  };
388
480
  socialButtonsBlockButtonText: {
389
- fontFamily: string;
481
+ fontFamily: FontFamilyStack;
390
482
  fontSize: string;
391
483
  fontWeight: string;
392
484
  };
@@ -394,34 +486,46 @@ export declare const clerkSignUpAppearance: {
394
486
  width: string;
395
487
  height: string;
396
488
  };
489
+ lastAuthenticationStrategyBadge: {
490
+ fontFamily: FontFamilyStack;
491
+ fontSize: string;
492
+ fontWeight: string;
493
+ lineHeight: string;
494
+ minHeight: string;
495
+ height: string;
496
+ padding: string;
497
+ display: string;
498
+ alignItems: string;
499
+ boxSizing: string;
500
+ };
397
501
  footerActionText: {
398
- fontFamily: string;
502
+ fontFamily: FontFamilyStack;
399
503
  fontSize: string;
400
504
  };
401
505
  footerActionLink: {
402
- fontFamily: string;
506
+ fontFamily: FontFamilyStack;
403
507
  fontSize: string;
404
508
  };
405
509
  identityPreviewText: {
406
- fontFamily: string;
510
+ fontFamily: FontFamilyStack;
407
511
  fontSize: string;
408
512
  };
409
513
  formFieldSuccessText: {
410
- fontFamily: string;
514
+ fontFamily: FontFamilyStack;
411
515
  fontSize: string;
412
516
  };
413
517
  formFieldErrorText: {
414
- fontFamily: string;
518
+ fontFamily: FontFamilyStack;
415
519
  fontSize: string;
416
520
  };
417
521
  dividerText: {
418
- fontFamily: string;
522
+ fontFamily: FontFamilyStack;
419
523
  fontSize: string;
420
524
  };
421
525
  };
422
526
  variables: {
423
- fontFamily: string;
424
- fontFamilyButtons: string;
527
+ fontFamily: FontFamilyStack;
528
+ fontFamilyButtons: FontFamilyStack;
425
529
  fontSize: string;
426
530
  colorPrimary: string;
427
531
  colorTextOnPrimaryBackground: string;
@@ -0,0 +1,6 @@
1
+ import type { LocalizationResource } from '@clerk/types';
2
+ /**
3
+ * Maps portal i18n languages (en / ar / tr) onto Clerk component localizations,
4
+ * including input placeholders for sign-in / sign-up.
5
+ */
6
+ export declare function getClerkLocalization(language?: string): LocalizationResource;
@@ -1,12 +1,23 @@
1
1
  /// <reference types="react" />
2
2
  export declare const TEAL = "#16616C";
3
+ /** AuthVisualCarousel is `display: none` below this width. */
4
+ export declare const AUTH_VISUAL_MIN_WIDTH_PX = 1200;
3
5
  export declare const AuthContainer: import("@emotion/styled").StyledComponent<{
4
6
  theme?: import("@emotion/react").Theme | undefined;
5
7
  as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
8
+ } & {
9
+ rtl?: boolean | undefined;
10
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
11
+ /** Floating language control — top end of the auth shell (RTL-aware). */
12
+ export declare const AuthLanguagePickerWrap: import("@emotion/styled").StyledComponent<{
13
+ theme?: import("@emotion/react").Theme | undefined;
14
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
6
15
  }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
7
16
  export declare const AuthFormColumn: import("@emotion/styled").StyledComponent<{
8
17
  theme?: import("@emotion/react").Theme | undefined;
9
18
  as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
19
+ } & {
20
+ rtl?: boolean | undefined;
10
21
  }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
11
22
  export declare const AuthFormContent: import("@emotion/styled").StyledComponent<{
12
23
  theme?: import("@emotion/react").Theme | undefined;
@@ -16,6 +27,8 @@ export declare const AuthFormContent: import("@emotion/styled").StyledComponent<
16
27
  export declare const ClerkAuthFormColumn: import("@emotion/styled").StyledComponent<{
17
28
  theme?: import("@emotion/react").Theme | undefined;
18
29
  as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
30
+ } & {
31
+ rtl?: boolean | undefined;
19
32
  } & import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & {
20
33
  theme?: import("@emotion/react").Theme | undefined;
21
34
  }, {}, {}>;
@@ -76,6 +89,7 @@ export declare const SignUpFooter: import("@emotion/styled").StyledComponent<{
76
89
  export declare const SignUpLink: import("@emotion/styled").StyledComponent<import("react-router-dom").LinkProps<unknown> & import("react").RefAttributes<HTMLAnchorElement> & {
77
90
  theme?: import("@emotion/react").Theme | undefined;
78
91
  }, {}, {}>;
92
+ /** @deprecated Prefer AuthVisualCarousel — kept for any residual imports */
79
93
  export declare const HelloCon: import("@emotion/styled").StyledComponent<{
80
94
  theme?: import("@emotion/react").Theme | undefined;
81
95
  as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
@@ -1,2 +1,3 @@
1
+ export declare const LegacyLoginPage: (props: any) => import("@emotion/react/jsx-runtime").JSX.Element;
1
2
  declare const Login: (props: any) => import("@emotion/react/jsx-runtime").JSX.Element;
2
3
  export default Login;
@@ -0,0 +1,2 @@
1
+ /** First-run welcome for Gateway workspaces — continues to the API Guide. */
2
+ export default function GatewayWelcomePage(): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function GuidePage(): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export declare function isGatewayPlan(planType: string | null | undefined): boolean;
2
+ export declare const GATEWAY_WEBHOOK_EVENTS: readonly ["INCOMING_MESSAGE", "MESSAGE_UPDATED", "OUTGOING_MESSAGE"];
@@ -0,0 +1,2 @@
1
+ /** Matches core BROADCAST_RECENT_INBOUND_MESSAGE_DAYS — contacts must have inbound activity in this window. */
2
+ export declare const BROADCAST_RECENT_INBOUND_MESSAGE_DAYS = 90;
@@ -8,6 +8,7 @@ type ImportProgressDialogProps = {
8
8
  title?: string;
9
9
  completedTitle?: string;
10
10
  failedTitle?: string;
11
+ onCancel?: () => void;
11
12
  };
12
- declare const ImportProgressDialog: ({ isOpen, progress, status, onClose, rtl, title, completedTitle, failedTitle, }: ImportProgressDialogProps) => import("@emotion/react/jsx-runtime").JSX.Element;
13
+ declare const ImportProgressDialog: ({ isOpen, progress, status, onClose, rtl, title, completedTitle, failedTitle, onCancel, }: ImportProgressDialogProps) => import("@emotion/react/jsx-runtime").JSX.Element;
13
14
  export default ImportProgressDialog;
@@ -22,6 +22,7 @@ export interface PaginationOptions {
22
22
  additionalVariables?: Record<string, any>;
23
23
  searchQuery?: string;
24
24
  count?: boolean;
25
+ context?: Record<string, unknown>;
25
26
  }
26
27
  export interface UsePaginatedQueryResult<T> {
27
28
  items: T[];
@@ -14,6 +14,8 @@ interface ChatContentProps {
14
14
  searchMatchNo: number;
15
15
  onSearchMatchCount: (count: number) => void;
16
16
  onMessageReply: (messageId: string) => void;
17
+ onMessageReact?: (messageId: string, emoji: string) => void;
18
+ onMessageUnreact?: (messageId: string, emoji: string) => void;
17
19
  replyMessage: {
18
20
  title: string;
19
21
  content: string;
@@ -30,5 +32,5 @@ interface ChatContentProps {
30
32
  /** Called when user clicks "Add Contact" on a contact message card */
31
33
  onContactAddContact?: (contact: ContactMessagePayload) => void;
32
34
  }
33
- declare const ChatContent: ({ messages, olderMessages, canContribute, sendMessage, loadOlderMessages, agentsIdsAvatarsMap, noteMode, onNoteSend, onCloseNoteMode, onAddNoteClick, searchPattern, searchMatchNo, onSearchMatchCount, onMessageReply, replyMessage, onCancelReplyMessage, errorMessage, statusFailureMessage, logo, conversationId, onContactMessage, onContactAddContact, }: ChatContentProps) => import("@emotion/react/jsx-runtime").JSX.Element;
35
+ declare const ChatContent: ({ messages, olderMessages, canContribute, sendMessage, loadOlderMessages, agentsIdsAvatarsMap, noteMode, onNoteSend, onCloseNoteMode, onAddNoteClick, searchPattern, searchMatchNo, onSearchMatchCount, onMessageReply, onMessageReact, onMessageUnreact, replyMessage, onCancelReplyMessage, errorMessage, statusFailureMessage, logo, conversationId, onContactMessage, onContactAddContact, }: ChatContentProps) => import("@emotion/react/jsx-runtime").JSX.Element;
34
36
  export default ChatContent;
@@ -0,0 +1,9 @@
1
+ interface ContactActionsMenuProps {
2
+ clientId: string;
3
+ clientName: string;
4
+ deletedAt?: string | null;
5
+ blacklistedAt?: string | null;
6
+ onActionComplete?: () => void;
7
+ }
8
+ declare const ContactActionsMenu: ({ clientId, clientName, deletedAt, blacklistedAt, onActionComplete, }: ContactActionsMenuProps) => import("@emotion/react/jsx-runtime").JSX.Element;
9
+ export default ContactActionsMenu;
@@ -3,6 +3,7 @@ interface UserHeaderProps {
3
3
  clientData: ClientQuery['client'] | undefined;
4
4
  setEditMode: (editMode: boolean) => void;
5
5
  onBackToList?: () => void;
6
+ onClientActionComplete?: () => void;
6
7
  }
7
- declare const UserHeader: ({ clientData, setEditMode, onBackToList }: UserHeaderProps) => import("@emotion/react/jsx-runtime").JSX.Element;
8
+ declare const UserHeader: ({ clientData, setEditMode, onBackToList, onClientActionComplete }: UserHeaderProps) => import("@emotion/react/jsx-runtime").JSX.Element;
8
9
  export default UserHeader;
@@ -33,3 +33,11 @@ export declare const ArchivedLabelStyle: import("@emotion/styled").StyledCompone
33
33
  theme?: import("@emotion/react").Theme | undefined;
34
34
  as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
35
35
  }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
36
+ export declare const BlockedLabelStyle: import("@emotion/styled").StyledComponent<{
37
+ theme?: import("@emotion/react").Theme | undefined;
38
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
39
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
40
+ export declare const StatusLabelsRow: import("@emotion/styled").StyledComponent<{
41
+ theme?: import("@emotion/react").Theme | undefined;
42
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
43
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -1,14 +1,16 @@
1
1
  import { type MutableRefObject } from 'react';
2
+ import { type EnhanceWritingCacheSettings } from '../utils/convAssistStorage';
2
3
  export interface UseConvEnhanceOptions {
3
4
  enabled: boolean;
4
5
  workspaceId: number | undefined;
5
6
  conversationId: string | undefined;
6
7
  composerDraftRef: MutableRefObject<string>;
8
+ writingSettings: EnhanceWritingCacheSettings;
7
9
  onBeforeEnhance?: () => void;
8
10
  /** Fired when replace draft is applied so parent can skip auto-complete debounce for that update. */
9
11
  onReplaceDraftApplied?: () => void;
10
12
  }
11
- export declare function useConvEnhance({ enabled, workspaceId, conversationId, composerDraftRef, onBeforeEnhance, onReplaceDraftApplied, }: UseConvEnhanceOptions): {
13
+ export declare function useConvEnhance({ enabled, workspaceId, conversationId, composerDraftRef, writingSettings, onBeforeEnhance, onReplaceDraftApplied, }: UseConvEnhanceOptions): {
12
14
  autoCompleteReplaceDraft: string | undefined;
13
15
  autoCompleteReplaceDraftKey: number;
14
16
  isEnhanceLoading: boolean;