@elevasis/ui 2.40.1 → 2.41.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/dist/api/index.js +4 -6
  2. package/dist/app/index.css +384 -0
  3. package/dist/app/index.d.ts +108 -0
  4. package/dist/app/index.js +17 -27
  5. package/dist/auth/index.css +659 -0
  6. package/dist/auth/index.js +19 -6
  7. package/dist/charts/index.css +533 -0
  8. package/dist/charts/index.js +18 -15
  9. package/dist/{chunk-RXH4D6TY.js → chunk-5M4HSHQ5.js} +631 -2
  10. package/dist/{chunk-TE4P6OSJ.js → chunk-7FJI76OH.js} +1 -1
  11. package/dist/chunk-GMXGDO3I.js +244 -0
  12. package/dist/{chunk-CXY7FMUM.js → chunk-GUKY77FJ.js} +50 -4
  13. package/dist/{chunk-5JYKCULK.js → chunk-NZ2F5RQ4.js} +44 -2
  14. package/dist/{chunk-WF7CONXF.js → chunk-OJJK27GC.js} +658 -6
  15. package/dist/{chunk-RX6RSKWC.js → chunk-QDXTIQT4.js} +29255 -18312
  16. package/dist/{chunk-73EWE2EW.js → chunk-V5HWC5EW.js} +1 -1
  17. package/dist/components/chat/index.js +1 -2
  18. package/dist/components/index.css +149 -149
  19. package/dist/components/index.js +13 -37
  20. package/dist/components/navigation/index.css +659 -0
  21. package/dist/components/navigation/index.js +25 -4
  22. package/dist/features/auth/index.js +14 -38
  23. package/dist/features/clients/index.css +149 -149
  24. package/dist/features/clients/index.js +13 -37
  25. package/dist/features/crm/index.js +13 -37
  26. package/dist/features/dashboard/index.js +13 -37
  27. package/dist/features/delivery/index.js +13 -37
  28. package/dist/features/knowledge/index.css +659 -0
  29. package/dist/features/knowledge/index.js +25 -248
  30. package/dist/features/lead-gen/index.d.ts +81 -0
  31. package/dist/features/lead-gen/index.js +13 -37
  32. package/dist/features/monitoring/index.js +13 -37
  33. package/dist/features/monitoring/requests/index.d.ts +69 -7
  34. package/dist/features/monitoring/requests/index.js +32 -41
  35. package/dist/features/operations/index.d.ts +79 -0
  36. package/dist/features/operations/index.js +13 -37
  37. package/dist/features/seo/index.js +1 -4
  38. package/dist/features/settings/index.js +13 -37
  39. package/dist/hooks/access/index.css +659 -0
  40. package/dist/hooks/access/index.js +19 -5
  41. package/dist/hooks/delivery/index.js +13 -37
  42. package/dist/hooks/index.d.ts +18 -6
  43. package/dist/hooks/index.js +13 -37
  44. package/dist/hooks/published.d.ts +18 -6
  45. package/dist/hooks/published.js +13 -37
  46. package/dist/index.d.ts +151 -7
  47. package/dist/index.js +14 -38
  48. package/dist/initialization/index.js +1 -1
  49. package/dist/knowledge/index.css +659 -0
  50. package/dist/knowledge/index.d.ts +81 -0
  51. package/dist/knowledge/index.js +25 -15
  52. package/dist/layout/index.css +659 -0
  53. package/dist/layout/index.d.ts +18 -2
  54. package/dist/layout/index.js +24 -7
  55. package/dist/organization/index.js +13 -37
  56. package/dist/provider/index.css +384 -0
  57. package/dist/provider/index.d.ts +120 -1
  58. package/dist/provider/index.js +18 -22
  59. package/dist/provider/published.css +533 -0
  60. package/dist/provider/published.d.ts +121 -2
  61. package/dist/provider/published.js +18 -17
  62. package/dist/test-utils/index.js +4 -6
  63. package/dist/theme/index.js +2 -5
  64. package/dist/theme/presets/index.js +1 -2
  65. package/dist/utils/index.js +1 -3
  66. package/package.json +3 -3
  67. package/dist/chunk-3KMDHCAR.js +0 -52
  68. package/dist/chunk-4DRI3G36.js +0 -1016
  69. package/dist/chunk-5EYJ2GIN.js +0 -122
  70. package/dist/chunk-66U7JOWV.js +0 -425
  71. package/dist/chunk-6D4LCJ52.js +0 -10
  72. package/dist/chunk-6EV47QQW.js +0 -340
  73. package/dist/chunk-6ROXVZ3L.js +0 -9
  74. package/dist/chunk-7MTWRSUZ.js +0 -357
  75. package/dist/chunk-7PHY5ONQ.js +0 -85
  76. package/dist/chunk-B2DZLPDL.js +0 -39
  77. package/dist/chunk-CLDCYJQT.js +0 -1
  78. package/dist/chunk-CTJBPF3Z.js +0 -734
  79. package/dist/chunk-DT3QYZVU.js +0 -23
  80. package/dist/chunk-IIMU5YAJ.js +0 -53
  81. package/dist/chunk-IUQAP4IO.js +0 -2131
  82. package/dist/chunk-J3FLIZY4.js +0 -423
  83. package/dist/chunk-K7GKKETO.js +0 -3157
  84. package/dist/chunk-L7GXUSCV.js +0 -215
  85. package/dist/chunk-LJDYY3XB.js +0 -133
  86. package/dist/chunk-NYBEU5TE.js +0 -118
  87. package/dist/chunk-RH5VWWSC.js +0 -624
  88. package/dist/chunk-SJNIOGVX.js +0 -112
  89. package/dist/chunk-TYRUKGGD.js +0 -46
  90. package/dist/chunk-WLOQ4IBG.js +0 -654
  91. package/dist/chunk-X4WBGKJQ.js +0 -138
  92. package/dist/chunk-X7D6SUKR.js +0 -1234
