meta_workflows 0.9.9 → 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 +4 -4
- data/app/assets/images/lexi-expanded2.png +0 -0
- data/app/assets/javascripts/meta_workflows/controllers/onboarding_controller.js +31 -0
- data/app/assets/stylesheets/meta_workflows/application.css +142 -3
- data/app/controllers/meta_workflows/meta_controller.rb +0 -1
- data/app/views/meta_workflows/_lexi_chat_alpha_tray.html.erb +20 -27
- data/lib/meta_workflows/version.rb +1 -1
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da33fe899987ea382b188f0c9056155a1d40089422a73f676e68f4cd138a61ce
|
4
|
+
data.tar.gz: 5260bf938ba32055af4487a2ddf696419e066f6038ca8bf26da661a1f3382457
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 80a92e4f1083182254aa04fff0d25cb027fecdac86c7d4be3cad0c2eb549dd4e1eee618c62ff44fe27d7829f905b1f9409a23fd7e8cd4430280213702f8b66b5
|
7
|
+
data.tar.gz: 2aa86b2638f5a50e4f6d50b66376f7788d1e9948c496d9ad688f3ede119ac5dba2411809d0fcc199f716579ef68a5369e4b198d885b23f5c010746788bf4df8e
|
Binary file
|
@@ -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
|
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
|
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
|
}
|
@@ -8,7 +8,6 @@ module MetaWorkflows
|
|
8
8
|
@workflow_execution = MetaWorkflows::WorkflowExecution.includes(:record, :workflow,
|
9
9
|
:workflow_steps).find(params[:id])
|
10
10
|
@record = @workflow_execution.record
|
11
|
-
@workflow = @workflow_execution.workflow
|
12
11
|
@workflow_step = @workflow_execution.workflow_steps.find_by(step: @workflow_execution.current_step)
|
13
12
|
@prompt_id = @workflow_execution.prompt_id(@workflow_execution.current_step)
|
14
13
|
end
|
@@ -1,41 +1,34 @@
|
|
1
1
|
<%# Lexi Chat Alpha Tray (Center Display) %>
|
2
|
-
<div class="
|
3
|
-
<%# Header with Lexi logo and
|
4
|
-
<div class="
|
5
|
-
<div class="
|
6
|
-
<%= image_tag("lexi_logo_color.png", alt: "Lexi Logo", class: "
|
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="
|
9
|
-
<button type="button" class="
|
10
|
-
<i class="fa-solid fa-
|
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
|
-
|
19
|
-
<div class="
|
20
|
-
|
21
|
-
<div class="
|
22
|
-
<%= image_tag("lexi-
|
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
|
-
|
26
|
-
<div class="
|
27
|
-
<%#
|
28
|
-
<div id="main-scroll-container" class="
|
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="
|
34
|
-
|
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 =
|
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.
|
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
|