meta_workflows 0.9.10 → 0.9.11

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a82054f7053b61a025c31d2469c8e2cb6a7c5aff3645047c180b12f228a3c046
4
- data.tar.gz: bc101df970452eb0f3cb6b291bd77381be9a6f129fa4011c231c5dd82955e1de
3
+ metadata.gz: da33fe899987ea382b188f0c9056155a1d40089422a73f676e68f4cd138a61ce
4
+ data.tar.gz: 5260bf938ba32055af4487a2ddf696419e066f6038ca8bf26da661a1f3382457
5
5
  SHA512:
6
- metadata.gz: a31a5da810855e6751304f68276214a8b6f30cc657ace268b326ffa6f89210050e0ab3ed6b4727c33858908a7e3a1c41e18cfbedf7dd27996c94f286b26ab563
7
- data.tar.gz: 9ea86df7931e4dc0d7482e7ce6bbd7c1d3d760d6e3cd9950d5d2d7b9bb02a55cbcc7b3d40571d6f41de8f38d96f4c0056683eab267caa89591df049572a8af47
6
+ metadata.gz: 80a92e4f1083182254aa04fff0d25cb027fecdac86c7d4be3cad0c2eb549dd4e1eee618c62ff44fe27d7829f905b1f9409a23fd7e8cd4430280213702f8b66b5
7
+ data.tar.gz: 2aa86b2638f5a50e4f6d50b66376f7788d1e9948c496d9ad688f3ede119ac5dba2411809d0fcc199f716579ef68a5369e4b198d885b23f5c010746788bf4df8e
@@ -0,0 +1,31 @@
1
+ import { Controller } from "@hotwired/stimulus"
2
+
3
+ export default class extends Controller {
4
+ static targets = ["welcome", "chat", "welcomeContent", "lexiIcon"]
5
+
6
+ connect() {
7
+ // Ensure initial state using CSS classes
8
+ this.welcomeTarget.classList.remove("fade-out")
9
+ this.chatTarget.classList.remove("expand-in")
10
+ }
11
+
12
+ startChat() {
13
+ // Start the grid stacking animation sequence
14
+ this.fadeOutWelcome()
15
+
16
+ // Chat expands in after welcome starts fading (grid stacking handles timing)
17
+ setTimeout(() => {
18
+ this.expandInChat()
19
+ }, 100) // Small delay to ensure welcome animation starts first
20
+ }
21
+
22
+ fadeOutWelcome() {
23
+ // Use CSS animation classes instead of display properties
24
+ this.welcomeTarget.classList.add("fade-out")
25
+ }
26
+
27
+ expandInChat() {
28
+ // Use CSS animation class - no display manipulation needed
29
+ this.chatTarget.classList.add("expand-in")
30
+ }
31
+ }
@@ -174,7 +174,6 @@
174
174
  align-items: center;
175
175
  justify-content: space-between;
176
176
  padding: 0.5rem 0;
177
- border-bottom: 1px solid var(--gray-200);
178
177
  }
179
178
 