package/dist/api/index.js CHANGED
@@ -1,9 +1,7 @@
1
- export { createElevasisQueryClient } from '../chunk-73EWE2EW.js';
2
- export { ApiClientProvider, useApiClient, useApiClientContext } from '../chunk-TE4P6OSJ.js';
3
- import '../chunk-RXH4D6TY.js';
4
- import '../chunk-KRWALB24.js';
1
+ export { createElevasisQueryClient } from '../chunk-V5HWC5EW.js';
2
+ export { ApiClientProvider, useApiClient, useApiClientContext } from '../chunk-7FJI76OH.js';
5
3
  import '../chunk-DD3CCMCZ.js';
6
- import '../chunk-6ROXVZ3L.js';
7
- import '../chunk-RH5VWWSC.js';
4
+ import '../chunk-5M4HSHQ5.js';
5
+ import '../chunk-KRWALB24.js';
8
6
  import '../chunk-TVTSASST.js';
9
7
  import '../chunk-I2KLQ2HA.js';
@@ -273,3 +273,387 @@
273
273
  letter-spacing: 0.12em;
274
274
  color: var(--color-text-dimmed);
275
275
  }
276
+
277
+ /* src/graph/Graph.globals.css */
278
+ .elevasis-graph-root .react-flow__node.selected,
279
+ .elevasis-graph-root .react-flow__node:focus,
280
+ .elevasis-graph-root .react-flow__node:focus-visible {
281
+ outline: none !important;
282
+ }
283
+ .elevasis-graph-root .react-flow__node.selected > * {
284
+ box-shadow: none;
285
+ }
286
+
287
+ /* src/graph/Graph.module.css */
288
+ @keyframes edgeFlow {
289
+ 0% {
290
+ stroke-dashoffset: 24;
291
+ }
292
+ 100% {
293
+ stroke-dashoffset: 0;
294
+ }
295
+ }
296
+ @keyframes edgeFlowReverse {
297
+ 0% {
298
+ stroke-dashoffset: 0;
299
+ }
300
+ 100% {
301
+ stroke-dashoffset: 24;
302
+ }
303
+ }
304
+ @keyframes pulse {
305
+ 0%, 100% {
306
+ opacity: 0.6;
307
+ }
308
+ 50% {
309
+ opacity: 1;
310
+ }
311
+ }
312
+ @keyframes livePulse {
313
+ 0%, 100% {
314
+ opacity: 1;
315
+ }
316
+ 50% {
317
+ opacity: 0.6;
318
+ }
319
+ }
320
+ .livePulse {
321
+ animation: livePulse 2s ease-in-out infinite;
322
+ }
323
+ @keyframes glowPulse {
324
+ 0%, 100% {
325
+ box-shadow: 0 0 5px var(--glow-color, color-mix(in srgb, var(--color-primary) 30%, transparent)), 0 0 15px var(--glow-color, color-mix(in srgb, var(--color-primary) 10%, transparent));
326
+ }
327
+ 50% {
328
+ box-shadow: 0 0 10px var(--glow-color, color-mix(in srgb, var(--color-primary) 50%, transparent)), 0 0 20px var(--glow-color, color-mix(in srgb, var(--color-primary) 20%, transparent));
329
+ }
330
+ }
331
+ @keyframes nodeEnter {
332
+ 0% {
333
+ opacity: 0;
334
+ transform: scale(0.8) translateY(10px);
335
+ }
336
+ 100% {
337
+ opacity: 1;
338
+ transform: scale(1) translateY(0);
339
+ }
340
+ }
341
+ @keyframes handlePulse {
342
+ 0%, 100% {
343
+ transform: scale(1);
344
+ box-shadow: 0 0 0 0 var(--handle-color, color-mix(in srgb, var(--color-primary) 40%, transparent));
345
+ }
346
+ 50% {
347
+ transform: scale(1.2);
348
+ box-shadow: 0 0 0 4px var(--handle-color, color-mix(in srgb, var(--color-primary) 0%, transparent));
349
+ }
350
+ }
351
+ @keyframes gridMove {
352
+ 0% {
353
+ background-position: 0 0;
354
+ }
355
+ 100% {
356
+ background-position: 40px 40px;
357
+ }
358
+ }
359
+ @keyframes labelFadeIn {
360
+ 0% {
361
+ opacity: 0;
362
+ transform: translate(-50%, -50%) translate(var(--label-x), var(--label-y)) scale(0.8);
363
+ }
364
+ 100% {
365
+ opacity: 1;
366
+ transform: translate(-50%, -50%) translate(var(--label-x), var(--label-y)) scale(1);
367
+ }
368
+ }
369
+ @keyframes scanLine {
370
+ 0% {
371
+ transform: translateY(-100%);
372
+ opacity: 0;
373
+ }
374
+ 50% {
375
+ opacity: 0.5;
376
+ }
377
+ 100% {
378
+ transform: translateY(100%);
379
+ opacity: 0;
380
+ }
381
+ }
382
+ .graphContainer {
383
+ position: relative;
384
+ background-image:
385
+ linear-gradient(color-mix(in srgb, var(--color-primary) 5%, transparent) 1px, transparent 1px),
386
+ linear-gradient(
387
+ 90deg,
388
+ color-mix(in srgb, var(--color-primary) 5%, transparent) 1px,
389
+ transparent 1px),
390
+ radial-gradient(
391
+ ellipse at 50% 50%,
392
+ color-mix(in srgb, var(--color-primary) 1.25%, transparent) 0%,
393
+ transparent 70%);
394
+ background-color: color-mix(in srgb, var(--color-background) 50%, var(--glass-background));
395
+ backdrop-filter: var(--glass-blur);
396
+ background-size:
397
+ 40px 40px,
398
+ 40px 40px,
399
+ 100% 100%;
400
+ animation: gridMove 20s linear infinite;
401
+ }
402
+ [data-mantine-color-scheme=dark] .graphContainer {
403
+ background-image:
404
+ linear-gradient(color-mix(in srgb, var(--color-primary) 9%, transparent) 1px, transparent 1px),
405
+ linear-gradient(
406
+ 90deg,
407
+ color-mix(in srgb, var(--color-primary) 9%, transparent) 1px,
408
+ transparent 1px),
409
+ radial-gradient(
410
+ ellipse at 50% 50%,
411
+ color-mix(in srgb, var(--color-primary) 2.25%, transparent) 0%,
412
+ transparent 70%);
413
+ background-size:
414
+ 40px 40px,
415
+ 40px 40px,
416
+ 100% 100%;
417
+ }
418
+ .node {
419
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
420
+ position: relative;
421
+ }
422
+ .node:nth-child(1) {
423
+ animation-delay: 0.05s;
424
+ }
425
+ .node:nth-child(2) {
426
+ animation-delay: 0.1s;
427
+ }
428
+ .node:nth-child(3) {
429
+ animation-delay: 0.15s;
430
+ }
431
+ .node:nth-child(4) {
432
+ animation-delay: 0.2s;
433
+ }
434
+ .node:nth-child(5) {
435
+ animation-delay: 0.25s;
436
+ }
437
+ .node:nth-child(6) {
438
+ animation-delay: 0.3s;
439
+ }
440
+ .node:nth-child(7) {
441
+ animation-delay: 0.35s;
442
+ }
443
+ .node:nth-child(8) {
444
+ animation-delay: 0.4s;
445
+ }
446
+ .node:nth-child(9) {
447
+ animation-delay: 0.45s;
448
+ }
449
+ .node:nth-child(10) {
450
+ animation-delay: 0.5s;
451
+ }
452
+ .node:nth-child(11) {
453
+ animation-delay: 0.55s;
454
+ }
455
+ .node:nth-child(12) {
456
+ animation-delay: 0.6s;
457
+ }
458
+ .nodeCard {
459
+ position: relative;
460
+ border-radius: var(--mantine-radius-md);
461
+ overflow: hidden;
462
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
463
+ }
464
+ .nodeCard::before {
465
+ content: "";
466
+ position: absolute;
467
+ inset: 0;
468
+ background:
469
+ linear-gradient(
470
+ 135deg,
471
+ var(--node-color-light, color-mix(in srgb, var(--color-primary) 10%, transparent)) 0%,
472
+ transparent 50%,
473
+ var(--node-color-light, color-mix(in srgb, var(--color-primary) 5%, transparent)) 100%);
474
+ pointer-events: none;
475
+ opacity: 0;
476
+ transition: opacity 0.3s ease;
477
+ }
478
+ .nodeCard::after {
479
+ content: "";
480
+ position: absolute;
481
+ left: 0;
482
+ right: 0;
483
+ height: 30%;
484
+ background:
485
+ linear-gradient(
486
+ 180deg,
487
+ transparent 0%,
488
+ var(--node-color-glow, color-mix(in srgb, var(--color-primary) 10%, transparent)) 50%,
489
+ transparent 100%);
490
+ pointer-events: none;
491
+ opacity: 0;
492
+ }
493
+ .nodeCard:hover::before,
494
+ .nodeCardSelected::before {
495
+ opacity: 1;
496
+ }
497
+ .nodeCard:hover::after,
498
+ .nodeCardSelected::after {
499
+ animation: scanLine 3s ease-in-out infinite;
500
+ }
501
+ .nodeCard:hover {
502
+ transform: translateY(-2px) scale(1.02);
503
+ }
504
+ .nodeCardSelected {
505
+ transform: translateY(-2px) scale(1.02);
506
+ animation: glowPulse 2s ease-in-out infinite;
507
+ }
508
+ .nodeAgent {
509
+ --glow-color: rgba(139, 92, 246, 0.4);
510
+ --node-color-light: rgba(139, 92, 246, 0.1);
511
+ --node-color-glow: rgba(139, 92, 246, 0.15);
512
+ --handle-color: rgba(139, 92, 246, 0.5);
513
+ --gradient-start: rgba(139, 92, 246, 0.15);
514
+ --gradient-end: rgba(139, 92, 246, 0.05);
515
+ }
516
+ .nodeWorkflow {
517
+ --glow-color: rgba(59, 130, 246, 0.4);
518
+ --node-color-light: rgba(59, 130, 246, 0.1);
519
+ --node-color-glow: rgba(59, 130, 246, 0.15);
520
+ --handle-color: rgba(59, 130, 246, 0.5);
521
+ --gradient-start: rgba(59, 130, 246, 0.15);
522
+ --gradient-end: rgba(59, 130, 246, 0.05);
523
+ }
524
+ .nodeTrigger {
525
+ --glow-color: rgba(249, 115, 22, 0.4);
526
+ --node-color-light: rgba(249, 115, 22, 0.1);
527
+ --node-color-glow: rgba(249, 115, 22, 0.15);
528
+ --handle-color: rgba(249, 115, 22, 0.5);
529
+ --gradient-start: rgba(249, 115, 22, 0.15);
530
+ --gradient-end: rgba(249, 115, 22, 0.05);
531
+ }
532
+ .nodeIntegration {
533
+ --glow-color: rgba(20, 184, 166, 0.4);
534
+ --node-color-light: rgba(20, 184, 166, 0.1);
535
+ --node-color-glow: rgba(20, 184, 166, 0.15);
536
+ --handle-color: rgba(20, 184, 166, 0.5);
537
+ --gradient-start: rgba(20, 184, 166, 0.15);
538
+ --gradient-end: rgba(20, 184, 166, 0.05);
539
+ }
540
+ .nodeExternal {
541
+ --glow-color: rgba(107, 114, 128, 0.4);
542
+ --node-color-light: rgba(107, 114, 128, 0.1);
543
+ --node-color-glow: rgba(107, 114, 128, 0.15);
544
+ --handle-color: rgba(107, 114, 128, 0.5);
545
+ --gradient-start: rgba(107, 114, 128, 0.15);
546
+ --gradient-end: rgba(107, 114, 128, 0.05);
547
+ }
548
+ .nodeHuman {
549
+ --glow-color: rgba(245, 158, 11, 0.4);
550
+ --node-color-light: rgba(245, 158, 11, 0.1);
551
+ --node-color-glow: rgba(245, 158, 11, 0.15);
552
+ --handle-color: rgba(245, 158, 11, 0.5);
553
+ --gradient-start: rgba(245, 158, 11, 0.15);
554
+ --gradient-end: rgba(245, 158, 11, 0.05);
555
+ }
556
+ .nodePrimary {
557
+ --glow-color: rgba(37, 99, 235, 0.4);
558
+ --node-color-light: rgba(37, 99, 235, 0.1);
559
+ --node-color-glow: rgba(37, 99, 235, 0.15);
560
+ --handle-color: rgba(37, 99, 235, 0.5);
561
+ --gradient-start: rgba(37, 99, 235, 0.15);
562
+ --gradient-end: rgba(37, 99, 235, 0.05);
563
+ }
564
+ .handle {
565
+ transition: all 0.2s ease;
566
+ }
567
+ .handle:hover {
568
+ animation: handlePulse 1s ease-in-out infinite;
569
+ }
570
+ .nodeIcon {
571
+ transition: all 0.3s ease;
572
+ }
573
+ .badge {
574
+ transition: all 0.2s ease;
575
+ backdrop-filter: blur(4px);
576
+ }
577
+ .nodeCard:hover .badge {
578
+ transform: scale(1.05);
579
+ }
580
+ .badgeProd {
581
+ box-shadow: 0 0 8px rgba(34, 197, 94, 0.3);
582
+ }
583
+ .edge {
584
+ transition: all 0.3s ease;
585
+ }
586
+ .edgeAnimated {
587
+ stroke-dasharray: 8 4;
588
+ animation: edgeFlow 1s linear infinite;
589
+ }
590
+ .edgeGlow {
591
+ filter: drop-shadow(0 0 3px var(--edge-color, color-mix(in srgb, var(--color-primary) 50%, transparent)));
592
+ }
593
+ .edgeHighlighted {
594
+ stroke-width: 3px;
595
+ }
596
+ .edgeLabel {
597
+ backdrop-filter: blur(8px);
598
+ border: 1px solid rgba(255, 255, 255, 0.1);
599
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15), 0 0 20px var(--label-glow, color-mix(in srgb, var(--color-primary) 20%, transparent));
600
+ transition: box-shadow 0.2s ease;
601
+ }
602
+ .edgeLabel:hover {
603
+ box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2), 0 0 30px var(--label-glow, color-mix(in srgb, var(--color-primary) 30%, transparent));
604
+ }
605
+ .legend {
606
+ backdrop-filter: var(--glass-blur);
607
+ background: var(--glass-background);
608
+ border: 1px solid color-mix(in srgb, var(--color-primary) 20%, transparent);
609
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1), 0 0 40px color-mix(in srgb, var(--color-primary) 10%, transparent);
610
+ }
611
+ [data-mantine-color-scheme=dark] .legend {
612
+ border-color: color-mix(in srgb, var(--color-primary) 30%, transparent);
613
+ }
614
+ .legendDot {
615
+ transition: all 0.2s ease;
616
+ box-shadow: 0 0 8px currentColor;
617
+ }
618
+ .legendDot:hover {
619
+ transform: scale(1.3);
620
+ box-shadow: 0 0 12px currentColor;
621
+ }
622
+ .nodeHighlighted .nodeCard {
623
+ transform: translateY(-2px) scale(1.02);
624
+ }
625
+ .nodeHighlighted .nodeCard::before {
626
+ opacity: 1;
627
+ }
628
+ .nodeHighlighted .nodeCard::after {
629
+ animation: scanLine 3s ease-in-out infinite;
630
+ }
631
+ .nodeDimmed {
632
+ opacity: 0.3;
633
+ filter: grayscale(0.5);
634
+ transition: all 0.3s ease;
635
+ }
636
+ .edgeHighlighted {
637
+ stroke-width: 4px !important;
638
+ }
639
+ .edgeDimmed {
640
+ opacity: 0.15;
641
+ transition: all 0.3s ease;
642
+ }
643
+ .edgeLabelDimmed {
644
+ opacity: 0.15;
645
+ transition: opacity 0.3s ease;
646
+ }
647
+ @media (prefers-reduced-motion: reduce) {
648
+ .node,
649
+ .nodeCard::after,
650
+ .edgeAnimated,
651
+ .nodeIcon,
652
+ .handle:hover,
653
+ .graphContainer {
654
+ animation: none;
655
+ }
656
+ .nodeCard:hover {
657
+ transform: none;
658
+ }
659
+ }
@@ -7,6 +7,7 @@ import { MantineThemeOverride } from '@mantine/core';
7
7
  import * as react_jsx_runtime from 'react/jsx-runtime';
