@vertesia/ui 1.6.0-dev.20260912.110338Z → 1.6.0-dev.20260918.061604Z

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 (82) hide show
  1. package/lib/env/index.d.ts +4 -0
  2. package/lib/env/index.d.ts.map +1 -1
  3. package/lib/env/index.js +4 -0
  4. package/lib/env/index.js.map +1 -1
  5. package/lib/features/agent/PayloadBuilder.d.ts.map +1 -1
  6. package/lib/features/agent/PayloadBuilder.js +6 -1
  7. package/lib/features/agent/PayloadBuilder.js.map +1 -1
  8. package/lib/features/agent/chat/AgentRunFeedback.d.ts +7 -0
  9. package/lib/features/agent/chat/AgentRunFeedback.d.ts.map +1 -1
  10. package/lib/features/agent/chat/AgentRunFeedback.js +13 -1
  11. package/lib/features/agent/chat/AgentRunFeedback.js.map +1 -1
  12. package/lib/features/agent/chat/ModernAgentConversation.js +4 -3
  13. package/lib/features/agent/chat/ModernAgentConversation.js.map +1 -1
  14. package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js +2 -2
  15. package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js.map +1 -1
  16. package/lib/features/agent/chat/ModernAgentOutput/MessageItem.js +2 -2
  17. package/lib/features/agent/chat/ModernAgentOutput/MessageItem.js.map +1 -1
  18. package/lib/features/agent/chat/hooks/useAgentPlans.d.ts +1 -1
  19. package/lib/features/agent/chat/hooks/useAgentPlans.d.ts.map +1 -1
  20. package/lib/features/agent/chat/hooks/useAgentPlans.js +5 -5
  21. package/lib/features/agent/chat/hooks/useAgentPlans.js.map +1 -1
  22. package/lib/features/store/objects/search/DocumentSearchContext.d.ts.map +1 -1
  23. package/lib/features/store/objects/search/DocumentSearchContext.js +6 -1
  24. package/lib/features/store/objects/search/DocumentSearchContext.js.map +1 -1
  25. package/lib/features/user/UserInfo.d.ts +2 -0
  26. package/lib/features/user/UserInfo.d.ts.map +1 -1
  27. package/lib/session/UserSessionProvider.js +3 -3
  28. package/lib/session/UserSessionProvider.js.map +1 -1
  29. package/lib/session/auth/firebase.d.ts.map +1 -1
  30. package/lib/session/auth/firebase.js +10 -0
  31. package/lib/session/auth/firebase.js.map +1 -1
  32. package/lib/shell/login/SignInAuthPending.js +1 -1
  33. package/lib/shell/login/SignInAuthPending.js.map +1 -1
  34. package/lib/shell/login/SignInEmailStep.d.ts.map +1 -1
  35. package/lib/shell/login/SignInEmailStep.js +2 -2
  36. package/lib/shell/login/SignInEmailStep.js.map +1 -1
  37. package/lib/shell/login/SignInIcons.d.ts +1 -1
  38. package/lib/shell/login/SignInIcons.d.ts.map +1 -1
  39. package/lib/shell/login/signInUtils.d.ts +1 -1
  40. package/lib/shell/login/signInUtils.d.ts.map +1 -1
  41. package/lib/shell/login/signInUtils.js +5 -6
  42. package/lib/shell/login/signInUtils.js.map +1 -1
  43. package/lib/vertesia-ui-core.js +83 -41
  44. package/lib/vertesia-ui-core.js.map +1 -1
  45. package/lib/vertesia-ui-env.js +1 -1
  46. package/lib/vertesia-ui-env.js.map +1 -1
  47. package/lib/vertesia-ui-features.js +336 -317
  48. package/lib/vertesia-ui-features.js.map +1 -1
  49. package/lib/vertesia-ui-layout.js +43 -19
  50. package/lib/vertesia-ui-layout.js.map +1 -1
  51. package/lib/vertesia-ui-rich-text.js +123 -74
  52. package/lib/vertesia-ui-rich-text.js.map +1 -1
  53. package/lib/vertesia-ui-router.js.map +1 -1
  54. package/lib/vertesia-ui-session.js +1 -1
  55. package/lib/vertesia-ui-session.js.map +1 -1
  56. package/lib/vertesia-ui-shell.js +57 -28
  57. package/lib/vertesia-ui-shell.js.map +1 -1
  58. package/lib/vertesia-ui-widgets.js +153 -97
  59. package/lib/vertesia-ui-widgets.js.map +1 -1
  60. package/lib/widgets/xml-viewer/hooks/useCollapsible.d.ts +1 -1
  61. package/package.json +20 -20
  62. package/src/env/index.test.ts +27 -0
  63. package/src/env/index.ts +7 -0
  64. package/src/features/agent/PayloadBuilder.tsx +6 -1
  65. package/src/features/agent/chat/AgentRunFeedback.test.tsx +18 -1
  66. package/src/features/agent/chat/AgentRunFeedback.tsx +13 -0
  67. package/src/features/agent/chat/ModernAgentConversation.test.tsx +1 -1
  68. package/src/features/agent/chat/ModernAgentConversation.tsx +6 -5
  69. package/src/features/agent/chat/ModernAgentOutput/AllMessagesMixed.tsx +2 -2
  70. package/src/features/agent/chat/ModernAgentOutput/MessageItem.tsx +2 -2
  71. package/src/features/agent/chat/hooks/useAgentPlans.test.ts +52 -0
  72. package/src/features/agent/chat/hooks/useAgentPlans.ts +5 -5
  73. package/src/features/store/objects/search/DocumentSearchContext.ts +8 -3
  74. package/src/router/path.test.ts +5 -5
  75. package/src/session/UserSessionProvider.tsx +3 -3
  76. package/src/session/auth/firebase.test.ts +25 -0
  77. package/src/session/auth/firebase.ts +10 -0
  78. package/src/shell/login/SignInAuthPending.tsx +3 -3
  79. package/src/shell/login/SignInEmailStep.test.tsx +32 -0
  80. package/src/shell/login/SignInEmailStep.tsx +13 -9
  81. package/src/shell/login/signInUtils.ts +12 -4
  82. package/src/widgets/markdown/CollaborativeMarkdownRenderer.test.tsx +11 -3
