Previews

No matching results.

x
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<div class="w-3/4 flex flex-col items-stretch gap-10">
<div class="w-full items-center">
<div class="lui-ai-prompt">
<div class="lui-ai-prompt__header">
<div class="lui-ai-prompt__title-desc">
<div class="lui-ai-prompt__title-row">
<div class="lui-ai-prompt__icon-title-container">
<div class="lui-ai-prompt__icon">
<img alt="LoopOS AI" class="w-full h-full object-contain" src="/assets/app_logos/LoopOS_AI-Symbol-56bc60d9.png" />
</div>
<p class="lui-ai-prompt__title">
LoopOS AI
</p>
</div>
<div class="lui-ai-prompt__state-label">
<span id="lui-token_5793709857" class="lui-token lui-entity-token lui-entity-token-general" style="color: #212529;">
<span class="lui-token__text">BETA</span>
<div class="lui-token__actions">
</div>
</span>
</div>
</div>
<p class="lui-ai-prompt__description">
Start the prompt with an action. Give all the needed details.
</p>
</div>
</div>
<div class="lui-ai-prompt__input-row">
<div class="w-full ">
<div
class="lui-ai-input__wrapper lui-ai-animated-border "
data-controller="input-ai"
data-input-ai-spinner-value="true"
data-input-ai-max-rows-value="8"
>
<textarea
data-input-ai-target="input"
rows="1"
placeholder="Type your prompt..."
class="lui-ai-input__input lui-ai-input__textarea"
style="--lui-ai-max-rows: 8;"
></textarea>
<div data-input-ai-target="buttonWrapper" class="lui-ai-input__button-wrapper lui-ai-input__button-wrapper--center">
<button class="lui-ai-input__button" data-controller="lui--button" data-input-ai-target="button" data-action="click->input-ai#handleButtonClick" type="button">
<div class="opacity-100 inline-flex" data-lui--button-target="leadingIcon">
<div class="flex items-center justify-center" style="width: 16px; height: 16px;"><i class="lui-button__icon lui-button__icon--default fa-solid fa-paper-plane-top" data-lui--button-target="leadingIcon"></i></div>
</div>
<div class="absolute w-full flex items-center justify-center opacity-0" data-lui--button-target="loadingIcon">
<i class="lui-m_icon animate-spin material-symbols-outlined" style="--lui-micon-size: 16px;">
progress_activity
</i>
</div>
</button>
<i
data-input-ai-target="spinner"
class="fa-solid fa-spinner fa-spin lui-ai-input__spinner"
></i>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="ai-preview-output" class="bg-gray-100 rounded p-3 min-h-10 text-secondary-xxs-regular text-gray-800 break-words">
<span class="italic text-gray-500">This area is for testing purposes only.</span>
</div>
</div>
<script>
(function() {
var output = document.getElementById("ai-preview-output");
document.addEventListener("ai-input:submit", function(event) {
output.innerHTML = "<em>Thinking...</em>";
var prompt = event.detail.value;
var target = event.target;
setTimeout(function() {
target.dispatchEvent(new CustomEvent("ai-input:reset", { bubbles: true }));
output.innerHTML = "<strong>Prompt submitted:</strong><br>" + prompt;
}, 5000);
});
})();
</script>

No Usage documentation to display.

Create a markdown file in /project/test/components/loopos_ui/usage_documentation/form_entry_ai.md.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<%
params[:title] ||= "LoopOS AI"
params[:description] = "Start the prompt with an action. Give all the needed details." unless params.key?(:description)
params[:placeholder] = "Type your prompt..." unless params.key?(:placeholder)
params[:spinner] = true unless params.key?(:spinner)
params[:max_rows] = 7 unless params.key?(:max_rows)
params[:disabled] = false unless params.key?(:disabled)
%>
<div class="w-3/4 flex flex-col items-stretch gap-10">
<div class="w-full items-center">
<%= render LooposUi::FormEntryAi.new(
title: params[:title],
description: params[:description],
placeholder: params[:placeholder],
spinner: params[:spinner],
max_rows: params[:max_rows],
disabled: params[:disabled],
tooltip: params[:tooltip]
) %>
</div>
<div id="ai-preview-output" class="bg-gray-100 rounded p-3 min-h-10 text-secondary-xxs-regular text-gray-800 break-words">
<span class="italic text-gray-500">This area is for testing purposes only.</span>
</div>
</div>
<script>
(function() {
var output = document.getElementById("ai-preview-output");
document.addEventListener("ai-input:submit", function(event) {
output.innerHTML = "<em>Thinking...</em>";
var prompt = event.detail.value;
var target = event.target;
setTimeout(function() {
target.dispatchEvent(new CustomEvent("ai-input:reset", { bubbles: true }));
output.innerHTML = "<strong>Prompt submitted:</strong><br>" + prompt;
}, 5000);
});
})();
</script>
Param Description Input

Prompt title

Prompt description

Input placeholder

Show loading spinner

Maximum number of rows

Disable input and submit action

Tooltip shown when disabled or when enabled