canvasxpress-cli 60.4.1 → 60.5.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "canvasxpress-cli",
3
- "version": "60.4.1",
3
+ "version": "60.5.1",
4
4
  "license": {
5
5
  "type": "Dual licensing",
6
6
  "url": "https://www.canvasxpress.org/docs/license.html"
@@ -435,8 +435,7 @@ pre.cX-code-content code::before {
435
435
  align-items: center;
436
436
  justify-content: center;
437
437
  flex-shrink: 0;
438
- padding: 18px;
439
- min-height: 146px;
438
+ min-height: 70px;
440
439
  top: var(--base-h);
441
440
  left: 0;
442
441
  }
@@ -447,125 +446,408 @@ pre.cX-code-content code::before {
447
446
  }
448
447
 
449
448
  div.cX-Chat {
450
- border: none;
451
- background-color: var(--cx-color-transparent);
452
- max-width: 600px;
453
- min-height: 100px;
454
449
  width: 100%;
455
- margin: 10px auto 0 auto;
450
+ max-width: 900px;
451
+ background: white;
452
+ border: 1px solid #cbd5e1;
453
+ border-radius: var(--cx-border-radius);
454
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
455
+ overflow: hidden;
456
+ margin-top: 2px;
456
457
  }
457
458
 
458
- div.cX-Chat-Container {
459
- border: none;
460
- border-radius: 10px;
461
- background-color: var(--cx-color-extra-light-gray);
462
- color: var(--cx-font-color);
463
- font: var(--cx-x-large-font);
459
+ .cX-Chat-Toolbar-Container {
460
+ width: 100%;
461
+ height: 35px;
462
+ background: #f8fafc;
463
+ border-bottom: 1px solid #e2e8f0;
464
464
  display: flex;
465
465
  align-items: center;
466
+ justify-content: space-between;
467
+ padding: 0 10px;
468
+ box-sizing: border-box;
469
+ font-size: 13px;
470
+ color: #475569;
466
471
  }
467
472
 
468
- div.cX-Chat-Container-Text {
469
- float: left;
470
- border: none;
471
- background-color: var(--cx-color-transparent);
472
- min-height: 50px;
473
+ .cX-Chat-Toolbar-Container .cX-Chat-Left-Toolbar-Container,
474
+ .cX-Chat-Toolbar-Container .cX-Chat-Right-Toolbar-Container {
475
+ display: flex;
476
+ align-items: center;
477
+ gap: 10px;
473
478
  }
474
479
 
475
- p.cX-Chat-Question {
476
- border: none;
477
- background-color: var(--cx-color-extra-light-gray);
480
+ .cX-Chat-Configurator-Container {
481
+ display: none;
482
+ width: 100%;
483
+ background: #f1f5f9;
484
+ border-bottom: 1px solid #e2e8f0;
485
+ padding: 4px 20px;
486
+ box-sizing: border-box;
487
+ font-size: medium;
488
+ color: #475569;
489
+ align-items: center;
490
+ gap: 8px;
491
+ }
492
+
493
+ .cX-Chat-Configurator {
494
+ padding-left: 5px;
495
+ border-radius: 5px;
496
+ border-width: 0.5px;
497
+ height: 24px;
498
+ }
499
+
500
+ .cX-Chat-Text-Container {
501
+ display: flex;
502
+ width: 100%;
503
+ min-height: 100px;
504
+ background: #ffffff;
505
+ pointer-events: none;
506
+ }
507
+
508
+ .cX-Chat-Text-Area-Container {
509
+ width: calc(100% - 46px);
510
+ padding: 8px;
511
+ box-sizing: border-box;
512
+ position: relative;
513
+ pointer-events: none;
514
+ }
515
+
516
+ .cX-Chat-Question {
478
517
  margin: 0;
479
- display: inline;;
518
+ outline: none;
519
+ font-size: medium;
520
+ line-height: 1.5;
521
+ color: #0f172a;
522
+ min-height: 50px;
523
+ height: 100%;
524
+ white-space: pre-wrap;
525
+ word-break: break-word;
526
+ pointer-events: auto;
480
527
  }
481
528
 
482
- [contenteditable] {
483
- outline: 0px solid transparent;
529
+ .cX-Chat-Question[empty]:empty::before {
530
+ content: "Ask the LLM to generate a chart...";
531
+ color: #94a3b8;
484
532
  }
485
533
 
486
- div.cX-Chat-Container-Icon {
487
- float: right;
534
+ .cX-Chat-Icon-Container {
535
+ width: 46px;
536
+ display: flex;
537
+ align-items: center;
538
+ justify-content: center;
539
+ cursor: pointer;
540
+ pointer-events: auto;
541
+ }
542
+
543
+ .cX-Chat-Suggestions-Container {
544
+ display: none;
545
+ padding: 12px 18px 18px 18px;
546
+ border-top: 1px solid #e2e8f0;
547
+ background: #fafafa;
548
+ }
549
+
550
+ .cX-Chat-Suggestions {
551
+ display: flex;
552
+ flex-wrap: wrap;
553
+ gap: 6px;
554
+ min-height: 30px;
555
+ max-height: 200px;
556
+ overflow-y: auto;
557
+ padding-bottom: 5px;
558
+ }
559
+
560
+ .cX-Chat-Thumbs-Container {
561
+ width: 100%;
562
+ height: 36px;
563
+ background: #f8fafc;
564
+ border-top: 1px solid #e2e8f0;
565
+ display: none;
566
+ align-items: center;
567
+ padding: 0 10px;
568
+ gap: 12px;
569
+ box-sizing: border-box;
570
+ }
571
+
572
+ .cX-Chat-Output {
573
+ width: 100%;
574
+ max-width: 900px;
575
+ margin-top: 5px;
576
+ min-height: 100px;
577
+ padding: 5px;
578
+ outline: none;
488
579
  border: none;
489
- background-color: var(--cx-color-transparent);
580
+ font-family: monospace;
581
+ font-size: 13px;
582
+ box-sizing: border-box;
583
+ resize: vertical;
584
+ display: none;
490
585
  }
491
586
 
492
- div.cX-Chat-Container-Thumbs {
493
- float: left;
587
+ .cX-Chat-Output {
588
+ width: 100%;
589
+ max-width: 900px;
590
+ margin-top: 5px;
591
+ min-height: 100px;
592
+ padding: 5px;
593
+ outline: none;
494
594
  border: none;
495
- background-color: var(--cx-color-transparent);
496
- margin: 0;
595
+ font-family: monospace;
596
+ font-size: 13px;
597
+ box-sizing: border-box;
598
+ resize: vertical;
599
+ display: none;
497
600
  }
498
601
 
499
- svg.cX-Chat-Thumbs {
602
+ /*
603
+ * Chat Output Container (Tabs & Content)
604
+ */
605
+ div.cX-Chat-Output-Container {
606
+ position: absolute;
607
+ width: calc(var(--base-w) + 18px);
608
+ height: calc(var(--base-h) + 82px);
609
+ background-color: var(--cx-background-widgets-color);
610
+ border: var(--cx-border);
611
+ border-radius: var(--cx-border-radius);
612
+ z-index: 10005;
613
+ display: none; /* Toggled by JS */
614
+ box-sizing: border-box;
615
+ overflow: hidden;
616
+ cursor: move;
617
+ }
618
+
619
+ /* Close Button */
620
+ img.cX-Chat-Output-Close,
621
+ svg.cX-Chat-Output-Close {
622
+ position: absolute;
623
+ top: 8px;
624
+ right: 8px;
625
+ cursor: pointer;
626
+ z-index: 10;
500
627
  background: var(--cx-color-transparent) !important;
501
628
  border: none !important;
502
629
  box-shadow: 0 0 0px var(--cx-color-transparent) !important;
503
- cursor: default;
504
- float: left;
505
630
  }
506
631
 
507
- /****************
508
- * LLM Examples *
509
- ****************/
510
-
511
- div.cX-LLM-window {
512
- position: absolute;
513
- border: 1px solid #555555;
514
- max-width: 545px;
515
- overflow: hidden;
516
- border-radius: var(--cx-border-radius);
517
- background-color: var(--cx-color-extra-light-gray);
518
- z-index: 10000;
632
+ /* Tabs */
633
+ button.cX-Chat-Output-Tab {
634
+ display: inline-block;
635
+ vertical-align: bottom;
636
+ background-color: var(--cx-background-hover-color);
637
+ border: var(--cx-border);
638
+ border-bottom: none;
639
+ padding: 5px 10px;
640
+ margin: 10px 0 0 10px;
641
+ cursor: pointer;
642
+ font: var(--cx-large-font);
643
+ color: var(--cx-font-color);
644
+ border-radius: var(--cx-border-radius) var(--cx-border-radius) 0 0;
645
+ outline: none;
646
+ position: relative;
647
+ top: 1px; /* Overlaps the content border to look like a real tab */
648
+ z-index: 1;
649
+ box-sizing: border-box;
650
+ line-height: 24px;
519
651
  }
520
652
 
521
- a.cX-LLM-window-close {
522
- position: sticky;
523
- top: 0;
524
- left: 500px;
525
- font-size: xx-large;
653
+ /* Adds a small gap between the first and second tab */
654
+ button.cX-Chat-Output-Tab + button.cX-Chat-Output-Tab {
655
+ margin-left: 4px;
526
656
  }
527
657
 
528
- div.cX-LLM-examples {
529
- position: relative;
530
- overflow: scroll;
531
- max-height: 800px;
658
+ button.cX-Chat-Output-Tab:hover {
659
+ background-color: var(--cx-background-widgets-color);
532
660
  }
533
661
 
534
- div.cX-LLM-content {
535
- top: 25px;
536
- left: 25px;
537
- position: absolute;
662
+ button.cX-Chat-Output-Tab.Active {
663
+ background-color: var(--cx-background-widgets-color);
664
+ font: var(--cx-large-font-bold);
665
+ border-bottom: 1px solid var(--cx-background-widgets-color);
666
+ z-index: 3;
538
667
  }
539
668
 
540
- div.cX-LLM-container {
541
- border: 1px solid #d3d3d3;
669
+ /* Tab Content Containers (Scrollable) */
670
+ div.cX-Chat-Graphical-Output,
671
+ textarea.cX-Chat-Code-Output {
672
+ display: block;
673
+ clear: both;
674
+ width: 100%;
675
+ height: calc(100% - 46px);
676
+ /* 500px total - 46px for the tabs area */
677
+ border: none;
678
+ border-top: var(--cx-border);
679
+ background-color: var(--cx-background-widgets-color);
680
+ color: var(--cx-font-color);
681
+ overflow: auto;
682
+ /* Enables scrolling for the tab content */
683
+ padding: 10px;
684
+ box-sizing: border-box;
542
685
  position: relative;
543
- border-radius: 4px;
544
- background: white;
545
- float: left;
546
- margin: 5px;
547
- max-width: 810px;
686
+ z-index: 2;
687
+ margin: 0;
548
688
  }
549
689
 
550
- div.cX-LLM-title {
690
+ .cX-Chat-Graphical-Output {
551
691
  position: relative;
552
- height: 40px;
553
- line-height: 40px;
554
- border-radius: 4px;
555
- font-size: 22px;
556
- overflow: hidden;
557
- white-space: nowrap;
558
- text-overflow: ellipsis;
559
- text-align: center !important;
692
+ display: flex;
693
+ flex-direction: column;
694
+ align-items: center;
695
+ width: 100%;
696
+ padding-top: 50px;
697
+ /* Pushes the graph div below the absolutely positioned buttons */
698
+ box-sizing: border-box;
699
+ }
700
+
701
+ .cX-Chat-Graphical-Output-Graph {
702
+ width: var(--base-w);
703
+ height: var(--base-h);
704
+ margin-top: 20px;
705
+ }
706
+
707
+ /* Specific styling for the code textarea */
708
+ textarea.cX-Chat-Code-Output {
709
+ resize: none;
710
+ outline: none;
711
+ font-family: monospace;
712
+ font-size: var(--cx-large-font-size);
713
+ white-space: pre;
714
+ }
715
+
716
+ /* Color Coding Classes */
717
+ .hint {
718
+ padding: 4px 10px;
719
+ border-radius: 16px;
720
+ font-size: 12px;
721
+ cursor: pointer;
560
722
  font-weight: bold;
561
- border-bottom: 1px solid var(--cx-color-light-gray);
723
+ transition: all 0.2s;
724
+ user-select: none;
725
+ border: 1px solid transparent;
726
+ background: #f1f5f9;
727
+ color: #475569;
728
+ border-color: #e2e8f0;
562
729
  }
563
730
 
564
- div.cX-LLM-plot {
565
- display: flex;
566
- align-items: center;
567
- justify-content: center;
568
- margin: 8px;
731
+ .hint.graph {
732
+ background: #f3e8ff;
733
+ color: #9333ea;
734
+ border-color: #e9d5ff;
735
+ }
736
+
737
+ .hint.graph:hover {
738
+ background: #9333ea;
739
+ color: white;
740
+ }
741
+
742
+ .hint.column {
743
+ background: #eff6ff;
744
+ color: #2563eb;
745
+ border-color: #dbeafe;
746
+ }
747
+
748
+ .hint.column:hover {
749
+ background: #2563eb;
750
+ color: white;
751
+ }
752
+
753
+ .hint.map_name {
754
+ background: #e0e7ff;
755
+ color: #3730a3;
756
+ border-color: #c7d2fe;
757
+ }
758
+
759
+ .hint.data,
760
+ .hint.data_multi {
761
+ background: #ccfbf1;
762
+ color: #0d9488;
763
+ border-color: #99f6e4;
764
+ }
765
+
766
+ .hint.data:hover,
767
+ .hint.data_multi:hover {
768
+ background: #0d9488;
769
+ color: white;
770
+ }
771
+
772
+ .hint.text {
773
+ background: #fce7f3;
774
+ color: #db2777;
775
+ border-color: #fbcfe8;
776
+ }
777
+
778
+ .hint.text:hover {
779
+ background: #db2777;
780
+ color: white;
781
+ }
782
+
783
+ .hint.number {
784
+ background: #fef08a;
785
+ color: #b45309;
786
+ border-color: #fde047;
787
+ }
788
+
789
+ .hint.enum {
790
+ background: #ffedd5;
791
+ color: #ea580c;
792
+ border-color: #fed7aa;
793
+ }
794
+
795
+ .hint.enum:hover {
796
+ background: #ea580c;
797
+ color: white;
798
+ }
799
+
800
+ .hint.toggle {
801
+ background: #dcfce7;
802
+ color: #16a34a;
803
+ border-color: #bbf7d0;
804
+ }
805
+
806
+ .hint.toggle:hover {
807
+ background: #16a34a;
808
+ color: white;
809
+ }
810
+
811
+ .hint.filter,
812
+ .hint.sort {
813
+ background: #fee2e2;
814
+ color: #dc2626;
815
+ border-color: #fecaca;
816
+ }
817
+
818
+ .hint.filter:hover,
819
+ .hint.sort:hover {
820
+ background: #dc2626;
821
+ color: white;
822
+ }
823
+
824
+ .hint.connector {
825
+ background: #f1f5f9;
826
+ color: #64748b;
827
+ border-color: #cbd5e1;
828
+ }
829
+
830
+ .hint.connector:hover {
831
+ background: #64748b;
832
+ color: white;
833
+ }
834
+
835
+ .hint.finish {
836
+ background: #fef3c7;
837
+ color: #92400e;
838
+ border-color: #fde68a;
839
+ }
840
+
841
+ .hint.finish:hover {
842
+ background: #d97706;
843
+ color: white;
844
+ }
845
+
846
+ .hint.disabled {
847
+ background: #f8fafc;
848
+ color: #94a3b8;
849
+ border-color: #e2e8f0;
850
+ cursor: default;
569
851
  }
570
852
 
571
853
  /***************