180
179
  .lexi-chat-header-left {
@@ -564,7 +563,7 @@
564
563
 
565
564
  /* Show floating Lexi avatar button when collapsed - with delay to avoid overlap */
566
565
  .gamma-tray.lexi-tray.collapsed .lexi-floating-avatar {
567
- display: block !important;
566
+ display: block;
568
567
  opacity: 0;
569
568
  animation: lexi-avatar-appear 200ms ease-in-out 400ms forwards;
570
569
  }
@@ -582,5 +581,145 @@
582
581
 
583
582
  /* Hide floating avatar when tray is expanded */
584
583
  .gamma-tray.lexi-tray:not(.collapsed) .lexi-floating-avatar {
585
- display: none !important;
584
+ display: none;
585
+ }
586
+
587
+ /* Onboarding Screen Grid Stacking Animations */
588
+ .onboarding-container {
589
+ display: grid;
590
+ grid-template-columns: 1fr;
591
+ grid-template-rows: 1fr;
592
+ width: 100%;
593
+ height: 100vh;
594
+ }
595
+
596
+ .welcome-screen, .chat-screen {
597
+ grid-column: 1;
598
+ grid-row: 1;
599
+ }
600
+
601
+ /* Welcome screen - starts normal, fades out */
602
+ .welcome-screen {
603
+ opacity: 1;
604
+ transition: opacity 0.6s ease-in-out;
605
+ z-index: 10;
606
+ }
607
+
608
+ .welcome-screen.fade-out {
609
+ opacity: 0;
610
+ }
611
+
612
+ /* Chat screen - starts hidden, fades in */
613
+ .chat-screen {
614
+ opacity: 0;
615
+ pointer-events: none; /* Don't block clicks when hidden */
616
+ transition: opacity 0.8s ease-in-out 0.3s; /* 0.3s delay after welcome starts fading */
617
+ z-index: 15; /* Higher than welcome screen */
618
+ }
619
+
620
+ .chat-screen.expand-in {
621
+ opacity: 1;
622
+ pointer-events: auto; /* Re-enable clicks when visible */
623
+ }
624
+
625
+ /* Legacy animation states for backwards compatibility */
626
+ .welcome-content.fade-out {
627
+ opacity: 0;
628
+ transition: opacity 0.5s ease-in-out;
629
+ }
630
+
631
+ .lexi-icon-container.fade-out {
632
+ opacity: 0;
633
+ transition: opacity 0.5s ease-in-out;
634
+ }
635
+
636
+ /* Alpha Tray Lexi Avatar Size */
637
+ .lexi-avatar-large {
638
+ height: 35rem;
639
+ width: auto;
640
+ }
641
+
642
+ /* Alpha Tray Specific Styles */
643
+ .lexi-chat-alpha-tray {
644
+ position: relative;
645
+ display: flex;
646
+ flex-direction: column;
647
+ background-color: white;
648
+ padding: 1rem 1rem 0 1rem;
649
+ height: 100%;
650
+ }
651
+
652
+ .lexi-chat-alpha-header {
653
+ display: flex;
654
+ align-items: center;
655
+ justify-content: space-between;
656
+ padding-bottom: 1rem;
657
+ }
658
+
659
+ .lexi-chat-alpha-header-left {
660
+ display: flex;
661
+ align-items: center;
662
+ }
663
+
664
+ .lexi-chat-alpha-header-right {
665
+ display: flex;
666
+ align-items: center;
667
+ }
668
+
669
+ .lexi-chat-alpha-logo {
670
+ height: 80px;
671
+ width: auto;
672
+ }
673
+
674
+ .lexi-chat-alpha-close-button {
675
+ padding: 0.5rem;
676
+ border-radius: 0.75rem;
677
+ background: none;
678
+ border: none;
679
+ cursor: pointer;
680
+ transition: background-color 0.2s;
681
+ }
682
+
683
+ .lexi-chat-alpha-close-button:hover {
684
+ background-color: #f3f4f6;
685
+ }
686
+
687
+ .lexi-chat-alpha-content {
688
+ flex: 1;
689
+ display: flex;
690
+ gap: 1rem;
691
+ min-height: 0;
692
+ }
693
+
694
+ .lexi-chat-alpha-left-column {
695
+ display: flex;
696
+ flex-direction: column;
697
+ justify-content: flex-end;
698
+ flex-shrink: 0;
699
+ }
700
+
701
+ .lexi-chat-alpha-right-column {
702
+ flex: 1;
703
+ display: flex;
704
+ flex-direction: column;
705
+ min-height: 0;
706
+ }
707
+
708
+ .lexi-chat-alpha-messages {
709
+ flex: 1;
710
+ overflow-y: auto;
711
+ min-height: 0;
712
+ padding-bottom: 1rem;
713
+ }
714
+
715
+ .lexi-chat-alpha-messages > * + * {
716
+ margin-top: 1rem;
717
+ }
718
+
719
+ .lexi-chat-alpha-input-area {
720
+ flex-shrink: 0;
721
+ }
722
+
723
+ .lexi-chat-alpha-input-container {
724
+ width: 100%;
586
725
  }
@@ -1,41 +1,34 @@
1
1
  <%# Lexi Chat Alpha Tray (Center Display) %>
2
- <div class="relative flex flex-col lexi-chat-container bg-white px-4">
3
- <%# Header with Lexi logo and action icons - spans full width %>
4
- <div class="flex-shrink-0 flex items-center justify-between pb-2 border-b border-gray-200">
5
- <div class="flex items-center space-x-2">
6
- <%= image_tag("lexi_logo_color.png", alt: "Lexi Logo", class: "h-14 w-auto") %>
2
+ <div class="lexi-chat-alpha-tray lexi-chat-container">
3
+ <%# Header with Lexi logo left and close button right %>
4
+ <div class="lexi-chat-alpha-header">
5
+ <div class="lexi-chat-alpha-header-left">
6
+ <%= image_tag("lexi_logo_color.png", alt: "Lexi Logo", class: "lexi-chat-alpha-logo") %>
7
7
  </div>
8
- <div class="flex items-center gap-2">
9
- <button type="button" class="p-2 rounded-xl hover:bg-gray-100" aria-label="New Chat" disabled>
10
- <i class="fa-solid fa-plus text-xl"></i>
11
- </button>
12
- <button type="button" class="p-2 rounded-xl hover:bg-gray-100" aria-label="Chat History" disabled>
13
- <i class="fa-solid fa-clock-rotate-left text-xl"></i>
8
+ <div class="lexi-chat-alpha-header-right">
9
+ <button type="button" class="lexi-chat-alpha-close-button" aria-label="Close" disabled>
10
+ <i class="fa-solid fa-times text-xl"></i>
14
11
  </button>
15
12
  </div>
16
13
  </div>
17
14
 
18
- <!-- Content area with chat and Lexi side by side -->
19
- <div class="flex-1 flex min-h-0">
20
- <!-- Lexi auto-width side column -->
21
- <div class="flex-shrink-0 flex flex-col justify-end">
22
- <%= image_tag("lexi-expanded.png", alt: "Lexi Avatar", class: "lexi-avatar-large w-auto") %>
15
+ <%# Main content: Left column (Lexi image) and Right column (Chat + Input) %>
16
+ <div class="lexi-chat-alpha-content">
17
+ <%# Left column - Lexi image %>
18
+ <div class="lexi-chat-alpha-left-column">
19
+ <%= image_tag("lexi-expanded2.png", alt: "Lexi Avatar", class: "lexi-avatar-large") %>
23
20
  </div>
24
21
 
25
- <!-- Main content area (chat + input) -->
26
- <div class="flex-1 flex flex-col min-h-0">
27
- <%# Chat messages area %>
28
- <div id="main-scroll-container" class="flex-1 overflow-y-auto py-4 space-y-4 min-h-0">
22
+ <%# Right column - Chat and Input %>
23
+ <div class="lexi-chat-alpha-right-column">
24
+ <%# Scrollable chat messages area %>
25
+ <div id="main-scroll-container" class="lexi-chat-alpha-messages">
29
26
  <%= render partial: meta_loader, locals: {record: local_assigns[:record], step_progress: ["Generating draft course objectives...", "Talking to the LLM..."] } %>
30
27
  </div>
31
28
 
32
- <%# Input area %>
33
- <div class="flex-shrink-0 pt-4 pb-10">
34
- <!-- Recording notice -->
35
- <p class="text-left text-xs text-purple-800 mb-2">This chat is being recorded.</p>
36
-
37
- <!-- Input form -->
38
- <div class="w-full">
29
+ <%# Input area (fixed at bottom) %>
30
+ <div class="lexi-chat-alpha-input-area">
31
+ <div class="lexi-chat-alpha-input-container">
39
32
  <% active_execution = local_assigns[:record]&.workflow_executions&.order(created_at: :desc)&.first %>
40
33
  <%= render partial: meta_response_form, locals: {record: local_assigns[:record], response_enabled: true, workflow_execution_id: active_execution&.id, chat_id: active_execution&.workflow_steps&.last&.chat&.id, step_has_repetitions: true } %>
41
34
  </div>
@@ -3,7 +3,7 @@
3
3
  module MetaWorkflows
4
4
  MAJOR = 0
5
5
  MINOR = 9
6
- PATCH = 10 # this is automatically incremented by the build process
6
+ PATCH = 11 # this is automatically incremented by the build process
7
7
 
8
8
  VERSION = "#{MetaWorkflows::MAJOR}.#{MetaWorkflows::MINOR}.#{MetaWorkflows::PATCH}".freeze
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: meta_workflows
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.10
4
+ version: 0.9.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Leonid Medovyy
@@ -117,10 +117,12 @@ files:
117
117
  - app/assets/images/lexi-chaticon.png
118
118
  - app/assets/images/lexi-collapsed.png
119
119
  - app/assets/images/lexi-expanded.png
120
+ - app/assets/images/lexi-expanded2.png
120
121
  - app/assets/images/lexi_logo_color.png
121
122
  - app/assets/javascripts/meta_workflows/controllers/lexi_form_submit_controller.js
122
123
  - app/assets/javascripts/meta_workflows/controllers/loading_phrases_controller.js
123
124
  - app/assets/javascripts/meta_workflows/controllers/meta_flash_controller.js
125
+ - app/assets/javascripts/meta_workflows/controllers/onboarding_controller.js
124
126
  - app/assets/javascripts/meta_workflows/controllers/redirect_controller.js
125
127
  - app/assets/javascripts/meta_workflows/controllers/response_scroll_controller.js
126
128
  - app/assets/javascripts/meta_workflows/controllers/tray_controller.js