8
8
  import { useAuth } from '@workos-inc/authkit-react';
9
9
  import { EventSourceMessage } from '@microsoft/fetch-event-source';
10
+ import { IconBrain } from '@tabler/icons-react';
10
11
 
11
12
  type Json = string | number | boolean | null | {
12
13
  [key: string]: Json | undefined;
@@ -3713,6 +3714,84 @@ declare const OrganizationModelSchema: z$1.ZodObject<{
3713
3714
  primary: z$1.ZodDefault<z$1.ZodRecord<z$1.ZodString, z$1.ZodType<SidebarNode, unknown, z$1.core.$ZodTypeInternals<SidebarNode, unknown>>>>;
3714
3715
  bottom: z$1.ZodDefault<z$1.ZodRecord<z$1.ZodString, z$1.ZodType<SidebarNode, unknown, z$1.core.$ZodTypeInternals<SidebarNode, unknown>>>>;
3715
3716
  }, z$1.core.$strip>>;
3717
+ topbar: z$1.ZodDefault<z$1.ZodRecord<z$1.ZodString, z$1.ZodObject<{
3718
+ id: z$1.ZodString;
3719
+ label: z$1.ZodString;
3720
+ tooltip: z$1.ZodOptional<z$1.ZodString>;
3721
+ icon: z$1.ZodOptional<z$1.ZodUnion<readonly [z$1.ZodEnum<{
3722
+ message: "message";
3723
+ error: "error";
3724
+ agent: "agent";
3725
+ workflow: "workflow";
3726
+ "google-sheets": "google-sheets";
3727
+ dashboard: "dashboard";
3728
+ calendar: "calendar";
3729
+ sales: "sales";
3730
+ crm: "crm";
3731
+ "lead-gen": "lead-gen";
3732
+ projects: "projects";
3733
+ clients: "clients";
3734
+ operations: "operations";
3735
+ monitoring: "monitoring";
3736
+ knowledge: "knowledge";
3737
+ settings: "settings";
3738
+ admin: "admin";
3739
+ archive: "archive";
3740
+ business: "business";
3741
+ finance: "finance";
3742
+ platform: "platform";
3743
+ seo: "seo";
3744
+ playbook: "playbook";
3745
+ strategy: "strategy";
3746
+ reference: "reference";
3747
+ integration: "integration";
3748
+ database: "database";
3749
+ user: "user";
3750
+ team: "team";
3751
+ gmail: "gmail";
3752
+ attio: "attio";
3753
+ overview: "overview";
3754
+ "command-view": "command-view";
3755
+ "command-queue": "command-queue";
3756
+ pipeline: "pipeline";
3757
+ lists: "lists";
3758
+ resources: "resources";
3759
+ approve: "approve";
3760
+ reject: "reject";
3761
+ retry: "retry";
3762
+ edit: "edit";
3763
+ view: "view";
3764
+ launch: "launch";
3765
+ "message-plus": "message-plus";
3766
+ escalate: "escalate";
3767
+ promote: "promote";
3768
+ submit: "submit";
3769
+ email: "email";
3770
+ success: "success";
3771
+ warning: "warning";
3772
+ info: "info";
3773
+ pending: "pending";
3774
+ bolt: "bolt";
3775
+ building: "building";
3776
+ briefcase: "briefcase";
3777
+ apps: "apps";
3778
+ graph: "graph";
3779
+ shield: "shield";
3780
+ users: "users";
3781
+ "chart-bar": "chart-bar";
3782
+ search: "search";
3783
+ }>, z$1.ZodString]>>;
3784
+ order: z$1.ZodOptional<z$1.ZodNumber>;
3785
+ enabled: z$1.ZodDefault<z$1.ZodBoolean>;
3786
+ devOnly: z$1.ZodOptional<z$1.ZodBoolean>;
3787
+ requiresAdmin: z$1.ZodOptional<z$1.ZodBoolean>;
3788
+ targets: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodObject<{
3789
+ systems: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodArray<z$1.ZodString>>>;
3790
+ entities: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodArray<z$1.ZodString>>>;
3791
+ resources: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodArray<z$1.ZodString>>>;
3792
+ actions: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodArray<z$1.ZodString>>>;
3793
+ }, z$1.core.$strip>>>;
3794
+ }, z$1.core.$strip>>>;
3716
3795
  }, z$1.core.$strip>>;
