@openviking/react 0.1.7 → 0.1.8-beta.10.1.g8e5299efeb0a

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 (113) hide show
  1. package/README.md +11 -1
  2. package/dist/1~0.js +57 -0
  3. package/dist/3~0.js +171 -5
  4. package/dist/5~0.js +181 -0
  5. package/dist/6~0.js +48 -0
  6. package/dist/components/agent-connect/style.css +4 -2
  7. package/dist/components/api-key-login-form/api-key-login-form.d.ts +2 -0
  8. package/dist/components/api-key-login-form/index.d.ts +3 -0
  9. package/dist/components/api-key-login-form/style.css +438 -0
  10. package/dist/components/api-key-login-form/style.js +0 -0
  11. package/dist/components/api-key-login-form/types.d.ts +7 -0
  12. package/dist/components/api-key-login-form.js +1 -0
  13. package/dist/components/directory-tour/directory-tour-intro.d.ts +3 -0
  14. package/dist/components/directory-tour/index.d.ts +2 -1
  15. package/dist/components/directory-tour/style.css +154 -26
  16. package/dist/components/directory-tour/tour-card.d.ts +14 -0
  17. package/dist/components/directory-tour/types.d.ts +24 -1
  18. package/dist/components/directory-tour/use-tour-anchor.d.ts +1 -0
  19. package/dist/components/directory-tour/use-tour-position.d.ts +4 -1
  20. package/dist/components/directory-tour/use-tour-theme.d.ts +2 -0
  21. package/dist/components/directory-tour.js +52 -1
  22. package/dist/components/email-login-form/email-login-form.d.ts +2 -0
  23. package/dist/components/email-login-form/index.d.ts +3 -0
  24. package/dist/components/email-login-form/style.css +438 -0
  25. package/dist/components/email-login-form/style.js +0 -0
  26. package/dist/components/email-login-form/types.d.ts +11 -0
  27. package/dist/components/email-login-form.js +1 -0
  28. package/dist/components/experience-dashboard/experience-impact.d.ts +3 -1
  29. package/dist/components/experience-dashboard/style.css +4 -2
  30. package/dist/components/file-browser-entries/style.css +12 -6
  31. package/dist/components/file-preview/file-preview-header.d.ts +4 -21
  32. package/dist/components/file-preview/file-preview-toolbar.d.ts +7 -0
  33. package/dist/components/file-preview/locales/en-US.d.ts +9 -0
  34. package/dist/components/file-preview/locales/zh-CN.d.ts +9 -0
  35. package/dist/components/file-preview/style.css +116 -2
  36. package/dist/components/file-preview/types.d.ts +14 -21
  37. package/dist/components/file-tree/style.css +4 -2
  38. package/dist/components/invitation-confirmation/index.d.ts +3 -0
  39. package/dist/components/invitation-confirmation/invitation-confirmation.d.ts +2 -0
  40. package/dist/components/invitation-confirmation/style.css +438 -0
  41. package/dist/components/invitation-confirmation/style.js +0 -0
  42. package/dist/components/invitation-confirmation/types.d.ts +20 -0
  43. package/dist/components/invitation-confirmation.js +1 -0
  44. package/dist/components/login-method-selector/index.d.ts +2 -0
  45. package/dist/components/login-method-selector/login-method-selector.d.ts +2 -0
  46. package/dist/components/login-method-selector/style.css +438 -0
  47. package/dist/components/login-method-selector/style.js +0 -0
  48. package/dist/components/login-method-selector/types.d.ts +14 -0
  49. package/dist/components/login-method-selector.js +1 -0
  50. package/dist/components/password-reset-request-form/index.d.ts +3 -0
  51. package/dist/components/password-reset-request-form/password-reset-request-form.d.ts +2 -0
  52. package/dist/components/password-reset-request-form/style.css +438 -0
  53. package/dist/components/password-reset-request-form/style.js +0 -0
  54. package/dist/components/password-reset-request-form/types.d.ts +13 -0
  55. package/dist/components/password-reset-request-form.js +1 -0
  56. package/dist/components/password-setup-form/index.d.ts +3 -0
  57. package/dist/components/password-setup-form/password-setup-form.d.ts +2 -0
  58. package/dist/components/password-setup-form/style.css +438 -0
  59. package/dist/components/password-setup-form/style.js +0 -0
  60. package/dist/components/password-setup-form/types.d.ts +10 -0
  61. package/dist/components/password-setup-form.js +1 -0
  62. package/dist/components/scope-switcher/style.css +4 -2
  63. package/dist/components/scope-switcher.js +1 -1
  64. package/dist/components/style.css +2966 -58
  65. package/dist/components/tui/style.css +8 -4
  66. package/dist/components/viking-bot/style.css +12 -6
  67. package/dist/components/wiki-dashboard/index.d.ts +1 -1
  68. package/dist/components/wiki-dashboard/style.css +16 -4
  69. package/dist/components/wiki-dashboard/types.d.ts +12 -16
  70. package/dist/components/wiki-dashboard/wiki-action-button.d.ts +2 -9
  71. package/dist/components/wiki-dashboard/wiki-conflict-card.d.ts +3 -10
  72. package/dist/d~0.js +28 -0
  73. package/dist/ep~0.js +281 -133
  74. package/dist/fi~0.js +339 -0
  75. package/dist/fj~0.js +32 -67
  76. package/dist/fl~0.js +3 -2
  77. package/dist/f~0.js +63 -326
  78. package/dist/g~0.js +135 -0
  79. package/dist/icons/index.d.ts +2 -0
  80. package/dist/icons.js +1 -1
  81. package/dist/index.d.ts +12 -0
  82. package/dist/index.js +8 -2
  83. package/dist/k~0.js +44 -4
  84. package/dist/l5~0.js +3813 -0
  85. package/dist/lk~0.js +1 -1
  86. package/dist/l~0.js +54 -3811
  87. package/dist/modules/console/style.css +28 -14
  88. package/dist/modules/file-browser/file-browser-detail-icons.d.ts +0 -6
  89. package/dist/modules/file-browser/file-browser-detail.d.ts +2 -23
  90. package/dist/modules/file-browser/file-browser.d.ts +1 -1
  91. package/dist/modules/file-browser/fs-file-editing.d.ts +4 -0
  92. package/dist/modules/file-browser/fs-preview-images.d.ts +3 -0
  93. package/dist/modules/file-browser/fs-read-file.d.ts +1 -1
  94. package/dist/modules/file-browser/style.css +156 -70
  95. package/dist/modules/file-browser/types.d.ts +2 -0
  96. package/dist/modules/file-browser/use-file-browser-acl.d.ts +1 -0
  97. package/dist/modules/file-browser/wiki-dashboard-pane.d.ts +2 -4
  98. package/dist/modules/file-browser.js +1 -1
  99. package/dist/modules/scope-cascade/style.css +4 -2
  100. package/dist/modules/style.css +192 -88
  101. package/dist/n~0.js +1 -1
  102. package/dist/p0~0.js +27 -0
  103. package/dist/p~0.js +34 -25
  104. package/dist/shared/auth/agreements.d.ts +10 -0
  105. package/dist/shared/auth/fields.d.ts +15 -0
  106. package/dist/shared/auth/form-frame.d.ts +12 -0
  107. package/dist/shared/auth/locales/en-US.d.ts +24 -0
  108. package/dist/shared/auth/locales/zh-CN.d.ts +24 -0
  109. package/dist/shared/auth/types.d.ts +61 -0
  110. package/dist/shared/auth/use-auth-labels.d.ts +3 -0
  111. package/dist/shared/auth/use-form.d.ts +8 -0
  112. package/dist/style.css +3364 -350
  113. package/package.json +32 -2