@@ -1,3 +1,4 @@
1
+ import { Env } from '@vertesia/ui/env';
1
2
  import { getFirebaseAuth, setFirebaseTenant } from '@vertesia/ui/session';
2
3
  import {
3
4
  type AuthProvider,
@@ -197,7 +198,7 @@ export async function startSignIn(
197
198
  } else {
198
199
  // No tenant — clear any stale tenant routing from a prior attempt.
199
200
  localStorage.removeItem('tenantName');
200
- if (auth.tenantId) auth.tenantId = null;
201
+ auth.tenantId = Env.firebase?.tenantId ?? null;
201
202
  }
202
203
 
203
204
  writePendingSignin({ email, provider: effectiveIdp, tenantName });
@@ -205,12 +206,19 @@ export async function startSignIn(
205
206
  return { ok: true };
206
207
  }
207
208
 
208
- /** Starts a provider sign-in directly, skipping email/tenant resolution and clearing any tenant routing. */
209
+ /** Starts sign-in without email discovery, preserving an explicitly configured tenant. */
209
210
  export function startSignInWithoutTenant(provider: ProviderId, redirectTo?: string): void {
210
211
  const auth = getFirebaseAuth();
211
212
  localStorage.removeItem('tenantName');
212
- if (auth.tenantId) auth.tenantId = null;
213
- void signInWithRedirect(auth, buildFirebaseProvider(provider, undefined, redirectTo));
213
+ auth.tenantId = Env.firebase?.tenantId ?? null;
214
+ void signInWithRedirect(
215
+ auth,
216
+ buildFirebaseProvider(
217
+ Env.firebase?.tenantId ? ((Env.firebase.providerType as ProviderId) ?? 'oidc') : provider,
218
+ undefined,
219
+ redirectTo,
220
+ ),
221
+ );
214
222
  }
215
223
 
216
224
  export function providerLabel(id: ProviderId): string {
@@ -412,11 +412,19 @@ describe('collaborative Markdown actions', () => {
412
412
  await user.click(screen.getByRole('button', { name: 'Insert component after this block' }));
413
413
  await user.click(await screen.findByRole('menuitem', { name: 'Paragraph' }));
414
414
 
415
- const editor = await screen.findByRole('textbox');
415
+ // The lazy editor first renders a textarea with the same template text. Wait for
416
+ // the actual rich-text editor before selecting and pasting into its content.
417
+ const editor = await waitFor(() => {
418
+ const textbox = screen.getByRole('textbox');
419
+ expect(textbox.getAttribute('contenteditable')).toBe('true');
420
+ expect(textbox.textContent).toBe('Paragraph');
421
+ return textbox;
422
+ });
416
423
  await user.click(editor);
424
+ await user.keyboard('{Control>}a{/Control}');
417
425
  // Paste in one operation — char-by-char typing races ProseMirror in jsdom and drops chars.
418
426
  await user.paste('Inserted paragraph.');
419
- await waitFor(() => expect(editor.textContent ?? '').toContain('Inserted paragraph.'));
427
+ await waitFor(() => expect(editor.textContent).toBe('Inserted paragraph.'));
420
428
  fireEvent.click(screen.getByRole('button', { name: 'Send' }));
421
429
 
422
430
  await waitFor(() => expect(onAction).toHaveBeenCalledTimes(1));
@@ -425,7 +433,7 @@ describe('collaborative Markdown actions', () => {
425
433
  action: 'edit',
426
434
  user_change: {
427
435
  before: 'Original paragraph.',
428
- after: expect.stringMatching(/^Original paragraph\.\n\n.*Inserted paragraph\.$/),
436
+ after: 'Original paragraph.\n\nInserted paragraph.',
429
437
  },
430
438
  }),
431
439
  );