PageSourceSearch

https://leks-forever-lez-rus-2.hf.space/assets/Index-BZjnJz9D.js

js leks-forever-lez-rus-2.hf.space collected 2026-10-03 10:20:15 UTC 18,458 bytes, 592 lines download raw bytes

1import { p as prop, e as init, i as if_block, d as bind_this, f as set_style, b as set_class, k as each, u as index } from './i18n-CGlVUOvE.js';
2import { M as push, a8 as onMount, Y as legacy_pre_effect, y as deep_read_state, I as tick, Z as get, _ as legacy_pre_effect_reset, t as template_effect, w as untrack, U as event, a as append, O as pop, a0 as mutable_source, $ as set, P as flushSync, Q as child, S as sibling, R as from_html, T as reset, a3 as comment, N as first_child, aj as remove_textarea_child, X as set_text, a4 as text } from './index-Bq2njFOY.js';
3import { b as bind_value } from './input-CXpCw23l.js';
4import './StreamingBar.svelte_svelte_type_style_lang-DWGn5tT_.js';
5import './ScrollFade.svelte_svelte_type_style_lang-D0JPkGar.js';
6import './MarkdownCode.svelte_svelte_type_style_lang-B29zDiob.js';
7import { C as Code } from './Code-DQLc8-1z.js';
8/* empty css                                               */
9import { M as Markdown } from './Index.svelte_svelte_type_style_lang-BIr0F_Dm.js';
10/* empty css                                               */
11import './html-Bwif0JPw.js';
12import './snippet-BG7qkY_1.js';
13import './prism-python-NrKIQnfs.js';
14import './actions-CgRQ2lHA.js';
15import './utils.svelte-Bi9ASwv9.js';
16import './Check-BKMHx_DF.js';
17import './Copy-BQlJe6-D.js';
18import './MarkdownCode-BYKuypS7.js';
19import './IconButtonWrapper-DAsvkfJg.js';
20
21var root_3 = from_html(`<span class="added svelte-1s2fnws"> </span>`);
22var root_4 = from_html(`<span class="removed svelte-1s2fnws"> </span>`);
23var root_2 = from_html(`<span class="diff-stats svelte-1s2fnws"><!> <!></span>`);
24var root_7 = from_html(`<button class="undo-button svelte-1s2fnws" title="Undo this change">Undo</button>`);
25var root_6 = from_html(`<div><div class="message-content svelte-1s2fnws"><span class="message-text svelte-1s2fnws"><!></span> <!></div></div>`);
26var root_8 = from_html(`<div class="no-messages svelte-1s2fnws">No messages yet</div>`);
27var root_10 = from_html(`<button class="starter-query-button svelte-1s2fnws"> </button>`);
28var root_9 = from_html(`<div class="starter-queries-container svelte-1s2fnws"><div class="starter-queries svelte-1s2fnws"></div></div>`);
29var root_5 = from_html(`<div class="message-history svelte-1s2fnws"><!> <!> <!></div>`);
30var root_12 = from_html(`<div class="code-content svelte-1s2fnws"><div class="code-editor-container svelte-1s2fnws"><!></div> <button><!></button> <button class="deploy-to-spaces-button svelte-1s2fnws"><span class="button-content svelte-1s2fnws">Deploy to <svg class="spaces-logo svelte-1s2fnws" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" role="img" preserveAspectRatio="xMidYMid meet" viewBox="0 0 39 40"><path d="M6.3712 2.04427C3.7183 2.04427 1.56771 4.19486 1.56771 6.84776V18.3546V18.6544V32.7341C1.56771 35.3868 3.71818 37.5377 6.3712 37.5377H17.878H20.7507H32.2575C34.9104 37.5377 37.0612 35.387 37.0612 32.7341V21.6204C37.0612 20.177 36.4252 18.8839 35.4189 18.004C36.4576 16.3895 37.0612 14.4666 37.0612 12.4046C37.0612 6.68274 32.4225 2.04427 26.7007 2.04427C24.6388 2.04427 22.7159 2.64776 21.1014 3.68647C20.2214 2.6802 18.9282 2.04427 17.4849 2.04427H6.3712Z" fill="black" class="stroke-white dark:stroke-white/10" stroke-width="3.07552"></path><path d="M9.56855 23.5001C8.8406 23.5001 8.25047 24.0902 8.25047 24.8182V29.5361C8.25047 30.2641 8.8406 30.8542 9.56855 30.8542H14.2864C15.0144 30.8542 15.6045 30.2641 15.6045 29.5361V24.8182C15.6045 24.0902 15.0143 23.5001 14.2864 23.5001H9.56855Z" fill="#FF3270"></path><path d="M24.3409 23.5001C23.613 23.5001 23.0228 24.0902 23.0228 24.8182V29.5361C23.0228 30.2641 23.613 30.8542 24.3409 30.8542H29.0588C29.7868 30.8542 30.3769 30.2641 30.3769 29.5361V24.8182C30.3769 24.0902 29.7868 23.5001 29.0588 23.5001H24.3409Z" fill="#861FFF"></path><path d="M9.56855 8.72815C8.8406 8.72815 8.25047 9.31827 8.25047 10.0462V14.7641C8.25047 15.4921 8.8406 16.0822 9.56855 16.0822H14.2864C15.0144 16.0822 15.6045 15.4921 15.6045 14.7641V10.0462C15.6045 9.31827 15.0143 8.72815 14.2864 8.72815H9.56855Z" fill="#097EFF"></path><path d="M26.6999 8.72815C24.6692 8.72815 23.0228 10.3744 23.0228 12.4052C23.0228 14.4359 24.6692 16.0822 26.6999 16.0822C28.7306 16.0822 30.3769 14.4359 30.3769 12.4052C30.3769 10.3744 28.7306 8.72815 26.6999 8.72815Z" fill="#FFD702"></path></svg> <span style="font-weight: 600;">Spaces</span></span></button></div>`);
31var root_1 = from_html(`<div class="vibe-editor svelte-1s2fnws"><button class="resize-handle svelte-1s2fnws" aria-label="Resize sidebar"></button> <div class="tab-header svelte-1s2fnws"><button>
31Chat</button> <button>Code <!></button></div> <div class="tab-content svelte-1s2fnws"><!></div> <div class="input-section svelte-1s2fnws"><div class="powered-by svelte-1s2fnws">Powered by: <code>gpt-oss</code></div> <textarea placeholder="What can I add or change?" class="prompt-input svelte-1s2fnws"></textarea> <button class="submit-button svelte-1s2fnws">Send</button></div></div>`);
32
33function Index($$anchor, $$props) {
34	push($$props, false);
35
36	let app = prop($$props, 'app', 12);
37	let root = prop($$props, 'root', 12);
38	let prompt = mutable_source("");
39	let editorWidth = mutable_source(350);
40	let isResizing = false;
41	let editorElement = mutable_source();
42	let activeTab = mutable_source("chat");
43	let codeValue = mutable_source("");
44	let diffStats = mutable_source(null);
45	let message_history = mutable_source([]);
46	let history_elem = mutable_source();
47
48	const scroll_to_bottom = (behavior = "smooth") => {
49		if (!get(history_elem)) return;
50
51		get(history_elem).scrollTo({ top: get(history_elem).scrollHeight, behavior });
52	};
53
54	let starterQueries = mutable_source([]);
55
56	const fetchStarterQueries = async () => {
57		const post = app().post_data(`${root()}/gradio_api/vibe-starter-queries/`, {});
58
59		post.then(async ([response, status_code]) => {
60			if (status_code !== 200) {
61				throw new Error(`Error: ${status_code}`);
62			}
63
64			const responseData = response;
65
66			set(starterQueries, responseData.starter_queries);
67		}).catch(async (error) => {
68			console.error("Failed to fetch starter queries:", error);
69		});
70	};
71
72	fetchStarterQueries();
73
74	const submit = async (queryText) => {
75		const textToSubmit = queryText || get(prompt);
76
77		if (textToSubmit.trim() === "") return;
78
79		// Clear diff stats when submitting new prompt
80		set(diffStats, null);
81
82		const userMessageIndex = get(message_history).length;
83
84		set(message_history, [
85			...get(message_history),
86			{ text: textToSubmit, isBot: false }
87		]);
88
89		const botMessageIndex = get(message_history).length;
90
91		set(message_history, [
92			...get(message_history),
93			{ text: "Working...", isBot: true, isPending: true }
94		]);
95
96		await tick();
97		scroll_to_bottom();
98
99		const userPrompt = textToSubmit;
100
101		if (!queryText) {
102			set(prompt, "");
103		}
104
105		const post = app().post_data(`${root()}/gradio_api/vibe-edit/`, { prompt: userPrompt });
106
107		post.then(async ([response, status_code]) => {
108			if (status_code !== 200) {
109				throw new Error(`Error: ${status_code}`);
110			}
111
112			const responseData = response;
113
114			// Update diff stats from response
115			set(diffStats, responseData.diff_stats);
116
117			set(message_history, get(message_history).map((msg, index) => {
118				return index === userMessageIndex ? { ...msg, hash: responseData.hash } : msg;
119			}));
120
121			set(message_history, get(message_history).map((msg, index) => index === botMessageIndex
122				? {
123					text: responseData.reasoning ? responseData.reasoning : "Done.",
124					isBot: true,
125					isPending: false
126				}
127				: msg));
128
129			await tick();
130			scroll_to_bottom();
131		}).catch(async (error) => {
132			set(message_history, get(message_history).map((msg, index) => index === botMessageIndex
133				? { text: "Error occurred.", isBot: true, isPending: false }
134				: msg));
135
136			await tick();
137			scroll_to_bottom();
138		});
139	};
140
141	const handleStarterQuery = async (query) => {
142		await submit(query);
143	};
144
145	const undoMessage = async (hash, messageIndex) => {
146		try {
147			await app().post_data(`${root()}/gradio_api/undo-vibe-edit/`, { hash });
148
149			// Clear diff stats when undoing
150			set(diffStats, null);
151
152			const messageToUndo = get(message_history)[messageIndex];
153
154			set(prompt, messageToUndo.text);
155			set(message_history, get(message_history).slice(0, messageIndex));
156		} catch(error) {
157			console.error("Failed to undo:", error);
158		}
159	};
160
161	const handleResizeStart = (e) => {
162		e.preventDefault();
163		isResizing = true;
164		document.addEventListener("mousemove", handleResizeMove);
165		document.addEventListener("mouseup", handleResizeEnd);
166		document.body.style.cursor = "col-resize";
167		document.body.style.userSelect = "none";
168	};
169
170	const handleResizeMove = (e) => {
171		if (!isResizing) return;
172
173		const minWidth = 250;
174		const maxWidth = Math.min(800, window.innerWidth * 0.5);
175		const newWidth = window.innerWidth - e.clientX;
176
177		set(editorWidth, Math.max(minWidth, Math.min(maxWidth, newWidth)));
178
179		// Dispatch custom event to update the main content margin
180		window.dispatchEvent(new CustomEvent("vibeEditorResize", { detail: { width: get(editorWidth) } }));
181	};
182
183	const handleResizeEnd = () => {
184		isResizing = false;
185		document.removeEventListener("mousemove", handleResizeMove);
186		document.removeEventListener("mouseup", handleResizeEnd);
187		document.body.style.cursor = "";
188		document.body.style.userSelect = "";
189	};
190
191	const fetchCode = async () => {
192		try {
193			const response = await fetch(`${root()}/gradio_api/vibe-code/`, {
194				method: "GET",
195				headers: { "Content-Type": "application/json" }
196			});
197
198			if (response.ok) {
199				const data = await response.json();
200
201				set(codeValue, data.code);
202			}
203		} catch(error) {
204			console.error("Failed to fetch code:", error);
205		}
206	};
207
208	let code_updated = mutable_source(false);
209
210	const updateCode = async () => {
211		try {
212			await app().post_data(`${root()}/gradio_api/vibe-code/`, { code: get(codeValue) });
213			set(code_updated, true);
214
215			setTimeout(
216				() => {
217					set(code_updated, false);
218				},
219				1000
220			);
221		} catch(error) {
222			console.error("Failed to update code:", error);
223		}
224	};
225
226	function create_spaces_url() {
227		const base_URL = "https://huggingface.co/new-space";
228		const params = new URLSearchParams({ name: "new-space", sdk: "gradio" });
229		const encoded_content = get(codeValue).trimStart();
230
231		params.append("files[0][path]", "app.py");
232		params.append("files[0][content]", encoded_content);
233		window.open(`${base_URL}?${params.toString()}`, "_blank")?.focus();
234	}
235
236	onMount(() => {
237		return () => {
238			document.removeEventListener("mousemove", handleResizeMove);
239			document.removeEventListener("mouseup", handleResizeEnd);
240		};
241	});
242
243	legacy_pre_effect(() => (deep_read_state(app())), () => {
244		(app(), fetchCode());
245	});
246
247	legacy_pre_effect(() => (get(activeTab), tick), () => {
248		if (get(activeTab) === "chat") {
249			tick().then(() => scroll_to_bottom("auto"));
250		}
251	});
252
253	legacy_pre_effect(() => (get(code_updated)), () => {
254		get(code_updated);
255	});
256
257	legacy_pre_effect(() => (get(starterQueries)), () => {
258		get(starterQueries);
259	});
260
261	legacy_pre_effect_reset();
262
263	var $$exports = {
264		get app() {
265			return app();
266		},
267
268		set app($$value) {
269			app($$value);
270			flushSync();
271		},
272
273		get root() {
274			return root();
275		},
276
277		set root($$value) {
278			root($$value);
279			flushSync();
280		}
281	};
282
283	init();
284
285	var div = root_1();
286	var button = child(div);
287	var div_1 = sibling(button, 2);
288	var button_1 = child(div_1);
289	let classes;
290	var button_2 = sibling(button_1, 2);
291	let classes_1;
292	var node = sibling(child(button_2));
293
294	{
295		var consequent_2 = ($$anchor) => {
296			var span = root_2();
297			var node_1 = child(span);
298
299			{
300				var consequent = ($$anchor) => {
301					var span_1 = root_3();
302					var text = child(span_1);
303
304					reset(span_1);
305
306					template_effect(() => set_text(text, `+${(
307						get(diffStats),
308						untrack(() => get(diffStats).lines_added)
309					) ?? ''}`));
310
311					append($$anchor, span_1);
312				};
313
314				if_block(node_1, ($$render) => {
315					if ((
316						get(diffStats),
317						untrack(() => get(diffStats).lines_added > 0)
318					)) $$render(consequent);
319				});
320			}
321
322			var node_2 = sibling(node_1, 2);
323
324			{
325				var consequent_1 = ($$anchor) => {
326					var span_2 = root_4();
327					var text_1 = child(span_2);
328
329					reset(span_2);
330
331					template_effect(() => set_text(text_1, `-${(
332						get(diffStats),
333						untrack(() => get(diffStats).lines_removed)
334					) ?? ''}`));
335
336					append($$anchor, span_2);
337				};
338
339				if_block(node_2, ($$render) => {
340					if ((
341						get(diffStats),
342						untrack(() => get(diffStats).lines_removed > 0)
343					)) $$render(consequent_1);
344				});
345			}
346
347			reset(span);
348			append($$anchor, span);
349		};
350
351		if_block(node, ($$render) => {
352			if ((
353				get(diffStats),
354				untrack(() => get(diffStats) && (get(diffStats).lines_added > 0 || get(diffStats).lines_removed > 0))
355			)) $$render(consequent_2);
356		});
357	}
358
359	reset(button_2);
360	reset(div_1);
361
362	var div_2 = sibling(div_1, 2);
363	var node_3 = child(div_2);
364
365	{
366		var consequent_6 = ($$anchor) => {
367			var div_3 = root_5();
368			var node_4 = child(div_3);
369
370			each(node_4, 1, () => get(message_history), index, ($$anchor, message, index) => {
371				var div_4 = root_6();
372				let classes_2;
373				var div_5 = child(div_4);
374				var span_3 = child(div_5);
375				var node_5 = child(span_3);
376
377				Markdown(node_5, {
378					get value() {
379						return (get(message), untrack(() => get(message).text));
380					},
381					latex_delimiters: [],
382					theme_mode: 'system'
383				});
384
385				reset(span_3);
386
387				var node_6 = sibling(span_3, 2);
388
389				{
390					var consequent_3 = ($$anchor) => {
391						var button_3 = root_7();
392
393						event('click', button_3, () => undoMessage(get(message).hash || "", index));
394						append($$anchor, button_3);
395					};
396
397					if_block(node_6, ($$render) => {
398						if ((
399							get(message),
400							untrack(() => !get(message).isBot && get(message).hash && !get(message).isPending)
401						)) $$render(consequent_3);
402					});
403				}
404
405				reset(div_5);
406				reset(div_4);
407
408				template_effect(() => classes_2 = set_class(div_4, 1, 'message-item svelte-1s2fnws', null, classes_2, {
409					'bot-message': get(message).isBot,
410					'user-message': !get(message).isBot
411				}));
412
413				append($$anchor, div_4);
414			});
415
416			var node_7 = sibling(node_4, 2);
417
418			{
419				var consequent_4 = ($$anchor) => {
420					var div_6 = root_8();
421
422					append($$anchor, div_6);
423				};
424
425				if_block(node_7, ($$render) => {
426					if ((
427						get(message_history),
428						untrack(() => get(message_history).length === 0)
429					)) $$render(consequent_4);
430				});
431			}
432
433			var node_8 = sibling(node_7, 2);
434
435			{
436				var consequent_5 = ($$anchor) => {
437					var div_7 = root_9();
438					var div_8 = child(div_7);
439
440					each(div_8, 5, () => get(starterQueries), index, ($$anchor, query) => {
441						var button_4 = root_10();
442						var text_2 = child(button_4, true);
443
444						reset(button_4);
445						template_effect(() => set_text(text_2, get(query)));
446						event('click', button_4, () => handleStarterQuery(get(query)));
447						append($$anchor, button_4);
448					});
449
450					reset(div_8);
451					reset(div_7);
452					append($$anchor, div_7);
453				};
454
455				if_block(node_8, ($$render) => {
456					if ((
457						get(message_history),
458						untrack(() => get(message_history).length === 0)
459					)) $$render(consequent_5);
460				});
461			}
462
463			reset(div_3);
464			bind_this(div_3, ($$value) => set(history_elem, $$value), () => get(history_elem));
465			append($$anchor, div_3);
466		};
467
468		var alternate_1 = ($$anchor) => {
469			var fragment = comment();
470			var node_9 = first_child(fragment);
471
472			{
473				var consequent_8 = ($$anchor) => {
474					var div_9 = root_12();
475					var div_10 = child(div_9);
476					var node_10 = child(div_10);
477
478					Code(node_10, {
479						language: 'python',
480						lines: 10,
481						dark_mode: false,
482						basic: true,
483						readonly: false,
484						placeholder: 'Enter your code here...',
485						wrap_lines: true,
486						get value() {
487							return get(codeValue);
488						},
489
490						set value($$value) {
491							set(codeValue, $$value);
492						},
493						$$legacy: true
494					});
495
496					reset(div_10);
497
498					var button_5 = sibling(div_10, 2);
499					let classes_3;
500					var node_11 = child(button_5);
501
502					{
503						var consequent_7 = ($$anchor) => {
504							var text_3 = text('Updated!');
505
506							append($$anchor, text_3);
507						};
508
509						var alternate = ($$anchor) => {
510							var text_4 = text('Update Code');
511
512							append($$anchor, text_4);
513						};
514
515						if_block(node_11, ($$render) => {
516							if (get(code_updated)) $$render(consequent_7); else $$render(alternate, false);
517						});
518					}
519
520					reset(button_5);
521
522					var button_6 = sibling(button_5, 2);
523
524					reset(div_9);
525					template_effect(() => classes_3 = set_class(button_5, 1, 'update-code-button svelte-1s2fnws', null, classes_3, { updating: get(code_updated) }));
526					event('click', button_5, updateCode);
527					event('click', button_6, () => create_spaces_url());
528					append($$anchor, div_9);
529				};
530
531				if_block(
532					node_9,
533					($$render) => {
534						if (get(activeTab) === "code") $$render(consequent_8);
535					},
536					true
537				);
538			}
539
540			append($$anchor, fragment);
541		};
542
543		if_block(node_3, ($$render) => {
544			if (get(activeTab) === "chat") $$render(consequent_6); else $$render(alternate_1, false);
545		});
546	}
547
548	reset(div_2);
549
550	var div_11 = sibling(div_2, 2);
551	var textarea = sibling(child(div_11), 2);
552
553	remove_textarea_child(textarea);
554
555	var button_7 = sibling(textarea, 2);
556
557	reset(div_11);
558	reset(div);
559	bind_this(div, ($$value) => set(editorElement, $$value), () => get(editorElement));
560
561	template_effect(
562		($0) => {
563			set_style(div, `width: ${get(editorWidth) ?? ''}px;`);
564			classes = set_class(button_1, 1, 'tab-button svelte-1s2fnws', null, classes, { active: get(activeTab) === "chat" });
565			classes_1 = set_class(button_2, 1, 'tab-button svelte-1s2fnws', null, classes_1, { active: get(activeTab) === "code" });
566			button_7.disabled = $0;
567		},
568		[
569			() => (get(prompt), untrack(() => get(prompt).trim() === ""))
570		]
571	);
572
573	event('mousedown', button, handleResizeStart);
574	event('click', button_1, () => set(activeTab, "chat"));
575	event('click', button_2, () => set(activeTab, "code"));
576
577	event('keydown', textarea, (e) => {
578		if (e.key === "Enter" && !e.shiftKey) {
579			e.preventDefault();
580			submit();
581		}
582	});
583
584	bind_value(textarea, () => get(prompt), ($$value) => set(prompt, $$value));
585	event('click', button_7, () => submit());
586	append($$anchor, div);
587
588	return pop($$exports);
589}
590
591export { Index as default };
592//# sourceMappingURL=Index-BZjnJz9D.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.