[{"data":1,"prerenderedAt":1957},["ShallowReactive",2],{"docs:\u002Fdocs\u002Fcomponents\u002Flightbox":3,"component-meta:UiLightbox":1579},{"id":4,"title":5,"body":6,"component":1269,"dependsOn":1558,"description":1567,"emitDescriptions":1568,"extension":1572,"meta":1573,"navigation":915,"order":718,"path":1574,"seo":1575,"status":1576,"stem":1577,"__hash__":1578},"docs\u002Fdocs\u002Fcomponents\u002Flightbox.md","Lightbox",{"type":7,"value":8,"toc":1542},"minimark",[9,13,24,27,32,37,74,77,101,107,111,120,124,237,251,257,261,390,393,403,409,413,427,433,437,569,573,584,730,734,737,765,838,842,853,1320,1329,1333,1336,1340,1351,1355,1378,1382,1403,1422,1429,1432,1437,1441,1468,1472,1508,1523,1538],[10,11,12],"p",{},"Галерея стоїть на тому самому стеку шарів, що й Modal та Drawer: її можна\nвідкрити з модалки, а Escape закриє лише верхній шар. Фон — майже чорний в\nобох темах: фото читається на темному, а кнопки й підписи несуть власну\nповерхню картки.",[10,14,15,16,23],{},"Орієнтир за можливостями — ",[17,18,22],"a",{"href":19,"rel":20},"https:\u002F\u002Ffancyapps.com\u002Ffancybox\u002F",[21],"nofollow","Fancybox",":\nвідео й сторінки поруч із фото, щипок і збільшення з інерцією, поворот і\nвіддзеркалення, слайдшоу, повний екран, закриття змахом, політ фото з\nмініатюри. Усе без залежностей — компонент копіюється разом із трьома\nкомпозаблами оверлеїв.",[10,25,26],{},"Відкрийте фото й закрийте його знову: воно виростає з мініатюри й\nповертається в неї, навіть якщо в галереї догорнули до іншого.",[28,29],"component-preview",{"name":30,"stage":31},"lightbox-gallery","min-h-40",[33,34,36],"h2",{"id":35},"відео-сторінки-й-власні-слайди","Відео, сторінки й власні слайди",[10,38,39,40,44,45,44,48,44,51,54,55,58,59,62,63,66,67,70,71,73],{},"Вид слайда визначається за адресою: посилання YouTube чи Vimeo стає\nвбудованим плеєром, файл ",[41,42,43],"code",{},".mp4","\u002F",[41,46,47],{},".webm",[41,49,50],{},".ogv",[41,52,53],{},".mov"," — ",[41,56,57],{},"\u003Cvideo>",", решта —\nзображенням. Явний ",[41,60,61],{},"type"," потрібен лише для ",[41,64,65],{},"iframe"," (мапа, PDF, будь-яка\nсторінка) і ",[41,68,69],{},"custom"," — власного вмісту через слот ",[41,72,69],{},".",[28,75],{"name":76,"stage":31},"lightbox-media",[10,78,79,80,84,85,88,89,92,93,96,97,100],{},"Плеєр і iframe монтуються ",[81,82,83],"strong",{},"лише для поточного слайда",". Сусід із YouTube,\nзмонтований заздалегідь, почав би грати за кадром, а кожен зайвий iframe —\nце ще й чужі cookies; сусіди показують обкладинку (",[41,86,87],{},"poster",", ",[41,90,91],{},"thumbnail",", а\nдля YouTube — його власне прев'ю). YouTube вбудовується з\n",[41,94,95],{},"youtube-nocookie.com",", Vimeo — з ",[41,98,99],{},"dnt=1",": галерея не має права вирішувати\nза людину про трекінг.",[10,102,103,104,106],{},"Відеофайл починає грати, щойно слайд стає поточним, і зупиняється, щойно\nперестає: слайд обрали явно, тож жест користувача для звуку вже був. Жести\nне починаються з нижньої смуги відео, де нативні контроли, — перемотування\nне перетворюється на свайп. У слоті ",[41,105,69],{}," так само не заважають кнопки й\nполя: з них жест не стартує, а прокрутка всередині вмісту лишається його\nвласною.",[33,108,110],{"id":109},"інструменти-й-слайдшоу","Інструменти й слайдшоу",[10,112,113,116,117,119],{},[41,114,115],{},"toolbar"," — перелік кнопок верхньої панелі в потрібному порядку. Лічильник\nі хрестик є завжди, а кнопка, якій нема чого робити, не з'являється: повний\nекран на iPhone (там на весь екран розгортається лише ",[41,118,57],{},"), слайдшоу й\nмініатюри для одного слайда.",[28,121],{"name":122,"stage":123},"lightbox-tools","min-h-24",[125,126,127,140],"table",{},[128,129,130],"thead",{},[131,132,133,137],"tr",{},[134,135,136],"th",{},"Кнопка",[134,138,139],{},"Що робить",[141,142,143,154,167,177,187,200,210,220],"tbody",{},[131,144,145,151],{},[146,147,148],"td",{},[41,149,150],{},"zoom",[146,152,153],{},"Перемикає «вписано» ↔ збільшено: до натурального розміру великого фото, але щонайменше вдвічі",[131,155,156,164],{},[146,157,158,88,161],{},[41,159,160],{},"zoomIn",[41,162,163],{},"zoomOut",[146,165,166],{},"Крок збільшення — у 1,5 раза",[131,168,169,174],{},[146,170,171],{},[41,172,173],{},"rotate",[146,175,176],{},"Дві кнопки: поворот на чверть оберту проти і за годинниковою стрілкою; повернуте фото вписується заново",[131,178,179,184],{},[146,180,181],{},[41,182,183],{},"flip",[146,185,186],{},"Дві кнопки: віддзеркалення по горизонталі й по вертикалі — в осях екрана, навіть після повороту",[131,188,189,194],{},[146,190,191],{},[41,192,193],{},"slideshow",[146,195,196,197],{},"Слайдшоу з лінією прогресу. Чекає, поки фото завантажиться, і зупиняється на останньому кадрі без ",[41,198,199],{},"loop",[131,201,202,207],{},[146,203,204],{},[41,205,206],{},"fullscreen",[146,208,209],{},"Повний екран через Fullscreen API; закриття галереї виходить із нього, лише якщо вмикала саме вона",[131,211,212,217],{},[146,213,214],{},[41,215,216],{},"thumbnails",[146,218,219],{},"Сховати чи показати стрічку мініатюр",[131,221,222,227],{},[146,223,224],{},[41,225,226],{},"download",[146,228,229,230,232,233,236],{},"Завантажити оригінал (",[41,231,226],{}," слайда або ",[41,234,235],{},"src",")",[10,238,239,240,243,244,246,247,250],{},"Слайдшоу чекає й на відео: обрізати ролик на третій секунді гірше, ніж\nзачекати, тож файлове відео саме перегортає слайд, коли закінчиться, а\nYouTube, Vimeo й сторінки тримають слайдшоу на паузі. ",[41,241,242],{},"autoplay"," запускає\nслайдшоу при відкритті — і тоді кнопка паузи є завжди, навіть якщо її немає\nв ",[41,245,115],{},". При ",[41,248,249],{},"prefers-reduced-motion"," слайдшоу саме не стартує.",[10,252,253,256],{},[41,254,255],{},"idle"," ховає панелі й стрілки, коли миша не рухається, — фото лишається\nсаме. Панелі не зникають з-під курсора, що стоїть на них, і з-під фокуса з\nклавіатури, а Tab до схованої кнопки повертає їх. На дотику панелі ховає й\nповертає одиночний дотик до фото.",[33,258,260],{"id":259},"жести-й-клавіатура","Жести й клавіатура",[125,262,263,279],{},[128,264,265],{},[131,266,267,270,273,276],{},[134,268,269],{},"Дія",[134,271,272],{},"Миша",[134,274,275],{},"Дотик",[134,277,278],{},"Клавіатура",[141,280,281,298,314,328,347,363,376],{},[131,282,283,286,292,295],{},[146,284,285],{},"Наступний \u002F попередній",[146,287,288,289],{},"стрілки на краях, колесо з ",[41,290,291],{},"wheel=\"navigate\"",[146,293,294],{},"свайп",[146,296,297],{},"← → PageUp PageDown Home End",[131,299,300,303,306,309],{},[146,301,302],{},"Збільшити",[146,304,305],{},"клік по фото, колесо, щипок на тачпаді",[146,307,308],{},"подвійний дотик, щипок",[146,310,311],{},[41,312,313],{},"+",[131,315,316,319,322,325],{},[146,317,318],{},"Рухати збільшене",[146,320,321],{},"перетягування з інерцією",[146,323,324],{},"палець з інерцією",[146,326,327],{},"стрілки",[131,329,330,333,336,338],{},[146,331,332],{},"Зменшити",[146,334,335],{},"клік по фото, колесо",[146,337,308],{},[146,339,340,88,343,346],{},[41,341,342],{},"−",[41,344,345],{},"0",", Escape",[131,348,349,352,357,360],{},[146,350,351],{},"Сховати панелі",[146,353,354,355,236],{},"без руху миші (",[41,356,255],{},[146,358,359],{},"дотик до фото",[146,361,362],{},"—",[131,364,365,368,371,373],{},[146,366,367],{},"Слайдшоу",[146,369,370],{},"кнопка",[146,372,370],{},[146,374,375],{},"Пробіл",[131,377,378,381,384,387],{},[146,379,380],{},"Закрити",[146,382,383],{},"хрестик, клік у порожнє поле, змах угору чи вниз",[146,385,386],{},"змах угору чи вниз, хрестик",[146,388,389],{},"Escape",[10,391,392],{},"Перший Escape на збільшеному фото лише зменшує: «вийти зі збільшення» і\n«закрити галерею» — різні наміри, і другий не має ховатися за першим.",[10,394,395,396,402],{},"Свайп використовує ту саму логіку, що ",[17,397,399],{"href":398},"\u002Fdocs\u002Fcomponents\u002Fcarousel",[41,400,401],{},"UiCarousel",":\nпоріг масштабується від ширини екрана, швидкий змах гортає навіть коротшим\nрухом, а вісь жесту визначається до того, як щось рухати, — горизонталь\nгортає, вертикаль закриває. Під час свайпу видно сусідній слайд: у DOM\nзавжди три слайди, поточний і два сусіди, і їхні фото вантажаться наперед.",[10,404,405,406,408],{},"Збільшене фото, дотягнуте до краю, віддає решту руху треку: наступний слайд\nвиїжджає, як у галереї телефона, без зменшення назад. Щипок тримає під\nпальцями ту саму деталь, трохи пружинить за межами масштабу й повертається в\nних після відпускання. Колесо збільшує в точці курсора, а щипок на тачпаді\n(браузер надсилає його як Ctrl + колесо) — завжди, навіть із\n",[41,407,291],{},": це жест масштабу, а не прокрутки.",[33,410,412],{"id":411},"політ-із-мініатюри","Політ із мініатюри",[10,414,415,418,419,422,423,426],{},[41,416,417],{},"origin"," — функція, що за індексом повертає мініатюру на сторінці:\n",[41,420,421],{},":origin=\"(i) => thumbs[i]\"",". Фото виростає з неї при відкритті й повертається\nв неї при закритті — з того місця, де воно зараз: збільшене чи недотягнуте\nзмахом. Мініатюра з ",[41,424,425],{},"object-cover"," обрізає фото — політ відтворює й\nобрізання (clip-path у власних координатах зображення), і заокруглення кутів\nобгортки.",[10,428,429,430,432],{},"Галерея просто згасає, коли летіти нікуди або чесно не вийде: при\n",[41,431,249],{},", для повернутого чи віддзеркаленого фото і коли\nмініатюра не видна — прокручена за край сторінки чи каруселі, а не лише за\nмежі вікна. Якщо фото ще вантажиться, політ чекає його не довше 600 мс:\nанімація, що стартує через секунду після кліку, виглядає як збій.",[33,434,436],{"id":435},"поля-слайда","Поля слайда",[125,438,439,449],{},[128,440,441],{},[131,442,443,446],{},[134,444,445],{},"Поле",[134,447,448],{},"Для чого",[141,450,451,463,473,494,506,515,531,544,553],{},[131,452,453,457],{},[146,454,455],{},[41,456,235],{},[146,458,459,460,462],{},"Адреса фото, відеофайлу, відео YouTube\u002FVimeo чи сторінки. Для ",[41,461,69],{}," — унікальний ключ",[131,464,465,470],{},[146,466,467],{},[41,468,469],{},"alt",[146,471,472],{},"Текстова альтернатива фото чи назва відео. Обов'язкове: для скрінрідера це і є слайд",[131,474,475,479],{},[146,476,477],{},[41,478,61],{},[146,480,481,88,484,88,487,88,489,491,492],{},[41,482,483],{},"image",[41,485,486],{},"video",[41,488,65],{},[41,490,69],{},". Типово — за ",[41,493,235],{},[131,495,496,501],{},[146,497,498],{},[41,499,500],{},"caption",[146,502,503,504],{},"Підпис під слайдом. Складніший — через слот ",[41,505,500],{},[131,507,508,512],{},[146,509,510],{},[41,511,91],{},[146,513,514],{},"Мініатюра для стрічки. Поки вантажиться повне фото, вона ж стоїть на його місці заглушкою",[131,516,517,525],{},[146,518,519,88,522],{},[41,520,521],{},"srcset",[41,523,524],{},"sizes",[146,526,527,528,530],{},"Відповідні розміри. Під час збільшення галерея підставляє в ",[41,529,524],{}," фактичну ширину, і браузер довантажує більший файл",[131,532,533,541],{},[146,534,535,88,538],{},[41,536,537],{},"width",[41,539,540],{},"height",[146,542,543],{},"Натуральний розмір: заглушка не виходить за нього, iframe бере з нього пропорції",[131,545,546,550],{},[146,547,548],{},[41,549,87],{},[146,551,552],{},"Обкладинка відео — і в плеєрі, і в стрічці",[131,554,555,559],{},[146,556,557],{},[41,558,226],{},[146,560,561,562,564,565,568],{},"Адреса для кнопки «Завантажити», якщо вона інша, ніж ",[41,563,235],{},"; ",[41,566,567],{},"false"," — не пропонувати",[33,570,572],{"id":571},"підписи-й-мова","Підписи й мова",[10,574,575,576,579,580,583],{},"Усі рядки галереї — у ",[41,577,578],{},"labels",". Задавайте лише ключі, що змінюються: у\nпроєкті з i18n це об'єкт із ",[41,581,582],{},"t()",", і зміна мови оновить підписи без\nперемонтування.",[585,586,591],"pre",{"className":587,"code":588,"language":589,"meta":590,"style":590},"language-vue shiki shiki-themes github-light github-dark","\u003CUiLightbox\n  v-model=\"open\"\n  :images=\"images\"\n  :labels=\"{\n    close: t('gallery.close'),\n    slide: (position, total, title) => t('gallery.slide', { position, total, title }),\n  }\"\n\u002F>\n","vue","",[41,592,593,606,626,643,657,675,716,724],{"__ignoreMap":590},[594,595,598,602],"span",{"class":596,"line":597},"line",1,[594,599,601],{"class":600},"sVt8B","\u003C",[594,603,605],{"class":604},"s9eBZ","UiLightbox\n",[594,607,609,613,616,620,623],{"class":596,"line":608},2,[594,610,612],{"class":611},"sScJk","  v-model",[594,614,615],{"class":600},"=",[594,617,619],{"class":618},"sZZnC","\"",[594,621,622],{"class":600},"open",[594,624,625],{"class":618},"\"\n",[594,627,629,632,635,637,639,641],{"class":596,"line":628},3,[594,630,631],{"class":600},"  :",[594,633,634],{"class":611},"images",[594,636,615],{"class":600},[594,638,619],{"class":618},[594,640,634],{"class":600},[594,642,625],{"class":618},[594,644,646,648,650,652,654],{"class":596,"line":645},4,[594,647,631],{"class":600},[594,649,578],{"class":611},[594,651,615],{"class":600},[594,653,619],{"class":618},[594,655,656],{"class":600},"{\n",[594,658,660,663,666,669,672],{"class":596,"line":659},5,[594,661,662],{"class":600},"    close: ",[594,664,665],{"class":611},"t",[594,667,668],{"class":600},"(",[594,670,671],{"class":618},"'gallery.close'",[594,673,674],{"class":600},"),\n",[594,676,678,681,684,688,690,693,695,698,701,705,708,710,713],{"class":596,"line":677},6,[594,679,680],{"class":611},"    slide",[594,682,683],{"class":600},": (",[594,685,687],{"class":686},"s4XuR","position",[594,689,88],{"class":600},[594,691,692],{"class":686},"total",[594,694,88],{"class":600},[594,696,697],{"class":686},"title",[594,699,700],{"class":600},") ",[594,702,704],{"class":703},"szBVR","=>",[594,706,707],{"class":611}," t",[594,709,668],{"class":600},[594,711,712],{"class":618},"'gallery.slide'",[594,714,715],{"class":600},", { position, total, title }),\n",[594,717,719,722],{"class":596,"line":718},7,[594,720,721],{"class":600},"  }",[594,723,625],{"class":618},[594,725,727],{"class":596,"line":726},8,[594,728,729],{"class":600},"\u002F>\n",[33,731,733],{"id":732},"список-що-дотягується","Список, що дотягується",[10,735,736],{},"Месенджер відкриває галерею з одним фото, а сусідні підвантажує вже після\nвідкриття. Два правила, щоб це не було видно:",[738,739,740,757],"ul",{},[741,742,743,746,747,749,750,753,754,756],"li",{},[81,744,745],{},"Підміна списку під відкритою галереєю."," Якщо разом зі списком ",[41,748,634],{},"\nзмінився й ",[41,751,752],{},"index"," і тепер вказує на ту саму адресу, що показана на екрані,\nгалерея стає на новий номер на місці: слайд лишається тим самим вузлом, трек\nне їде, стрічка мініатюр не гортається. Якщо ",[41,755,752],{}," вказує на інше фото —\nце звичайний перехід.",[741,758,759,764],{},[81,760,761,73],{},[41,762,763],{},"loading-more"," Поки список дотягується, стрічка мініатюр і кнопки\nслайдшоу та мініатюр займають місце навіть для одного слайда (кнопка\nслайдшоу неактивна). Без цього, коли прийдуть решта фото, стрічка забере\nвисоту в сцени, і фото стрибне. Вимкніть прапорець, щойно список\nдотягнувся або не дотягнувся.",[585,766,768],{"className":587,"code":767,"language":589,"meta":590,"style":590},"\u003CUiLightbox\n  v-model=\"open\"\n  v-model:index=\"index\"\n  :images=\"images\"\n  :loading-more=\"loadingMore\"\n\u002F>\n",[41,769,770,776,788,805,819,834],{"__ignoreMap":590},[594,771,772,774],{"class":596,"line":597},[594,773,601],{"class":600},[594,775,605],{"class":604},[594,777,778,780,782,784,786],{"class":596,"line":608},[594,779,612],{"class":611},[594,781,615],{"class":600},[594,783,619],{"class":618},[594,785,622],{"class":600},[594,787,625],{"class":618},[594,789,790,792,795,797,799,801,803],{"class":596,"line":628},[594,791,612],{"class":611},[594,793,794],{"class":600},":",[594,796,752],{"class":611},[594,798,615],{"class":600},[594,800,619],{"class":618},[594,802,752],{"class":600},[594,804,625],{"class":618},[594,806,807,809,811,813,815,817],{"class":596,"line":645},[594,808,631],{"class":600},[594,810,634],{"class":611},[594,812,615],{"class":600},[594,814,619],{"class":618},[594,816,634],{"class":600},[594,818,625],{"class":618},[594,820,821,823,825,827,829,832],{"class":596,"line":659},[594,822,631],{"class":600},[594,824,763],{"class":611},[594,826,615],{"class":600},[594,828,619],{"class":618},[594,830,831],{"class":600},"loadingMore",[594,833,625],{"class":618},[594,835,836],{"class":596,"line":677},[594,837,729],{"class":600},[33,839,841],{"id":840},"посилання-на-слайд","Посилання на слайд",[10,843,844,845,848,849,852],{},"Хеш у стилі Fancybox (",[41,846,847],{},"#gallery-3",") галерея не пише сама: у застосунку з\nроутером він сперечався б із роутером за історію. Ті самі дві речі —\nпосилання на конкретне фото й «Назад», що закриває галерею, — дає ",[41,850,851],{},"v-model","\nна query-параметр:",[585,854,856],{"className":587,"code":855,"language":589,"meta":590,"style":590},"\u003Cscript setup lang=\"ts\">\nconst route = useRoute()\nconst router = useRouter()\n\nconst photo = computed(() => Number(route.query.photo ?? -1))\nlet pushed = false\n\nconst open = computed({\n  get: () => photo.value >= 0,\n  set: (value) => {\n    if (value) return\n    \u002F\u002F Галерею відкрили ми — «Назад» просто прибирає свій запис. Прийшли\n    \u002F\u002F за посиланням одразу на фото — back() вивів би з сайту.\n    if (pushed) router.back()\n    else router.replace({ query: { ...route.query, photo: undefined } })\n    pushed = false\n  },\n})\nconst index = computed({\n  get: () => Math.max(photo.value, 0),\n  set: (value) => router.replace({ query: { ...route.query, photo: value } }),\n})\n\nfunction show(at: number) {\n  pushed = true\n  router.push({ query: { ...route.query, photo: at } })\n}\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CUiLightbox v-model=\"open\" v-model:index=\"index\" :images=\"images\" \u002F>\n\u003C\u002Ftemplate>\n",[41,857,858,879,897,911,917,952,965,969,983,1006,1024,1036,1043,1049,1062,1089,1099,1105,1111,1125,1147,1171,1176,1181,1203,1214,1230,1236,1246,1251,1261,1311],{"__ignoreMap":590},[594,859,860,862,865,868,871,873,876],{"class":596,"line":597},[594,861,601],{"class":600},[594,863,864],{"class":604},"script",[594,866,867],{"class":611}," setup",[594,869,870],{"class":611}," lang",[594,872,615],{"class":600},[594,874,875],{"class":618},"\"ts\"",[594,877,878],{"class":600},">\n",[594,880,881,884,888,891,894],{"class":596,"line":608},[594,882,883],{"class":703},"const",[594,885,887],{"class":886},"sj4cs"," route",[594,889,890],{"class":703}," =",[594,892,893],{"class":611}," useRoute",[594,895,896],{"class":600},"()\n",[594,898,899,901,904,906,909],{"class":596,"line":628},[594,900,883],{"class":703},[594,902,903],{"class":886}," router",[594,905,890],{"class":703},[594,907,908],{"class":611}," useRouter",[594,910,896],{"class":600},[594,912,913],{"class":596,"line":645},[594,914,916],{"emptyLinePlaceholder":915},true,"\n",[594,918,919,921,924,926,929,932,934,937,940,943,946,949],{"class":596,"line":659},[594,920,883],{"class":703},[594,922,923],{"class":886}," photo",[594,925,890],{"class":703},[594,927,928],{"class":611}," computed",[594,930,931],{"class":600},"(() ",[594,933,704],{"class":703},[594,935,936],{"class":611}," Number",[594,938,939],{"class":600},"(route.query.photo ",[594,941,942],{"class":703},"??",[594,944,945],{"class":703}," -",[594,947,948],{"class":886},"1",[594,950,951],{"class":600},"))\n",[594,953,954,957,960,962],{"class":596,"line":677},[594,955,956],{"class":703},"let",[594,958,959],{"class":600}," pushed ",[594,961,615],{"class":703},[594,963,964],{"class":886}," false\n",[594,966,967],{"class":596,"line":718},[594,968,916],{"emptyLinePlaceholder":915},[594,970,971,973,976,978,980],{"class":596,"line":726},[594,972,883],{"class":703},[594,974,975],{"class":886}," open",[594,977,890],{"class":703},[594,979,928],{"class":611},[594,981,982],{"class":600},"({\n",[594,984,986,989,992,994,997,1000,1003],{"class":596,"line":985},9,[594,987,988],{"class":611},"  get",[594,990,991],{"class":600},": () ",[594,993,704],{"class":703},[594,995,996],{"class":600}," photo.value ",[594,998,999],{"class":703},">=",[594,1001,1002],{"class":886}," 0",[594,1004,1005],{"class":600},",\n",[594,1007,1009,1012,1014,1017,1019,1021],{"class":596,"line":1008},10,[594,1010,1011],{"class":611},"  set",[594,1013,683],{"class":600},[594,1015,1016],{"class":686},"value",[594,1018,700],{"class":600},[594,1020,704],{"class":703},[594,1022,1023],{"class":600}," {\n",[594,1025,1027,1030,1033],{"class":596,"line":1026},11,[594,1028,1029],{"class":703},"    if",[594,1031,1032],{"class":600}," (value) ",[594,1034,1035],{"class":703},"return\n",[594,1037,1039],{"class":596,"line":1038},12,[594,1040,1042],{"class":1041},"sJ8bj","    \u002F\u002F Галерею відкрили ми — «Назад» просто прибирає свій запис. Прийшли\n",[594,1044,1046],{"class":596,"line":1045},13,[594,1047,1048],{"class":1041},"    \u002F\u002F за посиланням одразу на фото — back() вивів би з сайту.\n",[594,1050,1052,1054,1057,1060],{"class":596,"line":1051},14,[594,1053,1029],{"class":703},[594,1055,1056],{"class":600}," (pushed) router.",[594,1058,1059],{"class":611},"back",[594,1061,896],{"class":600},[594,1063,1065,1068,1071,1074,1077,1080,1083,1086],{"class":596,"line":1064},15,[594,1066,1067],{"class":703},"    else",[594,1069,1070],{"class":600}," router.",[594,1072,1073],{"class":611},"replace",[594,1075,1076],{"class":600},"({ query: { ",[594,1078,1079],{"class":703},"...",[594,1081,1082],{"class":600},"route.query, photo: ",[594,1084,1085],{"class":886},"undefined",[594,1087,1088],{"class":600}," } })\n",[594,1090,1092,1095,1097],{"class":596,"line":1091},16,[594,1093,1094],{"class":600},"    pushed ",[594,1096,615],{"class":703},[594,1098,964],{"class":886},[594,1100,1102],{"class":596,"line":1101},17,[594,1103,1104],{"class":600},"  },\n",[594,1106,1108],{"class":596,"line":1107},18,[594,1109,1110],{"class":600},"})\n",[594,1112,1114,1116,1119,1121,1123],{"class":596,"line":1113},19,[594,1115,883],{"class":703},[594,1117,1118],{"class":886}," index",[594,1120,890],{"class":703},[594,1122,928],{"class":611},[594,1124,982],{"class":600},[594,1126,1128,1130,1132,1134,1137,1140,1143,1145],{"class":596,"line":1127},20,[594,1129,988],{"class":611},[594,1131,991],{"class":600},[594,1133,704],{"class":703},[594,1135,1136],{"class":600}," Math.",[594,1138,1139],{"class":611},"max",[594,1141,1142],{"class":600},"(photo.value, ",[594,1144,345],{"class":886},[594,1146,674],{"class":600},[594,1148,1150,1152,1154,1156,1158,1160,1162,1164,1166,1168],{"class":596,"line":1149},21,[594,1151,1011],{"class":611},[594,1153,683],{"class":600},[594,1155,1016],{"class":686},[594,1157,700],{"class":600},[594,1159,704],{"class":703},[594,1161,1070],{"class":600},[594,1163,1073],{"class":611},[594,1165,1076],{"class":600},[594,1167,1079],{"class":703},[594,1169,1170],{"class":600},"route.query, photo: value } }),\n",[594,1172,1174],{"class":596,"line":1173},22,[594,1175,1110],{"class":600},[594,1177,1179],{"class":596,"line":1178},23,[594,1180,916],{"emptyLinePlaceholder":915},[594,1182,1184,1187,1190,1192,1195,1197,1200],{"class":596,"line":1183},24,[594,1185,1186],{"class":703},"function",[594,1188,1189],{"class":611}," show",[594,1191,668],{"class":600},[594,1193,1194],{"class":686},"at",[594,1196,794],{"class":703},[594,1198,1199],{"class":886}," number",[594,1201,1202],{"class":600},") {\n",[594,1204,1206,1209,1211],{"class":596,"line":1205},25,[594,1207,1208],{"class":600},"  pushed ",[594,1210,615],{"class":703},[594,1212,1213],{"class":886}," true\n",[594,1215,1217,1220,1223,1225,1227],{"class":596,"line":1216},26,[594,1218,1219],{"class":600},"  router.",[594,1221,1222],{"class":611},"push",[594,1224,1076],{"class":600},[594,1226,1079],{"class":703},[594,1228,1229],{"class":600},"route.query, photo: at } })\n",[594,1231,1233],{"class":596,"line":1232},27,[594,1234,1235],{"class":600},"}\n",[594,1237,1239,1242,1244],{"class":596,"line":1238},28,[594,1240,1241],{"class":600},"\u003C\u002F",[594,1243,864],{"class":604},[594,1245,878],{"class":600},[594,1247,1249],{"class":596,"line":1248},29,[594,1250,916],{"emptyLinePlaceholder":915},[594,1252,1254,1256,1259],{"class":596,"line":1253},30,[594,1255,601],{"class":600},[594,1257,1258],{"class":604},"template",[594,1260,878],{"class":600},[594,1262,1264,1267,1270,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1298,1300,1302,1304,1306,1308],{"class":596,"line":1263},31,[594,1265,1266],{"class":600},"  \u003C",[594,1268,1269],{"class":604},"UiLightbox",[594,1271,1272],{"class":611}," v-model",[594,1274,615],{"class":600},[594,1276,619],{"class":618},[594,1278,622],{"class":600},[594,1280,619],{"class":618},[594,1282,1272],{"class":611},[594,1284,794],{"class":600},[594,1286,752],{"class":611},[594,1288,615],{"class":600},[594,1290,619],{"class":618},[594,1292,752],{"class":600},[594,1294,619],{"class":618},[594,1296,1297],{"class":600}," :",[594,1299,634],{"class":611},[594,1301,615],{"class":600},[594,1303,619],{"class":618},[594,1305,634],{"class":600},[594,1307,619],{"class":618},[594,1309,1310],{"class":600}," \u002F>\n",[594,1312,1314,1316,1318],{"class":596,"line":1313},32,[594,1315,1241],{"class":600},[594,1317,1258],{"class":604},[594,1319,878],{"class":600},[10,1321,1322,1323,1325,1326,1328],{},"Відкриття — ",[41,1324,1222],{},", гортання — ",[41,1327,1073],{},", тож «Назад» закриває галерею\nодним натиском, а не гортає назад кожен переглянутий кадр.",[33,1330,1332],{"id":1331},"api","API",[1334,1335],"component-api",{},[33,1337,1339],{"id":1338},"коли-використовувати","Коли використовувати",[738,1341,1342,1345,1348],{},[741,1343,1344],{},"Фото товару, об'єкта, роботи в портфоліо — коли деталь важлива і\nмініатюри замало.",[741,1346,1347],{},"Вкладення в чаті чи тікеті: фото, відео, PDF — в одній галереї.",[741,1349,1350],{},"Огляд, де фото чергуються з відео чи мапою.",[33,1352,1354],{"id":1353},"коли-не-використовувати","Коли НЕ використовувати",[738,1356,1357,1362,1365],{},[741,1358,1359,1360,73],{},"Для послідовності слайдів у потоці сторінки — це ",[41,1361,401],{},[741,1363,1364],{},"Для одного декоративного зображення без деталей: відкриття на весь\nекран нічого не додає.",[741,1366,1367,1368,1370,1371,1374,1375,73],{},"Для форми чи довгого тексту: слот ",[41,1369,69],{}," — для вмісту поряд із фото, а\nне замість ",[41,1372,1373],{},"UiModal"," чи ",[41,1376,1377],{},"UiDrawer",[33,1379,1381],{"id":1380},"доступність","Доступність",[10,1383,1384,1385,1388,1389,1392,1393,1395,1396,1399,1400,73],{},"Діалог з ",[41,1386,1387],{},"aria-modal",", назвою з ",[41,1390,1391],{},"ariaLabel"," і пасткою фокуса. Фокус при\nвідкритті стає на саму панель, а не на хрестик: стрілки гортають одразу, а\nперший Tab доходить до першої кнопки. Після закриття фокус повертається\nтуди, звідки галерею відкрили, — тому мініатюри на сторінці мають бути\nкнопками. З ",[41,1394,417],{}," — на мініатюру слайда, який переглядали, туди ж, куди\nлетить фото: кнопка, з якої відкрили, часто вже недосяжна (у каруселі, що\nйде за індексом галереї, її слайд став ",[41,1397,1398],{},"inert","), і фокус падав би в\n",[41,1401,1402],{},"\u003Cbody>",[10,1404,1405,1406,1408,1409,1412,1413,1415,1416,1419,1420,73],{},"Поточний слайд оголошує live-регіон: «Зображення 2 з 5: Хол», для відео —\n«Відео 2 з 5: …». Під час слайдшоу оголошення вимикаються: кадри\nзмінюються самі, і скрінрідер інакше говорив би без упину. ",[41,1407,469],{},"\nобов'язковий у кожного слайда. Мініатюри мають ",[41,1410,1411],{},"aria-current"," на поточній, а\nсусідні слайди — ",[41,1414,1398],{}," і ",[41,1417,1418],{},"aria-hidden",": ні Tab, ні скрінрідер у них не\nпотрапляють. Фокус зі слайда, що виїжджає, переходить на панель, а не\nпадає в ",[41,1421,1402],{},[10,1423,1424,1425,1428],{},"Кнопки-перемикачі (слайдшоу, повний екран, мініатюри, збільшення) міняють\nназву — «Запустити слайдшоу» \u002F «Зупинити слайдшоу», — а не тримають одну\nназву з ",[41,1426,1427],{},"aria-pressed",": разом ці два способи суперечили б один одному.",[10,1430,1431],{},"Панель інструментів на вузькому екрані й довга стрічка мініатюр\nгортаються вбік. Tab докручує смугу до кнопки цілою, разом із кільцем\nфокуса: браузер докручує лише кнопку, сховану повністю, а частково видиму\nлишав обрізаною. Клік і тап смугу не зсувають.",[10,1433,1434,1435,73],{},"Усі рухи — перехід між слайдами, політ із мініатюри, інерція, анімація\nзбільшення — вимикаються при ",[41,1436,249],{},[33,1438,1440],{"id":1439},"чого-немає-і-чому","Чого немає і чому",[738,1442,1443,1449,1459],{},[741,1444,1445,1448],{},[81,1446,1447],{},"Хеш в адресі"," — див. «Посилання на слайд»: роутер робить це краще.",[741,1450,1451,1454,1455,1458],{},[81,1452,1453],{},"Захист від збереження"," (",[41,1456,1457],{},"protected"," у Fancybox) — заборона правого\nкліку нікого не зупиняє, а скрінрідерам і людям із розширеннями заважає.",[741,1460,1461,1464,1465,1467],{},[81,1462,1463],{},"Ajax-вміст"," — у Vue для цього є слот ",[41,1466,69],{}," із власним\nзавантаженням даних.",[33,1469,1471],{"id":1470},"деталі-реалізації","Деталі реалізації",[10,1473,1474,1475,1478,1479,88,1482,1485,1486,1489,1490,1493,1494,88,1497,1500,1501,88,1504,1507],{},"Уся геометрія — чисті функції в ",[41,1476,1477],{},"app\u002Futils\u002Flightbox.ts",", покриті тестами\nбез рендеру: межі масштабу (",[41,1480,1481],{},"zoomLimits",[41,1483,1484],{},"fitScale"," для повернутого фото),\nзбільшення навколо точки (",[41,1487,1488],{},"zoomAround","), межі зсуву (",[41,1491,1492],{},"panBounds","), гумові\nкраї, інерція (",[41,1495,1496],{},"releaseVelocity",[41,1498,1499],{},"decay","), поріг закриття змахом, розбір\nпосилань YouTube і Vimeo, перетворення для польоту з мініатюри\n(",[41,1502,1503],{},"originTransform",[41,1505,1506],{},"visibleFraction",").",[10,1509,1510,1511,1514,1515,1518,1519,1522],{},"Слайд вважається готовим після ",[41,1512,1513],{},"decode()",", а не після події ",[41,1516,1517],{},"load",": зображення\nмає ",[41,1520,1521],{},"decoding=\"async\"",", і між завантаженням файлу та першою відмальовкою\nлишалися порожні кадри — заглушка-мініатюра вже зникла, а фото ще не видно.",[10,1524,1525,1526,1529,1530,1533,1534,1537],{},"Під пальцем збільшення й трек рухаються імперативно — записом ",[41,1527,1528],{},"transform","\nу стиль, а не реактивним ",[41,1531,1532],{},":style",": інакше кожен ",[41,1535,1536],{},"pointermove"," перемальовував\nби весь компонент разом зі стрічкою мініатюр. Реактивні лише похідні\nпрапорці, що змінюються рідко: «збільшено», «на межі масштабу».",[1539,1540,1541],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":590,"searchDepth":608,"depth":608,"links":1543},[1544,1545,1546,1547,1548,1549,1550,1551,1552,1553,1554,1555,1556,1557],{"id":35,"depth":608,"text":36},{"id":109,"depth":608,"text":110},{"id":259,"depth":608,"text":260},{"id":411,"depth":608,"text":412},{"id":435,"depth":608,"text":436},{"id":571,"depth":608,"text":572},{"id":732,"depth":608,"text":733},{"id":840,"depth":608,"text":841},{"id":1331,"depth":608,"text":1332},{"id":1338,"depth":608,"text":1339},{"id":1353,"depth":608,"text":1354},{"id":1380,"depth":608,"text":1381},{"id":1439,"depth":608,"text":1440},{"id":1470,"depth":608,"text":1471},[1559,1560,1561,1562,1563,1564,1565,1566,1477],"app\u002Fcomposables\u002FuseUiText.ts","app\u002Fcomponents\u002Fui\u002FUiSpinner.vue","app\u002Fcomposables\u002FuseOverlayStack.ts","app\u002Fcomposables\u002FuseScrollLock.ts","app\u002Fcomposables\u002FuseFocusTrap.ts","app\u002Fcomposables\u002FuseReducedMotion.ts","app\u002Fcomposables\u002FuseFullscreen.ts","app\u002Futils\u002Fcarousel.ts","Повноекранна галерея — фото, відео, YouTube, iframe і власні слайди; щипок, збільшення з інерцією, поворот, слайдшоу, повний екран, політ із мініатюри.",{"update:modelValue":1569,"update:index":1570,"close":1571},"Зміна стану відкриття. Використовуйте через `v-model`.","Поточний слайд змінився — стрілкою, свайпом, мініатюрою чи слайдшоу. Використовуйте через `v-model:index`.","Галерею закрито — хрестиком, Escape, змахом угору чи вниз або кліком у порожнє поле.","md",{},"\u002Fdocs\u002Fcomponents\u002Flightbox",{"title":5,"description":1567},"stable","docs\u002Fcomponents\u002Flightbox","VYHJqtev_6REwThXMoE54z6g9iAkgy7gjhR89xrSzWI",{"mode":1580,"prefetch":1581,"preload":1581,"filePath":1582,"declarationPath":1583,"pascalName":1269,"kebabName":1584,"chunkName":1585,"priority":597,"_scanned":915,"meta":1586},"all",false,"app\u002Fcomponents\u002Fui\u002FUiLightbox.vue","\u002Fapp\u002Fapp\u002Fcomponents\u002Fui\u002FUiLightbox.vue","ui-lightbox","components\u002Fui-lightbox",{"type":597,"props":1587,"slots":1763,"events":1883,"exposed":1904,"hash":1956},[1588,1645,1648,1653,1672,1682,1690,1695,1701,1709,1713,1717,1725,1730,1735,1740,1746,1752,1758],{"name":634,"global":1581,"description":1589,"tags":1590,"required":915,"type":1591,"schema":1592},"Слайди галереї: зображення, відео (файл, YouTube, Vimeo), сторінки в\niframe або власний вміст (`type: 'custom'` + слот `custom`).",[],"LightboxItem[]",{"kind":1593,"type":1591,"schema":1594},"array",{"0":1595},{"kind":1596,"type":1597,"schema":1598},"object","LightboxItem",{"type":1599,"src":1610,"alt":1614,"caption":1617,"thumbnail":1620,"srcset":1623,"sizes":1626,"width":1629,"height":1633,"poster":1636,"download":1639},{"name":61,"global":1581,"description":1600,"tags":1601,"required":1581,"type":1602,"schema":1603},"Вид вмісту. Типово — за `src`: посилання YouTube чи Vimeo і файли\n.mp4\u002F.webm\u002F.ogv\u002F.mov — відео, решта — зображення. `iframe` — будь-яка\nсторінка (мапа, PDF), `custom` — власний вміст через слот `custom`.",[],"\"image\" | \"video\" | \"iframe\" | \"custom\"",{"kind":1604,"type":1602,"schema":1605},"enum",{"0":1606,"1":1607,"2":1608,"3":1609},"\"image\"","\"video\"","\"iframe\"","\"custom\"",{"name":235,"global":1581,"description":1611,"tags":1612,"required":915,"type":1613,"schema":1613},"Адреса зображення, відеофайлу, відео на YouTube\u002FVimeo чи сторінки. Для `custom` — будь-який унікальний ключ.",[],"string",{"name":469,"global":1581,"description":1615,"tags":1616,"required":915,"type":1613,"schema":1613},"Текстова альтернатива зображення або назва відео чи сторінки. Для скрінрідера це і є слайд.",[],{"name":500,"global":1581,"description":1618,"tags":1619,"required":1581,"type":1613,"schema":1613},"Підпис під слайдом.",[],{"name":91,"global":1581,"description":1621,"tags":1622,"required":1581,"type":1613,"schema":1613},"Мініатюра для стрічки й заглушка, поки вантажиться повне зображення. Типово — `src`.",[],{"name":521,"global":1581,"description":1624,"tags":1625,"required":1581,"type":1613,"schema":1613},"Набір розмірів зображення. Під час збільшення галерея просить у браузера більший.",[],{"name":524,"global":1581,"description":1627,"tags":1628,"required":1581,"type":1613,"schema":1613},"`sizes` для `srcset`. Типово — `100vw`.",[],{"name":537,"global":1581,"description":1630,"tags":1631,"required":1581,"type":1632,"schema":1632},"Натуральна ширина, px: розмір заглушки до завантаження, пропорції iframe.",[],"number",{"name":540,"global":1581,"description":1634,"tags":1635,"required":1581,"type":1632,"schema":1632},"Натуральна висота, px.",[],{"name":87,"global":1581,"description":1637,"tags":1638,"required":1581,"type":1613,"schema":1613},"Кадр-обкладинка відео.",[],{"name":226,"global":1581,"description":1640,"tags":1641,"required":1581,"type":1642,"schema":1643},"Адреса для кнопки «Завантажити», коли вона інша, ніж `src`. `false` — не пропонувати.",[],"string | false",{"kind":1604,"type":1642,"schema":1644},{"0":1613,"1":567},{"name":752,"global":1581,"default":345,"description":1646,"tags":1647,"required":1581,"type":1632,"schema":1632},"Поточний слайд. Через `v-model:index`, але працює й без\nприв'язки: гортання тоді живе всередині компонента.",[],{"name":1649,"global":1581,"default":1650,"description":1651,"tags":1652,"required":1581,"type":1632,"schema":1632},"maxZoom","4","Найбільше збільшення відносно вписаного у вікно розміру. До\nнатурального розміру великого фото можна дійти завжди.",[],{"name":115,"global":1581,"default":1654,"description":1655,"tags":1656,"required":1581,"type":1657,"schema":1658},"[\"zoom\", \"slideshow\", \"fullscreen\", \"thumbnails\"]","Кнопки верхньої панелі — у цьому порядку. Лічильник і хрестик є\nзавжди; кнопки, яким нема чого робити, не показуються: повний екран на\niPhone, слайдшоу й мініатюри для одного слайда.",[],"(\"zoom\" | \"thumbnails\" | \"zoomIn\" | \"zoomOut\" | \"rotate\" | \"flip\" | \"slideshow\" | \"fullscreen\" | \"download\")[]",{"kind":1593,"type":1657,"schema":1659},{"0":1660},{"kind":1604,"type":1661,"schema":1662},"\"zoom\" | \"thumbnails\" | \"zoomIn\" | \"zoomOut\" | \"rotate\" | \"flip\" | \"slideshow\" | \"fullscreen\" | \"download\"",[1663,1664,1665,1666,1667,1668,1669,1670,1671],"\"zoom\"","\"thumbnails\"","\"zoomIn\"","\"zoomOut\"","\"rotate\"","\"flip\"","\"slideshow\"","\"fullscreen\"","\"download\"",{"name":1673,"global":1581,"default":1674,"description":1675,"tags":1676,"required":1581,"type":1677,"schema":1678},"transition","\"slide\"","Перехід між слайдами. `prefers-reduced-motion` вимикає будь-який.",[],"\"slide\" | \"fade\" | \"none\"",{"kind":1604,"type":1677,"schema":1679},{"0":1674,"1":1680,"2":1681},"\"fade\"","\"none\"",{"name":1683,"global":1581,"default":1663,"description":1684,"tags":1685,"required":1581,"type":1686,"schema":1687},"wheel","Що робить колесо миші. Щипок на тачпаді (Ctrl + колесо) збільшує\nзавжди — це жест масштабу, а не прокрутки.",[],"\"zoom\" | \"none\" | \"navigate\"",{"kind":1604,"type":1686,"schema":1688},{"0":1663,"1":1681,"2":1689},"\"navigate\"",{"name":1691,"global":1581,"default":1692,"description":1693,"tags":1694,"required":1581,"type":1632,"schema":1632},"interval","3000","Пауза між кадрами слайдшоу, мс.",[],{"name":255,"global":1581,"default":567,"description":1696,"tags":1697,"required":1581,"type":1698,"schema":1699},"Через скільки мілісекунд без руху миші ховати панелі й стрілки.\n`false` — не ховати. На дотику панелі ховає й повертає дотик до фото.",[],"number | false",{"kind":1604,"type":1698,"schema":1700},{"0":1632,"1":567},{"name":417,"global":1581,"default":1085,"description":1702,"tags":1703,"required":1581,"type":1704,"schema":1705},"Мініатюра на сторінці, з якої слайд «виростає» при відкритті й куди\nповертається при закритті. Функція від індексу: `(i) => thumbs[i]`.",[],"(index: number) => Element",{"kind":1706,"type":1707,"schema":1708},"event","(index: number): Element",{},{"name":578,"global":1581,"default":1085,"description":1710,"tags":1711,"required":1581,"type":1712,"schema":1712},"Перекриття підписів. Задавайте лише ключі, що змінюються; у проєкті з\ni18n — об'єкт із `t()`, і зміна мови оновить підписи на льоту.",[],"Partial\u003CLightboxLabels>",{"name":1391,"global":1581,"default":1714,"description":1715,"tags":1716,"required":1581,"type":1613,"schema":1613},"\"Перегляд зображень\"","Доступна назва діалогу.",[],{"name":1718,"global":1581,"default":567,"description":1719,"tags":1720,"required":1581,"type":1721,"schema":1722},"modelValue","Відкрито. Використовуйте через `v-model`.",[],"boolean",{"kind":1604,"type":1721,"schema":1723},{"0":567,"1":1724},"true",{"name":199,"global":1581,"default":567,"description":1726,"tags":1727,"required":1581,"type":1721,"schema":1728},"З останнього слайда переходити на перший.",[],{"kind":1604,"type":1721,"schema":1729},{"0":567,"1":1724},{"name":216,"global":1581,"default":1724,"description":1731,"tags":1732,"required":1581,"type":1721,"schema":1733},"Показувати стрічку мініатюр при відкритті. Сама ховається, коли слайд один.",[],{"kind":1604,"type":1721,"schema":1734},{"0":567,"1":1724},{"name":831,"global":1581,"default":567,"description":1736,"tags":1737,"required":1581,"type":1721,"schema":1738},"Список слайдів ще дотягується — наприклад, чат відкрив одне фото і\nпідвантажує сусідні. Поки так, стрічка мініатюр і кнопки слайдшоу та\nмініатюр займають місце навіть для одного слайда: інакше, коли решта\nз'явиться, стрічка відніме висоту в сцени, і фото стрибне. Вимкніть\nпрапорець, щойно список дотягнувся (або не дотягнувся): одиночний\nслайд знову ховає стрічку.",[],{"kind":1604,"type":1721,"schema":1739},{"0":567,"1":1724},{"name":1741,"global":1581,"default":1724,"description":1742,"tags":1743,"required":1581,"type":1721,"schema":1744},"zoomable","Збільшення зображень: клік, подвійний дотик, щипок, колесо, `+`\u002F`−`.\nЗбільшене фото рухається перетягуванням — з інерцією, як на телефоні.",[],{"kind":1604,"type":1721,"schema":1745},{"0":567,"1":1724},{"name":1747,"global":1581,"default":1724,"description":1748,"tags":1749,"required":1581,"type":1721,"schema":1750},"dragToClose","Змах угору чи вниз закриває галерею — як у галереї телефона.",[],{"kind":1604,"type":1721,"schema":1751},{"0":567,"1":1724},{"name":1753,"global":1581,"default":1724,"description":1754,"tags":1755,"required":1581,"type":1721,"schema":1756},"closeOnBackdrop","Клік мишею в порожнє поле навколо слайда закриває галерею.",[],{"kind":1604,"type":1721,"schema":1757},{"0":567,"1":1724},{"name":242,"global":1581,"default":567,"description":1759,"tags":1760,"required":1581,"type":1721,"schema":1761},"Запустити слайдшоу одразу при відкритті. Кнопка паузи тоді є завжди,\nа при `prefers-reduced-motion` слайдшоу саме не стартує.",[],{"kind":1604,"type":1721,"schema":1762},{"0":567,"1":1724},[1764,1803,1840],{"name":1765,"type":1766,"description":1767,"tags":1768,"schema":1769},"actions","{ image: LightboxItem; index: number; }","Додаткові дії у верхній панелі: «Поділитися», «До товару».",[],{"kind":1596,"type":1766,"schema":1770},{"image":1771,"index":1801},{"name":483,"global":1581,"description":590,"tags":1772,"required":915,"type":1597,"schema":1773},[],{"kind":1596,"type":1597,"schema":1774},{"type":1775,"src":1779,"alt":1781,"caption":1783,"thumbnail":1785,"srcset":1787,"sizes":1789,"width":1791,"height":1793,"poster":1795,"download":1797},{"name":61,"global":1581,"description":1600,"tags":1776,"required":1581,"type":1602,"schema":1777},[],{"kind":1604,"type":1602,"schema":1778},{"0":1606,"1":1607,"2":1608,"3":1609},{"name":235,"global":1581,"description":1611,"tags":1780,"required":915,"type":1613,"schema":1613},[],{"name":469,"global":1581,"description":1615,"tags":1782,"required":915,"type":1613,"schema":1613},[],{"name":500,"global":1581,"description":1618,"tags":1784,"required":1581,"type":1613,"schema":1613},[],{"name":91,"global":1581,"description":1621,"tags":1786,"required":1581,"type":1613,"schema":1613},[],{"name":521,"global":1581,"description":1624,"tags":1788,"required":1581,"type":1613,"schema":1613},[],{"name":524,"global":1581,"description":1627,"tags":1790,"required":1581,"type":1613,"schema":1613},[],{"name":537,"global":1581,"description":1630,"tags":1792,"required":1581,"type":1632,"schema":1632},[],{"name":540,"global":1581,"description":1634,"tags":1794,"required":1581,"type":1632,"schema":1632},[],{"name":87,"global":1581,"description":1637,"tags":1796,"required":1581,"type":1613,"schema":1613},[],{"name":226,"global":1581,"description":1640,"tags":1798,"required":1581,"type":1642,"schema":1799},[],{"kind":1604,"type":1642,"schema":1800},{"0":1613,"1":567},{"name":752,"global":1581,"description":590,"tags":1802,"required":915,"type":1632,"schema":1632},[],{"name":500,"type":1766,"description":1804,"tags":1805,"schema":1806},"Власний підпис замість `caption` слайда.",[],{"kind":1596,"type":1766,"schema":1807},{"image":1808,"index":1838},{"name":483,"global":1581,"description":590,"tags":1809,"required":915,"type":1597,"schema":1810},[],{"kind":1596,"type":1597,"schema":1811},{"type":1812,"src":1816,"alt":1818,"caption":1820,"thumbnail":1822,"srcset":1824,"sizes":1826,"width":1828,"height":1830,"poster":1832,"download":1834},{"name":61,"global":1581,"description":1600,"tags":1813,"required":1581,"type":1602,"schema":1814},[],{"kind":1604,"type":1602,"schema":1815},{"0":1606,"1":1607,"2":1608,"3":1609},{"name":235,"global":1581,"description":1611,"tags":1817,"required":915,"type":1613,"schema":1613},[],{"name":469,"global":1581,"description":1615,"tags":1819,"required":915,"type":1613,"schema":1613},[],{"name":500,"global":1581,"description":1618,"tags":1821,"required":1581,"type":1613,"schema":1613},[],{"name":91,"global":1581,"description":1621,"tags":1823,"required":1581,"type":1613,"schema":1613},[],{"name":521,"global":1581,"description":1624,"tags":1825,"required":1581,"type":1613,"schema":1613},[],{"name":524,"global":1581,"description":1627,"tags":1827,"required":1581,"type":1613,"schema":1613},[],{"name":537,"global":1581,"description":1630,"tags":1829,"required":1581,"type":1632,"schema":1632},[],{"name":540,"global":1581,"description":1634,"tags":1831,"required":1581,"type":1632,"schema":1632},[],{"name":87,"global":1581,"description":1637,"tags":1833,"required":1581,"type":1613,"schema":1613},[],{"name":226,"global":1581,"description":1640,"tags":1835,"required":1581,"type":1642,"schema":1836},[],{"kind":1604,"type":1642,"schema":1837},{"0":1613,"1":567},{"name":752,"global":1581,"description":590,"tags":1839,"required":915,"type":1632,"schema":1632},[],{"name":69,"type":1841,"description":1842,"tags":1843,"schema":1844},"{ image: LightboxItem; index: number; active: boolean; }","Вміст слайдів із `type: 'custom'`. `active` — чи слайд зараз поточний.",[],{"kind":1596,"type":1841,"schema":1845},{"image":1846,"index":1876,"active":1878},{"name":483,"global":1581,"description":590,"tags":1847,"required":915,"type":1597,"schema":1848},[],{"kind":1596,"type":1597,"schema":1849},{"type":1850,"src":1854,"alt":1856,"caption":1858,"thumbnail":1860,"srcset":1862,"sizes":1864,"width":1866,"height":1868,"poster":1870,"download":1872},{"name":61,"global":1581,"description":1600,"tags":1851,"required":1581,"type":1602,"schema":1852},[],{"kind":1604,"type":1602,"schema":1853},{"0":1606,"1":1607,"2":1608,"3":1609},{"name":235,"global":1581,"description":1611,"tags":1855,"required":915,"type":1613,"schema":1613},[],{"name":469,"global":1581,"description":1615,"tags":1857,"required":915,"type":1613,"schema":1613},[],{"name":500,"global":1581,"description":1618,"tags":1859,"required":1581,"type":1613,"schema":1613},[],{"name":91,"global":1581,"description":1621,"tags":1861,"required":1581,"type":1613,"schema":1613},[],{"name":521,"global":1581,"description":1624,"tags":1863,"required":1581,"type":1613,"schema":1613},[],{"name":524,"global":1581,"description":1627,"tags":1865,"required":1581,"type":1613,"schema":1613},[],{"name":537,"global":1581,"description":1630,"tags":1867,"required":1581,"type":1632,"schema":1632},[],{"name":540,"global":1581,"description":1634,"tags":1869,"required":1581,"type":1632,"schema":1632},[],{"name":87,"global":1581,"description":1637,"tags":1871,"required":1581,"type":1613,"schema":1613},[],{"name":226,"global":1581,"description":1640,"tags":1873,"required":1581,"type":1642,"schema":1874},[],{"kind":1604,"type":1642,"schema":1875},{"0":1613,"1":567},{"name":752,"global":1581,"description":590,"tags":1877,"required":915,"type":1632,"schema":1632},[],{"name":1879,"global":1581,"description":590,"tags":1880,"required":915,"type":1721,"schema":1881},"active",[],{"kind":1604,"type":1721,"schema":1882},{"0":567,"1":1724},[1884,1892,1898],{"name":1885,"description":590,"tags":1886,"type":1887,"signature":1888,"schema":1889},"update:modelValue",[],"[value: boolean]","(event: \"update:modelValue\", value: boolean): void",[1890],{"kind":1604,"type":1721,"schema":1891},[567,1724],{"name":1893,"description":590,"tags":1894,"type":1895,"signature":1896,"schema":1897},"close",[],"[]","(event: \"close\"): void",[],{"name":1899,"description":590,"tags":1900,"type":1901,"signature":1902,"schema":1903},"update:index",[],"[value: number]","(event: \"update:index\", value: number): void",[1632],[1905,1911,1915,1922,1925,1928,1932,1936,1942,1948,1952],{"name":1906,"type":1907,"description":590,"tags":1908,"schema":1909},"previous","() => void",[],{"kind":1706,"type":1910},"(): void",{"name":1912,"type":1907,"description":590,"tags":1913,"schema":1914},"next",[],{"kind":1706,"type":1910},{"name":1916,"type":1917,"description":590,"tags":1918,"schema":1919},"goTo","(target: number) => void",[],{"kind":1706,"type":1920,"schema":1921},"(target: number): void",{},{"name":160,"type":1907,"description":590,"tags":1923,"schema":1924},[],{"kind":1706,"type":1910},{"name":163,"type":1907,"description":590,"tags":1926,"schema":1927},[],{"kind":1706,"type":1910},{"name":1929,"type":1907,"description":590,"tags":1930,"schema":1931},"resetZoom",[],{"kind":1706,"type":1910},{"name":1933,"type":1907,"description":590,"tags":1934,"schema":1935},"toggleZoom",[],{"kind":1706,"type":1910},{"name":173,"type":1937,"description":590,"tags":1938,"schema":1939},"(direction?: 1 | -1) => void",[],{"kind":1706,"type":1940,"schema":1941},"(direction?: 1 | -1): void",{},{"name":183,"type":1943,"description":590,"tags":1944,"schema":1945},"(axis?: \"x\" | \"y\") => void",[],{"kind":1706,"type":1946,"schema":1947},"(axis?: \"x\" | \"y\"): void",{},{"name":1949,"type":1907,"description":590,"tags":1950,"schema":1951},"toggleSlideshow",[],{"kind":1706,"type":1910},{"name":1953,"type":1907,"description":590,"tags":1954,"schema":1955},"toggleFullscreen",[],{"kind":1706,"type":1910},"UXZxazgingWWsuxB2Oo6mCZjes4t6cCW5x2GqOKIX4w",1792004323340]