3717
3796
  identity: z$1.ZodDefault<z$1.ZodObject<{
3718
3797
  mission: z$1.ZodDefault<z$1.ZodString>;
@@ -4381,6 +4460,7 @@ declare const OrganizationModelSchema: z$1.ZodObject<{
4381
4460
  edit: "edit";
4382
4461
  view: "view";
4383
4462
  launch: "launch";
4463
+ "message-plus": "message-plus";
4384
4464
  escalate: "escalate";
4385
4465
  promote: "promote";
4386
4466
  submit: "submit";
@@ -4773,6 +4853,8 @@ interface SSEConnectionManagerLike {
4773
4853
  }>;
4774
4854
  }
4775
4855
 
4856
+ type TablerIconComponent = typeof IconBrain;
4857
+
4776
4858
  type ElevasisOrganizationModel = Omit<OrganizationModel, 'knowledge'> & {
4777
4859
  knowledge?: OrganizationModel['knowledge'];
4778
4860
  };
@@ -4814,11 +4896,37 @@ interface ShellSidebarLinkGroup {
4814
4896
  links?: ShellSidebarLinkItem[];
4815
4897
  link?: string;
4816
4898
  }
4899
+ /**
4900
+ * A resolved topbar action — the OM node after gating/filtering, with icon resolved
4901
+ * from the semantic icon registry. Passed to `TopbarActionModule.render`.
4902
+ */
4903
+ interface ResolvedTopbarAction {
4904
+ id: string;
4905
+ label: string;
4906
+ tooltip?: string;
4907
+ icon: TablerIconComponent;
4908
+ order: number;
4909
+ }
4910
+ /**
4911
+ * A topbar action module — binds a registry key to UI behavior (a render callback).
4912
+ * The key must match `navigation.topbar[id]`. The OM supplies data + visibility;
4913
+ * the module supplies behavior.
4914
+ */
4915
+ interface TopbarActionModule {
4916
+ /** Stable key that matches the `id` of a `navigation.topbar` node. */
4917
+ key: string;
4918
+ /** Render the topbar action. Receives the resolved OM node (icon pre-resolved). */
4919
+ render: (ctx: {
4920
+ node: ResolvedTopbarAction;
4921
+ }) => ReactNode;
4922
+ }
4817
4923
  interface OrganizationGraphSystemBridge {
4818
4924
  systemId?: string;
4819
4925
  }
4820
4926
  interface ElevasisSystemsProviderProps {
4821
4927
  systems?: SystemModule[];
4928
+ /** Registered topbar action modules. OM node presence controls visibility; module supplies behavior. */
4929
+ topbarActions?: TopbarActionModule[];
4822
4930
  organizationModel?: ElevasisOrganizationModel;
4823
4931
  timeRange?: TimeRange;
4824
4932
  operationsApiUrl?: string;
package/dist/app/index.js CHANGED
@@ -1,35 +1,25 @@
1
- import { AppErrorBoundary } from '../chunk-66U7JOWV.js';
1
+ import { useSessionCheck, AppErrorBoundary, SidebarProvider, ElevasisSystemsProvider, useElevasisSystems, AppShellContainer, Sidebar, AppShellRightSideContainer, AppShellRightSideOuterContainer, SystemShell, ElevasisUIProvider } from '../chunk-QDXTIQT4.js';
2
+ import '../chunk-NZ2F5RQ4.js';
3
+ import '../chunk-OJJK27GC.js';
4
+ import '../chunk-AUDNF2Q7.js';
5
+ import '../chunk-6M6OLGQY.js';
6
+ import '../chunk-BRXELOHC.js';
7
+ import '../chunk-GUKY77FJ.js';
2
8
  import '../chunk-SJHM4WDG.js';
3
- import { SidebarProvider, AppShellContainer, Sidebar, AppShellRightSideContainer, AppShellRightSideOuterContainer } from '../chunk-X7D6SUKR.js';
4
- import '../chunk-X4WBGKJQ.js';
5
- import '../chunk-IIMU5YAJ.js';
6
- import '../chunk-RNP5R5I3.js';
7
- import { ElevasisUIProvider } from '../chunk-SJNIOGVX.js';
8
- import '../chunk-5JYKCULK.js';
9
- import '../chunk-6D4LCJ52.js';
10
- import '../chunk-WF7CONXF.js';
11
- import '../chunk-WLOQ4IBG.js';
12
- import { SystemShell } from '../chunk-6EV47QQW.js';
13
- import '../chunk-CTJBPF3Z.js';
14
- import '../chunk-3KMDHCAR.js';
9
+ import '../chunk-ZTWA5H77.js';
15
10
  import '../chunk-S3XR4II4.js';
16
- import '../chunk-L7GXUSCV.js';
17
- import '../chunk-NYBEU5TE.js';
18
- import '../chunk-TE4P6OSJ.js';
19
- import '../chunk-DT3QYZVU.js';
20
- import { TanStackRouterBridge, ScrollToTop } from '../chunk-2IFYDILW.js';
21
- import '../chunk-Q7DJKLEN.js';
22
- import '../chunk-RXH4D6TY.js';
23
- import '../chunk-KRWALB24.js';
24
- import { useSessionCheck } from '../chunk-LJDYY3XB.js';
25
- import '../chunk-7MTWRSUZ.js';
26
- import { ElevasisSystemsProvider, useElevasisSystems } from '../chunk-J3FLIZY4.js';
27
11
  import { useInitialization } from '../chunk-6DO4PE3O.js';
28
- import '../chunk-K7GKKETO.js';
12
+ import '../chunk-7FJI76OH.js';
29
13
  import '../chunk-DD3CCMCZ.js';
14
+ import '../chunk-GMXGDO3I.js';
15
+ import { TanStackRouterBridge, ScrollToTop } from '../chunk-2IFYDILW.js';
16
+ import '../chunk-Q7DJKLEN.js';
17
+ import '../chunk-HENXLGVD.js';
18
+ import '../chunk-7FPLLSHN.js';
19
+ import '../chunk-RNP5R5I3.js';
30
20
  import '../chunk-W2SFTXMT.js';
31
- import '../chunk-6ROXVZ3L.js';
32
- import { listAllSystems } from '../chunk-RH5VWWSC.js';
21
+ import { listAllSystems } from '../chunk-5M4HSHQ5.js';
22
+ import '../chunk-KRWALB24.js';
33
23
  import '../chunk-2FTX4WO2.js';
34
24
  import '../chunk-MQZE7SUI.js';
35
25
  import '../chunk-TVTSASST.js';