PageSourceSearch

https://marketvideo.ru/src/pages/Create.js

js marketvideo.ru collected 2026-10-08 08:33:35 UTC 1,641 bytes, 33 lines download raw bytes

1import { el } from '../utils/dom.js';
2
3function Field(label, control) {
4  return el('label', { class:'field' }, el('span', { class:'muted' }, label), control);
5}
6
7function CardTool(title, content) {
8  const card = el('div', { class:'card', style:'height:auto; padding:12px' });
9  card.appendChild(el('div', { style:'font-weight:800; margin-bottom:8px' }, title));
10  card.appendChild(content);
11  return card;
12}
13
14export function CreatePage() {
15  const page = el('div', { class:'container' });
16  page.appendChild(el('h2', {}, 'Создать'));
17  const grid = el('div', { class:'grid grid-3-desktop' });
18  grid.appendChild(CardTool('Text to Video (Sora)', el('div', {},
19    Field('Промпт', el('textarea', { class:'input', rows:'3', placeholder:'Футуристический город в закате...' })),
20    el('button', { class:'btn-primary', onclick: ()=> alert('Демо: job queued') }, 'Сгенерировать')
21  )));
22  grid.appendChild(CardTool('Video to Video (Veo)', el('div', {},
23    Field('Видео', el('input', { class:'file', type:'file', accept:'video/*' })),
24    Field('Промпт', el('input', { class:'input', placeholder:'Сделай в стиле аниме' })),
25    el('button', { class:'btn-primary', onclick: ()=> alert('Демо: job queued') }, 'Преобразовать')
26  )));
27  grid.appendChild(CardTool('Оживить Фото (ByteDance)', el('div', {},
28    Field('Фото', el('input', { class:'file', type:'file', accept:'image/*', capture:'user' })),
29    el('button', { class:'btn-primary', onclick: ()=> alert('Демо: job queued') }, 'Оживить')
30  )));
31  return page;
32}
33

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.