@@ -198,18 +198,17 @@ <h3 class="text-sm font-semibold mb-1">Download AI Model</h3>
198198 </ div >
199199 </ template >
200200
201- <!-- Generating indicator -->
202- < template x-if ="generating ">
203- < div class ="px-4 pt-4 pb-3 ">
204- < div class ="flex items-center gap-2 text-xs text-foreground/50 ">
205- < div
206- class ="w-3.5 h-3.5 border-2 border-primary/50 border-t-transparent rounded-full animate-spin "
207- >
208- </ div >
209- < span > Searching your library and generating playlist...</ span >
210- </ div >
201+ <!-- Generating spinner -->
202+ < div
203+ x-show ="generating "
204+ class ="flex flex-col items-center justify-center h-full gap-4 "
205+ >
206+ < div
207+ class ="w-14 h-14 border-[3px] border-foreground border-t-transparent rounded-full animate-spin "
208+ >
211209 </ div >
212- </ template >
210+ < p class ="text-sm text-foreground/40 "> Generating playlist...</ p >
211+ </ div >
213212
214213 <!-- History -->
215214 < div class ="px-4 pb-4 " x-show ="history.length > 0 ">
@@ -248,7 +247,7 @@ <h3 class="text-sm font-semibold mb-1">Download AI Model</h3>
248247 < div class ="relative ">
249248 < textarea
250249 x-model ="prompt "
251- @keydown.shift. enter.prevent ="generate() "
250+ @keydown.enter.prevent ="if (!$event.shiftKey) generate(); else { $event.target.setRangeText('\n', $event.target.selectionStart, $event.target.selectionEnd, 'end') } "
252251 placeholder ="Describe a playlist... "
253252 class ="w-full text-sm bg-muted/50 border border-border rounded-lg px-3 py-2.5 pr-14 resize-none focus:outline-none focus:ring-1 focus:ring-primary/50 focus:border-primary/50 placeholder:text-foreground/30 "
254253 rows ="2 "
@@ -260,30 +259,22 @@ <h3 class="text-sm font-semibold mb-1">Download AI Model</h3>
260259 :disabled ="!prompt.trim() || generating "
261260 class ="absolute right-2 top-1/2 -translate-y-1/2 p-2 rounded-lg transition-colors "
262261 :class ="prompt.trim() && !generating ? 'text-primary hover:bg-primary/10' : 'text-foreground/20 cursor-not-allowed' "
263- title ="Generate (Shift+ Enter) "
262+ title ="Generate (Enter) "
264263 data-testid ="genius-generate "
265264 >
266- < template x-if ="!generating ">
267- < svg class ="w-6 h-6 " fill ="none " stroke ="currentColor " viewBox ="0 0 24 24 ">
268- < path
269- stroke-linecap ="round "
270- stroke-linejoin ="round "
271- stroke-width ="2 "
272- d ="M13 7l5 5m0 0l-5 5m5-5H6 "
273- >
274- </ path >
275- </ svg >
276- </ template >
277- < template x-if ="generating ">
278- < div
279- class ="w-6 h-6 border-2 border-primary border-t-transparent rounded-full animate-spin "
265+ < svg class ="w-6 h-6 " fill ="none " stroke ="currentColor " viewBox ="0 0 24 24 ">
266+ < path
267+ stroke-linecap ="round "
268+ stroke-linejoin ="round "
269+ stroke-width ="2 "
270+ d ="M13 7l5 5m0 0l-5 5m5-5H6 "
280271 >
281- </ div >
282- </ template >
272+ </ path >
273+ </ svg >
283274 </ button >
284275 </ div >
285276 < p class ="text-[10px] text-foreground/30 mt-1.5 px-1 ">
286- Press Shift+ Enter to generate, Enter for new line
277+ Press Enter to generate, Shift+ Enter for new line
287278 </ p >
288279 </ div >
289280 </ div >
0 commit comments