@@ -167,9 +167,11 @@
167
167
  }
168
168
  }
169
169
 
170
- .ov-button, .ov-input, .ov-textarea, .ov-directory-tour, .ov-wiki-dashboard, .ov-experience-dashboard, .ov-agent-connect, .ov-console, .ov-divider, .ov-file-browser-entries, .ov-drawer, .ov-modal, .ov-file-browser, .ov-file-preview, .ov-file-tree, .ov-module-placeholder, .ov-popover, .ov-scope-switcher, .ov-tooltip, .ov-tui, .ov-viking-bot, .ov-viking-bot__popover, .ov-viking-bot__reference-picker--mention, .ov-viking-bot__interaction {
170
+ .ov-button, .ov-input, .ov-textarea, .ov-directory-tour, .ov-wiki-dashboard, .ov-experience-dashboard, .ov-auth, .ov-agent-connect, .ov-console, .ov-divider, .ov-file-browser-entries, .ov-drawer, .ov-modal, .ov-file-browser, .ov-file-preview, .ov-file-tree, .ov-module-placeholder, .ov-popover, .ov-scope-switcher, .ov-tooltip, .ov-tui, .ov-viking-bot, .ov-viking-bot__popover, .ov-viking-bot__reference-picker--mention, .ov-viking-bot__interaction {
171
171
  --ov-ui-tour-shadow-default: 0 15px 35px #0000000d, 0 5px 15px #0000000d;
172
172
  --ov-ui-tour-highlight-default: #5252ff14;
173
+ --ov-ui-auth-on-primary-default: #fff;
174
+ --ov-ui-auth-backdrop-default: #0006;
173
175
  --ov-ui-primary-default: #5252ff;
174
176
  --ov-ui-primary-hover-default: #7075ff;
175
177
  --ov-ui-primary-active-default: #3833d2;
@@ -226,7 +228,7 @@
226
228
  #bd9cff 100%);
227
229
  }
228
230
 
229
- html.dark .ov-button, html.dark .ov-input, html.dark .ov-textarea, .dark .ov-directory-tour, html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, .dark .ov-agent-connect, .dark .ov-console, .dark .ov-divider, .dark .ov-file-browser-entries, .dark .ov-drawer, .dark .ov-modal, .dark .ov-file-browser, .dark .ov-file-preview, .dark .ov-file-tree, .dark .ov-module-placeholder, .dark .ov-popover, .dark .ov-scope-switcher, .dark .ov-tooltip, .dark .ov-tui, .dark .ov-viking-bot, .dark .ov-viking-bot__popover, .dark .ov-viking-bot__reference-picker--mention, .dark .ov-viking-bot__interaction {
231
+ html.dark .ov-button, html.dark .ov-input, html.dark .ov-textarea, .dark .ov-directory-tour, html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, .dark .ov-auth, .dark .ov-agent-connect, .dark .ov-console, .dark .ov-divider, .dark .ov-file-browser-entries, .dark .ov-drawer, .dark .ov-modal, .dark .ov-file-browser, .dark .ov-file-preview, .dark .ov-file-tree, .dark .ov-module-placeholder, .dark .ov-popover, .dark .ov-scope-switcher, .dark .ov-tooltip, .dark .ov-tui, .dark .ov-viking-bot, .dark .ov-viking-bot__popover, .dark .ov-viking-bot__reference-picker--mention, .dark .ov-viking-bot__interaction {
230
232
  --ov-ui-primary-default: #5f5fff;
231
233
  --ov-ui-primary-hover-default: #7075ff;
232
234
  --ov-ui-primary-active-default: #4242ba;
@@ -350,25 +352,45 @@ html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, html.dark .ov-
350
352
  --ov-ui-dashboard-success-default: var(--ov-ui-status-success-default);
351
353
  }
352
354
 
355
+ .ov-directory-tour-host {
356
+ pointer-events: none;
357
+ background: none;
358
+ border: 0;
359
+ align-items: flex-start;
360
+ width: calc(100vw - 16px);
361
+ height: 100dvh;
362
+ margin: 0;
363
+ padding: 0;
364
+ display: flex;
365
+ position: fixed;
366
+ inset: auto;
367
+ overflow: visible;
368
+ }
369
+
353
370
  .ov-directory-tour {
354
- --ov-ui-directory-tour-primary: var(--ov-ui-color-primary, var(--ov-ui-primary-default));
355
- --ov-ui-directory-tour-background: var(--ov-ui-color-bg-1, var(--ov-ui-bg-1-default));
356
- --ov-ui-directory-tour-text: var(--ov-ui-color-text-1, var(--ov-ui-text-1-default));
357
- --ov-ui-directory-tour-secondary: var(--ov-ui-color-text-2, var(--ov-ui-text-2-default));
358
- --ov-ui-directory-tour-muted: var(--ov-ui-color-text-3, var(--ov-ui-text-3-default));
359
- --ov-ui-directory-tour-border: var(--ov-ui-color-border-3, var(--ov-ui-border-3-default));
371
+ --ov-ui-directory-tour-primary-fallback: var(--ov-ui-color-primary, var(--ov-ui-primary-default));
372
+ --ov-ui-directory-tour-background-fallback: var(--ov-ui-color-bg-1, var(--ov-ui-bg-1-default));
373
+ --ov-ui-directory-tour-text-fallback: var(--ov-ui-color-text-1, var(--ov-ui-text-1-default));
374
+ --ov-ui-directory-tour-secondary-fallback: var(--ov-ui-color-text-2, var(--ov-ui-text-2-default));
375
+ --ov-ui-directory-tour-muted-fallback: var(--ov-ui-color-text-3, var(--ov-ui-text-3-default));
376
+ --ov-ui-directory-tour-border-fallback: var(--ov-ui-color-border-3, var(--ov-ui-border-3-default));
377
+ pointer-events: auto;
360
378
  width: 270px;
379
+ min-width: 0;
361
380
  max-width: calc(100vw - 16px);
362
- max-height: calc(100dvh - 16px);
363
- color: var(--ov-ui-directory-tour-text);
381
+ min-height: 0;
382
+ max-height: 100%;
383
+ color: var(--ov-ui-directory-tour-text, var(--ov-ui-directory-tour-text-fallback));
364
384
  box-sizing: border-box;
365
385
  background: none;
366
386
  border: 0;
387
+ flex-direction: column;
388
+ flex: 0 auto;
367
389
  margin: 0;
368
390
  padding: 0;
369
391
  font-family: inherit;
370
- position: fixed;
371
- inset: auto;
392
+ display: flex;
393
+ position: relative;
372
394
  overflow: visible;
373
395
  }
374
396
 
@@ -377,13 +399,16 @@ html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, html.dark .ov-
377
399
  }
378
400
 
379
401
  .ov-directory-tour__card {
380
- border: .5px solid var(--ov-ui-directory-tour-border);
381
- background: var(--ov-ui-directory-tour-background);
402
+ border: .5px solid
403
+ var(--ov-ui-directory-tour-border, var(--ov-ui-directory-tour-border-fallback));
404
+ background: var(--ov-ui-directory-tour-background, var(--ov-ui-directory-tour-background-fallback));
382
405
  box-shadow: var(--ov-ui-color-tour-shadow, var(--ov-ui-tour-shadow-default));
406
+ min-height: 0;
407
+ max-height: var(--ov-ui-directory-tour-viewport-height, calc(100dvh - 16px));
383
408
  border-radius: 8px;
384
409
  flex-direction: column;
410
+ flex: auto;
385
411
  gap: 12px;
386
- max-height: calc(100dvh - 16px);
387
412
  padding: 16px;
388
413
  display: flex;
389
414
  position: relative;
@@ -400,7 +425,7 @@ html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, html.dark .ov-
400
425
  }
401
426
 
402
427
  .ov-directory-tour__description {
403
- color: var(--ov-ui-directory-tour-secondary);
428
+ color: var(--ov-ui-directory-tour-secondary, var(--ov-ui-directory-tour-secondary-fallback));
404
429
  overflow-wrap: anywhere;
405
430
  margin-top: -8px;
406
431
  font-size: 12px;
@@ -431,38 +456,44 @@ html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, html.dark .ov-
431
456
  }
432
457
 
433
458
  .ov-directory-tour__progress {
434
- color: var(--ov-ui-directory-tour-muted);
459
+ color: var(--ov-ui-directory-tour-muted, var(--ov-ui-directory-tour-muted-fallback));
435
460
  flex: 1;
436
461
  font-size: 12px;
437
462
  line-height: 20px;
438
463
  }
439
464
 
440
- .ov-directory-tour button:not(.ov-button) {
465
+ .ov-directory-tour button:where(:not(.ov-button)) {
441
466
  cursor: pointer;
442
467
  font: inherit;
443
- border: 1px solid var(--ov-ui-directory-tour-border);
444
- background: var(--ov-ui-directory-tour-background);
445
- color: var(--ov-ui-directory-tour-text);
468
+ border: 1px solid
469
+ var(--ov-ui-directory-tour-border, var(--ov-ui-directory-tour-border-fallback));
470
+ background: var(--ov-ui-directory-tour-background, var(--ov-ui-directory-tour-background-fallback));
471
+ color: var(--ov-ui-directory-tour-text, var(--ov-ui-directory-tour-text-fallback));
446
472
  border-radius: 6px;
447
473
  padding: 3px 10px;
448
474
  font-size: 13px;
449
475
  line-height: 22px;
450
476
  }
451
477
 
452
- .ov-directory-tour button:not(.ov-button):hover {
478
+ .ov-directory-tour button:where(:not(.ov-button)):hover {
453
479
  background: var(--ov-ui-color-bg-3, var(--ov-ui-bg-3-default));
454
480
  }
455
481
 
456
- .ov-directory-tour button:not(.ov-button):focus-visible {
457
- outline: 2px solid var(--ov-ui-directory-tour-primary);
482
+ .ov-directory-tour button:where(:not(.ov-button)):focus-visible {
483
+ outline: 2px solid
484
+ var(--ov-ui-directory-tour-primary, var(--ov-ui-directory-tour-primary-fallback));
458
485
  outline-offset: 2px;
459
486
  }
460
487
 
461
- .ov-directory-tour button:not(.ov-button):disabled {
488
+ .ov-directory-tour button:where(:not(.ov-button)):disabled {
462
489
  cursor: wait;
463
490
  opacity: .5;
464
491
  }
465
492
 
493
+ .ov-directory-tour .ov-button {
494
+ --ov-ui-button-primary: var(--ov-ui-directory-tour-primary, var(--ov-ui-directory-tour-primary-fallback));
495
+ }
496
+
466
497
  .ov-directory-tour .ov-directory-tour__close {
467
498
  position: absolute;
468
499
  top: 2px;
@@ -471,11 +502,108 @@ html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, html.dark .ov-
471
502
 
472
503
  .ov-directory-tour__highlight {
473
504
  pointer-events: none;
474
- border: 1px solid var(--ov-ui-directory-tour-primary);
505
+ border: 1px solid
506
+ var(--ov-ui-directory-tour-primary, var(--ov-ui-directory-tour-primary-fallback));
475
507
  background: var(--ov-ui-color-tour-highlight, var(--ov-ui-tour-highlight-default));
476
508
  border-radius: 4px;
477
509
  position: fixed;
478
510
  }
479
511
 
512
+ .ov-directory-tour__card--custom {
513
+ outline: .5px solid
514
+ var(--ov-ui-directory-tour-border, var(--ov-ui-directory-tour-border-fallback));
515
+ outline-offset: -.5px;
516
+ border: 0;
517
+ padding: 12px;
518
+ }
519
+
520
+ .ov-directory-tour__sr-only {
521
+ clip-path: inset(50%);
522
+ white-space: nowrap;
523
+ width: 1px;
524
+ height: 1px;
525
+ padding: 0;
526
+ position: absolute;
527
+ overflow: hidden;
528
+ }
529
+
530
+ .ov-directory-tour__intro {
531
+ flex-direction: column;
532
+ gap: 12px;
533
+ display: flex;
534
+ }
535
+
536
+ .ov-directory-tour__media {
537
+ border-radius: 12px;
538
+ width: 100%;
539
+ overflow: hidden;
540
+ }
541
+
542
+ .ov-directory-tour__intro-copy {
543
+ flex-direction: column;
544
+ gap: 4px;
545
+ display: flex;
546
+ }
547
+
548
+ .ov-directory-tour__intro-title {
549
+ letter-spacing: .042px;
550
+ margin: 0;
551
+ font-size: 14px;
552
+ font-weight: 500;
553
+ line-height: 22px;
554
+ }
555
+
556
+ .ov-directory-tour__intro-description {
557
+ color: var(--ov-ui-directory-tour-muted, var(--ov-ui-directory-tour-muted-fallback));
558
+ letter-spacing: .036px;
559
+ overflow-wrap: anywhere;
560
+ font-size: 12px;
561
+ line-height: 20px;
562
+ }
563
+
564
+ .ov-directory-tour__features {
565
+ background: var(--ov-ui-color-primary-light, var(--ov-ui-primary-light-default));
566
+ color: var(--ov-ui-directory-tour-secondary, var(--ov-ui-directory-tour-secondary-fallback));
567
+ letter-spacing: .036px;
568
+ border-radius: 8px;
569
+ flex-direction: column;
570
+ gap: 4px;
571
+ margin: 0;
572
+ padding: 8px 8px 8px 12px;
573
+ font-size: 12px;
574
+ line-height: 20px;
575
+ list-style: none;
576
+ display: flex;
577
+ }
578
+
579
+ .ov-directory-tour__features li {
580
+ align-items: baseline;
581
+ gap: 8px;
582
+ padding: 0 2px;
583
+ display: flex;
584
+ }
585
+
586
+ .ov-directory-tour__features li:before {
587
+ content: "";
588
+ background: var(--ov-ui-color-primary-hover, var(--ov-ui-primary-hover-default));
589
+ flex: 0 0 3px;
590
+ align-self: flex-start;
591
+ height: 3px;
592
+ margin-top: 9px;
593
+ }
594
+
595
+ .ov-directory-tour__actions {
596
+ justify-content: flex-end;
597
+ }
598
+
599
+ .ov-directory-tour__intro .ov-directory-tour__primary {
600
+ font-size: 12px;
601
+ line-height: 20px;
602
+ }
603
+
604
+ .ov-directory-tour__highlight--group {
605
+ border-radius: 8px;
606
+ }
607
+
480
608
 
481
609
 
@@ -0,0 +1,14 @@
1
+ import type { DirectoryTourProps, DirectoryTourStep } from './types.js';
2
+ type Props = Pick<DirectoryTourProps, 'locale' | 'labels' | 'onClose' | 'renderContent'> & {
3
+ step: DirectoryTourStep;
4
+ index: number;
5
+ total: number;
6
+ titleId: string;
7
+ bodyId: string;
8
+ locating: boolean;
9
+ unavailable: boolean;
10
+ retry: () => void;
11
+ advance: (skip: boolean) => void;
12
+ };
13
+ export declare function TourCard({ step, index, total, locale, labels, onClose, renderContent, titleId, bodyId, locating, unavailable, retry, advance, }: Props): import("react").JSX.Element;
14
+ export {};
@@ -7,8 +7,29 @@ export interface DirectoryTourStep {
7
7
  title: ReactNode;
8
8
  description: ReactNode;
9
9
  illustration?: ReactNode;
10
+ /** Card width in CSS pixels; defaults to 270 and is viewport-constrained. */
11
+ cardWidth?: number;
10
12
  nextLabel?: string;
11
13
  }
14
+ /** The first element positions the card; all connected rows define the highlight. */
15
+ export type DirectoryTourAnchor = HTMLElement | readonly HTMLElement[];
16
+ export interface DirectoryTourContentContext {
17
+ step: DirectoryTourStep;
18
+ index: number;
19
+ total: number;
20
+ complete: () => void;
21
+ close: () => void;
22
+ }
23
+ export interface DirectoryTourIntroProps {
24
+ title: ReactNode;
25
+ description: ReactNode;
26
+ /** Inherits the nearest language scope, otherwise en-US. */
27
+ locale?: Locale;
28
+ features?: readonly ReactNode[];
29
+ media?: ReactNode;
30
+ onDone?: () => void;
31
+ labels?: Pick<DirectoryTourLabels, 'done'>;
32
+ }
12
33
  export interface DirectoryTourResult {
13
34
  skippedStepIds: readonly string[];
14
35
  }
@@ -35,9 +56,11 @@ export interface DirectoryTourProps {
35
56
  style?: CSSProperties;
36
57
  /** Host loads/expands the path and resolves only after the row is rendered.
37
58
  * Must respect cancellation. No network or business DTO belongs to the tour. */
38
- locateTarget?: (target: string, signal: AbortSignal) => Promise<HTMLElement | null>;
59
+ locateTarget?: (target: string, signal: AbortSignal) => Promise<DirectoryTourAnchor | null>;
39
60
  onStepChange?: (index: number) => void;
40
61
  onClose?: () => void;
41
62
  onComplete?: (result: DirectoryTourResult) => void;
63
+ /** Replaces ready-state card contents; loading and recovery stay built in. */
64
+ renderContent?: (context: DirectoryTourContentContext) => ReactNode;
42
65
  labels?: DirectoryTourLabels;
43
66
  }
@@ -1,5 +1,6 @@
1
1
  import type { DirectoryTourProps } from './types.js';
2
2
  export declare function useTourAnchor(target: string, locateTarget: DirectoryTourProps['locateTarget'], timeout: number, attempt: number): {
3
3
  anchor: HTMLElement | null;
4
+ elements: readonly HTMLElement[];
4
5
  failed: boolean;
5
6
  };
@@ -7,6 +7,9 @@ interface Position {
7
7
  targetHeight: number;
8
8
  visible: boolean;
9
9
  missing: boolean;
10
+ maxWidth: number;
11
+ maxHeight: number;
12
+ layoutHeight: number;
10
13
  }
11
- export declare function useTourPosition(anchor: HTMLElement | null, surface: HTMLDivElement | null, placement: 'right' | 'left'): Position | undefined;
14
+ export declare function useTourPosition(anchor: HTMLElement | null, surface: HTMLDivElement | null, placement: 'right' | 'left', elements: readonly HTMLElement[]): Position | undefined;
12
15
  export {};
@@ -0,0 +1,2 @@
1
+ /** Inherit anchor tokens below the surface's own class and inline overrides. */
2
+ export declare function useTourTheme(anchor: HTMLElement | null, surface: HTMLDivElement | null): void;
@@ -1,3 +1,54 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useLocale } from "../28~0.js";
3
+ import { resolveLocale } from "../nx~0.js";
4
+ import { en_US, zh_CN } from "../ep~0.js";
5
+ import { button_Button } from "../e~0.js";
6
+ function DirectoryTourIntro({ locale: localeProp, title, description, features, media, onDone, labels }) {
7
+ const locale = useLocale(localeProp);
8
+ const text = resolveLocale({
9
+ 'en-US': en_US,
10
+ 'zh-CN': zh_CN
11
+ }, locale, labels);
12
+ return /*#__PURE__*/ jsxs("div", {
13
+ className: "ov-directory-tour__intro",
14
+ children: [
15
+ media && /*#__PURE__*/ jsx("div", {
16
+ className: "ov-directory-tour__media",
17
+ children: media
18
+ }),
19
+ /*#__PURE__*/ jsxs("div", {
20
+ className: "ov-directory-tour__intro-copy",
21
+ children: [
22
+ /*#__PURE__*/ jsx("h3", {
23
+ className: "ov-directory-tour__intro-title",
24
+ children: title
25
+ }),
26
+ /*#__PURE__*/ jsx("div", {
27
+ className: "ov-directory-tour__intro-description",
28
+ children: description
29
+ })
30
+ ]
31
+ }),
32
+ features?.length ? /*#__PURE__*/ jsx("ul", {
33
+ className: "ov-directory-tour__features",
34
+ children: features.map((feature, index)=>/*#__PURE__*/ jsx("li", {
35
+ children: feature
36
+ }, index))
37
+ }) : null,
38
+ /*#__PURE__*/ jsx("footer", {
39
+ className: "ov-directory-tour__actions",
40
+ children: /*#__PURE__*/ jsx(button_Button, {
41
+ size: "small",
42
+ type: "primary",
43
+ htmlType: "button",
44
+ className: "ov-directory-tour__primary",
45
+ onClick: onDone,
46
+ children: text.done
47
+ })
48
+ })
49
+ ]
50
+ });
51
+ }
1
52
  const openVikingDirectoryTourSteps = [
2
53
  {
3
54
  id: 'memories',
@@ -37,4 +88,4 @@ const openVikingDirectoryTourSteps = [
37
88
  }
38
89
  ];
39
90
  export { DirectoryTour } from "../ep~0.js";
40
- export { openVikingDirectoryTourSteps };
91
+ export { DirectoryTourIntro, openVikingDirectoryTourSteps };
@@ -0,0 +1,2 @@
1
+ import type { EmailLoginFormProps } from './types.js';
2
+ export declare function EmailLoginForm({ defaultEmail, readOnlyEmail, forgotPassword, alternateLogin, onSubmit, locale, labels: overrides, ...options }: EmailLoginFormProps): import("react").JSX.Element;
@@ -0,0 +1,3 @@
1
+ export { EmailLoginForm } from './email-login-form.js';
2
+ export type { EmailLoginFormProps } from './types.js';
3
+ export type { AuthAction, AuthAgreements, AuthLabels, } from '../../shared/auth/types.js';