[{"data":1,"prerenderedAt":32376},["ShallowReactive",2],{"navigation_docs":3,"-react-native-lists-and-virtualization":3497,"-react-native-lists-and-virtualization-surround":32371},[4,1707,1912,2366,2547,2673,2880,3002,3052,3109,3143,3269,3346,3360,3423,3440,3493],{"title":5,"icon":6,"path":7,"stem":8,"children":9},"C#","i-devicon-csharp","\u002Fcsharp","01.csharp",[10,13,60,90,120,202,219,253,379,404,457,650,1364,1654,1703],{"title":11,"path":7,"stem":12},"C# та .NET","01.csharp\u002Findex",{"title":14,"icon":15,"path":16,"stem":17,"children":18,"page":59},"Fundamentals","i-lucide-book-open","\u002Fcsharp\u002Ffundamentals","01.csharp\u002F01.fundamentals",[19,23,27,31,35,39,43,47,51,55],{"title":20,"path":21,"stem":22},"Вступ до екосистеми .NET","\u002Fcsharp\u002Ffundamentals\u002Fintroduction-to-ecosystem","01.csharp\u002F01.fundamentals\u002F01.introduction-to-ecosystem",{"title":24,"path":25,"stem":26},"Структура програми на C#","\u002Fcsharp\u002Ffundamentals\u002Fprogram-structure","01.csharp\u002F01.fundamentals\u002F02.program-structure",{"title":28,"path":29,"stem":30},"Змінні та Типи Даних","\u002Fcsharp\u002Ffundamentals\u002Fvariables-data-types","01.csharp\u002F01.fundamentals\u002F03.variables-data-types",{"title":32,"path":33,"stem":34},"Масиви","\u002Fcsharp\u002Ffundamentals\u002Farrays","01.csharp\u002F01.fundamentals\u002F04.arrays",{"title":36,"path":37,"stem":38},"Strings & Text Handling","\u002Fcsharp\u002Ffundamentals\u002Fstrings-text-handling","01.csharp\u002F01.fundamentals\u002F05.strings-text-handling",{"title":40,"path":41,"stem":42},"Дати і Час","\u002Fcsharp\u002Ffundamentals\u002Fdates-time-handling","01.csharp\u002F01.fundamentals\u002F06.dates-time-handling",{"title":44,"path":45,"stem":46},"Потік Керування","\u002Fcsharp\u002Ffundamentals\u002Fcontrol-flow","01.csharp\u002F01.fundamentals\u002F07.control-flow",{"title":48,"path":49,"stem":50},"Методи","\u002Fcsharp\u002Ffundamentals\u002Fmethods","01.csharp\u002F01.fundamentals\u002F08.methods",{"title":52,"path":53,"stem":54},"Основи Відлагодження","\u002Fcsharp\u002Ffundamentals\u002Fdebugging-basics","01.csharp\u002F01.fundamentals\u002F09.debugging-basics",{"title":56,"path":57,"stem":58},"Інтерактивна Консоль (Classic)","\u002Fcsharp\u002Ffundamentals\u002Finteractive-console","01.csharp\u002F01.fundamentals\u002F10.interactive-console",false,{"title":61,"icon":62,"path":63,"stem":64,"children":65,"page":59},"OOP","i-lucide-box","\u002Fcsharp\u002Foop","01.csharp\u002F02.oop",[66,70,74,78,82,86],{"title":67,"path":68,"stem":69},"Package Management (Управління Пакетами)","\u002Fcsharp\u002Foop\u002Fpackage-management","01.csharp\u002F02.oop\u002F01.package-management",{"title":71,"path":72,"stem":73},"Класи та Об'єкти","\u002Fcsharp\u002Foop\u002Fclasses-objects","01.csharp\u002F02.oop\u002F02.classes-objects",{"title":75,"path":76,"stem":77},"Властивості та Поля","\u002Fcsharp\u002Foop\u002Fproperties-fields","01.csharp\u002F02.oop\u002F03.properties-fields",{"title":79,"path":80,"stem":81},"Стовпи ООП","\u002Fcsharp\u002Foop\u002Foop-pillars","01.csharp\u002F02.oop\u002F04.oop-pillars",{"title":83,"path":84,"stem":85},"Advanced Types","\u002Fcsharp\u002Foop\u002Fadvanced-types","01.csharp\u002F02.oop\u002F05.advanced-types",{"title":87,"path":88,"stem":89},"Namespaces (Простори Імен)","\u002Fcsharp\u002Foop\u002Fnamespaces","01.csharp\u002F02.oop\u002F06.namespaces",{"title":91,"icon":92,"path":93,"stem":94,"children":95,"page":59},"Advanced Core","i-lucide-zap","\u002Fcsharp\u002Fadvanced-core","01.csharp\u002F03.advanced-core",[96,100,104,108,112,116],{"title":97,"path":98,"stem":99},"Generics (Узагальнення)","\u002Fcsharp\u002Fadvanced-core\u002Fgenerics","01.csharp\u002F03.advanced-core\u002F01.generics",{"title":101,"path":102,"stem":103},"Делегати, Події та Лямбда-вирази","\u002Fcsharp\u002Fadvanced-core\u002Fdelegates-events-lambdas","01.csharp\u002F03.advanced-core\u002F02.delegates-events-lambdas",{"title":105,"path":106,"stem":107},"Interfaces Deep Dive (Інтерфейси: Поглиблений Розгляд)","\u002Fcsharp\u002Fadvanced-core\u002Finterfaces-deep-dive","01.csharp\u002F03.advanced-core\u002F03.interfaces-deep-dive",{"title":109,"path":110,"stem":111},"Обробка Винятків","\u002Fcsharp\u002Fadvanced-core\u002Fexception-handling","01.csharp\u002F03.advanced-core\u002F04.exception-handling",{"title":113,"path":114,"stem":115},"Pattern Matching","\u002Fcsharp\u002Fadvanced-core\u002Fpattern-matching","01.csharp\u002F03.advanced-core\u002F05.pattern-matching",{"title":117,"path":118,"stem":119},"Додаткові Можливості C#","\u002Fcsharp\u002Fadvanced-core\u002Fadditional-features","01.csharp\u002F03.advanced-core\u002F06.additional-features",{"title":121,"icon":122,"path":123,"stem":124,"children":125,"page":59},"Architecture Best Practices","i-lucide-building-2","\u002Fcsharp\u002Farchitecture-best-practices","01.csharp\u002F04.architecture-best-practices",[126,130,149,153,157,161,165,169],{"title":127,"path":128,"stem":129},"Software Design Principles (Частина 1)","\u002Fcsharp\u002Farchitecture-best-practices\u002Fsoftware-design-principles","01.csharp\u002F04.architecture-best-practices\u002F01.software-design-principles",{"title":131,"icon":132,"path":133,"stem":134,"children":135,"page":59},"Design Patterns","i-lucide-folder","\u002Fcsharp\u002Farchitecture-best-practices\u002Fdesign-patterns","01.csharp\u002F04.architecture-best-practices\u002F02.design-patterns",[136],{"title":137,"icon":132,"path":138,"stem":139,"children":140,"page":59},"Creational","\u002Fcsharp\u002Farchitecture-best-practices\u002Fdesign-patterns\u002Fcreational","01.csharp\u002F04.architecture-best-practices\u002F02.design-patterns\u002Fcreational",[141,145],{"title":142,"path":143,"stem":144},"Singleton (Одинак)","\u002Fcsharp\u002Farchitecture-best-practices\u002Fdesign-patterns\u002Fcreational\u002Fsingleton","01.csharp\u002F04.architecture-best-practices\u002F02.design-patterns\u002Fcreational\u002F01.singleton",{"title":146,"path":147,"stem":148},"Builder (Будівельник)","\u002Fcsharp\u002Farchitecture-best-practices\u002Fdesign-patterns\u002Fcreational\u002Fbuilder","01.csharp\u002F04.architecture-best-practices\u002F02.design-patterns\u002Fcreational\u002F02.builder",{"title":150,"path":151,"stem":152},"Building Professional CLIs","\u002Fcsharp\u002Farchitecture-best-practices\u002Fbuilding-professional-clis","01.csharp\u002F04.architecture-best-practices\u002F03.building-professional-clis",{"title":154,"path":155,"stem":156},"Validation & Flow Control","\u002Fcsharp\u002Farchitecture-best-practices\u002Fvalidation-flow-control","01.csharp\u002F04.architecture-best-practices\u002F04.validation-flow-control",{"title":158,"path":159,"stem":160},"The Modern .NET Host (Microsoft.Extensions)","\u002Fcsharp\u002Farchitecture-best-practices\u002Fmodern-dotnet-host","01.csharp\u002F04.architecture-best-practices\u002F05.modern-dotnet-host",{"title":162,"path":163,"stem":164},"Data Mapper: Repository та DAO патерни (Частина 1)","\u002Fcsharp\u002Farchitecture-best-practices\u002Fdata-mapper-part1","01.csharp\u002F04.architecture-best-practices\u002F06.data-mapper-part1",{"title":166,"path":167,"stem":168},"Data Mapper: Repository та DAO патерни (Частина 2)","\u002Fcsharp\u002Farchitecture-best-practices\u002Fdata-mapper-part2","01.csharp\u002F04.architecture-best-practices\u002F07.data-mapper-part2",{"title":170,"icon":132,"path":171,"stem":172,"children":173,"page":59},"Di Ioc","\u002Fcsharp\u002Farchitecture-best-practices\u002Fdi-ioc","01.csharp\u002F04.architecture-best-practices\u002F08.di-ioc",[174,178,182,186,190,194,198],{"title":175,"path":176,"stem":177},"Проблема залежностей та Інверсія Контролю","\u002Fcsharp\u002Farchitecture-best-practices\u002Fdi-ioc\u002Fthe-dependency-problem","01.csharp\u002F04.architecture-best-practices\u002F08.di-ioc\u002F01.the-dependency-problem",{"title":179,"path":180,"stem":181},"Будуємо власний Service Container","\u002Fcsharp\u002Farchitecture-best-practices\u002Fdi-ioc\u002Fbuild-your-own-container","01.csharp\u002F04.architecture-best-practices\u002F08.di-ioc\u002F02.build-your-own-container",{"title":183,"path":184,"stem":185},"Service Locator: Паттерн та Анти-паттерн","\u002Fcsharp\u002Farchitecture-best-practices\u002Fdi-ioc\u002Fservice-locator-pattern","01.csharp\u002F04.architecture-best-practices\u002F08.di-ioc\u002F03.service-locator-pattern",{"title":187,"path":188,"stem":189},"Паттерни Dependency Injection","\u002Fcsharp\u002Farchitecture-best-practices\u002Fdi-ioc\u002Fdependency-injection-patterns","01.csharp\u002F04.architecture-best-practices\u002F08.di-ioc\u002F04.dependency-injection-patterns",{"title":191,"path":192,"stem":193},"Microsoft DI: IServiceCollection та IServiceProvider","\u002Fcsharp\u002Farchitecture-best-practices\u002Fdi-ioc\u002Fmicrosoft-di-deep-dive","01.csharp\u002F04.architecture-best-practices\u002F08.di-ioc\u002F05.microsoft-di-deep-dive",{"title":195,"path":196,"stem":197},"Service Lifetimes та Scopes","\u002Fcsharp\u002Farchitecture-best-practices\u002Fdi-ioc\u002Fservice-lifetimes-and-scopes","01.csharp\u002F04.architecture-best-practices\u002F08.di-ioc\u002F06.service-lifetimes-and-scopes",{"title":199,"path":200,"stem":201},"DI Анти-паттерни та Найкращі Практики","\u002Fcsharp\u002Farchitecture-best-practices\u002Fdi-ioc\u002Fdi-anti-patterns-and-best-practices","01.csharp\u002F04.architecture-best-practices\u002F08.di-ioc\u002F07.di-anti-patterns-and-best-practices",{"title":203,"icon":132,"path":204,"stem":205,"children":206,"page":59},"Standard Library","\u002Fcsharp\u002Fstandard-library","01.csharp\u002F05.standard-library",[207,211,215],{"title":208,"path":209,"stem":210},"Collections (Колекції)","\u002Fcsharp\u002Fstandard-library\u002Fcollections","01.csharp\u002F05.standard-library\u002F01.collections",{"title":212,"path":213,"stem":214},"High Performance Types (Високопродуктивні Типи)","\u002Fcsharp\u002Fstandard-library\u002Fhigh-performance-types","01.csharp\u002F05.standard-library\u002F02.high-performance-types",{"title":216,"path":217,"stem":218},"LINQ (Language Integrated Query)","\u002Fcsharp\u002Fstandard-library\u002Flinq","01.csharp\u002F05.standard-library\u002F03.linq",{"title":220,"icon":221,"path":222,"stem":223,"children":224,"page":59},"System Internals Concurrency","i-lucide-server","\u002Fcsharp\u002Fsystem-internals-concurrency","01.csharp\u002F06.system-internals-concurrency",[225,229,233,237,241,245,249],{"title":226,"path":227,"stem":228},"Memory Management","\u002Fcsharp\u002Fsystem-internals-concurrency\u002Fmemory-management","01.csharp\u002F06.system-internals-concurrency\u002F01.memory-management",{"title":230,"path":231,"stem":232},"Reflection API: System.Type та Метадані","\u002Fcsharp\u002Fsystem-internals-concurrency\u002Freflection-fundamentals","01.csharp\u002F06.system-internals-concurrency\u002F02.reflection-fundamentals",{"title":234,"path":235,"stem":236},"Attributes та Dynamic Language Runtime","\u002Fcsharp\u002Fsystem-internals-concurrency\u002Fattributes-dynamic","01.csharp\u002F06.system-internals-concurrency\u002F03.attributes-dynamic",{"title":238,"path":239,"stem":240},"Expression Trees: Швидка Альтернатива Рефлексії","\u002Fcsharp\u002Fsystem-internals-concurrency\u002Fexpression-trees-compiled","01.csharp\u002F06.system-internals-concurrency\u002F04.expression-trees-compiled",{"title":242,"path":243,"stem":244},"Source Generators: Compile-Time Code Generation","\u002Fcsharp\u002Fsystem-internals-concurrency\u002Fsource-generators","01.csharp\u002F06.system-internals-concurrency\u002F05.source-generators",{"title":246,"path":247,"stem":248},"Multithreading Fundamentals","\u002Fcsharp\u002Fsystem-internals-concurrency\u002Fmultithreading-fundamentals","01.csharp\u002F06.system-internals-concurrency\u002F06.multithreading-fundamentals",{"title":250,"path":251,"stem":252},"Synchronization Primitives","\u002Fcsharp\u002Fsystem-internals-concurrency\u002Fsynchronization-primitives","01.csharp\u002F06.system-internals-concurrency\u002F07.synchronization-primitives",{"title":254,"icon":255,"path":256,"stem":257,"children":258,"page":59},"System Programming Windows","i-lucide-cpu","\u002Fcsharp\u002Fsystem-programming-windows","01.csharp\u002F07.system-programming-windows",[259,263,267,271,275,279,283,287,291,295,299,303,307,311,315,319,323,327,331,335,339,343,347,351,355,359,363,367,371,375],{"title":260,"path":261,"stem":262},"Як Працює Операційна Система","\u002Fcsharp\u002Fsystem-programming-windows\u002Fhow-os-works","01.csharp\u002F07.system-programming-windows\u002F01.how-os-works",{"title":264,"path":265,"stem":266},"Процеси в .NET — API та Запуск","\u002Fcsharp\u002Fsystem-programming-windows\u002Fprocesses-in-dotnet","01.csharp\u002F07.system-programming-windows\u002F02.processes-in-dotnet",{"title":268,"path":269,"stem":270},"Процеси в .NET — IPC та Міжпроцесна Комунікація","\u002Fcsharp\u002Fsystem-programming-windows\u002F02a.processes-ipc","01.csharp\u002F07.system-programming-windows\u002F02a.processes-ipc",{"title":272,"path":273,"stem":274},"Application Domains та Збірки — AppDomain і AssemblyLoadContext","\u002Fcsharp\u002Fsystem-programming-windows\u002Fappdomains-assemblies","01.csharp\u002F07.system-programming-windows\u002F03.appdomains-assemblies",{"title":276,"path":277,"stem":278},"Application Domains та Збірки — Plug-in Система з Hot-Reload","\u002Fcsharp\u002Fsystem-programming-windows\u002F03a.appdomains-plugin-system","01.csharp\u002F07.system-programming-windows\u002F03a.appdomains-plugin-system",{"title":280,"path":281,"stem":282},"Потоки — Основи та API Thread","\u002Fcsharp\u002Fsystem-programming-windows\u002Fthread-fundamentals","01.csharp\u002F07.system-programming-windows\u002F04.thread-fundamentals",{"title":284,"path":285,"stem":286},"Потоки — Lifecycle, Пріоритети та Безпечне Завершення","\u002Fcsharp\u002Fsystem-programming-windows\u002F04a.thread-lifecycle-priorities","01.csharp\u002F07.system-programming-windows\u002F04a.thread-lifecycle-priorities",{"title":288,"path":289,"stem":290},"Проблеми Спільного Стану — Race Condition та Data Race","\u002Fcsharp\u002Fsystem-programming-windows\u002Fshared-state-problems","01.csharp\u002F07.system-programming-windows\u002F05.shared-state-problems",{"title":292,"path":293,"stem":294},"Проблеми Спільного Стану — Memory Model та volatile","\u002Fcsharp\u002Fsystem-programming-windows\u002F05a.shared-state-memory-model","01.csharp\u002F07.system-programming-windows\u002F05a.shared-state-memory-model",{"title":296,"path":297,"stem":298},"Синхронізація — Monitor, lock та еволюція примітивів","\u002Fcsharp\u002Fsystem-programming-windows\u002Fsynchronization-fundamentals","01.csharp\u002F07.system-programming-windows\u002F06.synchronization-fundamentals",{"title":300,"path":301,"stem":302},"Синхронізація — Наскрізний Приклад та Deadlock Detection","\u002Fcsharp\u002Fsystem-programming-windows\u002F06a.synchronization-walkthrough","01.csharp\u002F07.system-programming-windows\u002F06a.synchronization-walkthrough",{"title":304,"path":305,"stem":306},"Синхронізація — Mutex, Semaphore та Event-Based Primitives","\u002Fcsharp\u002Fsystem-programming-windows\u002Fsynchronization-advanced","01.csharp\u002F07.system-programming-windows\u002F07.synchronization-advanced",{"title":308,"path":309,"stem":310},"Синхронізація — Interlocked, Volatile та Lock-Free Структури","\u002Fcsharp\u002Fsystem-programming-windows\u002F07a.synchronization-advanced-walkthrough","01.csharp\u002F07.system-programming-windows\u002F07a.synchronization-advanced-walkthrough",{"title":312,"path":313,"stem":314},"Interlocked, CAS та Lock-Free Структури","\u002Fcsharp\u002Fsystem-programming-windows\u002Finterlocked-cas-lockfree","01.csharp\u002F07.system-programming-windows\u002F08.interlocked-cas-lockfree",{"title":316,"path":317,"stem":318},"Volatile, Memory Model та Spinning","\u002Fcsharp\u002Fsystem-programming-windows\u002F08a.volatile-memory-model","01.csharp\u002F07.system-programming-windows\u002F08a.volatile-memory-model",{"title":320,"path":321,"stem":322},"ThreadPool — Пул Потоків для Ефективного Виконання","\u002Fcsharp\u002Fsystem-programming-windows\u002Fthread-pool","01.csharp\u002F07.system-programming-windows\u002F09.thread-pool",{"title":324,"path":325,"stem":326},"ThreadPool — Просунуті Сценарії та Внутрішня Будова","\u002Fcsharp\u002Fsystem-programming-windows\u002F09a.thread-pool-advanced","01.csharp\u002F07.system-programming-windows\u002F09a.thread-pool-advanced",{"title":328,"path":329,"stem":330},"Concurrent та Immutable Collections","\u002Fcsharp\u002Fsystem-programming-windows\u002Fconcurrent-collections","01.csharp\u002F07.system-programming-windows\u002F10.concurrent-collections",{"title":332,"path":333,"stem":334},"TPL, Task та Композиція — Від Thread до Task","\u002Fcsharp\u002Fsystem-programming-windows\u002Ftpl-parallel-plinq","01.csharp\u002F07.system-programming-windows\u002F11.tpl-parallel-plinq",{"title":336,"path":337,"stem":338},"Parallel Class та PLINQ — Data Parallelism","\u002Fcsharp\u002Fsystem-programming-windows\u002F11a.tpl-parallel-plinq-advanced","01.csharp\u002F07.system-programming-windows\u002F11a.tpl-parallel-plinq-advanced",{"title":340,"path":341,"stem":342},"Async\u002FAwait — Фундамент Асинхронного Програмування","\u002Fcsharp\u002Fsystem-programming-windows\u002Fasync-fundamentals","01.csharp\u002F07.system-programming-windows\u002F12.async-fundamentals",{"title":344,"path":345,"stem":346},"SynchronizationContext та ConfigureAwait — Контекст Виконання","\u002Fcsharp\u002Fsystem-programming-windows\u002Fasync-context-configureawait","01.csharp\u002F07.system-programming-windows\u002F13.async-context-configureawait",{"title":348,"path":349,"stem":350},"Async — Просунуті Паттерни","\u002Fcsharp\u002Fsystem-programming-windows\u002Fasync-advanced","01.csharp\u002F07.system-programming-windows\u002F14.async-advanced",{"title":352,"path":353,"stem":354},"System.Threading.Channels — Async Producer-Consumer","\u002Fcsharp\u002Fsystem-programming-windows\u002Fchannels","01.csharp\u002F07.system-programming-windows\u002F15.channels",{"title":356,"path":357,"stem":358},"Асинхронна Синхронізація","\u002Fcsharp\u002Fsystem-programming-windows\u002Fasync-synchronization","01.csharp\u002F07.system-programming-windows\u002F16.async-synchronization",{"title":360,"path":361,"stem":362},"Unsafe Code та Вказівники","\u002Fcsharp\u002Fsystem-programming-windows\u002Funsafe-code","01.csharp\u002F07.system-programming-windows\u002F17.unsafe-code",{"title":364,"path":365,"stem":366},"P\u002FInvoke та Windows API — Міст між .NET та Native Code","\u002Fcsharp\u002Fsystem-programming-windows\u002Fpinvoke-winapi","01.csharp\u002F07.system-programming-windows\u002F18.pinvoke-winapi",{"title":368,"path":369,"stem":370},"Реєстр Windows — Центральна База Конфігурації Системи","\u002Fcsharp\u002Fsystem-programming-windows\u002Fwindows-registry","01.csharp\u002F07.system-programming-windows\u002F19.windows-registry",{"title":372,"path":373,"stem":374},"Windows Hooks, Hotkeys та Services — Глибока Інтеграція з ОС","\u002Fcsharp\u002Fsystem-programming-windows\u002Fwindows-hooks-services","01.csharp\u002F07.system-programming-windows\u002F20.windows-hooks-services",{"title":376,"path":377,"stem":378},"Системне Програмування C# (Windows) — 07.system-programming-windows","\u002Fcsharp\u002Fsystem-programming-windows\u002Fimplementation_plan","01.csharp\u002F07.system-programming-windows\u002Fimplementation_plan",{"title":380,"icon":132,"path":381,"stem":382,"children":383,"page":59},"Io","\u002Fcsharp\u002Fio","01.csharp\u002F08.io",[384,388,392,396,400],{"title":385,"path":386,"stem":387},"8.1.1. Основи роботи з файловою системою","\u002Fcsharp\u002Fio\u002Ffile-system-basics","01.csharp\u002F08.io\u002F01.file-system-basics",{"title":389,"path":390,"stem":391},"8.1.2. Потоки (Streams) та Серіалізація Даних","\u002Fcsharp\u002Fio\u002Fstreams-serialization","01.csharp\u002F08.io\u002F02.streams-serialization",{"title":393,"path":394,"stem":395},"8.2.1. JSON Serialization з System.Text.Json","\u002Fcsharp\u002Fio\u002Fjson-serialization","01.csharp\u002F08.io\u002F03.json-serialization",{"title":397,"path":398,"stem":399},"8.2.2. XML Serialization та LINQ to XML","\u002Fcsharp\u002Fio\u002Fxml-serialization","01.csharp\u002F08.io\u002F04.xml-serialization",{"title":401,"path":402,"stem":403},"8.2.3. Binary Serialization: MessagePack та Protocol Buffers","\u002Fcsharp\u002Fio\u002Fbinary-serialization","01.csharp\u002F08.io\u002F05.binary-serialization",{"title":405,"icon":132,"path":406,"stem":407,"children":408,"page":59},"Ado Net","\u002Fcsharp\u002Fado-net","01.csharp\u002F09.ado-net",[409,413,417,421,425,429,433,437,441,445,449,453],{"title":410,"path":411,"stem":412},"9.1. Введення в ADO.NET","\u002Fcsharp\u002Fado-net\u002Fintroduction-to-adonet","01.csharp\u002F09.ado-net\u002F01.introduction-to-adonet",{"title":414,"path":415,"stem":416},"9.2. Клас DbConnection — з'єднання з базою даних","\u002Fcsharp\u002Fado-net\u002Fconnection","01.csharp\u002F09.ado-net\u002F02.connection",{"title":418,"path":419,"stem":420},"9.3. Клас DbCommand — виконання SQL-запитів","\u002Fcsharp\u002Fado-net\u002Fcommand-and-queries","01.csharp\u002F09.ado-net\u002F03.command-and-queries",{"title":422,"path":423,"stem":424},"9.4. Клас DbDataReader — ефективне читання даних","\u002Fcsharp\u002Fado-net\u002Fdatareader","01.csharp\u002F09.ado-net\u002F04.datareader",{"title":426,"path":427,"stem":428},"9.5. Параметризовані запити та захист від SQL Injection","\u002Fcsharp\u002Fado-net\u002Fparameters-and-sql-injection","01.csharp\u002F09.ado-net\u002F05.parameters-and-sql-injection",{"title":430,"path":431,"stem":432},"9.6. Транзакції в ADO.NET","\u002Fcsharp\u002Fado-net\u002Ftransactions","01.csharp\u002F09.ado-net\u002F06.transactions",{"title":434,"path":435,"stem":436},"9.7. DbProviderFactory — провайдер-незалежний код","\u002Fcsharp\u002Fado-net\u002Fprovider-factory","01.csharp\u002F09.ado-net\u002F07.provider-factory",{"title":438,"path":439,"stem":440},"9.8. Асинхронний доступ до даних","\u002Fcsharp\u002Fado-net\u002Fasync-data-access","01.csharp\u002F09.ado-net\u002F08.async-data-access",{"title":442,"path":443,"stem":444},"9.9. Від'єднаний режим: DataSet, DataTable, DataRow","\u002Fcsharp\u002Fado-net\u002Fdisconnected-mode-dataset","01.csharp\u002F09.ado-net\u002F09.disconnected-mode-dataset",{"title":446,"path":447,"stem":448},"9.10. DataAdapter — міст між DataSet та базою даних","\u002Fcsharp\u002Fado-net\u002Fdata-adapter","01.csharp\u002F09.ado-net\u002F10.data-adapter",{"title":450,"path":451,"stem":452},"9.11. Data Mapper та Repository: Архітектура доступу до даних","\u002Fcsharp\u002Fado-net\u002Fdata-mapper-repository","01.csharp\u002F09.ado-net\u002F11.data-mapper-repository",{"title":454,"path":455,"stem":456},"9.12. Identity Map, Unit of Work та Specification Pattern","\u002Fcsharp\u002Fado-net\u002Fadvanced-patterns","01.csharp\u002F09.ado-net\u002F12.advanced-patterns",{"title":458,"icon":255,"path":459,"stem":460,"children":461,"page":59},"Ef Core","\u002Fcsharp\u002Fef-core","01.csharp\u002F10.ef-core",[462,466,470,474,478,482,486,490,494,498,502,506,510,514,518,522,526,532,538,542,546,550,554,558,562,566,570,574,578,582,586,590,594,598,602,606,610,614,618,622,626,630,634,638,642,646],{"title":463,"path":464,"stem":465},"Що таке ORM? Від SQL до об'єктів","\u002Fcsharp\u002Fef-core\u002Fwhat-is-orm","01.csharp\u002F10.ef-core\u002F01.what-is-orm",{"title":467,"path":468,"stem":469},"Перший проєкт — від нуля до CRUD","\u002Fcsharp\u002Fef-core\u002Ffirst-project","01.csharp\u002F10.ef-core\u002F02.first-project",{"title":471,"path":472,"stem":473},"DbContext — Серце EF Core","\u002Fcsharp\u002Fef-core\u002Fdbcontext-deep-dive","01.csharp\u002F10.ef-core\u002F03.dbcontext-deep-dive",{"title":475,"path":476,"stem":477},"Провайдери баз даних — Архітектура та Вибір СУБД","\u002Fcsharp\u002Fef-core\u002Fdatabase-providers","01.csharp\u002F10.ef-core\u002F04.database-providers",{"title":479,"path":480,"stem":481},"Конвенції EF Core — Магія без конфігурації","\u002Fcsharp\u002Fef-core\u002Fconventions","01.csharp\u002F10.ef-core\u002F05.conventions",{"title":483,"path":484,"stem":485},"Fluent API та Data Annotations — Явна конфігурація моделі","\u002Fcsharp\u002Fef-core\u002Ffluent-api-vs-annotations","01.csharp\u002F10.ef-core\u002F06.fluent-api-vs-annotations",{"title":487,"path":488,"stem":489},"Зв'язки — One-to-One та One-to-Many","\u002Fcsharp\u002Fef-core\u002Frelationships-basics","01.csharp\u002F10.ef-core\u002F07.relationships-basics",{"title":491,"path":492,"stem":493},"Зв'язки Advanced — Many-to-Many та Складні Сценарії","\u002Fcsharp\u002Fef-core\u002Frelationships-advanced","01.csharp\u002F10.ef-core\u002F08.relationships-advanced",{"title":495,"path":496,"stem":497},"Властивості — Типи, Конвертери, Компаратори (Частина 1)","\u002Fcsharp\u002Fef-core\u002Fproperty-configuration-part1","01.csharp\u002F10.ef-core\u002F09.property-configuration-part1",{"title":499,"path":500,"stem":501},"Властивості — Value Comparers, Generators, Shadow Properties (Частина 2)","\u002Fcsharp\u002Fef-core\u002Fproperty-configuration-part2","01.csharp\u002F10.ef-core\u002F09.property-configuration-part2",{"title":503,"path":504,"stem":505},"Складні типи — Owned Types та Complex Types (Частина 1)","\u002Fcsharp\u002Fef-core\u002Fcomplex-types-owned-part1","01.csharp\u002F10.ef-core\u002F10.complex-types-owned-part1",{"title":507,"path":508,"stem":509},"Складні типи — Complex Types, Keyless Entities, Порівняння (Частина 2)","\u002Fcsharp\u002Fef-core\u002Fcomplex-types-owned-part2","01.csharp\u002F10.ef-core\u002F10.complex-types-owned-part2",{"title":511,"path":512,"stem":513},"JSON Columns — Складні дані у JSON (Частина 1)","\u002Fcsharp\u002Fef-core\u002Fjson-columns-part1","01.csharp\u002F10.ef-core\u002F11.json-columns-part1",{"title":515,"path":516,"stem":517},"JSON Columns — Value Comparers, Індекси, Провайдери (Частина 2)","\u002Fcsharp\u002Fef-core\u002Fjson-columns-part2","01.csharp\u002F10.ef-core\u002F11.json-columns-part2",{"title":519,"path":520,"stem":521},"Успадкування — Абстрактні класи та TPH (Частина 1)","\u002Fcsharp\u002Fef-core\u002Finheritance-part1","01.csharp\u002F10.ef-core\u002F12.inheritance-part1",{"title":523,"path":524,"stem":525},"Успадкування — TPT, TPC та Порівняння Стратегій (Частина 2)","\u002Fcsharp\u002Fef-core\u002Finheritance-part2","01.csharp\u002F10.ef-core\u002F12.inheritance-part2",{"title":527,"path":528,"stem":529,"children":530},"Індекси, Обмеження та Схема (Частина 1)","\u002Fcsharp\u002Fef-core\u002Findexes-constraints-part1","01.csharp\u002F10.ef-core\u002F13.indexes-constraints-part1",[531],{"title":527,"path":528,"stem":529},{"title":533,"path":534,"stem":535,"children":536},"Індекси, Обмеження та Схема (Частина 2)","\u002Fcsharp\u002Fef-core\u002Findexes-constraints-part2","01.csharp\u002F10.ef-core\u002F13.indexes-constraints-part2",[537],{"title":533,"path":534,"stem":535},{"title":539,"path":540,"stem":541},"Seed Data — Початкові Дані (Частина 1)","\u002Fcsharp\u002Fef-core\u002Fseeding-part1","01.csharp\u002F10.ef-core\u002F14.seeding-part1",{"title":543,"path":544,"stem":545},"Seed Data — SQL-скрипти, Bogus та Стратегії (Частина 2)","\u002Fcsharp\u002Fef-core\u002Fseeding-part2","01.csharp\u002F10.ef-core\u002F14.seeding-part2",{"title":547,"path":548,"stem":549},"Global Query Filters — Глобальні Фільтри (Частина 1)","\u002Fcsharp\u002Fef-core\u002Fglobal-query-filters-part1","01.csharp\u002F10.ef-core\u002F15.global-query-filters-part1",{"title":551,"path":552,"stem":553},"Global Query Filters — Підводні камені та Інтеграція (Частина 2)","\u002Fcsharp\u002Fef-core\u002Fglobal-query-filters-part2","01.csharp\u002F10.ef-core\u002F15.global-query-filters-part2",{"title":555,"path":556,"stem":557},"LINQ-запити в EF Core (Частина 1)","\u002Fcsharp\u002Fef-core\u002Flinq-queries-part1","01.csharp\u002F10.ef-core\u002F16.linq-queries-part1",{"title":559,"path":560,"stem":561},"LINQ-запити в EF Core (Частина 2)","\u002Fcsharp\u002Fef-core\u002Flinq-queries-part2","01.csharp\u002F10.ef-core\u002F16.linq-queries-part2",{"title":563,"path":564,"stem":565},"Завантаження Пов'язаних Даних (Частина 1)","\u002Fcsharp\u002Fef-core\u002Floading-related-data-part1","01.csharp\u002F10.ef-core\u002F17.loading-related-data-part1",{"title":567,"path":568,"stem":569},"Завантаження Пов'язаних Даних (Частина 2)","\u002Fcsharp\u002Fef-core\u002Floading-related-data-part2","01.csharp\u002F10.ef-core\u002F17.loading-related-data-part2",{"title":571,"path":572,"stem":573},"Raw SQL, Views та Stored Procedures (Частина 1)","\u002Fcsharp\u002Fef-core\u002Fraw-sql-part1","01.csharp\u002F10.ef-core\u002F18.raw-sql-part1",{"title":575,"path":576,"stem":577},"Raw SQL — Stored Procedures, DbFunction та Bulk Operations (Частина 2)","\u002Fcsharp\u002Fef-core\u002Fraw-sql-part2","01.csharp\u002F10.ef-core\u002F18.raw-sql-part2",{"title":579,"path":580,"stem":581},"Продвинуті Запити — Compiled Queries, Bulk та Оптимізація (Частина 1)","\u002Fcsharp\u002Fef-core\u002Fadvanced-queries-part1","01.csharp\u002F10.ef-core\u002F19.advanced-queries-part1",{"title":583,"path":584,"stem":585},"Продвинуті Запити — Query Tags, Bulk та Interceptors (Частина 2)","\u002Fcsharp\u002Fef-core\u002Fadvanced-queries-part2","01.csharp\u002F10.ef-core\u002F19.advanced-queries-part2",{"title":587,"path":588,"stem":589},"Change Tracker — Відстеження Змін (Частина 1)","\u002Fcsharp\u002Fef-core\u002Fchange-tracking-part1","01.csharp\u002F10.ef-core\u002F20.change-tracking-part1",{"title":591,"path":592,"stem":593},"Change Tracker — Графи Об'єктів та Disconnected (Частина 2)","\u002Fcsharp\u002Fef-core\u002Fchange-tracking-part2","01.csharp\u002F10.ef-core\u002F20.change-tracking-part2",{"title":595,"path":596,"stem":597},"Збереження Даних та Транзакції (Частина 1)","\u002Fcsharp\u002Fef-core\u002Fsaving-data-part1","01.csharp\u002F10.ef-core\u002F21.saving-data-part1",{"title":599,"path":600,"stem":601},"Збереження Даних — Concurrency та Outbox (Частина 2)","\u002Fcsharp\u002Fef-core\u002Fsaving-data-part2","01.csharp\u002F10.ef-core\u002F21.saving-data-part2",{"title":603,"path":604,"stem":605},"Конкурентність та Блокування (Частина 1)","\u002Fcsharp\u002Fef-core\u002Fconcurrency-part1","01.csharp\u002F10.ef-core\u002F22.concurrency-part1",{"title":607,"path":608,"stem":609},"Конкурентність — Дедлоки та Queue Processing (Частина 2)","\u002Fcsharp\u002Fef-core\u002Fconcurrency-part2","01.csharp\u002F10.ef-core\u002F22.concurrency-part2",{"title":611,"path":612,"stem":613},"Міграції в EF Core — Основи (Частина 1)","\u002Fcsharp\u002Fef-core\u002Fmigrations-basics-part1","01.csharp\u002F10.ef-core\u002F23.migrations-basics-part1",{"title":615,"path":616,"stem":617},"Міграції в EF Core — Основи (Частина 2)","\u002Fcsharp\u002Fef-core\u002Fmigrations-basics-part2","01.csharp\u002F10.ef-core\u002F23.migrations-basics-part2",{"title":619,"path":620,"stem":621},"Міграції — Просунуті Сценарії (Частина 1)","\u002Fcsharp\u002Fef-core\u002Fmigrations-advanced-part1","01.csharp\u002F10.ef-core\u002F24.migrations-advanced-part1",{"title":623,"path":624,"stem":625},"Міграції — Просунуті Сценарії (Частина 2)","\u002Fcsharp\u002Fef-core\u002Fmigrations-advanced-part2","01.csharp\u002F10.ef-core\u002F24.migrations-advanced-part2",{"title":627,"path":628,"stem":629},"Управління Схемою та Database-First (Частина 1)","\u002Fcsharp\u002Fef-core\u002Fschema-management-part1","01.csharp\u002F10.ef-core\u002F25.schema-management-part1",{"title":631,"path":632,"stem":633},"Управління Схемою та Database-First (Частина 2)","\u002Fcsharp\u002Fef-core\u002Fschema-management-part2","01.csharp\u002F10.ef-core\u002F25.schema-management-part2",{"title":635,"path":636,"stem":637},"Продуктивність EF Core — Основи (Частина 1)","\u002Fcsharp\u002Fef-core\u002Fperformance-fundamentals-part1","01.csharp\u002F10.ef-core\u002F26.performance-fundamentals-part1",{"title":639,"path":640,"stem":641},"Interceptors в EF Core (Частина 1)","\u002Fcsharp\u002Fef-core\u002Finterceptors-part1","01.csharp\u002F10.ef-core\u002F29.interceptors-part1",{"title":643,"path":644,"stem":645},"Interceptors в EF Core — Connection, Transaction та Materialization (Частина 2)","\u002Fcsharp\u002Fef-core\u002Finterceptors-part2","01.csharp\u002F10.ef-core\u002F29.interceptors-part2",{"title":647,"path":648,"stem":649},"План вивчення Entity Framework Core — Повний курс","\u002Fcsharp\u002Fef-core\u002Fimplementation_plan","01.csharp\u002F10.ef-core\u002Fimplementation_plan",{"title":651,"icon":652,"path":653,"stem":654,"children":655,"page":59},"ASP.NET","i-devicon-dotnetcore","\u002Fcsharp\u002Faspnet","01.csharp\u002F11.aspnet",[656,730,791,869,927,941,967,1057,1111,1182,1212,1289,1346],{"title":657,"icon":658,"path":659,"stem":660,"children":661,"page":59},"Minimal API","i-lucide-network","\u002Fcsharp\u002Faspnet\u002Fminimal-api","01.csharp\u002F11.aspnet\u002F01.minimal-api",[662,666,670,674,678,682,686,690,694,698,702,706,710,714,718,722,726],{"title":663,"path":664,"stem":665},"Вступ до ASP.NET та еволюція фреймворку","\u002Fcsharp\u002Faspnet\u002Fminimal-api\u002Fintroduction","01.csharp\u002F11.aspnet\u002F01.minimal-api\u002F01.introduction",{"title":667,"path":668,"stem":669},"Перший додаток на ASP.NET Core","\u002Fcsharp\u002Faspnet\u002Fminimal-api\u002Ffirst-application","01.csharp\u002F11.aspnet\u002F01.minimal-api\u002F02.first-application",{"title":671,"path":672,"stem":673},"WebApplication, Builder та Dependency Injection","\u002Fcsharp\u002Faspnet\u002Fminimal-api\u002Fwebapplication-builder","01.csharp\u002F11.aspnet\u002F01.minimal-api\u002F03.webapplication-builder",{"title":675,"path":676,"stem":677},"Конвеєр запитів та Middleware","\u002Fcsharp\u002Faspnet\u002Fminimal-api\u002Frequest-pipeline-middleware","01.csharp\u002F11.aspnet\u002F01.minimal-api\u002F04.request-pipeline-middleware",{"title":679,"path":680,"stem":681},"Маршрутизація в ASP.NET Core: Основи","\u002Fcsharp\u002Faspnet\u002Fminimal-api\u002Frouting-basics","01.csharp\u002F11.aspnet\u002F01.minimal-api\u002F05.routing-basics",{"title":683,"path":684,"stem":685},"Маршрутизація в ASP.NET Core: Розширені можливості","\u002Fcsharp\u002Faspnet\u002Fminimal-api\u002Frouting-advanced","01.csharp\u002F11.aspnet\u002F01.minimal-api\u002F06.routing-advanced",{"title":687,"path":688,"stem":689},"Статичні файли в ASP.NET Core","\u002Fcsharp\u002Faspnet\u002Fminimal-api\u002Fstatic-files","01.csharp\u002F11.aspnet\u002F01.minimal-api\u002F07.static-files",{"title":691,"path":692,"stem":693},"Статичні Активи: MapStaticAssets (ASP.NET Core 9.0)","\u002Fcsharp\u002Faspnet\u002Fminimal-api\u002Fstatic-assets","01.csharp\u002F11.aspnet\u002F01.minimal-api\u002F08.static-assets",{"title":695,"path":696,"stem":697},"Конфігурація в ASP.NET Core: Основи","\u002Fcsharp\u002Faspnet\u002Fminimal-api\u002Fconfiguration-fundamentals","01.csharp\u002F11.aspnet\u002F01.minimal-api\u002F09.configuration-fundamentals",{"title":699,"path":700,"stem":701},"Конфігурація: Паттерн Options","\u002Fcsharp\u002Faspnet\u002Fminimal-api\u002Fconfiguration-options","01.csharp\u002F11.aspnet\u002F01.minimal-api\u002F10.configuration-options",{"title":703,"path":704,"stem":705},"Логування в ASP.NET Core: Основи","\u002Fcsharp\u002Faspnet\u002Fminimal-api\u002Flogging-basics","01.csharp\u002F11.aspnet\u002F01.minimal-api\u002F11.logging-basics",{"title":707,"path":708,"stem":709},"Логування: Serilog та Middleware","\u002Fcsharp\u002Faspnet\u002Fminimal-api\u002Flogging-advanced","01.csharp\u002F11.aspnet\u002F01.minimal-api\u002F12.logging-advanced",{"title":711,"path":712,"stem":713},"Управління станом: HttpContext.Items та Cookies","\u002Fcsharp\u002Faspnet\u002Fminimal-api\u002Fstate-management","01.csharp\u002F11.aspnet\u002F01.minimal-api\u002F13.state-management",{"title":715,"path":716,"stem":717},"Стан сесії: Sessions","\u002Fcsharp\u002Faspnet\u002Fminimal-api\u002Fsession-state","01.csharp\u002F11.aspnet\u002F01.minimal-api\u002F14.session-state",{"title":719,"path":720,"stem":721},"Структура проєкту: від хаосу до архітектури","\u002Fcsharp\u002Faspnet\u002Fminimal-api\u002Fproject-structure","01.csharp\u002F11.aspnet\u002F01.minimal-api\u002F15.project-structure",{"title":723,"path":724,"stem":725},"Scalar у Minimal API: повний проєкт і Fluent OpenAPI","\u002Fcsharp\u002Faspnet\u002Fminimal-api\u002Fscalar-openapi-fluent","01.csharp\u002F11.aspnet\u002F01.minimal-api\u002F16.scalar-openapi-fluent",{"title":727,"path":728,"stem":729},"Swagger \u002F Swashbuckle у Minimal API: окремий класичний шлях","\u002Fcsharp\u002Faspnet\u002Fminimal-api\u002Fswagger-swashbuckle","01.csharp\u002F11.aspnet\u002F01.minimal-api\u002F17.swagger-swashbuckle",{"title":731,"icon":658,"path":732,"stem":733,"children":734,"page":59},"API","\u002Fcsharp\u002Faspnet\u002Fapi","01.csharp\u002F11.aspnet\u002F02.api",[735,739,743,747,751,755,759,763,767,771,775,779,783,787],{"title":736,"path":737,"stem":738},"Що таке API. Клієнт-серверна архітектура","\u002Fcsharp\u002Faspnet\u002Fapi\u002Fwhat-is-api","01.csharp\u002F11.aspnet\u002F02.api\u002F01.what-is-api",{"title":740,"path":741,"stem":742},"Формати даних: JSON, XML, TOML та бінарні формати","\u002Fcsharp\u002Faspnet\u002Fapi\u002Fdata-formats","01.csharp\u002F11.aspnet\u002F02.api\u002F02.data-formats",{"title":744,"path":745,"stem":746},"Парадигми API та концепція REST","\u002Fcsharp\u002Faspnet\u002Fapi\u002Fapi-paradigms-rest","01.csharp\u002F11.aspnet\u002F02.api\u002F03.api-paradigms-rest",{"title":748,"path":749,"stem":750},"HTTP-методи, статус-коди та заголовки","\u002Fcsharp\u002Faspnet\u002Fapi\u002Fhttp-methods-status-codes","01.csharp\u002F11.aspnet\u002F02.api\u002F04.http-methods-status-codes",{"title":752,"path":753,"stem":754},"Організація HTTP API за принципами REST","\u002Fcsharp\u002Faspnet\u002Fapi\u002Frest-organizing","01.csharp\u002F11.aspnet\u002F02.api\u002F05.rest-organizing",{"title":756,"path":757,"stem":758},"Номенклатура URL та CRUD-операції","\u002Fcsharp\u002Faspnet\u002Fapi\u002Furl-nomenclature-crud","01.csharp\u002F11.aspnet\u002F02.api\u002F06.url-nomenclature-crud",{"title":760,"path":761,"stem":762},"Правила дизайну: іменування та стандарти","\u002Fcsharp\u002Faspnet\u002Fapi\u002Fapi-design-naming","01.csharp\u002F11.aspnet\u002F02.api\u002F07.api-design-naming",{"title":764,"path":765,"stem":766},"Валідація, ліміти та обробка помилок","\u002Fcsharp\u002Faspnet\u002Fapi\u002Fapi-design-validation","01.csharp\u002F11.aspnet\u002F02.api\u002F08.api-design-validation",{"title":768,"path":769,"stem":770},"Обробка помилок у Minimal API","\u002Fcsharp\u002Faspnet\u002Fapi\u002Ferror-handling-http","01.csharp\u002F11.aspnet\u002F02.api\u002F09.error-handling-http",{"title":772,"path":773,"stem":774},"Ідемпотентність та синхронізація стану","\u002Fcsharp\u002Faspnet\u002Fapi\u002Fidempotency-sync","01.csharp\u002F11.aspnet\u002F02.api\u002F10.idempotency-sync",{"title":776,"path":777,"stem":778},"Пагінація та організація списків","\u002Fcsharp\u002Faspnet\u002Fapi\u002Fpagination-lists","01.csharp\u002F11.aspnet\u002F02.api\u002F11.pagination-lists",{"title":780,"path":781,"stem":782},"Безпека API, кешування та інтернаціоналізація","\u002Fcsharp\u002Faspnet\u002Fapi\u002Fsecurity-auth","01.csharp\u002F11.aspnet\u002F02.api\u002F12.security-auth",{"title":784,"path":785,"stem":786},"Процес проєктування API та документування","\u002Fcsharp\u002Faspnet\u002Fapi\u002Fapi-design-process","01.csharp\u002F11.aspnet\u002F02.api\u002F13.api-design-process",{"title":788,"path":789,"stem":790},"OpenAPI: контракт, специфікація та документація API","\u002Fcsharp\u002Faspnet\u002Fapi\u002Fopenapi","01.csharp\u002F11.aspnet\u002F02.api\u002F14.openapi",{"title":792,"icon":793,"path":794,"stem":795,"children":796,"page":59},"Auth","i-lucide-shield-check","\u002Fcsharp\u002Faspnet\u002Fauth","01.csharp\u002F11.aspnet\u002F03.auth",[797,801,805,809,813,817,821,825,829,833,837,841,845,849,853,857,861,865],{"title":798,"path":799,"stem":800},"Основи аутентифікації та авторизації","\u002Fcsharp\u002Faspnet\u002Fauth\u002Fauth-fundamentals","01.csharp\u002F11.aspnet\u002F03.auth\u002F01.auth-fundamentals",{"title":802,"path":803,"stem":804},"JWT-аутентифікація","\u002Fcsharp\u002Faspnet\u002Fauth\u002Fjwt-authentication","01.csharp\u002F11.aspnet\u002F03.auth\u002F02.jwt-authentication",{"title":806,"path":807,"stem":808},"Авторизація: ролі, політики та resource-based доступ","\u002Fcsharp\u002Faspnet\u002Fauth\u002Fauthorization-policies","01.csharp\u002F11.aspnet\u002F03.auth\u002F03.authorization-policies",{"title":810,"path":811,"stem":812},"Cookie-аутентифікація та ASP.NET Core Identity","\u002Fcsharp\u002Faspnet\u002Fauth\u002Fcookie-auth-identity","01.csharp\u002F11.aspnet\u002F03.auth\u002F04.cookie-auth-identity",{"title":814,"path":815,"stem":816},"JWT + Refresh Tokens (HttpOnly Cookie)","\u002Fcsharp\u002Faspnet\u002Fauth\u002F04b.identity-auth-jwt","01.csharp\u002F11.aspnet\u002F03.auth\u002F04b.identity-auth-jwt",{"title":818,"path":819,"stem":820},"Identity: Підтвердження Email та Скидання Пароля","\u002Fcsharp\u002Faspnet\u002Fauth\u002Fidentity-email-confirmation","01.csharp\u002F11.aspnet\u002F03.auth\u002F05.identity-email-confirmation",{"title":822,"path":823,"stem":824},"Identity: Двофакторна Аутентифікація (2FA)","\u002Fcsharp\u002Faspnet\u002Fauth\u002Fidentity-two-factor","01.csharp\u002F11.aspnet\u002F03.auth\u002F06.identity-two-factor",{"title":826,"path":827,"stem":828},"Identity: Внутрішня Архітектура та Кастомізація","\u002Fcsharp\u002Faspnet\u002Fauth\u002Fidentity-internals","01.csharp\u002F11.aspnet\u002F03.auth\u002F07.identity-internals",{"title":830,"path":831,"stem":832},"OAuth 2.0 та зовнішні провайдери","\u002Fcsharp\u002Faspnet\u002Fauth\u002Foauth-external-providers","01.csharp\u002F11.aspnet\u002F03.auth\u002F08.oauth-external-providers",{"title":834,"path":835,"stem":836},"Безпека на практиці: CORS, HTTPS та захист від атак","\u002Fcsharp\u002Faspnet\u002Fauth\u002Fsecurity-hardening","01.csharp\u002F11.aspnet\u002F03.auth\u002F09.security-hardening",{"title":838,"path":839,"stem":840},"Теорія OAuth 2.0: Поняття, Аналогії та Флоу","\u002Fcsharp\u002Faspnet\u002Fauth\u002Foauth-theory","01.csharp\u002F11.aspnet\u002F03.auth\u002F10.oauth-theory",{"title":842,"path":843,"stem":844},"OIDC, OAuth 2.0 та Keycloak в ASP.NET Core","\u002Fcsharp\u002Faspnet\u002Fauth\u002Foidc-keycloak","01.csharp\u002F11.aspnet\u002F03.auth\u002F10.oidc-keycloak",{"title":846,"path":847,"stem":848},"API Keys аутентифікація в ASP.NET Core","\u002Fcsharp\u002Faspnet\u002Fauth\u002Fapi-keys","01.csharp\u002F11.aspnet\u002F03.auth\u002F11.api-keys",{"title":850,"path":851,"stem":852},"Rate Limiting та Throttling в ASP.NET Core","\u002Fcsharp\u002Faspnet\u002Fauth\u002Frate-limiting","01.csharp\u002F11.aspnet\u002F03.auth\u002F12.rate-limiting",{"title":854,"path":855,"stem":856},"Refresh Token Rotation в ASP.NET Core","\u002Fcsharp\u002Faspnet\u002Fauth\u002Frefresh-token-rotation","01.csharp\u002F11.aspnet\u002F03.auth\u002F13.refresh-token-rotation",{"title":858,"path":859,"stem":860},"Certificate Authentication та mTLS в ASP.NET Core","\u002Fcsharp\u002Faspnet\u002Fauth\u002Fcertificate-auth","01.csharp\u002F11.aspnet\u002F03.auth\u002F14.certificate-auth",{"title":862,"path":863,"stem":864},"RBAC, ABAC та ReBAC в ASP.NET Core","\u002Fcsharp\u002Faspnet\u002Fauth\u002Frbac-abac-rebac","01.csharp\u002F11.aspnet\u002F03.auth\u002F15.rbac-abac-rebac",{"title":866,"path":867,"stem":868},"Multi-tenancy та ізоляція даних в ASP.NET Core","\u002Fcsharp\u002Faspnet\u002Fauth\u002Fmulti-tenancy","01.csharp\u002F11.aspnet\u002F03.auth\u002F16.multi-tenancy",{"title":870,"icon":871,"path":872,"stem":873,"children":874,"page":59},"Нотифікації","i-lucide-bell","\u002Fcsharp\u002Faspnet\u002Fnotifications","01.csharp\u002F11.aspnet\u002F04.notifications",[875,879,883,887,891,895,899,903,907,911,915,919,923],{"title":876,"path":877,"stem":878},"In-App нотифікації через базу даних","\u002Fcsharp\u002Faspnet\u002Fnotifications\u002Fin-app-database-notifications","01.csharp\u002F11.aspnet\u002F04.notifications\u002F01.in-app-database-notifications",{"title":880,"path":881,"stem":882},"Polling: Регулярний запит оновлень","\u002Fcsharp\u002Faspnet\u002Fnotifications\u002Fpolling","01.csharp\u002F11.aspnet\u002F04.notifications\u002F02.polling",{"title":884,"path":885,"stem":886},"Server-Sent Events: Однострімовий push від сервера","\u002Fcsharp\u002Faspnet\u002Fnotifications\u002Fserver-sent-events","01.csharp\u002F11.aspnet\u002F04.notifications\u002F03.server-sent-events",{"title":888,"path":889,"stem":890},"WebSockets: Двостороннє з'єднання в реальному часі","\u002Fcsharp\u002Faspnet\u002Fnotifications\u002Fwebsockets","01.csharp\u002F11.aspnet\u002F04.notifications\u002F04.websockets",{"title":892,"path":893,"stem":894},"SignalR: Абстракція над транспортами реального часу","\u002Fcsharp\u002Faspnet\u002Fnotifications\u002Fsignalr","01.csharp\u002F11.aspnet\u002F04.notifications\u002F05.signalr",{"title":896,"path":897,"stem":898},"Background Services: Фонові задачі в ASP.NET Core","\u002Fcsharp\u002Faspnet\u002Fnotifications\u002Fbackground-services","01.csharp\u002F11.aspnet\u002F04.notifications\u002F06.background-services",{"title":900,"path":901,"stem":902},"Web Push нотифікації","\u002Fcsharp\u002Faspnet\u002Fnotifications\u002Fweb-push","01.csharp\u002F11.aspnet\u002F04.notifications\u002F07.web-push",{"title":904,"path":905,"stem":906},"Email нотифікації","\u002Fcsharp\u002Faspnet\u002Fnotifications\u002Femail-notifications","01.csharp\u002F11.aspnet\u002F04.notifications\u002F08.email-notifications",{"title":908,"path":909,"stem":910},"Порівняння підходів: Як вибрати правильну технологію нотифікацій","\u002Fcsharp\u002Faspnet\u002Fnotifications\u002Fchoosing-the-right-approach","01.csharp\u002F11.aspnet\u002F04.notifications\u002F09.choosing-the-right-approach",{"title":912,"path":913,"stem":914},"Hangfire: Надійне планування фонових задач","\u002Fcsharp\u002Faspnet\u002Fnotifications\u002Fhangfire","01.csharp\u002F11.aspnet\u002F04.notifications\u002F10.hangfire",{"title":916,"path":917,"stem":918},"Практика: Конвертація зображень у WebP через Hangfire","\u002Fcsharp\u002Faspnet\u002Fnotifications\u002Fhangfire-image-webp","01.csharp\u002F11.aspnet\u002F04.notifications\u002F11.hangfire-image-webp",{"title":920,"path":921,"stem":922},"Практика: Підготовка відео до HLS-стрімінгу через Hangfire","\u002Fcsharp\u002Faspnet\u002Fnotifications\u002Fhangfire-video-hls","01.csharp\u002F11.aspnet\u002F04.notifications\u002F12.hangfire-video-hls",{"title":924,"path":925,"stem":926},"Telegram-нотифікації: від одного повідомлення до масових розсилок і мульти-канального підходу","\u002Fcsharp\u002Faspnet\u002Fnotifications\u002Ftelegram-notifications","01.csharp\u002F11.aspnet\u002F04.notifications\u002F13.telegram-notifications",{"title":928,"icon":929,"path":930,"stem":931,"children":932,"page":59},"Інтернаціоналізація","i-lucide-languages","\u002Fcsharp\u002Faspnet\u002Fi18n","01.csharp\u002F11.aspnet\u002F05.i18n",[933,937],{"title":934,"path":935,"stem":936},"Інтернаціоналізація (i18n) у Minimal API: від A до Я","\u002Fcsharp\u002Faspnet\u002Fi18n\u002Finternationalization","01.csharp\u002F11.aspnet\u002F05.i18n\u002F01.internationalization",{"title":938,"path":939,"stem":940},"Humanizer: людиномовні рядки у .NET","\u002Fcsharp\u002Faspnet\u002Fi18n\u002Fhumanizer","01.csharp\u002F11.aspnet\u002F05.i18n\u002F02.humanizer",{"title":942,"icon":943,"path":944,"stem":945,"children":946,"page":59},"Кешування","i-lucide-layers","\u002Fcsharp\u002Faspnet\u002Fcaching","01.csharp\u002F11.aspnet\u002F06.caching",[947,951,955,959,963],{"title":948,"path":949,"stem":950},"Огляд кешування: чотири рівні і коли що обирати","\u002Fcsharp\u002Faspnet\u002Fcaching\u002Fcaching","01.csharp\u002F11.aspnet\u002F06.caching\u002F01.caching",{"title":952,"path":953,"stem":954},"IMemoryCache: кеш в оперативній пам'яті","\u002Fcsharp\u002Faspnet\u002Fcaching\u002Fmemory-cache","01.csharp\u002F11.aspnet\u002F06.caching\u002F02.memory-cache",{"title":956,"path":957,"stem":958},"IDistributedCache і Redis: розподілений кеш","\u002Fcsharp\u002Faspnet\u002Fcaching\u002Fdistributed-cache","01.csharp\u002F11.aspnet\u002F06.caching\u002F03.distributed-cache",{"title":960,"path":961,"stem":962},"Response Cache: HTTP-кешування через Cache-Control","\u002Fcsharp\u002Faspnet\u002Fcaching\u002Fresponse-cache","01.csharp\u002F11.aspnet\u002F06.caching\u002F04.response-cache",{"title":964,"path":965,"stem":966},"Output Cache: серверний кеш HTTP-відповідей (.NET 7+)","\u002Fcsharp\u002Faspnet\u002Fcaching\u002Foutput-cache","01.csharp\u002F11.aspnet\u002F06.caching\u002F05.output-cache",{"title":968,"icon":969,"path":970,"stem":971,"children":972,"page":59},"Тестування","i-lucide-test-tube","\u002Fcsharp\u002Faspnet\u002Ftesting","01.csharp\u002F11.aspnet\u002F07.testing",[973,977,981,985,989,993,997,1001,1005,1009,1013,1017,1021,1025,1029,1033,1037,1041,1045,1049,1053],{"title":974,"path":975,"stem":976},"Що таке тестування? Від інтуїції до науки","\u002Fcsharp\u002Faspnet\u002Ftesting\u002Fwhat-is-testing","01.csharp\u002F11.aspnet\u002F07.testing\u002F01.what-is-testing",{"title":978,"path":979,"stem":980},"Піраміда тестування — Стратегія, а не Догма","\u002Fcsharp\u002Faspnet\u002Ftesting\u002Ftesting-pyramid","01.csharp\u002F11.aspnet\u002F07.testing\u002F02.testing-pyramid",{"title":982,"path":983,"stem":984},"Дві Школи Тестування — Лондон проти Детройту","\u002Fcsharp\u002Faspnet\u002Ftesting\u002Ftesting-schools","01.csharp\u002F11.aspnet\u002F07.testing\u002F03.testing-schools",{"title":986,"path":987,"stem":988},"TDD та BDD — Тести як Дизайн-інструмент","\u002Fcsharp\u002Faspnet\u002Ftesting\u002Ftdd-and-bdd","01.csharp\u002F11.aspnet\u002F07.testing\u002F04.tdd-and-bdd",{"title":990,"path":991,"stem":992},"Що саме тестувати — Техніки аналізу та Циклomatична складність","\u002Fcsharp\u002Faspnet\u002Ftesting\u002Fwhat-to-test","01.csharp\u002F11.aspnet\u002F07.testing\u002F05.what-to-test",{"title":994,"path":995,"stem":996},"Тестові Фреймворки — Навіщо вони і що всередині","\u002Fcsharp\u002Faspnet\u002Ftesting\u002Ftest-frameworks","01.csharp\u002F11.aspnet\u002F07.testing\u002F06.test-frameworks",{"title":998,"path":999,"stem":1000},"xUnit — Факти, Теорії та Lifecycle тестів","\u002Fcsharp\u002Faspnet\u002Ftesting\u002Fxunit-basics","01.csharp\u002F11.aspnet\u002F07.testing\u002F07.xunit-basics",{"title":1002,"path":1003,"stem":1004},"xUnit Advanced — Fixtures, Кастомізація та Розширення","\u002Fcsharp\u002Faspnet\u002Ftesting\u002Fxunit-advanced","01.csharp\u002F11.aspnet\u002F07.testing\u002F08.xunit-advanced",{"title":1006,"path":1007,"stem":1008},"Moq — Глибоке занурення в мокування","\u002Fcsharp\u002Faspnet\u002Ftesting\u002Fmocking-with-moq","01.csharp\u002F11.aspnet\u002F07.testing\u002F09.mocking-with-moq",{"title":1010,"path":1011,"stem":1012},"Тестування Баз Даних — EF Core, SQLite та Testcontainers","\u002Fcsharp\u002Faspnet\u002Ftesting\u002Fdatabase-testing","01.csharp\u002F11.aspnet\u002F07.testing\u002F10.database-testing",{"title":1014,"path":1015,"stem":1016},"Integration Testing — Частина 1 [Теорія та WebApplicationFactory]","\u002Fcsharp\u002Faspnet\u002Ftesting\u002Fintegration-testing","01.csharp\u002F11.aspnet\u002F07.testing\u002F11.integration-testing",{"title":1018,"path":1019,"stem":1020},"Інтеграційне тестування — Практика","\u002Fcsharp\u002Faspnet\u002Ftesting\u002F11a.integration-testing-practice","01.csharp\u002F11.aspnet\u002F07.testing\u002F11a.integration-testing-practice",{"title":1022,"path":1023,"stem":1024},"Integration Testing — Частина 2 [Просунуті Сценарії та Testcontainers]","\u002Fcsharp\u002Faspnet\u002Ftesting\u002Fintegration-testing-advanced","01.csharp\u002F11.aspnet\u002F07.testing\u002F12.integration-testing-advanced",{"title":1026,"path":1027,"stem":1028},"Професійний Postman: Колекції, Змінні та GitHub Інтеграція","\u002Fcsharp\u002Faspnet\u002Ftesting\u002Fpostman-professional","01.csharp\u002F11.aspnet\u002F07.testing\u002F13.postman-professional",{"title":1030,"path":1031,"stem":1032},"HttpClient у Тестах Частина 1: Архітектура та MockHttpMessageHandler","\u002Fcsharp\u002Faspnet\u002Ftesting\u002Fhttpclient-testing","01.csharp\u002F11.aspnet\u002F07.testing\u002F14.httpclient-testing",{"title":1034,"path":1035,"stem":1036},"HttpClient у Тестах Частина 2: WireMock.Net та Resilience","\u002Fcsharp\u002Faspnet\u002Ftesting\u002Fwiremock-net","01.csharp\u002F11.aspnet\u002F07.testing\u002F15.wiremock-net",{"title":1038,"path":1039,"stem":1040},"Патерни та Анти-патерни Тестування: Test Smells","\u002Fcsharp\u002Faspnet\u002Ftesting\u002Ftesting-patterns","01.csharp\u002F11.aspnet\u002F07.testing\u002F16.testing-patterns",{"title":1042,"path":1043,"stem":1044},"Просунуті інструменти: Time, Snapshots та Властивості","\u002Fcsharp\u002Faspnet\u002Ftesting\u002Fadvanced-testing-tools","01.csharp\u002F11.aspnet\u002F07.testing\u002F17.advanced-testing-tools",{"title":1046,"path":1047,"stem":1048},"Тестування Архітектури з NetArchTest","\u002Fcsharp\u002Faspnet\u002Ftesting\u002Farchitecture-testing","01.csharp\u002F11.aspnet\u002F07.testing\u002F18.architecture-testing",{"title":1050,"path":1051,"stem":1052},"Тестування Продуктивності: BenchmarkDotNet, NBomber та k6","\u002Fcsharp\u002Faspnet\u002Ftesting\u002Fperformance-testing","01.csharp\u002F11.aspnet\u002F07.testing\u002F19.performance-testing",{"title":1054,"path":1055,"stem":1056},"Залишок плану для курсу \"Тестування ASP.NET Minimal API\"","\u002Fcsharp\u002Faspnet\u002Ftesting\u002Fremaining_plan","01.csharp\u002F11.aspnet\u002F07.testing\u002Fremaining_plan",{"title":1058,"icon":1059,"path":1060,"stem":1061,"children":1062,"page":59},"Платежі","i-lucide-credit-card","\u002Fcsharp\u002Faspnet\u002Fpayments","01.csharp\u002F11.aspnet\u002F08.payments",[1063,1067,1071,1075,1079,1083,1087,1091,1095,1099,1103,1107],{"title":1064,"path":1065,"stem":1066},"Основи платіжної інфраструктури","\u002Fcsharp\u002Faspnet\u002Fpayments\u002Fpayment-fundamentals","01.csharp\u002F11.aspnet\u002F08.payments\u002F01.payment-fundamentals",{"title":1068,"path":1069,"stem":1070},"Методи оплати в Україні","\u002Fcsharp\u002Faspnet\u002Fpayments\u002Fpayment-methods-ukraine","01.csharp\u002F11.aspnet\u002F08.payments\u002F02.payment-methods-ukraine",{"title":1072,"path":1073,"stem":1074},"PCI DSS та безпека платежів","\u002Fcsharp\u002Faspnet\u002Fpayments\u002Fpci-dss-security","01.csharp\u002F11.aspnet\u002F08.payments\u002F03.pci-dss-security",{"title":1076,"path":1077,"stem":1078},"Архітектура платіжної підсистеми","\u002Fcsharp\u002Faspnet\u002Fpayments\u002Fpayment-architecture","01.csharp\u002F11.aspnet\u002F08.payments\u002F04.payment-architecture",{"title":1080,"path":1081,"stem":1082},"Інтеграція LiqPay (ПриватБанк)","\u002Fcsharp\u002Faspnet\u002Fpayments\u002Fliqpay-integration","01.csharp\u002F11.aspnet\u002F08.payments\u002F05.liqpay-integration",{"title":1084,"path":1085,"stem":1086},"Інтеграція Monobank Acquiring API","\u002Fcsharp\u002Faspnet\u002Fpayments\u002Fmonobank-acquiring","01.csharp\u002F11.aspnet\u002F08.payments\u002F06.monobank-acquiring",{"title":1088,"path":1089,"stem":1090},"Інтеграція Stripe","\u002Fcsharp\u002Faspnet\u002Fpayments\u002Fstripe-integration","01.csharp\u002F11.aspnet\u002F08.payments\u002F07.stripe-integration",{"title":1092,"path":1093,"stem":1094},"Webhooks — глибоке занурення","\u002Fcsharp\u002Faspnet\u002Fpayments\u002Fwebhooks-deep-dive","01.csharp\u002F11.aspnet\u002F08.payments\u002F08.webhooks-deep-dive",{"title":1096,"path":1097,"stem":1098},"Підписки та рекурентні платежі","\u002Fcsharp\u002Faspnet\u002Fpayments\u002Fsubscriptions-recurring","01.csharp\u002F11.aspnet\u002F08.payments\u002F09.subscriptions-recurring",{"title":1100,"path":1101,"stem":1102},"Повернення коштів та диспути","\u002Fcsharp\u002Faspnet\u002Fpayments\u002Frefunds-disputes","01.csharp\u002F11.aspnet\u002F08.payments\u002F10.refunds-disputes",{"title":1104,"path":1105,"stem":1106},"Тестування платіжних інтеграцій","\u002Fcsharp\u002Faspnet\u002Fpayments\u002Ftesting-payments","01.csharp\u002F11.aspnet\u002F08.payments\u002F11.testing-payments",{"title":1108,"path":1109,"stem":1110},"Чекліст виходу в Production","\u002Fcsharp\u002Faspnet\u002Fpayments\u002Fproduction-checklist","01.csharp\u002F11.aspnet\u002F08.payments\u002F12.production-checklist",{"title":1112,"icon":1113,"items":1114,"path":1127,"stem":1128,"children":1129,"page":59},"Популярні бібліотеки","lucide:box",[1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126],"01.fluent-validation","02.mapster","03.erroror-result-pattern","04.serilog","05.mediatr","06.polly","07.health-checks","08.feature-management","09.fluent-email","10.quest-pdf","11.bogus","12.humanizer-guard","\u002Fcsharp\u002Faspnet\u002Flibraries","01.csharp\u002F11.aspnet\u002F09.libraries",[1130,1134,1138,1142,1146,1150,1154,1158,1162,1166,1170,1174,1178],{"title":1131,"path":1132,"stem":1133},"Валідація з FluentValidation в ASP.NET Core","\u002Fcsharp\u002Faspnet\u002Flibraries\u002Ffluent-validation","01.csharp\u002F11.aspnet\u002F09.libraries\u002F01.fluent-validation",{"title":1135,"path":1136,"stem":1137},"Маппінг об","\u002Fcsharp\u002Faspnet\u002Flibraries\u002Fmapster","01.csharp\u002F11.aspnet\u002F09.libraries\u002F02.mapster",{"title":1139,"path":1140,"stem":1141},"Обробка помилок з ErrorOr та Result Pattern в ASP.NET Core","\u002Fcsharp\u002Faspnet\u002Flibraries\u002Ferroror-result-pattern","01.csharp\u002F11.aspnet\u002F09.libraries\u002F03.erroror-result-pattern",{"title":1143,"path":1144,"stem":1145},"Структуроване логування з Serilog в ASP.NET Core","\u002Fcsharp\u002Faspnet\u002Flibraries\u002Fserilog","01.csharp\u002F11.aspnet\u002F09.libraries\u002F04.serilog",{"title":1147,"path":1148,"stem":1149},"CQRS та Mediator з MediatR в ASP.NET Core","\u002Fcsharp\u002Faspnet\u002Flibraries\u002Fmediatr","01.csharp\u002F11.aspnet\u002F09.libraries\u002F05.mediatr",{"title":1151,"path":1152,"stem":1153},"Відмовостійкість з Polly в ASP.NET Core","\u002Fcsharp\u002Faspnet\u002Flibraries\u002Fpolly","01.csharp\u002F11.aspnet\u002F09.libraries\u002F06.polly",{"title":1155,"path":1156,"stem":1157},"Health Checks в ASP.NET Core","\u002Fcsharp\u002Faspnet\u002Flibraries\u002Fhealth-checks","01.csharp\u002F11.aspnet\u002F09.libraries\u002F07.health-checks",{"title":1159,"path":1160,"stem":1161},"Feature Management та Feature Flags в ASP.NET Core","\u002Fcsharp\u002Faspnet\u002Flibraries\u002Ffeature-management","01.csharp\u002F11.aspnet\u002F09.libraries\u002F08.feature-management",{"title":1163,"path":1164,"stem":1165},"Відправка Email з FluentEmail в ASP.NET Core","\u002Fcsharp\u002Faspnet\u002Flibraries\u002Ffluent-email","01.csharp\u002F11.aspnet\u002F09.libraries\u002F09.fluent-email",{"title":1167,"path":1168,"stem":1169},"Генерація PDF з QuestPDF в ASP.NET Core","\u002Fcsharp\u002Faspnet\u002Flibraries\u002Fquest-pdf","01.csharp\u002F11.aspnet\u002F09.libraries\u002F10.quest-pdf",{"title":1171,"path":1172,"stem":1173},"Генерація тестових даних з Bogus в ASP.NET Core","\u002Fcsharp\u002Faspnet\u002Flibraries\u002Fbogus","01.csharp\u002F11.aspnet\u002F09.libraries\u002F11.bogus",{"title":1175,"path":1176,"stem":1177},"Humanizer та Guard Clauses в ASP.NET Core","\u002Fcsharp\u002Faspnet\u002Flibraries\u002Fhumanizer-guard","01.csharp\u002F11.aspnet\u002F09.libraries\u002F12.humanizer-guard",{"title":1179,"path":1180,"stem":1181},"План модуля 10.libraries — Популярні бібліотеки ASP.NET","\u002Fcsharp\u002Faspnet\u002Flibraries\u002Fplan","01.csharp\u002F11.aspnet\u002F09.libraries\u002Fplan",{"title":1183,"icon":1184,"path":1185,"stem":1186,"children":1187,"page":59},"Razor Pages","i-lucide-layout-template","\u002Fcsharp\u002Faspnet\u002Frazor-pages","01.csharp\u002F11.aspnet\u002F10.razor-pages",[1188,1192,1196,1200,1204,1208],{"title":1189,"path":1190,"stem":1191},"Від Minimal API до Razor Pages: концептуальний перехід","\u002Fcsharp\u002Faspnet\u002Frazor-pages\u002Ffrom-minimal-api","01.csharp\u002F11.aspnet\u002F10.razor-pages\u002F01.from-minimal-api",{"title":1193,"path":1194,"stem":1195},"PageModel: логіка сторінки Razor Pages","\u002Fcsharp\u002Faspnet\u002Frazor-pages\u002Fpage-model","01.csharp\u002F11.aspnet\u002F10.razor-pages\u002F02.page-model",{"title":1197,"path":1198,"stem":1199},"Razor синтаксис: шаблонізатор у .cshtml","\u002Fcsharp\u002Faspnet\u002Frazor-pages\u002Frazor-syntax","01.csharp\u002F11.aspnet\u002F10.razor-pages\u002F03.razor-syntax",{"title":1201,"path":1202,"stem":1203},"Tag Helpers: типізований HTML","\u002Fcsharp\u002Faspnet\u002Frazor-pages\u002Ftag-helpers","01.csharp\u002F11.aspnet\u002F10.razor-pages\u002F04.tag-helpers",{"title":1205,"path":1206,"stem":1207},"Форми і валідація: повний цикл обробки даних","\u002Fcsharp\u002Faspnet\u002Frazor-pages\u002Fforms-validation","01.csharp\u002F11.aspnet\u002F10.razor-pages\u002F05.forms-validation",{"title":1209,"path":1210,"stem":1211},"Практичний проєкт: TaskManager на Razor Pages","\u002Fcsharp\u002Faspnet\u002Frazor-pages\u002Fproject-task-manager","01.csharp\u002F11.aspnet\u002F10.razor-pages\u002F06.project-task-manager",{"title":1213,"path":1214,"stem":1215,"children":1216,"page":59},"ASP.NET Core MVC","\u002Fcsharp\u002Faspnet\u002Fmvc","01.csharp\u002F11.aspnet\u002F11.mvc",[1217,1221,1225,1229,1233,1237,1241,1245,1249,1253,1257,1261,1265,1269,1273,1277,1281,1285],{"title":1218,"path":1219,"stem":1220},"Патерн MVC: архітектура, що змінила веб","\u002Fcsharp\u002Faspnet\u002Fmvc\u002Fmvc-pattern","01.csharp\u002F11.aspnet\u002F11.mvc\u002F01.mvc-pattern",{"title":1222,"path":1223,"stem":1224},"Від Razor Pages до MVC: концептуальний перехід","\u002Fcsharp\u002Faspnet\u002Fmvc\u002Ffrom-razor-pages","01.csharp\u002F11.aspnet\u002F11.mvc\u002F02.from-razor-pages",{"title":1226,"path":1227,"stem":1228},"Controllers та Actions: серце MVC","\u002Fcsharp\u002Faspnet\u002Fmvc\u002Fcontrollers-actions","01.csharp\u002F11.aspnet\u002F11.mvc\u002F03.controllers-actions",{"title":1230,"path":1231,"stem":1232},"Маршрутизація в MVC: Convention vs Attribute Routing","\u002Fcsharp\u002Faspnet\u002Fmvc\u002Frouting-mvc","01.csharp\u002F11.aspnet\u002F11.mvc\u002F04.routing-mvc",{"title":1234,"path":1235,"stem":1236},"Model Binding: від HTTP до C#","\u002Fcsharp\u002Faspnet\u002Fmvc\u002Fmodel-binding","01.csharp\u002F11.aspnet\u002F11.mvc\u002F05.model-binding",{"title":1238,"path":1239,"stem":1240},"Views, ViewData, ViewBag, TempData і ViewModel","\u002Fcsharp\u002Faspnet\u002Fmvc\u002Fviews-viewdata-tempdata","01.csharp\u002F11.aspnet\u002F11.mvc\u002F06.views-viewdata-tempdata",{"title":1242,"path":1243,"stem":1244},"Filters: аспектно-орієнтоване програмування в MVC","\u002Fcsharp\u002Faspnet\u002Fmvc\u002Ffilters","01.csharp\u002F11.aspnet\u002F11.mvc\u002F07.filters",{"title":1246,"path":1247,"stem":1248},"Areas: структурування великих застосунків","\u002Fcsharp\u002Faspnet\u002Fmvc\u002Fareas","01.csharp\u002F11.aspnet\u002F11.mvc\u002F08.areas",{"title":1250,"path":1251,"stem":1252},"View Components: повторювані незалежні блоки UI","\u002Fcsharp\u002Faspnet\u002Fmvc\u002Fview-components","01.csharp\u002F11.aspnet\u002F11.mvc\u002F09.view-components",{"title":1254,"path":1255,"stem":1256},"Display та Editor Templates","\u002Fcsharp\u002Faspnet\u002Fmvc\u002Fdisplay-editor-templates","01.csharp\u002F11.aspnet\u002F11.mvc\u002F10.display-editor-templates",{"title":1258,"path":1259,"stem":1260},"Валідація: IValidatableObject та FluentValidation","\u002Fcsharp\u002Faspnet\u002Fmvc\u002Fvalidation-advanced","01.csharp\u002F11.aspnet\u002F11.mvc\u002F11.validation-advanced",{"title":1262,"path":1263,"stem":1264},"HTMX: інтерактивність через HTML-атрибути","\u002Fcsharp\u002Faspnet\u002Fmvc\u002Fhtmx","01.csharp\u002F11.aspnet\u002F11.mvc\u002F12.htmx",{"title":1266,"path":1267,"stem":1268},"HTMX у ASP.NET Core MVC: серверна інтеграція","\u002Fcsharp\u002Faspnet\u002Fmvc\u002Fajax-htmx-mvc","01.csharp\u002F11.aspnet\u002F11.mvc\u002F13.ajax-htmx-mvc",{"title":1270,"path":1271,"stem":1272},"Практичний проєкт: Каталог товарів з HTMX","\u002Fcsharp\u002Faspnet\u002Fmvc\u002Fhtmx-project","01.csharp\u002F11.aspnet\u002F11.mvc\u002F14.htmx-project",{"title":1274,"path":1275,"stem":1276},"Завантаження та обробка файлів","\u002Fcsharp\u002Faspnet\u002Fmvc\u002Ffile-upload","01.csharp\u002F11.aspnet\u002F11.mvc\u002F15.file-upload",{"title":1278,"path":1279,"stem":1280},"Глобалізація та Локалізація MVC","\u002Fcsharp\u002Faspnet\u002Fmvc\u002Fglobalization-localization","01.csharp\u002F11.aspnet\u002F11.mvc\u002F16.globalization-localization",{"title":1282,"path":1283,"stem":1284},"Підсумковий проєкт: Блог-платформа","\u002Fcsharp\u002Faspnet\u002Fmvc\u002Fmvc-project","01.csharp\u002F11.aspnet\u002F11.mvc\u002F17.mvc-project",{"title":1286,"path":1287,"stem":1288},"План курсу: ASP.NET Core MVC","\u002Fcsharp\u002Faspnet\u002Fmvc\u002Fplan","01.csharp\u002F11.aspnet\u002F11.mvc\u002Fplan",{"title":1290,"path":1291,"stem":1292,"children":1293,"page":59},"Web Api","\u002Fcsharp\u002Faspnet\u002Fweb-api","01.csharp\u002F11.aspnet\u002F12.web-api",[1294,1298,1302,1306,1310,1314,1318,1322,1326,1330,1334,1338,1342],{"title":1295,"path":1296,"stem":1297},"Від Minimal API до Controller-based API","\u002Fcsharp\u002Faspnet\u002Fweb-api\u002Ffrom-minimal-api-to-controllers","01.csharp\u002F11.aspnet\u002F12.web-api\u002F01.from-minimal-api-to-controllers",{"title":1299,"path":1300,"stem":1301},"ControllerBase, ActionResult\u003CT> та Response Types","\u002Fcsharp\u002Faspnet\u002Fweb-api\u002Fcontroller-base-actionresult","01.csharp\u002F11.aspnet\u002F12.web-api\u002F02.controller-base-actionresult",{"title":1303,"path":1304,"stem":1305},"Content Negotiation - JSON, XML та власні форматери","\u002Fcsharp\u002Faspnet\u002Fweb-api\u002Fcontent-negotiation","01.csharp\u002F11.aspnet\u002F12.web-api\u002F03.content-negotiation",{"title":1307,"path":1308,"stem":1309},"Версіонування API","\u002Fcsharp\u002Faspnet\u002Fweb-api\u002Fapi-versioning","01.csharp\u002F11.aspnet\u002F12.web-api\u002F04.api-versioning",{"title":1311,"path":1312,"stem":1313},"ProblemDetails та структурована обробка помилок","\u002Fcsharp\u002Faspnet\u002Fweb-api\u002Fproblemdetails-error-handling","01.csharp\u002F11.aspnet\u002F12.web-api\u002F05.problemdetails-error-handling",{"title":1315,"path":1316,"stem":1317},"Фільтри у Web API контексті","\u002Fcsharp\u002Faspnet\u002Fweb-api\u002Ffilters-for-api","01.csharp\u002F11.aspnet\u002F12.web-api\u002F06.filters-for-api",{"title":1319,"path":1320,"stem":1321},"Пагінація, фільтрація та сортування","\u002Fcsharp\u002Faspnet\u002Fweb-api\u002Fpagination-filtering-sorting","01.csharp\u002F11.aspnet\u002F12.web-api\u002F07.pagination-filtering-sorting",{"title":1323,"path":1324,"stem":1325},"HATEOAS та Resource Expansion","\u002Fcsharp\u002Faspnet\u002Fweb-api\u002Fhateoas-resource-expansion","01.csharp\u002F11.aspnet\u002F12.web-api\u002F08.hateoas-resource-expansion",{"title":1327,"path":1328,"stem":1329},"Гібридна архітектура - Minimal API + Controllers","\u002Fcsharp\u002Faspnet\u002Fweb-api\u002Fminimal-api-vs-controllers-hybrid","01.csharp\u002F11.aspnet\u002F12.web-api\u002F09.minimal-api-vs-controllers-hybrid",{"title":1331,"path":1332,"stem":1333},"Документація API - Swashbuckle, NSwag та генерація клієнтів","\u002Fcsharp\u002Faspnet\u002Fweb-api\u002Fapi-documentation-generation","01.csharp\u002F11.aspnet\u002F12.web-api\u002F10.api-documentation-generation",{"title":1335,"path":1336,"stem":1337},"Health Checks та моніторинг API","\u002Fcsharp\u002Faspnet\u002Fweb-api\u002Fhealth-checks-monitoring","01.csharp\u002F11.aspnet\u002F12.web-api\u002F11.health-checks-monitoring",{"title":1339,"path":1340,"stem":1341},"Підсумковий проєкт - Production-Ready REST API","\u002Fcsharp\u002Faspnet\u002Fweb-api\u002Fweb-api-project","01.csharp\u002F11.aspnet\u002F12.web-api\u002F12.web-api-project",{"title":1343,"path":1344,"stem":1345},"План курсу: ASP.NET Core Web API (Controllers)","\u002Fcsharp\u002Faspnet\u002Fweb-api\u002Fplan","01.csharp\u002F11.aspnet\u002F12.web-api\u002Fplan",{"title":1347,"icon":1348,"path":1349,"stem":1350,"children":1351,"page":59},"Моніторинг","i-lucide-activity","\u002Fcsharp\u002Faspnet\u002Fmonitoring","01.csharp\u002F11.aspnet\u002F13.monitoring",[1352,1356,1360],{"title":1353,"path":1354,"stem":1355},"Спостережуваність: від console.log до production-систем","\u002Fcsharp\u002Faspnet\u002Fmonitoring\u002Fobservability-intro","01.csharp\u002F11.aspnet\u002F13.monitoring\u002F01.observability-intro",{"title":1357,"path":1358,"stem":1359},"Health Checks: перший рівень observability","\u002Fcsharp\u002Faspnet\u002Fmonitoring\u002Fhealth-checks","01.csharp\u002F11.aspnet\u002F13.monitoring\u002F02.health-checks",{"title":1361,"path":1362,"stem":1363},"Вбудовані метрики .NET 10 та System.Diagnostics.Metrics","\u002Fcsharp\u002Faspnet\u002Fmonitoring\u002Fdotnet-metrics","01.csharp\u002F11.aspnet\u002F13.monitoring\u002F03.dotnet-metrics",{"title":1365,"icon":1366,"path":1367,"stem":1368,"children":1369,"page":59},"Desktop UI","i-lucide-app-window","\u002Fcsharp\u002Fdesktop-ui","01.csharp\u002F12.desktop-ui",[1370,1374,1378,1382,1386,1390,1394,1398,1402,1406,1410,1414,1418,1422,1426,1430,1434,1438,1442,1446,1450,1454,1458,1462,1466,1470,1474,1478,1482,1486,1490,1494,1498,1502,1506,1510,1514,1518,1522,1526,1530,1534,1538,1542,1546,1550,1554,1558,1562,1566,1570,1574,1578,1582,1586,1590,1594,1598,1602,1606,1610,1614,1618,1622,1626,1630,1634,1638,1642,1646,1650],{"title":1371,"path":1372,"stem":1373},"Що таке десктопна розробка?","\u002Fcsharp\u002Fdesktop-ui\u002Fwhat-is-desktop-dev","01.csharp\u002F12.desktop-ui\u002F01.what-is-desktop-dev",{"title":1375,"path":1376,"stem":1377},"Архітектура WPF — як влаштований графічний інтерфейс","\u002Fcsharp\u002Fdesktop-ui\u002Fwpf-architecture","01.csharp\u002F12.desktop-ui\u002F02.wpf-architecture",{"title":1379,"path":1380,"stem":1381},"Перший WPF-проєкт — від нуля до вікна","\u002Fcsharp\u002Fdesktop-ui\u002Ffirst-wpf-app","01.csharp\u002F12.desktop-ui\u002F03.first-wpf-app",{"title":1383,"path":1384,"stem":1385},"Перший Avalonia-проєкт: WPF для всіх платформ","\u002Fcsharp\u002Fdesktop-ui\u002F03a.first-avalonia-app","01.csharp\u002F12.desktop-ui\u002F03a.first-avalonia-app",{"title":1387,"path":1388,"stem":1389},"XAML: декларативний інтерфейс","\u002Fcsharp\u002Fdesktop-ui\u002Fxaml-basics","01.csharp\u002F12.desktop-ui\u002F04.xaml-basics",{"title":1391,"path":1392,"stem":1393},"Fluent UI у WPF — сучасний дизайн Windows 11","\u002Fcsharp\u002Fdesktop-ui\u002F04a.wpf-fluent-ui","01.csharp\u002F12.desktop-ui\u002F04a.wpf-fluent-ui",{"title":1395,"path":1396,"stem":1397},"WPF UI — сучасна бібліотека Fluent контролів","\u002Fcsharp\u002Fdesktop-ui\u002F04b.wpf-ui-library","01.csharp\u002F12.desktop-ui\u002F04b.wpf-ui-library",{"title":1399,"path":1400,"stem":1401},"HandyControl — велика бібліотека UI контролів для WPF","\u002Fcsharp\u002Fdesktop-ui\u002F04c.handycontrol-library","01.csharp\u002F12.desktop-ui\u002F04c.handycontrol-library",{"title":1403,"path":1404,"stem":1405},"Простори імен та ресурси XAML","\u002Fcsharp\u002Fdesktop-ui\u002Fxaml-namespaces-resources","01.csharp\u002F12.desktop-ui\u002F05.xaml-namespaces-resources",{"title":1407,"path":1408,"stem":1409},"XAML в Avalonia: ключові відмінності від WPF","\u002Fcsharp\u002Fdesktop-ui\u002F05a.avalonia-xaml-differences","01.csharp\u002F12.desktop-ui\u002F05a.avalonia-xaml-differences",{"title":1411,"path":1412,"stem":1413},"Розширення розмітки XAML (Markup Extensions)","\u002Fcsharp\u002Fdesktop-ui\u002Fxaml-markup-extensions","01.csharp\u002F12.desktop-ui\u002F06.xaml-markup-extensions",{"title":1415,"path":1416,"stem":1417},"Панелі Layout: StackPanel, WrapPanel, DockPanel","\u002Fcsharp\u002Fdesktop-ui\u002Flayout-panels-part1","01.csharp\u002F12.desktop-ui\u002F07.layout-panels-part1",{"title":1419,"path":1420,"stem":1421},"Grid, Canvas, UniformGrid","\u002Fcsharp\u002Fdesktop-ui\u002Flayout-panels-part2","01.csharp\u002F12.desktop-ui\u002F07.layout-panels-part2",{"title":1423,"path":1424,"stem":1425},"Просунуті техніки Layout","\u002Fcsharp\u002Fdesktop-ui\u002Flayout-advanced","01.csharp\u002F12.desktop-ui\u002F08.layout-advanced",{"title":1427,"path":1428,"stem":1429},"Адаптивний Layout та найкращі практики","\u002Fcsharp\u002Fdesktop-ui\u002Flayout-responsive","01.csharp\u002F12.desktop-ui\u002F09.layout-responsive",{"title":1431,"path":1432,"stem":1433},"Layout в Avalonia: відмінності та нові можливості","\u002Fcsharp\u002Fdesktop-ui\u002F09a.layout-avalonia","01.csharp\u002F12.desktop-ui\u002F09a.layout-avalonia",{"title":1435,"path":1436,"stem":1437},"Button, Image, ProgressBar та інші базові контроли","\u002Fcsharp\u002Fdesktop-ui\u002Fbasic-controls","01.csharp\u002F12.desktop-ui\u002F10.basic-controls",{"title":1439,"path":1440,"stem":1441},"Контроли в Avalonia: відмінності від WPF","\u002Fcsharp\u002Fdesktop-ui\u002F10a.controls-avalonia","01.csharp\u002F12.desktop-ui\u002F10a.controls-avalonia",{"title":1443,"path":1444,"stem":1445},"Текстові контроли — TextBlock, TextBox, RichTextBox","\u002Fcsharp\u002Fdesktop-ui\u002Ftext-controls","01.csharp\u002F12.desktop-ui\u002F11.text-controls",{"title":1447,"path":1448,"stem":1449},"Контроли вибору — CheckBox, RadioButton, ComboBox, ListBox, DatePicker","\u002Fcsharp\u002Fdesktop-ui\u002Fselection-controls","01.csharp\u002F12.desktop-ui\u002F12.selection-controls",{"title":1451,"path":1452,"stem":1453},"Content Model — GroupBox, Expander, TabControl, StatusBar","\u002Fcsharp\u002Fdesktop-ui\u002Fcontent-controls","01.csharp\u002F12.desktop-ui\u002F13.content-controls",{"title":1455,"path":1456,"stem":1457},"UI\u002FUX принципи десктопних застосунків","\u002Fcsharp\u002Fdesktop-ui\u002F13a.ui-ux-principles","01.csharp\u002F12.desktop-ui\u002F13a.ui-ux-principles",{"title":1459,"path":1460,"stem":1461},"Dependency Properties — Концепція та Value Resolution","\u002Fcsharp\u002Fdesktop-ui\u002Fdependency-properties-part1","01.csharp\u002F12.desktop-ui\u002F14.dependency-properties-part1",{"title":1463,"path":1464,"stem":1465},"Avalonia Property System — StyledProperty та DirectProperty","\u002Fcsharp\u002Fdesktop-ui\u002F14a.avalonia-property-system","01.csharp\u002F12.desktop-ui\u002F14a.avalonia-property-system",{"title":1467,"path":1468,"stem":1469},"Attached Properties — Властивості без меж","\u002Fcsharp\u002Fdesktop-ui\u002Fattached-properties","01.csharp\u002F12.desktop-ui\u002F15.attached-properties",{"title":1471,"path":1472,"stem":1473},"Routed Events — Маршрутизація подій у WPF","\u002Fcsharp\u002Fdesktop-ui\u002Frouted-events","01.csharp\u002F12.desktop-ui\u002F16.routed-events",{"title":1475,"path":1476,"stem":1477},"Data Binding — Від Code-Behind до Декларативності","\u002Fcsharp\u002Fdesktop-ui\u002Fdata-binding-basics-part1","01.csharp\u002F12.desktop-ui\u002F17.data-binding-basics-part1",{"title":1479,"path":1480,"stem":1481},"INotifyPropertyChanged — Живе оновлення UI","\u002Fcsharp\u002Fdesktop-ui\u002Fdata-binding-basics-part2","01.csharp\u002F12.desktop-ui\u002F17.data-binding-basics-part2",{"title":1483,"path":1484,"stem":1485},"Compiled Bindings в Avalonia — Безпека на етапі компіляції","\u002Fcsharp\u002Fdesktop-ui\u002F17a.avalonia-compiled-bindings","01.csharp\u002F12.desktop-ui\u002F17a.avalonia-compiled-bindings",{"title":1487,"path":1488,"stem":1489},"Просунутий Data Binding — ElementName, RelativeSource, MultiBinding","\u002Fcsharp\u002Fdesktop-ui\u002Fdata-binding-advanced","01.csharp\u002F12.desktop-ui\u002F18.data-binding-advanced",{"title":1491,"path":1492,"stem":1493},"Value Converters — Перетворення типів даних у Data Binding","\u002Fcsharp\u002Fdesktop-ui\u002Fvalue-converters","01.csharp\u002F12.desktop-ui\u002F19.value-converters",{"title":1495,"path":1496,"stem":1497},"Data Templates — Візуалізація об'єктів у WPF","\u002Fcsharp\u002Fdesktop-ui\u002Fdata-templates","01.csharp\u002F12.desktop-ui\u002F20.data-templates",{"title":1499,"path":1500,"stem":1501},"Collections Binding Part 1 — ObservableCollection та ItemsControl","\u002Fcsharp\u002Fdesktop-ui\u002Fcollections-binding-part1","01.csharp\u002F12.desktop-ui\u002F21.collections-binding-part1",{"title":1503,"path":1504,"stem":1505},"Collections Binding Part 2 — ICollectionView, Filtering, Sorting та Virtualization","\u002Fcsharp\u002Fdesktop-ui\u002Fcollections-binding-part2","01.csharp\u002F12.desktop-ui\u002F21.collections-binding-part2",{"title":1507,"path":1508,"stem":1509},"MVVM Pattern — Від Spaghetti Code до архітектури","\u002Fcsharp\u002Fdesktop-ui\u002Fmvvm-pattern","01.csharp\u002F12.desktop-ui\u002F22.mvvm-pattern",{"title":1511,"path":1512,"stem":1513},"ViewModel Implementation — Від BaseViewModel до валідації","\u002Fcsharp\u002Fdesktop-ui\u002Fviewmodel-implementation","01.csharp\u002F12.desktop-ui\u002F23.viewmodel-implementation",{"title":1515,"path":1516,"stem":1517},"Commands — Від event handlers до декларативних команд","\u002Fcsharp\u002Fdesktop-ui\u002Fcommands","01.csharp\u002F12.desktop-ui\u002F24.commands",{"title":1519,"path":1520,"stem":1521},"MVVM Toolkit — MVVM без boilerplate через Source Generators","\u002Fcsharp\u002Fdesktop-ui\u002Fmvvm-toolkit","01.csharp\u002F12.desktop-ui\u002F25.mvvm-toolkit",{"title":1523,"path":1524,"stem":1525},"Messenger Pattern — Комунікація між ViewModel без прямих посилань","\u002Fcsharp\u002Fdesktop-ui\u002Fmessenger-pattern","01.csharp\u002F12.desktop-ui\u002F26.messenger-pattern",{"title":1527,"path":1528,"stem":1529},"Стилі WPF — CSS для десктопу","\u002Fcsharp\u002Fdesktop-ui\u002Fstyles-basics","01.csharp\u002F12.desktop-ui\u002F27.styles-basics",{"title":1531,"path":1532,"stem":1533},"CSS-like стилі Avalonia","\u002Fcsharp\u002Fdesktop-ui\u002F27a.avalonia-css-styling","01.csharp\u002F12.desktop-ui\u002F27a.avalonia-css-styling",{"title":1535,"path":1536,"stem":1537},"Control Templates — Частина 1. Концепція та TemplateBinding","\u002Fcsharp\u002Fdesktop-ui\u002Fcontrol-templates-part1","01.csharp\u002F12.desktop-ui\u002F28.control-templates-part1",{"title":1539,"path":1540,"stem":1541},"Control Templates — Частина 2. Named Parts та ContentPresenter","\u002Fcsharp\u002Fdesktop-ui\u002Fcontrol-templates-part2","01.csharp\u002F12.desktop-ui\u002F28.control-templates-part2",{"title":1543,"path":1544,"stem":1545},"Control Themes в Avalonia — нова ера стилізації","\u002Fcsharp\u002Fdesktop-ui\u002F28a.avalonia-control-themes","01.csharp\u002F12.desktop-ui\u002F28a.avalonia-control-themes",{"title":1547,"path":1548,"stem":1549},"Triggers та Visual State Manager у WPF","\u002Fcsharp\u002Fdesktop-ui\u002Ftriggers-visual-states","01.csharp\u002F12.desktop-ui\u002F29.triggers-visual-states",{"title":1551,"path":1552,"stem":1553},"Pseudo-classes в Avalonia — замість WPF Triggers","\u002Fcsharp\u002Fdesktop-ui\u002F29a.avalonia-pseudo-classes","01.csharp\u002F12.desktop-ui\u002F29a.avalonia-pseudo-classes",{"title":1555,"path":1556,"stem":1557},"Теми та ресурсні словники у WPF","\u002Fcsharp\u002Fdesktop-ui\u002Fresources-themes","01.csharp\u002F12.desktop-ui\u002F30.resources-themes",{"title":1559,"path":1560,"stem":1561},"Avalonia Themes — Fluent Design та система тематизації","\u002Fcsharp\u002Fdesktop-ui\u002F30a.avalonia-themes-fluent","01.csharp\u002F12.desktop-ui\u002F30a.avalonia-themes-fluent",{"title":1563,"path":1564,"stem":1565},"Контроли колекцій — глибоке занурення","\u002Fcsharp\u002Fdesktop-ui\u002Fcollection-controls","01.csharp\u002F12.desktop-ui\u002F31.collection-controls",{"title":1567,"path":1568,"stem":1569},"DataGrid — колонки та базове відображення","\u002Fcsharp\u002Fdesktop-ui\u002Fdatagrid-part1","01.csharp\u002F12.desktop-ui\u002F32.datagrid-part1",{"title":1571,"path":1572,"stem":1573},"DataGrid — сортування, фільтрація, редагування","\u002Fcsharp\u002Fdesktop-ui\u002Fdatagrid-part2","01.csharp\u002F12.desktop-ui\u002F32.datagrid-part2",{"title":1575,"path":1576,"stem":1577},"TreeView та GridView","\u002Fcsharp\u002Fdesktop-ui\u002Ftreeview-listview","01.csharp\u002F12.desktop-ui\u002F33.treeview-listview",{"title":1579,"path":1580,"stem":1581},"Меню, Toolbar, ContextMenu, StatusBar","\u002Fcsharp\u002Fdesktop-ui\u002Fmenus-toolbars","01.csharp\u002F12.desktop-ui\u002F34.menus-toolbars",{"title":1583,"path":1584,"stem":1585},"Навігація та керування вікнами. Частина 1: вікна та сторінки","\u002Fcsharp\u002Fdesktop-ui\u002Fnavigation-windows-part1","01.csharp\u002F12.desktop-ui\u002F35.navigation-windows-part1",{"title":1587,"path":1588,"stem":1589},"Навігація та керування вікнами. Частина 2: MVVM-навігація","\u002Fcsharp\u002Fdesktop-ui\u002Fnavigation-windows-part2","01.csharp\u002F12.desktop-ui\u002F35.navigation-windows-part2",{"title":1591,"path":1592,"stem":1593},"Avalonia — Навігація та діалоги","\u002Fcsharp\u002Fdesktop-ui\u002F35a.avalonia-navigation-dialogs","01.csharp\u002F12.desktop-ui\u002F35a.avalonia-navigation-dialogs",{"title":1595,"path":1596,"stem":1597},"Діалоги та File Pickers у WPF","\u002Fcsharp\u002Fdesktop-ui\u002Fdialogs-file-pickers","01.csharp\u002F12.desktop-ui\u002F36.dialogs-file-pickers",{"title":1599,"path":1600,"stem":1601},"UserControl: компонентний підхід у WPF","\u002Fcsharp\u002Fdesktop-ui\u002Fuser-controls","01.csharp\u002F12.desktop-ui\u002F37.user-controls",{"title":1603,"path":1604,"stem":1605},"Custom Controls: Lookless Controls у WPF","\u002Fcsharp\u002Fdesktop-ui\u002Fcustom-controls","01.csharp\u002F12.desktop-ui\u002F38.custom-controls",{"title":1607,"path":1608,"stem":1609},"Avalonia TemplatedControl — Lookless Controls","\u002Fcsharp\u002Fdesktop-ui\u002F38a.avalonia-templated-controls","01.csharp\u002F12.desktop-ui\u002F38a.avalonia-templated-controls",{"title":1611,"path":1612,"stem":1613},"Анімації у WPF: Storyboard та Easing Functions","\u002Fcsharp\u002Fdesktop-ui\u002Fanimations-transitions","01.csharp\u002F12.desktop-ui\u002F39.animations-transitions",{"title":1615,"path":1616,"stem":1617},"Анімації в Avalonia","\u002Fcsharp\u002Fdesktop-ui\u002F39a.avalonia-animations","01.csharp\u002F12.desktop-ui\u002F39a.avalonia-animations",{"title":1619,"path":1620,"stem":1621},"2D Графіка та Мультимедіа у WPF","\u002Fcsharp\u002Fdesktop-ui\u002Fmedia-graphics","01.csharp\u002F12.desktop-ui\u002F40.media-graphics",{"title":1623,"path":1624,"stem":1625},"Dependency Injection у WPF та Avalonia","\u002Fcsharp\u002Fdesktop-ui\u002Fdi-integration","01.csharp\u002F12.desktop-ui\u002F41.di-integration",{"title":1627,"path":1628,"stem":1629},"SQLite та EF Core у десктопних додатках","\u002Fcsharp\u002Fdesktop-ui\u002Fdata-persistence-part1","01.csharp\u002F12.desktop-ui\u002F42.data-persistence-part1",{"title":1631,"path":1632,"stem":1633},"Repository Pattern та Unit of Work","\u002Fcsharp\u002Fdesktop-ui\u002Fdata-persistence-part2","01.csharp\u002F12.desktop-ui\u002F43.data-persistence-part2",{"title":1635,"path":1636,"stem":1637},"Тестування ViewModels","\u002Fcsharp\u002Fdesktop-ui\u002Fviewmodel-testing","01.csharp\u002F12.desktop-ui\u002F44.viewmodel-testing",{"title":1639,"path":1640,"stem":1641},"Avalonia Headless Testing — тестування UI без вікон","\u002Fcsharp\u002Fdesktop-ui\u002F44a.avalonia-headless-testing","01.csharp\u002F12.desktop-ui\u002F44a.avalonia-headless-testing",{"title":1643,"path":1644,"stem":1645},"Кросплатформна розробка з Avalonia","\u002Fcsharp\u002Fdesktop-ui\u002Favalonia-cross-platform","01.csharp\u002F12.desktop-ui\u002F45.avalonia-cross-platform",{"title":1647,"path":1648,"stem":1649},"Пакування та розгортання Avalonia додатків","\u002Fcsharp\u002Fdesktop-ui\u002Favalonia-packaging-deployment","01.csharp\u002F12.desktop-ui\u002F46.avalonia-packaging-deployment",{"title":1651,"path":1652,"stem":1653},"Розгортання WPF застосунків","\u002Fcsharp\u002Fdesktop-ui\u002Fwpf-packaging-deployment","01.csharp\u002F12.desktop-ui\u002F47.wpf-packaging-deployment",{"title":1655,"icon":658,"path":1656,"stem":1657,"children":1658,"page":59},"Network Programming","\u002Fcsharp\u002Fnetwork-programming","01.csharp\u002F13.network-programming",[1659,1663,1667,1671,1675,1679,1683,1687,1691,1695,1699],{"title":1660,"path":1661,"stem":1662},"Основи комп'ютерних мереж","\u002Fcsharp\u002Fnetwork-programming\u002Ffoundations","01.csharp\u002F13.network-programming\u002F01.foundations",{"title":1664,"path":1665,"stem":1666},"Модель OSI та стек TCP\u002FIP","\u002Fcsharp\u002Fnetwork-programming\u002Fosi-model","01.csharp\u002F13.network-programming\u002F02.osi-model",{"title":1668,"path":1669,"stem":1670},"IP-протокол та адресація","\u002Fcsharp\u002Fnetwork-programming\u002Fip-addressing","01.csharp\u002F13.network-programming\u002F03.ip-addressing",{"title":1672,"path":1673,"stem":1674},"UDP — протокол без з'єднання","\u002Fcsharp\u002Fnetwork-programming\u002Fudp","01.csharp\u002F13.network-programming\u002F05.udp",{"title":1676,"path":1677,"stem":1678},"UDP Broadcast та Multicast","\u002Fcsharp\u002Fnetwork-programming\u002Fudp-broadcast-multicast","01.csharp\u002F13.network-programming\u002F06.udp-broadcast-multicast",{"title":1680,"path":1681,"stem":1682},"HTTP — протокол вебу","\u002Fcsharp\u002Fnetwork-programming\u002Fhttp-fundamentals","01.csharp\u002F13.network-programming\u002F07.http-fundamentals",{"title":1684,"path":1685,"stem":1686},"HttpListener — вбудований HTTP-сервер .NET","\u002Fcsharp\u002Fnetwork-programming\u002F07a.http-listener","01.csharp\u002F13.network-programming\u002F07a.http-listener",{"title":1688,"path":1689,"stem":1690},"HTTP Advanced — cookies, аутентифікація та HTTPS","\u002Fcsharp\u002Fnetwork-programming\u002Fhttp-advanced","01.csharp\u002F13.network-programming\u002F08.http-advanced",{"title":1692,"path":1693,"stem":1694},"SMTP та протоколи електронної пошти","\u002Fcsharp\u002Fnetwork-programming\u002Fsmtp","01.csharp\u002F13.network-programming\u002F09.smtp",{"title":1696,"path":1697,"stem":1698},"WebSocket — повнодуплексний протокол реального часу","\u002Fcsharp\u002Fnetwork-programming\u002Fwebsockets","01.csharp\u002F13.network-programming\u002F10.websockets",{"title":1700,"path":1701,"stem":1702},"TLS\u002FSSL — криптографічний захист мережевих з'єднань","\u002Fcsharp\u002Fnetwork-programming\u002Ftls-ssl","01.csharp\u002F13.network-programming\u002F11.tls-ssl",{"title":1704,"path":1705,"stem":1706},"C# & .NET: The Ultimate Roadmap","\u002Fcsharp\u002Froadmap","01.csharp\u002Froadmap",{"title":1708,"icon":1709,"path":1710,"stem":1711,"children":1712,"page":59},"C++","i-devicon-cplusplus","\u002Fcpp","02.cpp",[1713,1717,1721,1725,1729,1733,1737,1741,1745,1748,1752,1756,1760,1764,1768,1772,1776,1780,1784,1788,1792,1796,1800,1804,1808,1812,1816,1820,1824,1828,1832,1836,1840,1844,1848,1852,1856,1860,1864,1868,1872,1876,1880,1884,1888,1892,1896,1900,1904,1908],{"title":1714,"path":1715,"stem":1716},"Вступ у програмування та алгоритми","\u002Fcpp\u002Fintro-algorithms","02.cpp\u002F01.intro-algorithms",{"title":1718,"path":1719,"stem":1720},"Code Style: угоди про оформлення коду","\u002Fcpp\u002Fcode-style","02.cpp\u002F02.code-style",{"title":1722,"path":1723,"stem":1724},"Середовище розробки та перший проєкт","\u002Fcpp\u002Fide-setup","02.cpp\u002F03.ide-setup",{"title":1726,"path":1727,"stem":1728},"Вивід даних на екран","\u002Fcpp\u002Fdata-output","02.cpp\u002F04.data-output",{"title":1730,"path":1731,"stem":1732},"Типи даних, змінні та константи","\u002Fcpp\u002Fdata-types-variables","02.cpp\u002F05.data-types-variables",{"title":1734,"path":1735,"stem":1736},"Ввід даних з клавіатури","\u002Fcpp\u002Fdata-input","02.cpp\u002F06.data-input",{"title":1738,"path":1739,"stem":1740},"Оператори, перетворення типів та логічні операції","\u002Fcpp\u002Foperators-type-conversion","02.cpp\u002F07.operators-type-conversion",{"title":1742,"path":1743,"stem":1744},"Цикли","\u002Fcpp\u002Floops","02.cpp\u002F08.loops",{"title":32,"path":1746,"stem":1747},"\u002Fcpp\u002Farrays","02.cpp\u002F09.arrays",{"title":1749,"path":1750,"stem":1751},"Алгоритми сортування та аналіз складності","\u002Fcpp\u002Fsorting","02.cpp\u002F10.sorting",{"title":1753,"path":1754,"stem":1755},"Алгоритми пошуку","\u002Fcpp\u002Fsearching","02.cpp\u002F11.searching",{"title":1757,"path":1758,"stem":1759},"Функції: основи","\u002Fcpp\u002Ffunctions-basics","02.cpp\u002F12.functions-basics",{"title":1761,"path":1762,"stem":1763},"Функції: прототипи, область видимості та додаткові можливості","\u002Fcpp\u002Ffunctions-scope","02.cpp\u002F13.functions-scope",{"title":1765,"path":1766,"stem":1767},"Функції: перевантаження та шаблони","\u002Fcpp\u002Ffunctions-overloading-templates","02.cpp\u002F14.functions-overloading-templates",{"title":1769,"path":1770,"stem":1771},"Вказівники: основи","\u002Fcpp\u002Fpointers-basics","02.cpp\u002F15.pointers-basics",{"title":1773,"path":1774,"stem":1775},"Посилання (References)","\u002Fcpp\u002Freferences","02.cpp\u002F16.references",{"title":1777,"path":1778,"stem":1779},"Вказівники, const і масиви","\u002Fcpp\u002Fpointers-const-arrays","02.cpp\u002F17.pointers-const-arrays",{"title":1781,"path":1782,"stem":1783},"Адресна арифметика","\u002Fcpp\u002Fpointer-arithmetic","02.cpp\u002F18.pointer-arithmetic",{"title":1785,"path":1786,"stem":1787},"Динамічна пам'ять","\u002Fcpp\u002Fdynamic-memory","02.cpp\u002F19.dynamic-memory",{"title":1789,"path":1790,"stem":1791},"Вказівники типу void","\u002Fcpp\u002Fvoid-pointers","02.cpp\u002F20.void-pointers",{"title":1793,"path":1794,"stem":1795},"Вказівники на вказівники","\u002Fcpp\u002Fpointers-to-pointers","02.cpp\u002F21.pointers-to-pointers",{"title":1797,"path":1798,"stem":1799},"Оператор доступу до членів через вказівник (->)","\u002Fcpp\u002Fmember-access-operator","02.cpp\u002F22.member-access-operator",{"title":1801,"path":1802,"stem":1803},"Цикл for-each (Range-based for)","\u002Fcpp\u002Fforeach-loop","02.cpp\u002F23.foreach-loop",{"title":1805,"path":1806,"stem":1807},"Вказівники на функції","\u002Fcpp\u002Ffunction-pointers","02.cpp\u002F24.function-pointers",{"title":1809,"path":1810,"stem":1811},"Лямбда-вирази","\u002Fcpp\u002Flambdas","02.cpp\u002F25.lambdas",{"title":1813,"path":1814,"stem":1815},"Лямбда-захоплення","\u002Fcpp\u002Flambda-captures","02.cpp\u002F26.lambda-captures",{"title":1817,"path":1818,"stem":1819},"Еліпсис","\u002Fcpp\u002Fellipsis","02.cpp\u002F27.ellipsis",{"title":1821,"path":1822,"stem":1823},"Безпечні альтернативи еліпсису","\u002Fcpp\u002F27a.ellipsis","02.cpp\u002F27a.ellipsis",{"title":1825,"path":1826,"stem":1827},"Аргументи командного рядка","\u002Fcpp\u002Fcommand-line-arguments","02.cpp\u002F28.command-line-arguments",{"title":1829,"path":1830,"stem":1831},"Перерахування (enum)","\u002Fcpp\u002Fenum","02.cpp\u002F29.enum",{"title":1833,"path":1834,"stem":1835},"Класи-перерахування (enum class)","\u002Fcpp\u002Fenum-class","02.cpp\u002F30.enum-class",{"title":1837,"path":1838,"stem":1839},"Псевдоніми типів (typedef і using)","\u002Fcpp\u002Ftype-aliases","02.cpp\u002F31.type-aliases",{"title":1841,"path":1842,"stem":1843},"Системи числення та двійкова арифметика","\u002Fcpp\u002Fnumber-systems","02.cpp\u002F32.number-systems",{"title":1845,"path":1846,"stem":1847},"Структури (struct): агрегування даних","\u002Fcpp\u002Fstruct","02.cpp\u002F33.struct",{"title":1849,"path":1850,"stem":1851},"Структури у функціях","\u002Fcpp\u002Fstruct-functions","02.cpp\u002F34.struct-functions",{"title":1853,"path":1854,"stem":1855},"Масиви структур і вкладені структури","\u002Fcpp\u002Fstruct-arrays","02.cpp\u002F35.struct-arrays",{"title":1857,"path":1858,"stem":1859},"Патерни struct та межі застосування","\u002Fcpp\u002Fstruct-patterns","02.cpp\u002F36.struct-patterns",{"title":1861,"path":1862,"stem":1863},"Символи та таблиця ASCII","\u002Fcpp\u002Fascii-characters","02.cpp\u002F37.ascii-characters",{"title":1865,"path":1866,"stem":1867},"Unicode та кодування UTF","\u002Fcpp\u002Funicode-utf","02.cpp\u002F38.unicode-utf",{"title":1869,"path":1870,"stem":1871},"C-style рядки","\u002Fcpp\u002Fc-strings","02.cpp\u002F39.c-strings",{"title":1873,"path":1874,"stem":1875},"Вступ до std::string","\u002Fcpp\u002Fstd-string-intro","02.cpp\u002F40.std-string-intro",{"title":1877,"path":1878,"stem":1879},"Довжина, ємність та доступ до символів std::string","\u002Fcpp\u002Fstd-string-capacity-access","02.cpp\u002F41.std-string-capacity-access",{"title":1881,"path":1882,"stem":1883},"Модифікація std::string: присвоювання, додавання, вставка, видалення та заміна","\u002Fcpp\u002Fstd-string-modification","02.cpp\u002F42.std-string-modification",{"title":1885,"path":1886,"stem":1887},"Пошук у std::string: find, npos та практичні патерни","\u002Fcpp\u002Fstd-string-search","02.cpp\u002F43.std-string-search",{"title":1889,"path":1890,"stem":1891},"std::string_view: невласницький погляд на рядок без копіювання","\u002Fcpp\u002Fstd-string-view","02.cpp\u002F44.std-string-view",{"title":1893,"path":1894,"stem":1895},"Об'єднання (union): один блок пам'яті, кілька інтерпретацій","\u002Fcpp\u002Funion","02.cpp\u002F45.union",{"title":1897,"path":1898,"stem":1899},"Організація коду: файли, препроцесор, простори імен","\u002Fcpp\u002Fmultifile-programs","02.cpp\u002F46.multifile-programs",{"title":1901,"path":1902,"stem":1903},"Робота з файлами: C-стиль (stdio.h)","\u002Fcpp\u002Fc-style-files","02.cpp\u002F47.c-style-files",{"title":1905,"path":1906,"stem":1907},"Робота з файлами: C++-стиль (fstream)","\u002Fcpp\u002Fcpp-style-files","02.cpp\u002F48.cpp-style-files",{"title":1909,"path":1910,"stem":1911},"План навчання: Курс C++ — Продовження (Статті 29–60+)","\u002Fcpp\u002Fcurriculum-plan","02.cpp\u002Fcurriculum-plan",{"title":1913,"icon":1914,"path":1915,"stem":1916,"children":1917,"page":59},"JavaScript","i-devicon-javascript","\u002Fjavascript","03.javascript",[1918,1944,1998,2020,2324,2362],{"title":1919,"icon":1920,"path":1921,"stem":1922,"children":1923,"page":59},"Events","i-lucide-mouse-pointer-click","\u002Fjavascript\u002Fevents","03.javascript\u002F01.events",[1924,1928,1932,1936,1940],{"title":1925,"path":1926,"stem":1927},"Вступ до подій браузера","\u002Fjavascript\u002Fevents\u002Fintro","03.javascript\u002F01.events\u002F01.intro",{"title":1929,"path":1930,"stem":1931},"Бульбашковий механізм (Bubbling) та занурення (Capturing)","\u002Fjavascript\u002Fevents\u002Fbubbling-capturing","03.javascript\u002F01.events\u002F02.bubbling-capturing",{"title":1933,"path":1934,"stem":1935},"Делегування подій (Event Delegation)","\u002Fjavascript\u002Fevents\u002Fdelegate-events","03.javascript\u002F01.events\u002F03.delegate-events",{"title":1937,"path":1938,"stem":1939},"Типові дії браузера та preventDefault()","\u002Fjavascript\u002Fevents\u002Fprevent-default","03.javascript\u002F01.events\u002F04.prevent-default",{"title":1941,"path":1942,"stem":1943},"Запуск користувацьких подій (Custom Events)","\u002Fjavascript\u002Fevents\u002Fcustom-events","03.javascript\u002F01.events\u002F05.custom-events",{"title":1945,"icon":1946,"path":1947,"stem":1948,"children":1949,"page":59},"Network","i-lucide-globe","\u002Fjavascript\u002Fnetwork","03.javascript\u002F02.network",[1950,1954,1958,1962,1966,1970,1974,1978,1982,1986,1990,1994],{"title":1951,"path":1952,"stem":1953},"Fetch API - Сучасний підхід до HTTP-запитів","\u002Fjavascript\u002Fnetwork\u002F01-fetch-api","03.javascript\u002F02.network\u002F01-fetch-api",{"title":1955,"path":1956,"stem":1957},"FormData - Робота з формами та файлами","\u002Fjavascript\u002Fnetwork\u002F02-formdata","03.javascript\u002F02.network\u002F02-formdata",{"title":1959,"path":1960,"stem":1961},"Відстеження прогресу завантаження","\u002Fjavascript\u002Fnetwork\u002F03-download-progress","03.javascript\u002F02.network\u002F03-download-progress",{"title":1963,"path":1964,"stem":1965},"Переривання fetch-запитів","\u002Fjavascript\u002Fnetwork\u002F04-abort-requests","03.javascript\u002F02.network\u002F04-abort-requests",{"title":1967,"path":1968,"stem":1969},"CORS - Запити між різними джерелами","\u002Fjavascript\u002Fnetwork\u002F05-cors","03.javascript\u002F02.network\u002F05-cors",{"title":1971,"path":1972,"stem":1973},"Fetch API - Повний довідник опцій","\u002Fjavascript\u002Fnetwork\u002F06-fetch-options","03.javascript\u002F02.network\u002F06-fetch-options",{"title":1975,"path":1976,"stem":1977},"URL Objects - Робота з посиланнями","\u002Fjavascript\u002Fnetwork\u002F07-url-objects","03.javascript\u002F02.network\u002F07-url-objects",{"title":1979,"path":1980,"stem":1981},"XMLHttpRequest - AJAX та низькорівневі запити","\u002Fjavascript\u002Fnetwork\u002F08-xmlhttprequest","03.javascript\u002F02.network\u002F08-xmlhttprequest",{"title":1983,"path":1984,"stem":1985},"Відновлюване завантаження файлів","\u002Fjavascript\u002Fnetwork\u002F09-resumable-upload","03.javascript\u002F02.network\u002F09-resumable-upload",{"title":1987,"path":1988,"stem":1989},"Cookies, document.cookie та світ після \"Cookiepocalypse\"","\u002Fjavascript\u002Fnetwork\u002F10-cookies","03.javascript\u002F02.network\u002F10-cookies",{"title":1991,"path":1992,"stem":1993},"js-cookie: Керування Cookies без Болю","\u002Fjavascript\u002Fnetwork\u002F11-js-cookie","03.javascript\u002F02.network\u002F11-js-cookie",{"title":1995,"path":1996,"stem":1997},"Axios: Потужний HTTP-клієнт для JavaScript","\u002Fjavascript\u002Fnetwork\u002F12-axios","03.javascript\u002F02.network\u002F12-axios",{"title":1999,"icon":2000,"path":2001,"stem":2002,"children":2003,"page":59},"Bom","i-lucide-monitor","\u002Fjavascript\u002Fbom","03.javascript\u002F03.bom",[2004,2008,2012,2016],{"title":2005,"path":2006,"stem":2007},"LocalStorage, SessionStorage та patterns збереження даних","\u002Fjavascript\u002Fbom\u002F01-localstorage","03.javascript\u002F03.bom\u002F01-localstorage",{"title":2009,"path":2010,"stem":2011},"Location Object - Керування адресою сторінки","\u002Fjavascript\u002Fbom\u002F02-location-object","03.javascript\u002F03.bom\u002F02-location-object",{"title":2013,"path":2014,"stem":2015},"History API - Керування історією браузера","\u002Fjavascript\u002Fbom\u002F03-history-api","03.javascript\u002F03.bom\u002F03-history-api",{"title":2017,"path":2018,"stem":2019},"Navigator Object - Ідентифікація та Можливості Пристрою","\u002Fjavascript\u002Fbom\u002F04-navigator-object","03.javascript\u002F03.bom\u002F04-navigator-object",{"title":2021,"icon":2022,"path":2023,"stem":2024,"children":2025},"React","i-devicon-react","\u002Fjavascript\u002Freact","03.javascript\u002F04.react\u002Findex",[2026,2027,2031,2035,2039,2043,2106,2141,2293],{"title":2021,"path":2023,"stem":2024},{"title":2028,"path":2029,"stem":2030},"Робота з Формами в React","\u002Fjavascript\u002Freact\u002Freact-forms","03.javascript\u002F04.react\u002F01.react-forms",{"title":2032,"path":2033,"stem":2034},"React Hook Form: Професійна Робота з Формами","\u002Fjavascript\u002Freact\u002Freact-hook-form","03.javascript\u002F04.react\u002F02.react-hook-form",{"title":2036,"path":2037,"stem":2038},"React Hook Form: Глибоке Розуміння Архітектури та Оптимізації","\u002Fjavascript\u002Freact\u002Freact-hook-form-new","03.javascript\u002F04.react\u002F02.react-hook-form-new",{"title":2040,"path":2041,"stem":2042},"Axios та React: Професійна Архітектура Запитів","\u002Fjavascript\u002Freact\u002Fdata-fetching-axios","03.javascript\u002F04.react\u002F03.data-fetching-axios",{"title":2044,"icon":132,"path":2045,"stem":2046,"children":2047},"Tanstack Query","\u002Fjavascript\u002Freact\u002Ftanstack-query","03.javascript\u002F04.react\u002F04.tanstack-query\u002Findex",[2048,2050,2054,2058,2062,2066,2070,2074,2078,2082,2086,2090,2094,2098,2102],{"title":2049,"path":2045,"stem":2046},"TanStack Query: Майстерність Керування Станом Сервера",{"title":2051,"path":2052,"stem":2053},"Парадигма Server State: Чому useEffect недостатньо","\u002Fjavascript\u002Freact\u002Ftanstack-query\u002Fserver-state-paradigm","03.javascript\u002F04.react\u002F04.tanstack-query\u002F01.server-state-paradigm",{"title":2055,"path":2056,"stem":2057},"Встановлення та Налаштування: Фундамент","\u002Fjavascript\u002Freact\u002Ftanstack-query\u002Finstallation-and-devtools","03.javascript\u002F04.react\u002F04.tanstack-query\u002F02.installation-and-devtools",{"title":2059,"path":2060,"stem":2061},"Основи Запитів та Магія Ключів","\u002Fjavascript\u002Freact\u002Ftanstack-query\u002Fquery-basics-and-keys","03.javascript\u002F04.react\u002F04.tanstack-query\u002F03.query-basics-and-keys",{"title":2063,"path":2064,"stem":2065},"Синхронізація Даних: Життєвий Цикл Запиту","\u002Fjavascript\u002Freact\u002Ftanstack-query\u002Fdata-synchronization","03.javascript\u002F04.react\u002F04.tanstack-query\u002F04.data-synchronization",{"title":2067,"path":2068,"stem":2069},"Мутації та Інвалідація: Зміна Даних","\u002Fjavascript\u002Freact\u002Ftanstack-query\u002Fmutations-and-invalidation","03.javascript\u002F04.react\u002F04.tanstack-query\u002F05.mutations-and-invalidation",{"title":2071,"path":2072,"stem":2073},"Оптимістичні Оновлення: Швидше за Світло","\u002Fjavascript\u002Freact\u002Ftanstack-query\u002Foptimistic-updates","03.javascript\u002F04.react\u002F04.tanstack-query\u002F06.optimistic-updates",{"title":2075,"path":2076,"stem":2077},"Пагінація та Infinite Scroll","\u002Fjavascript\u002Freact\u002Ftanstack-query\u002Fpagination-and-load-more","03.javascript\u002F04.react\u002F04.tanstack-query\u002F07.pagination-and-load-more",{"title":2079,"path":2080,"stem":2081},"Просунуті Патерни та Оптимізація","\u002Fjavascript\u002Freact\u002Ftanstack-query\u002Fadvanced-patterns","03.javascript\u002F04.react\u002F04.tanstack-query\u002F08.advanced-patterns",{"title":2083,"path":2084,"stem":2085},"Архітектура та Best Practices","\u002Fjavascript\u002Freact\u002Ftanstack-query\u002Farchitecture-and-best-practices","03.javascript\u002F04.react\u002F04.tanstack-query\u002F09.architecture-and-best-practices",{"title":2087,"path":2088,"stem":2089},"Server-Side Rendering (SSR) та Гідратація","\u002Fjavascript\u002Freact\u002Ftanstack-query\u002Fserver-side-rendering","03.javascript\u002F04.react\u002F04.tanstack-query\u002F10.server-side-rendering",{"title":2091,"path":2092,"stem":2093},"Стратегії Тестування","\u002Fjavascript\u002Freact\u002Ftanstack-query\u002Ftesting-strategies","03.javascript\u002F04.react\u002F04.tanstack-query\u002F11.testing-strategies",{"title":2095,"path":2096,"stem":2097},"Аутентифікація та Обробка Помилок","\u002Fjavascript\u002Freact\u002Ftanstack-query\u002Fauthentication-and-errors","03.javascript\u002F04.react\u002F04.tanstack-query\u002F12.authentication-and-errors",{"title":2099,"path":2100,"stem":2101},"React Suspense та Майбутнє","\u002Fjavascript\u002Freact\u002Ftanstack-query\u002Freact-suspense","03.javascript\u002F04.react\u002F04.tanstack-query\u002F13.react-suspense",{"title":2103,"path":2104,"stem":2105},"Глибоке Занурення в Продуктивність","\u002Fjavascript\u002Freact\u002Ftanstack-query\u002Fperformance-deep-dive","03.javascript\u002F04.react\u002F04.tanstack-query\u002F14.performance-deep-dive",{"title":2107,"icon":2022,"path":2108,"stem":2109,"children":2110},"React Router","\u002Fjavascript\u002Freact\u002Freact-router","03.javascript\u002F04.react\u002F05.react-router\u002Findex",[2111,2113,2117,2121,2125,2129,2133,2137],{"title":2112,"path":2108,"stem":2109},"React Router: Навігаційна система сучасного вебу",{"title":2114,"path":2115,"stem":2116},"Налаштування та Базовий Роутинг","\u002Fjavascript\u002Freact\u002Freact-router\u002Fsetup-and-basic-routing","03.javascript\u002F04.react\u002F05.react-router\u002F01.setup-and-basic-routing",{"title":2118,"path":2119,"stem":2120},"Динамічна Навігація","\u002Fjavascript\u002Freact\u002Freact-router\u002Fnavigation-and-links","03.javascript\u002F04.react\u002F05.react-router\u002F02.navigation-and-links",{"title":2122,"path":2123,"stem":2124},"Вкладені Маршрути та Макети","\u002Fjavascript\u002Freact\u002Freact-router\u002Fnested-routes-and-layouts","03.javascript\u002F04.react\u002F05.react-router\u002F03.nested-routes-and-layouts",{"title":2126,"path":2127,"stem":2128},"Динамічні Маршрути та Параметри","\u002Fjavascript\u002Freact\u002Freact-router\u002Fdynamic-routing","03.javascript\u002F04.react\u002F05.react-router\u002F04.dynamic-routing",{"title":2130,"path":2131,"stem":2132},"Data APIs: Loaders та Actions","\u002Fjavascript\u002Freact\u002Freact-router\u002Fdata-loading","03.javascript\u002F04.react\u002F05.react-router\u002F05.data-loading",{"title":2134,"path":2135,"stem":2136},"Просунуті Патерни","\u002Fjavascript\u002Freact\u002Freact-router\u002Fadvanced-patterns","03.javascript\u002F04.react\u002F05.react-router\u002F06.advanced-patterns",{"title":2138,"path":2139,"stem":2140},"Legacy Routing: Компонентний підхід","\u002Fjavascript\u002Freact\u002Freact-router\u002Flegacy-routing","03.javascript\u002F04.react\u002F05.react-router\u002F07.legacy-routing",{"title":2142,"icon":132,"path":2143,"stem":2144,"children":2145},"Redux","\u002Fjavascript\u002Freact\u002Fredux","03.javascript\u002F04.react\u002F06.redux\u002Findex",[2146,2148,2164,2193,2202,2223,2239,2268],{"title":2147,"path":2143,"stem":2144},"Redux: Еволюція управління станом",{"title":14,"icon":15,"path":2149,"stem":2150,"children":2151,"page":59},"\u002Fjavascript\u002Freact\u002Fredux\u002Ffundamentals","03.javascript\u002F04.react\u002F06.redux\u002F01.fundamentals",[2152,2156,2160],{"title":2153,"path":2154,"stem":2155},"Вступ до State Management","\u002Fjavascript\u002Freact\u002Fredux\u002Ffundamentals\u002Fintro-state-management","03.javascript\u002F04.react\u002F06.redux\u002F01.fundamentals\u002F01.intro-state-management",{"title":2157,"path":2158,"stem":2159},"Філософія Redux та Три Принципи","\u002Fjavascript\u002Freact\u002Fredux\u002Ffundamentals\u002Fredux-philosophy","03.javascript\u002F04.react\u002F06.redux\u002F01.fundamentals\u002F02.redux-philosophy",{"title":2161,"path":2162,"stem":2163},"Чисті функції та Іммутабельність","\u002Fjavascript\u002Freact\u002Fredux\u002Ffundamentals\u002Fpure-functions-immutability","03.javascript\u002F04.react\u002F06.redux\u002F01.fundamentals\u002F03.pure-functions-immutability",{"title":2165,"icon":132,"path":2166,"stem":2167,"children":2168,"page":59},"Classic Redux","\u002Fjavascript\u002Freact\u002Fredux\u002Fclassic-redux","03.javascript\u002F04.react\u002F06.redux\u002F02.classic-redux",[2169,2173,2177,2181,2185,2189],{"title":2170,"path":2171,"stem":2172},"Створення Store (Classic Redux)","\u002Fjavascript\u002Freact\u002Fredux\u002Fclassic-redux\u002Fstore-setup","03.javascript\u002F04.react\u002F06.redux\u002F02.classic-redux\u002F01.store-setup",{"title":2174,"path":2175,"stem":2176},"Actions, Constants та Action Creators","\u002Fjavascript\u002Freact\u002Fredux\u002Fclassic-redux\u002Factions-constants","03.javascript\u002F04.react\u002F06.redux\u002F02.classic-redux\u002F02.actions-constants",{"title":2178,"path":2179,"stem":2180},"Логіка Reducers","\u002Fjavascript\u002Freact\u002Fredux\u002Fclassic-redux\u002Freducers","03.javascript\u002F04.react\u002F06.redux\u002F02.classic-redux\u002F03.reducers",{"title":2182,"path":2183,"stem":2184},"Комбінування Reducers (Root Reducer)","\u002Fjavascript\u002Freact\u002Fredux\u002Fclassic-redux\u002Fdata-flow","03.javascript\u002F04.react\u002F06.redux\u002F02.classic-redux\u002F04.data-flow",{"title":2186,"path":2187,"stem":2188},"Підключення до React (React-Redux)","\u002Fjavascript\u002Freact\u002Fredux\u002Fclassic-redux\u002Freact-redux-connection","03.javascript\u002F04.react\u002F06.redux\u002F02.classic-redux\u002F05.react-redux-connection",{"title":2190,"path":2191,"stem":2192},"Middleware та Асинхронність (Redux Thunk)","\u002Fjavascript\u002Freact\u002Fredux\u002Fclassic-redux\u002Fmiddleware-thunk","03.javascript\u002F04.react\u002F06.redux\u002F02.classic-redux\u002F06.middleware-thunk",{"title":2194,"icon":132,"path":2195,"stem":2196,"children":2197,"page":59},"Transition To Rtk","\u002Fjavascript\u002Freact\u002Fredux\u002Ftransition-to-rtk","03.javascript\u002F04.react\u002F06.redux\u002F03.transition-to-rtk",[2198],{"title":2199,"path":2200,"stem":2201},"Проблеми класичного Redux","\u002Fjavascript\u002Freact\u002Fredux\u002Ftransition-to-rtk\u002Fproblems-with-classic","03.javascript\u002F04.react\u002F06.redux\u002F03.transition-to-rtk\u002F01.problems-with-classic",{"title":2203,"icon":132,"path":2204,"stem":2205,"children":2206,"page":59},"Redux Toolkit","\u002Fjavascript\u002Freact\u002Fredux\u002Fredux-toolkit","03.javascript\u002F04.react\u002F06.redux\u002F04.redux-toolkit",[2207,2211,2215,2219],{"title":2208,"path":2209,"stem":2210},"Налаштування Store з configureStore","\u002Fjavascript\u002Freact\u002Fredux\u002Fredux-toolkit\u002Fconfigure-store","03.javascript\u002F04.react\u002F06.redux\u002F04.redux-toolkit\u002F01.configure-store",{"title":2212,"path":2213,"stem":2214},"createSlice: Революція в Redux","\u002Fjavascript\u002Freact\u002Fredux\u002Fredux-toolkit\u002Fcreate-slice","03.javascript\u002F04.react\u002F06.redux\u002F04.redux-toolkit\u002F02.create-slice",{"title":2216,"path":2217,"stem":2218},"Асинхронність з createAsyncThunk","\u002Fjavascript\u002Freact\u002Fredux\u002Fredux-toolkit\u002Fasync-thunks","03.javascript\u002F04.react\u002F06.redux\u002F04.redux-toolkit\u002F03.async-thunks",{"title":2220,"path":2221,"stem":2222},"04. Entity Adapter: Керування нормалізованим станом","\u002Fjavascript\u002Freact\u002Fredux\u002Fredux-toolkit\u002Fentity-adapter","03.javascript\u002F04.react\u002F06.redux\u002F04.redux-toolkit\u002F04.entity-adapter",{"title":2224,"icon":92,"path":2225,"stem":2226,"children":2227,"page":59},"Advanced","\u002Fjavascript\u002Freact\u002Fredux\u002Fadvanced","03.javascript\u002F04.react\u002F06.redux\u002F05.advanced",[2228,2232,2236],{"title":2229,"path":2230,"stem":2231},"Мемоізація та Селектори: Повний Гайд по Reselect","\u002Fjavascript\u002Freact\u002Fredux\u002Fadvanced\u002Fselectors-reselect","03.javascript\u002F04.react\u002F06.redux\u002F05.advanced\u002F01.selectors-reselect",{"title":2233,"path":2234,"stem":2235},"RTK Query: Архітектура Серверного Кешу","\u002Fjavascript\u002Freact\u002Fredux\u002Fadvanced\u002Frtk-query-intro","03.javascript\u002F04.react\u002F06.redux\u002F05.advanced\u002F02.rtk-query-intro",{"title":2083,"path":2237,"stem":2238},"\u002Fjavascript\u002Freact\u002Fredux\u002Fadvanced\u002Farchitecture-best-practices","03.javascript\u002F04.react\u002F06.redux\u002F05.advanced\u002F03.architecture-best-practices",{"title":2240,"icon":132,"path":2241,"stem":2242,"children":2243,"page":59},"Project Kanban","\u002Fjavascript\u002Freact\u002Fredux\u002Fproject-kanban","03.javascript\u002F04.react\u002F06.redux\u002F06.project-kanban",[2244,2248,2252,2256,2260,2264],{"title":2245,"path":2246,"stem":2247},"Проєкт: Kanban Board (Trello Clone)","\u002Fjavascript\u002Freact\u002Fredux\u002Fproject-kanban\u002Fproject-overview","03.javascript\u002F04.react\u002F06.redux\u002F06.project-kanban\u002F01.project-overview",{"title":2249,"path":2250,"stem":2251},"Налаштування та Типізація","\u002Fjavascript\u002Freact\u002Fredux\u002Fproject-kanban\u002Fsetup-and-types","03.javascript\u002F04.react\u002F06.redux\u002F06.project-kanban\u002F02.setup-and-types",{"title":2253,"path":2254,"stem":2255},"Board Slice: Серце Дошки","\u002Fjavascript\u002Freact\u002Fredux\u002Fproject-kanban\u002Fboard-slice","03.javascript\u002F04.react\u002F06.redux\u002F06.project-kanban\u002F03.board-slice",{"title":2257,"path":2258,"stem":2259},"Логіка Drag & Drop","\u002Fjavascript\u002Freact\u002Fredux\u002Fproject-kanban\u002Fdrag-and-drop-logic","03.javascript\u002F04.react\u002F06.redux\u002F06.project-kanban\u002F04.drag-and-drop-logic",{"title":2261,"path":2262,"stem":2263},"Інтеграція з RTK Query","\u002Fjavascript\u002Freact\u002Fredux\u002Fproject-kanban\u002Frtk-query-integration","03.javascript\u002F04.react\u002F06.redux\u002F06.project-kanban\u002F05.rtk-query-integration",{"title":2265,"path":2266,"stem":2267},"Optimistic Updates","\u002Fjavascript\u002Freact\u002Fredux\u002Fproject-kanban\u002Foptimistic-updates","03.javascript\u002F04.react\u002F06.redux\u002F06.project-kanban\u002F06.optimistic-updates",{"title":2269,"icon":132,"path":2270,"stem":2271,"children":2272,"page":59},"Testing","\u002Fjavascript\u002Freact\u002Fredux\u002Ftesting","03.javascript\u002F04.react\u002F06.redux\u002F07.testing",[2273,2277,2281,2285,2289],{"title":2274,"path":2275,"stem":2276},"Тестування Redux","\u002Fjavascript\u002Freact\u002Fredux\u002Ftesting\u002Fintro-testing","03.javascript\u002F04.react\u002F06.redux\u002F07.testing\u002F01.intro-testing",{"title":2278,"path":2279,"stem":2280},"Тестування Reducers","\u002Fjavascript\u002Freact\u002Fredux\u002Ftesting\u002Ftesting-reducers","03.javascript\u002F04.react\u002F06.redux\u002F07.testing\u002F02.testing-reducers",{"title":2282,"path":2283,"stem":2284},"Тестування Селекторів","\u002Fjavascript\u002Freact\u002Fredux\u002Ftesting\u002Ftesting-selectors","03.javascript\u002F04.react\u002F06.redux\u002F07.testing\u002F03.testing-selectors",{"title":2286,"path":2287,"stem":2288},"Тестування Компонентів (Integration)","\u002Fjavascript\u002Freact\u002Fredux\u002Ftesting\u002Ftesting-components","03.javascript\u002F04.react\u002F06.redux\u002F07.testing\u002F04.testing-components",{"title":2290,"path":2291,"stem":2292},"Тестування Async Thunks","\u002Fjavascript\u002Freact\u002Fredux\u002Ftesting\u002Ftesting-thunks","03.javascript\u002F04.react\u002F06.redux\u002F07.testing\u002F05.testing-thunks",{"title":2294,"icon":132,"path":2295,"stem":2296,"children":2297},"Ui Libraries","\u002Fjavascript\u002Freact\u002Fui-libraries","03.javascript\u002F04.react\u002F07.ui-libraries\u002Findex",[2298,2300,2304,2308,2312,2316,2320],{"title":2299,"path":2295,"stem":2296},"UI Бібліотеки в React",{"title":2301,"path":2302,"stem":2303},"Вступ до UI Бібліотек: Навіщо Винаходити Велосипед Двічі?","\u002Fjavascript\u002Freact\u002Fui-libraries\u002Fintroduction-to-ui-libraries","03.javascript\u002F04.react\u002F07.ui-libraries\u002F01.introduction-to-ui-libraries",{"title":2305,"path":2306,"stem":2307},"Філософія shadcn\u002Fui: \"Not a Component Library\"","\u002Fjavascript\u002Freact\u002Fui-libraries\u002Fshadcn-philosophy","03.javascript\u002F04.react\u002F07.ui-libraries\u002F02.shadcn-philosophy",{"title":2309,"path":2310,"stem":2311},"Установка та Налаштування shadcn\u002Fui","\u002Fjavascript\u002Freact\u002Fui-libraries\u002Fshadcn-installation","03.javascript\u002F04.react\u002F07.ui-libraries\u002F03.shadcn-installation",{"title":2313,"path":2314,"stem":2315},"Базові Компоненти shadcn\u002Fui: Фундамент Інтерфейсу","\u002Fjavascript\u002Freact\u002Fui-libraries\u002Fshadcn-components-basics","03.javascript\u002F04.react\u002F07.ui-libraries\u002F04.shadcn-components-basics",{"title":2317,"path":2318,"stem":2319},"Компоненти Форм: Побудова Інтерактивних Form","\u002Fjavascript\u002Freact\u002Fui-libraries\u002Fshadcn-components-forms","03.javascript\u002F04.react\u002F07.ui-libraries\u002F05.shadcn-components-forms",{"title":2321,"path":2322,"stem":2323},"Складні Компоненти: Dialog, Dropdown, Table та Command","\u002Fjavascript\u002Freact\u002Fui-libraries\u002Fshadcn-components-advanced","03.javascript\u002F04.react\u002F07.ui-libraries\u002F06.shadcn-components-advanced",{"title":2325,"icon":2326,"path":2327,"stem":2328,"children":2329,"page":59},"TypeScript","i-devicon-typescript","\u002Fjavascript\u002Ftypescript","03.javascript\u002F05.typescript",[2330,2334,2338,2342,2346,2350,2354,2358],{"title":2331,"path":2332,"stem":2333},"TypeScript: Броня для вашого коду","\u002Fjavascript\u002Ftypescript\u002Fintro-and-basic-types","03.javascript\u002F05.typescript\u002F01.intro-and-basic-types",{"title":2335,"path":2336,"stem":2337},"Майстерність Моделювання Даних: Інтерфейси та Просунуті Типи","\u002Fjavascript\u002Ftypescript\u002Finterfaces-and-advanced-types","03.javascript\u002F05.typescript\u002F02.interfaces-and-advanced-types",{"title":2339,"path":2340,"stem":2341},"Алхімія Типів: Generics та Utility Types","\u002Fjavascript\u002Ftypescript\u002Fgenerics-and-utilities","03.javascript\u002F05.typescript\u002F03.generics-and-utilities",{"title":2343,"path":2344,"stem":2345},"Архітектура та Шаблони: Класи в TypeScript","\u002Fjavascript\u002Ftypescript\u002Fclasses-and-oop","03.javascript\u002F05.typescript\u002F04.classes-and-oop",{"title":2347,"path":2348,"stem":2349},"Продакшн та Екосистема: Advanced Config & Workflow","\u002Fjavascript\u002Ftypescript\u002Fadvanced-patterns-and-config","03.javascript\u002F05.typescript\u002F05.advanced-patterns-and-config",{"title":2351,"path":2352,"stem":2353},"TypeScript у світі React","\u002Fjavascript\u002Ftypescript\u002Freact-basics","03.javascript\u002F05.typescript\u002F06.react-basics",{"title":2355,"path":2356,"stem":2357},"React + TypeScript: Продвинуті патерни","\u002Fjavascript\u002Ftypescript\u002Freact-advanced","03.javascript\u002F05.typescript\u002F07.react-advanced",{"title":2359,"path":2360,"stem":2361},"React + TypeScript: Екосистема та бібліотеки","\u002Fjavascript\u002Ftypescript\u002Freact-ecosystem","03.javascript\u002F05.typescript\u002F08.react-ecosystem",{"title":2363,"path":2364,"stem":2365},"Atomic Design","\u002Fjavascript\u002Fatomic-design","03.javascript\u002F2.atomic-design",{"title":2367,"icon":2368,"path":2369,"stem":2370,"children":2371,"page":59},"Java","i-devicon-java","\u002Fjava","04.java",[2372,2375,2378,2382,2386,2390,2394],{"title":162,"path":2373,"stem":2374},"\u002Fjava\u002Fdata-mapper-part1","04.java\u002F01.data-mapper-part1",{"title":166,"path":2376,"stem":2377},"\u002Fjava\u002Fdata-mapper-part2","04.java\u002F02.data-mapper-part2",{"title":2379,"path":2380,"stem":2381},"Service Layer: Організація бізнес-логіки","\u002Fjava\u002Fservice-layer","04.java\u002F03.service-layer",{"title":2383,"path":2384,"stem":2385},"Rich Domain Model та State Pattern","\u002Fjava\u002Frich-domain-model","04.java\u002F04.rich-domain-model",{"title":2387,"path":2388,"stem":2389},"Патерни для складної бізнес-логіки","\u002Fjava\u002Fbusiness-logic-patterns","04.java\u002F05.business-logic-patterns",{"title":2391,"path":2392,"stem":2393},"Обробка помилок та валідація","\u002Fjava\u002Ferror-handling-validation","04.java\u002F06.error-handling-validation",{"title":2395,"path":2396,"stem":2397,"children":2398,"page":59},"Проектування баз даних","\u002Fjava\u002Fpr2","04.java\u002Fpr2",[2399,2403,2407,2411,2415,2419,2423,2427,2431,2435,2439,2443,2447,2451,2455,2459,2463,2467,2471,2475,2479,2483,2487,2491,2495,2499,2503,2507,2511,2515,2519,2523,2527,2531,2535,2539,2543],{"title":2400,"path":2401,"stem":2402},"Концептуальне моделювання: Мистецтво розуміння предметної області","\u002Fjava\u002Fpr2\u002Fconceptual-modeling","04.java\u002Fpr2\u002F01.conceptual-modeling",{"title":2404,"path":2405,"stem":2406},"Логічне моделювання: Від бізнес-ідей до структур даних","\u002Fjava\u002Fpr2\u002Flogical-modeling","04.java\u002Fpr2\u002F02.logical-modeling",{"title":2408,"path":2409,"stem":2410},"Нормалізація: Гігієна даних та боротьба з аномаліями","\u002Fjava\u002Fpr2\u002Fnormalization","04.java\u002Fpr2\u002F03.normalization",{"title":2412,"path":2413,"stem":2414},"Фізична схема: Від абстракції до DDL","\u002Fjava\u002Fpr2\u002Fphysical-schema","04.java\u002Fpr2\u002F04.physical-schema",{"title":2416,"path":2417,"stem":2418},"Архітектурна класифікація таблиць","\u002Fjava\u002Fpr2\u002Ftable-classification","04.java\u002Fpr2\u002F05.table-classification",{"title":2420,"path":2421,"stem":2422},"Database Migrations: Версіонування схеми з Flyway","\u002Fjava\u002Fpr2\u002Fdatabase-migrations","04.java\u002Fpr2\u002F06.database-migrations",{"title":2424,"path":2425,"stem":2426},"А що, якби це була не реляційна БД?","\u002Fjava\u002Fpr2\u002Fbeyond-relational","04.java\u002Fpr2\u002F07.beyond-relational",{"title":2428,"path":2429,"stem":2430},"Object-Relational Impedance Mismatch: Два світи, що не хочуть дружити","\u002Fjava\u002Fpr2\u002Fimpedance-mismatch","04.java\u002Fpr2\u002F09.impedance-mismatch",{"title":2432,"path":2433,"stem":2434},"JDBC: Перший контакт із базою даних","\u002Fjava\u002Fpr2\u002Fjdbc-fundamentals","04.java\u002Fpr2\u002F10.jdbc-fundamentals",{"title":2436,"path":2437,"stem":2438},"Якість коду: Spotless, SpotBugs та SonarQube","\u002Fjava\u002Fpr2\u002F10a.code-quality","04.java\u002Fpr2\u002F10a.code-quality",{"title":2440,"path":2441,"stem":2442},"Connection Pool: Патерн Object Pool для JDBC-з'єднань","\u002Fjava\u002Fpr2\u002Fconnection-pool","04.java\u002Fpr2\u002F11.connection-pool",{"title":2444,"path":2445,"stem":2446},"Row Data Gateway: Об'єкт як обгортка рядка таблиці","\u002Fjava\u002Fpr2\u002Frow-data-gateway","04.java\u002Fpr2\u002F12.row-data-gateway",{"title":2448,"path":2449,"stem":2450},"Table Data Gateway: Фасад таблиці як архітектурний відступ","\u002Fjava\u002Fpr2\u002Ftable-data-gateway","04.java\u002Fpr2\u002F13.table-data-gateway",{"title":2452,"path":2453,"stem":2454},"Repository + Data Mapper: Правильна шарова архітектура з JDBC","\u002Fjava\u002Fpr2\u002Frepository-data-mapper","04.java\u002Fpr2\u002F14.repository-data-mapper",{"title":2456,"path":2457,"stem":2458},"Identity Map: Кешування сутностей у рамках сесії","\u002Fjava\u002Fpr2\u002Fidentity-map","04.java\u002Fpr2\u002F15.identity-map",{"title":2460,"path":2461,"stem":2462},"Unit of Work: Відстеження змін і координація JDBC-транзакцій","\u002Fjava\u002Fpr2\u002Funit-of-work","04.java\u002Fpr2\u002F16.unit-of-work",{"title":2464,"path":2465,"stem":2466},"Strategy: Замінювані SQL-стратегії для підтримки різних СУБД","\u002Fjava\u002Fpr2\u002Fstrategy-sql","04.java\u002Fpr2\u002F17.strategy-sql",{"title":2468,"path":2469,"stem":2470},"Proxy: Lazy Loading для One-To-Many колекцій","\u002Fjava\u002Fpr2\u002Fproxy-lazy-loading","04.java\u002Fpr2\u002F18.proxy-lazy-loading",{"title":2472,"path":2473,"stem":2474},"Generic Repository через Java Reflection: анотації та динамічний SQL","\u002Fjava\u002Fpr2\u002Fgeneric-repository-reflection","04.java\u002Fpr2\u002F19.generic-repository-reflection",{"title":2476,"path":2477,"stem":2478},"Specification Pattern: Композиція бізнес-правил для складних запитів","\u002Fjava\u002Fpr2\u002Fspecification-pattern","04.java\u002Fpr2\u002F20.specification-pattern",{"title":2480,"path":2481,"stem":2482},"Розширені можливості Specification Pattern: підзапити, агрегації та гібридний підхід","\u002Fjava\u002Fpr2\u002F20a.advanced-specifications","04.java\u002Fpr2\u002F20a.advanced-specifications",{"title":2484,"path":2485,"stem":2486},"Асинхронність у JDBC: Від блокуючих викликів до CompletableFuture","\u002Fjava\u002Fpr2\u002Fasynchronous-jdbc","04.java\u002Fpr2\u002F21.asynchronous-jdbc",{"title":2488,"path":2489,"stem":2490},"Інтеграційне тестування JDBC-репозиторіїв: Embedded H2 та патерн AAA","\u002Fjava\u002Fpr2\u002Fintegration-testing-h2","04.java\u002Fpr2\u002F22.integration-testing-h2",{"title":2492,"path":2493,"stem":2494},"Testcontainers: Тестування з реальною PostgreSQL у Docker-контейнерах","\u002Fjava\u002Fpr2\u002Fintegration-testing-testcontainers","04.java\u002Fpr2\u002F23.integration-testing-testcontainers",{"title":2496,"path":2497,"stem":2498},"Google Guice: Впровадження залежностей у JavaFX-проєкті","\u002Fjava\u002Fpr2\u002Fdependency-injection-guice","04.java\u002Fpr2\u002F24.dependency-injection-guice",{"title":2500,"path":2501,"stem":2502},"JavaFX: Основи побудови графічних інтерфейсів","\u002Fjava\u002Fpr2\u002Fjavafx-fundamentals","04.java\u002Fpr2\u002F25.javafx-fundamentals",{"title":2504,"path":2505,"stem":2506},"Properties та Bindings: Реактивність у JavaFX","\u002Fjava\u002Fpr2\u002Fjavafx-properties-bindings","04.java\u002Fpr2\u002F26.javafx-properties-bindings",{"title":2508,"path":2509,"stem":2510},"MVC vs MVP vs MVVM: Еволюція архітектурних патернів UI","\u002Fjava\u002Fpr2\u002Fui-architecture-patterns","04.java\u002Fpr2\u002F27.ui-architecture-patterns",{"title":2512,"path":2513,"stem":2514},"MVVM на практиці: Побудова ViewModel","\u002Fjava\u002Fpr2\u002Fmvvm-viewmodel-implementation","04.java\u002Fpr2\u002F28.mvvm-viewmodel-implementation",{"title":2516,"path":2517,"stem":2518},"View та Controller: Зв'язування з ViewModel через FXML","\u002Fjava\u002Fpr2\u002Fmvvm-view-controller","04.java\u002Fpr2\u002F29.mvvm-view-controller",{"title":2520,"path":2521,"stem":2522},"Інтеграція MVVM з Guice: Автоматична ін'єкція залежностей","\u002Fjava\u002Fpr2\u002Fmvvm-guice-integration","04.java\u002Fpr2\u002F30.mvvm-guice-integration",{"title":2524,"path":2525,"stem":2526},"Валідація та обробка помилок у MVVM","\u002Fjava\u002Fpr2\u002Fmvvm-validation-error-handling","04.java\u002Fpr2\u002F31.mvvm-validation-error-handling",{"title":2528,"path":2529,"stem":2530},"Навігація та управління екранами у JavaFX MVVM","\u002Fjava\u002Fpr2\u002Fmvvm-navigation-screen-management","04.java\u002Fpr2\u002F32.mvvm-navigation-screen-management",{"title":2532,"path":2533,"stem":2534},"Тестування JavaFX MVVM-додатків","\u002Fjava\u002Fpr2\u002Fmvvm-testing","04.java\u002Fpr2\u002F33.mvvm-testing",{"title":2536,"path":2537,"stem":2538},"Стилізація та теми у JavaFX: CSS та User Experience","\u002Fjava\u002Fpr2\u002Fjavafx-styling-themes","04.java\u002Fpr2\u002F34.javafx-styling-themes",{"title":2540,"path":2541,"stem":2542},"AtlantaFX: Сучасні теми для JavaFX додатків","\u002Fjava\u002Fpr2\u002Fatlantafx-modern-themes","04.java\u002Fpr2\u002F35.atlantafx-modern-themes",{"title":2544,"path":2545,"stem":2546},"Пакування та розповсюдження JavaFX-додатків","\u002Fjava\u002Fpr2\u002Fjar-packaging-distribution","04.java\u002Fpr2\u002F36.jar-packaging-distribution",{"title":2548,"icon":2549,"path":2550,"stem":2551,"children":2552,"page":59},"Python","i-devicon-python","\u002Fpython","05.python",[2553,2557,2560,2564,2568,2572,2576,2580,2584,2588,2592,2596,2600,2604,2608,2669],{"title":2554,"path":2555,"stem":2556},"Модулі, Пакети та Віртуальні Середовища","\u002Fpython\u002Fmodules-packages-venv","05.python\u002F00.modules-packages-venv",{"title":71,"path":2558,"stem":2559},"\u002Fpython\u002Fclasses-objects","05.python\u002F01.classes-objects",{"title":2561,"path":2562,"stem":2563},"Інкапсуляція, Керування Доступом та Властивості","\u002Fpython\u002Fencapsulation","05.python\u002F02.encapsulation",{"title":2565,"path":2566,"stem":2567},"Наслідування, MRO та суперсила super()","\u002Fpython\u002Finheritance-mro","05.python\u002F03.inheritance-mro",{"title":2569,"path":2570,"stem":2571},"Абстракція — ABC проти Статичних Протоколів (PEP 544)","\u002Fpython\u002Fabstraction-protocols","05.python\u002F04.abstraction-protocols",{"title":2573,"path":2574,"stem":2575},"Магічні методи (Dunder) та Емуляція протоколів","\u002Fpython\u002Fdunder-methods","05.python\u002F05.dunder-methods",{"title":2577,"path":2578,"stem":2579},"Декоратори та Керування життєвим циклом методів","\u002Fpython\u002Fdecorators-static-class","05.python\u002F06.decorators-static-class",{"title":2581,"path":2582,"stem":2583},"Дескриптори — Магія доступу до атрибутів","\u002Fpython\u002Fdescriptors","05.python\u002F07.descriptors",{"title":2585,"path":2586,"stem":2587},"Метакласи — Динамічне створення класів під капотом CPython","\u002Fpython\u002Fmetaclasses","05.python\u002F08.metaclasses",{"title":2589,"path":2590,"stem":2591},"Dataclasses, NamedTuple та сучасні контейнери Python","\u002Fpython\u002Fmodern-containers","05.python\u002F09.modern-containers",{"title":2593,"path":2594,"stem":2595},"GIL та модель конкурентності CPython — фундамент перед потоками і процесами","\u002Fpython\u002Fgil-concurrency-intro","05.python\u002F11.gil-concurrency-intro",{"title":2597,"path":2598,"stem":2599},"Threading — конкурентність для I\u002FO-bound задач","\u002Fpython\u002Fthreading","05.python\u002F12.threading",{"title":2601,"path":2602,"stem":2603},"Multiprocessing — справжній паралелізм для CPU-bound задач","\u002Fpython\u002Fmultiprocessing","05.python\u002F13.multiprocessing",{"title":2605,"path":2606,"stem":2607},"asyncio — кооперативна конкурентність та event loop","\u002Fpython\u002Fasyncio","05.python\u002F14.asyncio",{"title":2609,"icon":92,"path":2610,"stem":2611,"children":2612,"page":59},"FastAPI","\u002Fpython\u002Ffastapi","05.python\u002Ffastapi",[2613,2617,2621,2625,2629,2633,2637,2641,2645,2649,2653,2657,2661,2665],{"title":2614,"path":2615,"stem":2616},"Глибокий Typing та Pydantic v2 — від анотацій до валідації","\u002Fpython\u002Ffastapi\u002Ftyping-pydantic","05.python\u002Ffastapi\u002F15.typing-pydantic",{"title":2618,"path":2619,"stem":2620},"WSGI, ASGI та Python Web-екосистема","\u002Fpython\u002Ffastapi\u002Fwsgi-asgi-ecosystem","05.python\u002Ffastapi\u002F16.wsgi-asgi-ecosystem",{"title":2622,"path":2623,"stem":2624},"FastAPI: Перший додаток, Uvicorn та OpenAPI","\u002Fpython\u002Ffastapi\u002Ffastapi-intro","05.python\u002Ffastapi\u002F17.fastapi-intro",{"title":2626,"path":2627,"stem":2628},"Маршрутизація, параметри запитів та APIRouter","\u002Fpython\u002Ffastapi\u002Ffastapi-routing-params","05.python\u002Ffastapi\u002F18.fastapi-routing-params",{"title":2630,"path":2631,"stem":2632},"Pydantic v2 у FastAPI — схеми, валідація та серіалізація","\u002Fpython\u002Ffastapi\u002Ffastapi-pydantic-schemas","05.python\u002Ffastapi\u002F19.fastapi-pydantic-schemas",{"title":2634,"path":2635,"stem":2636},"Dependency Injection — серце архітектури FastAPI","\u002Fpython\u002Ffastapi\u002Ffastapi-dependency-injection","05.python\u002Ffastapi\u002F20.fastapi-dependency-injection",{"title":2638,"path":2639,"stem":2640},"Обробка помилок, Middleware та CORS у FastAPI","\u002Fpython\u002Ffastapi\u002Ffastapi-errors-middleware","05.python\u002Ffastapi\u002F21.fastapi-errors-middleware",{"title":2642,"path":2643,"stem":2644},"SQLAlchemy 2.0 — ORM, Core та Async Engine","\u002Fpython\u002Ffastapi\u002Fsqlalchemy-orm","05.python\u002Ffastapi\u002F22.sqlalchemy-orm",{"title":2646,"path":2647,"stem":2648},"Alembic — міграції бази даних","\u002Fpython\u002Ffastapi\u002Falembic-migrations","05.python\u002Ffastapi\u002F23.alembic-migrations",{"title":2650,"path":2651,"stem":2652},"Repository Pattern та Clean Architecture у FastAPI","\u002Fpython\u002Ffastapi\u002Ffastapi-repository-clean-arch","05.python\u002Ffastapi\u002F24.fastapi-repository-clean-arch",{"title":2654,"path":2655,"stem":2656},"Автентифікація та авторизація — JWT, OAuth2, RBAC","\u002Fpython\u002Ffastapi\u002Ffastapi-auth-security","05.python\u002Ffastapi\u002F25.fastapi-auth-security",{"title":2658,"path":2659,"stem":2660},"Тестування FastAPI — pytest, httpx, fixtures","\u002Fpython\u002Ffastapi\u002Ffastapi-testing","05.python\u002Ffastapi\u002F26.fastapi-testing",{"title":2662,"path":2663,"stem":2664},"Async на повну — Background Tasks, WebSockets, SSE та Celery","\u002Fpython\u002Ffastapi\u002Ffastapi-async-advanced","05.python\u002Ffastapi\u002F27.fastapi-async-advanced",{"title":2666,"path":2667,"stem":2668},"Deployment — Docker, CI\u002FCD, Monitoring","\u002Fpython\u002Ffastapi\u002Ffastapi-deployment","05.python\u002Ffastapi\u002F28.fastapi-deployment",{"title":2670,"path":2671,"stem":2672},"[object Object]","\u002Fpython\u002Foop-plan","05.python\u002Foop-plan",{"title":2674,"icon":2675,"path":2676,"stem":2677,"children":2678,"page":59},"Бази даних","i-lucide-database","\u002Fdatabases","06.databases",[2679,2709,2732,2769,2798,2816,2850,2862,2871],{"title":2680,"icon":2681,"path":2682,"stem":2683,"children":2684,"page":59},"Intro","i-lucide-play","\u002Fdatabases\u002Fintro","06.databases\u002F01.intro",[2685,2689,2693,2697,2701,2705],{"title":2686,"path":2687,"stem":2688},"Введення в теорію баз даних","\u002Fdatabases\u002Fintro\u002Fintroduction-to-databases","06.databases\u002F01.intro\u002F01.introduction-to-databases",{"title":2690,"path":2691,"stem":2692},"Реляційна модель даних","\u002Fdatabases\u002Fintro\u002Frelational-model-theory","06.databases\u002F01.intro\u002F02.relational-model-theory",{"title":2694,"path":2695,"stem":2696},"ER-моделювання","\u002Fdatabases\u002Fintro\u002Fer-modeling","06.databases\u002F01.intro\u002F03.er-modeling",{"title":2698,"path":2699,"stem":2700},"Логічне проектування БД","\u002Fdatabases\u002Fintro\u002Flogical-schema","06.databases\u002F01.intro\u002F04.logical-schema",{"title":2702,"path":2703,"stem":2704},"Класифікація таблиць","\u002Fdatabases\u002Fintro\u002Ftable-classification","06.databases\u002F01.intro\u002F05.table-classification",{"title":2706,"path":2707,"stem":2708},"PlantUML для баз даних","\u002Fdatabases\u002Fintro\u002Fplantuml-diagrams","06.databases\u002F01.intro\u002F06.plantuml-diagrams",{"title":2710,"icon":2675,"path":2711,"stem":2712,"children":2713,"page":59},"MS SQL Server Start","\u002Fdatabases\u002Fms-sql-server-start","06.databases\u002F02.ms-sql-server-start",[2714,2718,2724,2728],{"title":2715,"path":2716,"stem":2717},"Типи даних у MS SQL Server","\u002Fdatabases\u002Fms-sql-server-start\u002Fdata-types","06.databases\u002F02.ms-sql-server-start\u002F01.data-types",{"title":2719,"path":2720,"stem":2721,"children":2722},"Індекси у MS SQL Server","\u002Fdatabases\u002Fms-sql-server-start\u002Fsql-indexes","06.databases\u002F02.ms-sql-server-start\u002F02.sql-indexes",[2723],{"title":2719,"path":2720,"stem":2721},{"title":2725,"path":2726,"stem":2727},"Системні бази даних MS SQL Server","\u002Fdatabases\u002Fms-sql-server-start\u002Fsystem-databases","06.databases\u002F02.ms-sql-server-start\u002F03.system-databases",{"title":2729,"path":2730,"stem":2731},"Огляд мови SQL та запитів","\u002Fdatabases\u002Fms-sql-server-start\u002Fsql-queries-overview","06.databases\u002F02.ms-sql-server-start\u002F04.sql-queries-overview",{"title":2733,"icon":2675,"path":2734,"stem":2735,"children":2736,"page":59},"SQL","\u002Fdatabases\u002Fsql","06.databases\u002F03.sql",[2737,2741,2745,2749,2753,2757,2761,2765],{"title":2738,"path":2739,"stem":2740},"Налаштування демонстраційної бази даних","\u002Fdatabases\u002Fsql\u002Fsample-database-setup","06.databases\u002F03.sql\u002F00.sample-database-setup",{"title":2742,"path":2743,"stem":2744},"DDL - Створення таблиць (CREATE TABLE)","\u002Fdatabases\u002Fsql\u002Fddl-create-table","06.databases\u002F03.sql\u002F01.ddl-create-table",{"title":2746,"path":2747,"stem":2748},"DDL - Зміна та видалення таблиць (ALTER, DROP)","\u002Fdatabases\u002Fsql\u002Fddl-alter-drop-table","06.databases\u002F03.sql\u002F02.ddl-alter-drop-table",{"title":2750,"path":2751,"stem":2752},"SELECT запити - Основи","\u002Fdatabases\u002Fsql\u002Fselect-queries-fundamentals","06.databases\u002F03.sql\u002F03.select-queries-fundamentals",{"title":2754,"path":2755,"stem":2756},"SELECT запити - Розширені можливості","\u002Fdatabases\u002Fsql\u002Fselect-queries-advanced","06.databases\u002F03.sql\u002F04.select-queries-advanced",{"title":2758,"path":2759,"stem":2760},"INSERT запити - Додавання даних","\u002Fdatabases\u002Fsql\u002Finsert-queries","06.databases\u002F03.sql\u002F05.insert-queries",{"title":2762,"path":2763,"stem":2764},"UPDATE та DELETE запити","\u002Fdatabases\u002Fsql\u002Fupdate-delete-queries","06.databases\u002F03.sql\u002F06.update-delete-queries",{"title":2766,"path":2767,"stem":2768},"Транзакції в SQL","\u002Fdatabases\u002Fsql\u002Ftransactions","06.databases\u002F03.sql\u002F07.transactions",{"title":2770,"icon":2675,"path":2771,"stem":2772,"children":2773,"page":59},"Multi Table Databases","\u002Fdatabases\u002Fmulti-table-databases","06.databases\u002F04.multi-table-databases",[2774,2778,2782,2786,2790,2794],{"title":2775,"path":2776,"stem":2777},"Зв'язки та нормалізація БД","\u002Fdatabases\u002Fmulti-table-databases\u002Frelationships-and-normalization","06.databases\u002F04.multi-table-databases\u002F00.relationships-and-normalization",{"title":2779,"path":2780,"stem":2781},"INNER JOIN - З'єднання таблиць","\u002Fdatabases\u002Fmulti-table-databases\u002Finner-join","06.databases\u002F04.multi-table-databases\u002F01.inner-join",{"title":2783,"path":2784,"stem":2785},"OUTER JOINs - LEFT, RIGHT, FULL","\u002Fdatabases\u002Fmulti-table-databases\u002Fouter-joins","06.databases\u002F04.multi-table-databases\u002F02.outer-joins",{"title":2787,"path":2788,"stem":2789},"CROSS та SELF JOINs","\u002Fdatabases\u002Fmulti-table-databases\u002Fcross-self-joins","06.databases\u002F04.multi-table-databases\u002F03.cross-self-joins",{"title":2791,"path":2792,"stem":2793},"Підзапити (Subqueries)","\u002Fdatabases\u002Fmulti-table-databases\u002Fsubqueries","06.databases\u002F04.multi-table-databases\u002F04.subqueries",{"title":2795,"path":2796,"stem":2797},"Агрегації з JOIN","\u002Fdatabases\u002Fmulti-table-databases\u002Faggregations-with-joins","06.databases\u002F04.multi-table-databases\u002F05.aggregations-with-joins",{"title":2799,"icon":2800,"path":2801,"stem":2802,"children":2803,"page":59},"Aggregate Functions","i-lucide-calculator","\u002Fdatabases\u002Faggregate-functions","06.databases\u002F05.aggregate-functions",[2804,2808,2812],{"title":2805,"path":2806,"stem":2807},"Функції агрегування в MS SQL Server","\u002Fdatabases\u002Faggregate-functions\u002Fintroduction-aggregate-functions","06.databases\u002F05.aggregate-functions\u002F01.introduction-aggregate-functions",{"title":2809,"path":2810,"stem":2811},"Групування даних в MS SQL Server","\u002Fdatabases\u002Faggregate-functions\u002Fgrouping-data","06.databases\u002F05.aggregate-functions\u002F02.grouping-data",{"title":2813,"path":2814,"stem":2815},"Підзапити з агрегатними функціями","\u002Fdatabases\u002Faggregate-functions\u002Fsubqueries-aggregates","06.databases\u002F05.aggregate-functions\u002F03.subqueries-aggregates",{"title":2817,"icon":2818,"path":2819,"stem":2820,"children":2821,"page":59},"Тригери та зберігаємі процедури","i-lucide-database-zap","\u002Fdatabases\u002Ftriggers-stored-procedures","06.databases\u002F07.triggers-stored-procedures",[2822,2826,2830,2834,2838,2842,2846],{"title":2823,"path":2824,"stem":2825},"DML-тригери","\u002Fdatabases\u002Ftriggers-stored-procedures\u002Fdml-triggers","06.databases\u002F07.triggers-stored-procedures\u002F01.dml-triggers",{"title":2827,"path":2828,"stem":2829},"DDL-тригери","\u002Fdatabases\u002Ftriggers-stored-procedures\u002Fddl-triggers","06.databases\u002F07.triggers-stored-procedures\u002F02.ddl-triggers",{"title":2831,"path":2832,"stem":2833},"Transact-SQL розширення","\u002Fdatabases\u002Ftriggers-stored-procedures\u002Ftransact-sql-extensions","06.databases\u002F07.triggers-stored-procedures\u002F03.transact-sql-extensions",{"title":2835,"path":2836,"stem":2837},"Транзакції","\u002Fdatabases\u002Ftriggers-stored-procedures\u002Ftransactions","06.databases\u002F07.triggers-stored-procedures\u002F04.transactions",{"title":2839,"path":2840,"stem":2841},"Зберігаємі процедури","\u002Fdatabases\u002Ftriggers-stored-procedures\u002Fstored-procedures","06.databases\u002F07.triggers-stored-procedures\u002F05.stored-procedures",{"title":2843,"path":2844,"stem":2845},"Користувацькі функції","\u002Fdatabases\u002Ftriggers-stored-procedures\u002Fuser-defined-functions","06.databases\u002F07.triggers-stored-procedures\u002F06.user-defined-functions",{"title":2847,"path":2848,"stem":2849},"Безпека баз даних","\u002Fdatabases\u002Ftriggers-stored-procedures\u002Fsecurity","06.databases\u002F07.triggers-stored-procedures\u002F08.security",{"title":2847,"icon":793,"path":2851,"stem":2852,"children":2853,"page":59},"\u002Fdatabases\u002Fsecurity","06.databases\u002F08.security",[2854,2858],{"title":2855,"path":2856,"stem":2857},"Вступ до безпеки баз даних","\u002Fdatabases\u002Fsecurity\u002Fintroduction","06.databases\u002F08.security\u002F01.introduction",{"title":2859,"path":2860,"stem":2861},"Системні представлення та метадані","\u002Fdatabases\u002Fsecurity\u002Fsystem-views","06.databases\u002F08.security\u002F02.system-views",{"title":2863,"icon":2864,"path":2865,"stem":2866,"children":2867,"page":59},"Резервне копіювання та відновлення","i-lucide-database-backup","\u002Fdatabases\u002Fbackup-recovery","06.databases\u002F09.backup-recovery",[2868],{"title":2863,"path":2869,"stem":2870},"\u002Fdatabases\u002Fbackup-recovery\u002Fbackup-restore","06.databases\u002F09.backup-recovery\u002F01.backup-restore",{"title":2872,"icon":2873,"path":2874,"stem":2875,"children":2876,"page":59},"Повнотекстовий пошук","i-lucide-search","\u002Fdatabases\u002Ffull-text-search","06.databases\u002F10.full-text-search",[2877],{"title":2872,"path":2878,"stem":2879},"\u002Fdatabases\u002Ffull-text-search\u002Ffull-text-search","06.databases\u002F10.full-text-search\u002F01.full-text-search",{"title":2881,"icon":2882,"path":2883,"stem":2884,"children":2885,"page":59},"Tools","i-lucide-wrench","\u002Ftools","07.tools",[2886,2962],{"title":2887,"icon":2888,"path":2889,"stem":2890,"children":2891},"Docker","i-simple-icons-docker","\u002Ftools\u002Fdocker","07.tools\u002F01.docker\u002Findex",[2892,2894,2898,2902,2906,2910,2914,2918,2922,2926,2930,2934,2938,2942,2946,2950,2954,2958],{"title":2893,"path":2889,"stem":2890},"Docker: від нуля до production",{"title":2895,"path":2896,"stem":2897},"Контейнеризація — від проблеми до рішення","\u002Ftools\u002Fdocker\u002Fcontainerization-concept","07.tools\u002F01.docker\u002F01.containerization-concept",{"title":2899,"path":2900,"stem":2901},"Docker — що це і навіщо?","\u002Ftools\u002Fdocker\u002Fdocker-what-and-why","07.tools\u002F01.docker\u002F02.docker-what-and-why",{"title":2903,"path":2904,"stem":2905},"Архітектура Docker Engine","\u002Ftools\u002Fdocker\u002Fdocker-architecture","07.tools\u002F01.docker\u002F03.docker-architecture",{"title":2907,"path":2908,"stem":2909},"Встановлення Docker","\u002Ftools\u002Fdocker\u002Finstallation","07.tools\u002F01.docker\u002F04.installation",{"title":2911,"path":2912,"stem":2913},"Перший контейнер — docker run","\u002Ftools\u002Fdocker\u002Ffirst-container","07.tools\u002F01.docker\u002F05.first-container",{"title":2915,"path":2916,"stem":2917},"Життєвий цикл контейнера","\u002Ftools\u002Fdocker\u002Fcontainer-lifecycle","07.tools\u002F01.docker\u002F06.container-lifecycle",{"title":2919,"path":2920,"stem":2921},"Docker Images — фундаментальні концепції","\u002Ftools\u002Fdocker\u002Fdocker-images-fundamentals","07.tools\u002F01.docker\u002F07.docker-images-fundamentals",{"title":2923,"path":2924,"stem":2925},"Dockerfile — основи","\u002Ftools\u002Fdocker\u002Fdockerfile-basics","07.tools\u002F01.docker\u002F08.dockerfile-basics",{"title":2927,"path":2928,"stem":2929},"Dockerfile — просунуті техніки","\u002Ftools\u002Fdocker\u002Fdockerfile-advanced","07.tools\u002F01.docker\u002F09.dockerfile-advanced",{"title":2931,"path":2932,"stem":2933},"Build Context та кешування шарів","\u002Ftools\u002Fdocker\u002Fbuild-context-and-cache","07.tools\u002F01.docker\u002F10.build-context-and-cache",{"title":2935,"path":2936,"stem":2937},"Реєстри Docker-образів","\u002Ftools\u002Fdocker\u002Fimage-registries","07.tools\u002F01.docker\u002F11.image-registries",{"title":2939,"path":2940,"stem":2941},"Контейнеризація .NET додатків","\u002Ftools\u002Fdocker\u002Fdotnet-containerization","07.tools\u002F01.docker\u002F12.dotnet-containerization",{"title":2943,"path":2944,"stem":2945},"Томи та збереження даних","\u002Ftools\u002Fdocker\u002Fvolumes-and-data","07.tools\u002F01.docker\u002F13.volumes-and-data",{"title":2947,"path":2948,"stem":2949},"Основи мережі в Docker","\u002Ftools\u002Fdocker\u002Fnetworking-basics","07.tools\u002F01.docker\u002F14.networking-basics",{"title":2951,"path":2952,"stem":2953},"Змінні оточення та конфігурація","\u002Ftools\u002Fdocker\u002Fenvironment-and-configuration","07.tools\u002F01.docker\u002F15.environment-and-configuration",{"title":2955,"path":2956,"stem":2957},"Docker Compose — оркестрація контейнерів","\u002Ftools\u002Fdocker\u002Fdocker-compose-basics","07.tools\u002F01.docker\u002F16.docker-compose-basics",{"title":2959,"path":2960,"stem":2961},"Docker Compose — Multi-Service застосунки","\u002Ftools\u002Fdocker\u002Fcompose-multi-service","07.tools\u002F01.docker\u002F17.compose-multi-service",{"title":2963,"icon":2964,"path":2965,"stem":2966,"children":2967},"Kubernetes","simple-icons:kubernetes","\u002Ftools\u002Fkubernetes","07.tools\u002F02.kubernetes\u002Findex",[2968,2970,2974,2978,2982,2986,2990,2994,2998],{"title":2969,"path":2965,"stem":2966},"Kubernetes: від розробки до production",{"title":2971,"path":2972,"stem":2973},"Kubernetes — коли Docker Compose більше не вистачає","\u002Ftools\u002Fkubernetes\u002Fwhy-kubernetes","07.tools\u002F02.kubernetes\u002F01.why-kubernetes",{"title":2975,"path":2976,"stem":2977},"Архітектура Kubernetes — анатомія кластера","\u002Ftools\u002Fkubernetes\u002Fkubernetes-architecture","07.tools\u002F02.kubernetes\u002F02.kubernetes-architecture",{"title":2979,"path":2980,"stem":2981},"Локальне середовище — minikube, kind та k3s","\u002Ftools\u002Fkubernetes\u002Flocal-environment","07.tools\u002F02.kubernetes\u002F03.local-environment",{"title":2983,"path":2984,"stem":2985},"Pod — атомарна одиниця Kubernetes","\u002Ftools\u002Fkubernetes\u002Fpods-and-containers","07.tools\u002F02.kubernetes\u002F04.pods-and-containers",{"title":2987,"path":2988,"stem":2989},"Патерни використання Pod","\u002Ftools\u002Fkubernetes\u002Fpod-patterns","07.tools\u002F02.kubernetes\u002F05.pod-patterns",{"title":2991,"path":2992,"stem":2993},"Deployment — декларативне управління Pod","\u002Ftools\u002Fkubernetes\u002Fdeployment-basics","07.tools\u002F02.kubernetes\u002F06.deployment-basics",{"title":2995,"path":2996,"stem":2997},"Rolling Updates та управління життєвим циклом Deployment","\u002Ftools\u002Fkubernetes\u002Fdeployment-rolling-updates","07.tools\u002F02.kubernetes\u002F07.deployment-rolling-updates",{"title":2999,"path":3000,"stem":3001},"Service — мережева абстракція для Pod","\u002Ftools\u002Fkubernetes\u002Fservices-networking","07.tools\u002F02.kubernetes\u002F08.services-networking",{"title":3003,"icon":3004,"path":3005,"stem":3006,"children":3007,"page":59},"Software Engineering","i-lucide-code-2","\u002Fsoftware-engineering","09.software-engineering",[3008,3012,3016,3020,3024,3028,3032,3036,3040,3044,3048],{"title":3009,"path":3010,"stem":3011},"1. Аналіз предметної області. Експертні знання та складність","\u002Fsoftware-engineering\u002Fintro-subdomains","09.software-engineering\u002F01.intro-subdomains",{"title":3013,"path":3014,"stem":3015},"2. Обмежені контексти. Інтеграція обмежених контекстів","\u002Fsoftware-engineering\u002Fintegrating-limited-contexts","09.software-engineering\u002F02.integrating-limited-contexts",{"title":3017,"path":3018,"stem":3019},"3. Реалізація простої бізнес-логіки","\u002Fsoftware-engineering\u002Fsimple","09.software-engineering\u002F03.simple",{"title":3021,"path":3022,"stem":3023},"4. Опрацювання складної бізнес-логіки","\u002Fsoftware-engineering\u002Fcomplex-business-logic","09.software-engineering\u002F04.complex-business-logic",{"title":3025,"path":3026,"stem":3027},"5. Моделювання фактора часу. Подієво-орієнтована архітектура.","\u002Fsoftware-engineering\u002Fmodelling-the-time-factor","09.software-engineering\u002F05.modelling-the-time-factor",{"title":3029,"path":3030,"stem":3031},"6. Архітектурні патерни","\u002Fsoftware-engineering\u002Farchitectural-patterns","09.software-engineering\u002F06.architectural-patterns",{"title":3033,"path":3034,"stem":3035},"Паттерни взаємодії","\u002Fsoftware-engineering\u002Fpatterns-of-interaction","09.software-engineering\u002F07.patterns-of-interaction",{"title":3037,"path":3038,"stem":3039},"Евристика проєктування","\u002Fsoftware-engineering\u002Fdesign-heuristics","09.software-engineering\u002F08.design-heuristics",{"title":3041,"path":3042,"stem":3043},"Еволюція проєктних рішень","\u002Fsoftware-engineering\u002Fevolution-of-design-solutions","09.software-engineering\u002F09.evolution-of-design-solutions",{"title":3045,"path":3046,"stem":3047},"EventStorming","\u002Fsoftware-engineering\u002Feventstorming","09.software-engineering\u002F10.eventstorming",{"title":3049,"path":3050,"stem":3051},"DDD на практиці","\u002Fsoftware-engineering\u002Fddd-in-practice","09.software-engineering\u002F11.ddd-in-practice",{"title":3053,"icon":943,"path":3054,"stem":3055,"children":3056,"page":59},"DDD","\u002Fddd","10.ddd",[3057,3061,3065,3069,3073,3077,3081,3085,3089,3093,3097,3101,3105],{"title":3058,"path":3059,"stem":3060},"Аналіз предметної області","\u002Fddd\u002Fdomain-analysis","10.ddd\u002F01.domain-analysis",{"title":3062,"path":3063,"stem":3064},"Експертні знання про предметну область","\u002Fddd\u002Fdomain-expert-knowledge","10.ddd\u002F02.domain-expert-knowledge",{"title":3066,"path":3067,"stem":3068},"Як осмислити складність предметної області","\u002Fddd\u002Fmanaging-domain-complexity","10.ddd\u002F03.managing-domain-complexity",{"title":3070,"path":3071,"stem":3072},"Інтеграція обмежених контекстів","\u002Fddd\u002Fbounded-context-integration","10.ddd\u002F04.bounded-context-integration",{"title":3074,"path":3075,"stem":3076},"Реалізація простої бізнес-логіки","\u002Fddd\u002Fsimple-business-logic","10.ddd\u002F05.simple-business-logic",{"title":3078,"path":3079,"stem":3080},"Обробка складної бізнес-логіки","\u002Fddd\u002Fcomplex-business-logic","10.ddd\u002F06.complex-business-logic",{"title":3082,"path":3083,"stem":3084},"Моделювання фактора часу","\u002Fddd\u002Ftime-modeling","10.ddd\u002F07.time-modeling",{"title":3086,"path":3087,"stem":3088},"Глава 8. Архітектурні Патерни","\u002Fddd\u002Farchitectural-patterns","10.ddd\u002F08.architectural-patterns",{"title":3090,"path":3091,"stem":3092},"Глава 9. Патерни Взаємодії","\u002Fddd\u002Finteraction-patterns","10.ddd\u002F09.interaction-patterns",{"title":3094,"path":3095,"stem":3096},"Глава 10. Проектні Евристики","\u002Fddd\u002Fdesign-heuristics","10.ddd\u002F10.design-heuristics",{"title":3098,"path":3099,"stem":3100},"Глава 11. Еволюція Проектних Рішень","\u002Fddd\u002Fevolution-of-design-decisions","10.ddd\u002F11.evolution-of-design-decisions",{"title":3102,"path":3103,"stem":3104},"Глава 12. EventStorming","\u002Fddd\u002Fevent-storming","10.ddd\u002F12.event-storming",{"title":3106,"path":3107,"stem":3108},"Глава 13. DDD на Практиці","\u002Fddd\u002Fddd-in-practice","10.ddd\u002F13.ddd-in-practice",{"title":3110,"icon":3111,"path":3112,"stem":3113,"children":3114,"page":59},"Media Streaming","i-lucide-video","\u002Fmedia-streaming","11.media-streaming",[3115,3119,3123,3127,3131,3135,3139],{"title":3116,"path":3117,"stem":3118},"01. Магія Стрімінгу: Що відбувається, коли ви натискаєте \"Play\"","\u002Fmedia-streaming\u002Fintroduction","11.media-streaming\u002F01.introduction",{"title":3120,"path":3121,"stem":3122},"02. Анатомія Медіа: Кодеки, Контейнери та Стиснення","\u002Fmedia-streaming\u002Faudio-video-anatomy","11.media-streaming\u002F02.audio-video-anatomy",{"title":3124,"path":3125,"stem":3126},"03. The Gym: FFmpeg Deep Dive","\u002Fmedia-streaming\u002Fffmpeg-gym","11.media-streaming\u002F03.ffmpeg-gym",{"title":3128,"path":3129,"stem":3130},"04. HLS Protocol: HTTP Live Streaming у Деталях","\u002Fmedia-streaming\u002Fhls-protocol","11.media-streaming\u002F04.hls-protocol",{"title":3132,"path":3133,"stem":3134},"05. DASH Protocol: Відкритий Стандарт","\u002Fmedia-streaming\u002Fdash-protocol","11.media-streaming\u002F05.dash-protocol",{"title":3136,"path":3137,"stem":3138},"06. Масштабування: CDN та Adaptive Bitrate","\u002Fmedia-streaming\u002Fcdn-and-adaptive-bitrate","11.media-streaming\u002F06.cdn-and-adaptive-bitrate",{"title":3140,"path":3141,"stem":3142},"07. Війна із Затримкою (Latency)","\u002Fmedia-streaming\u002Frealtime-latency","11.media-streaming\u002F07.realtime-latency",{"title":3144,"icon":3145,"path":3146,"stem":3147,"children":3148,"page":59},"HTML & CSS","i-devicon-html5","\u002Fhtml-css","12.html-css",[3149,3153,3157,3161,3165,3169,3173,3177,3181,3185,3189,3193,3197,3201,3205,3209,3213,3217,3221,3225,3229,3233,3237,3241,3245,3249,3253,3257,3261,3265],{"title":3150,"path":3151,"stem":3152},"Вступ до HTML. Структура документа","\u002Fhtml-css\u002Fintro-html-structure","12.html-css\u002F01.intro-html-structure",{"title":3154,"path":3155,"stem":3156},"Форматування тексту в HTML","\u002Fhtml-css\u002Fhtml-text-formatting","12.html-css\u002F02.html-text-formatting",{"title":3158,"path":3159,"stem":3160},"Посилання та зображення в HTML","\u002Fhtml-css\u002Fhtml-links-images","12.html-css\u002F03.html-links-images",{"title":3162,"path":3163,"stem":3164},"Списки та таблиці в HTML","\u002Fhtml-css\u002Fhtml-lists-tables","12.html-css\u002F04.html-lists-tables",{"title":3166,"path":3167,"stem":3168},"Форми в HTML","\u002Fhtml-css\u002Fhtml-forms","12.html-css\u002F05.html-forms",{"title":3170,"path":3171,"stem":3172},"Семантичні елементи HTML5","\u002Fhtml-css\u002Fhtml-semantic-elements","12.html-css\u002F06.html-semantic-elements",{"title":3174,"path":3175,"stem":3176},"Мультимедіа та розширені елементи HTML","\u002Fhtml-css\u002Fhtml-multimedia-advanced","12.html-css\u002F07.html-multimedia-advanced",{"title":3178,"path":3179,"stem":3180},"Мікророзмітка та SEO в HTML","\u002Fhtml-css\u002Fhtml-microdata-seo","12.html-css\u002F08.html-microdata-seo",{"title":3182,"path":3183,"stem":3184},"Вступ до CSS. Селектори та специфічність","\u002Fhtml-css\u002Fcss-intro-selectors","12.html-css\u002F09.css-intro-selectors",{"title":3186,"path":3187,"stem":3188},"Блокова модель CSS. Відступи. Box Sizing","\u002Fhtml-css\u002Fcss-box-model","12.html-css\u002F10.css-box-model",{"title":3190,"path":3191,"stem":3192},"Розміри у CSS: повний довідник одиниць і ключових слів","\u002Fhtml-css\u002F10a.css-sizing","12.html-css\u002F10a.css-sizing",{"title":3194,"path":3195,"stem":3196},"Типографіка в CSS. Шрифти та текст","\u002Fhtml-css\u002Fcss-typography","12.html-css\u002F11.css-typography",{"title":3198,"path":3199,"stem":3200},"Кольори та фони в CSS","\u002Fhtml-css\u002Fcss-colors-backgrounds","12.html-css\u002F12.css-colors-backgrounds",{"title":3202,"path":3203,"stem":3204},"Тіні та фільтри в CSS","\u002Fhtml-css\u002F12b.css-shadows-filters","12.html-css\u002F12b.css-shadows-filters",{"title":3206,"path":3207,"stem":3208},"CSS Flexbox: Фундамент гнучких макетів","\u002Fhtml-css\u002Fcss-flexbox-fundamentals","12.html-css\u002F13.css-flexbox-fundamentals",{"title":3210,"path":3211,"stem":3212},"CSS Flexbox: Вирівнювання та Позиціонування","\u002Fhtml-css\u002Fcss-flexbox-alignment-sizing-and-patterns","12.html-css\u002F14.css-flexbox-alignment-sizing-and-patterns",{"title":3214,"path":3215,"stem":3216},"CSS Grid. Двовимірний макет. Частина 1","\u002Fhtml-css\u002Fcss-layout-grid","12.html-css\u002F15.css-layout-grid",{"title":3218,"path":3219,"stem":3220},"CSS Grid. Двовимірний макет. Частина 2","\u002Fhtml-css\u002Fcss-layout-grid-advanced","12.html-css\u002F16.css-layout-grid-advanced",{"title":3222,"path":3223,"stem":3224},"Позиціонування в CSS. Z-index. Stacking Context","\u002Fhtml-css\u002Fcss-positioning","12.html-css\u002F17.css-positioning",{"title":3226,"path":3227,"stem":3228},"CSS Анімації та Переходи","\u002Fhtml-css\u002Fcss-animations-transitions","12.html-css\u002F18.css-animations-transitions",{"title":3230,"path":3231,"stem":3232},"Адаптивний дизайн. Media Queries. Частина 1","\u002Fhtml-css\u002Fcss-responsive-media-queries","12.html-css\u002F19.css-responsive-media-queries",{"title":3234,"path":3235,"stem":3236},"Адаптивний дизайн. Частина 2: clamp(), Container Queries, @layer","\u002Fhtml-css\u002Fcss-responsive-advanced","12.html-css\u002F20.css-responsive-advanced",{"title":3238,"path":3239,"stem":3240},"CSS Custom Properties. Методології. Сучасний CSS","\u002Fhtml-css\u002Fcss-variables-methodologies","12.html-css\u002F21.css-variables-methodologies",{"title":3242,"path":3243,"stem":3244},"Сучасний CSS 2023–2025: Нові можливості","\u002Fhtml-css\u002Fcss-modern-features","12.html-css\u002F22.css-modern-features",{"title":3246,"path":3247,"stem":3248},"CSS Nesting, @layer, @scope та @property: нативний препроцесор","\u002Fhtml-css\u002F22a.css-nesting-modern-syntax","12.html-css\u002F22a.css-nesting-modern-syntax",{"title":3250,"path":3251,"stem":3252},"CSS для форм та інтерактивних станів","\u002Fhtml-css\u002Fcss-forms-interactive-states","12.html-css\u002F23.css-forms-interactive-states",{"title":3254,"path":3255,"stem":3256},"Доступність у CSS (CSS Accessibility)","\u002Fhtml-css\u002Fcss-accessibility","12.html-css\u002F24.css-accessibility",{"title":3258,"path":3259,"stem":3260},"CSS-функції та сучасні sizing primitives","\u002Fhtml-css\u002Fcss-functions-sizing","12.html-css\u002F25.css-functions-sizing",{"title":3262,"path":3263,"stem":3264},"Rendering Pipeline і CSS Performance","\u002Fhtml-css\u002Fcss-rendering-performance","12.html-css\u002F26.css-rendering-performance",{"title":3266,"path":3267,"stem":3268},"CSS Best Practices: типові ситуації та правильні рішення","\u002Fhtml-css\u002Fcss-best-practices","12.html-css\u002F27.css-best-practices",{"title":3270,"path":3271,"stem":3272,"children":3273,"page":59},"AWS","\u002Faws","13.aws",[3274,3278,3282,3286,3290,3294,3298,3302,3306,3310,3314,3318,3322,3326,3330,3334,3338,3342],{"title":3275,"path":3276,"stem":3277},"Реєстрація AWS акаунту та студентські програми","\u002Faws\u002Faccount-registration","13.aws\u002F00.account-registration",{"title":3279,"path":3280,"stem":3281},"Вступ до хмарних обчислень та AWS","\u002Faws\u002Fintroduction-to-cloud","13.aws\u002F01.introduction-to-cloud",{"title":3283,"path":3284,"stem":3285},"AWS IAM — Identity and Access Management","\u002Faws\u002Fiam","13.aws\u002F02.iam",{"title":3287,"path":3288,"stem":3289},"AWS IAM CLI — Довідник команд","\u002Faws\u002F02a.iam-doc","13.aws\u002F02a.iam-doc",{"title":3291,"path":3292,"stem":3293},"Docker та контейнеризація в AWS — ECR, ECS та Fargate","\u002Faws\u002Fdocker-ecs","13.aws\u002F03.docker-ecs",{"title":3295,"path":3296,"stem":3297},"AWS ECR \u002F ECS CLI — Довідник команд","\u002Faws\u002F03a.docker-ecs-doc","13.aws\u002F03a.docker-ecs-doc",{"title":3299,"path":3300,"stem":3301},"Amazon EC2 — Elastic Compute Cloud","\u002Faws\u002Fec2","13.aws\u002F04.ec2",{"title":3303,"path":3304,"stem":3305},"AWS EC2 CLI — Довідник команд","\u002Faws\u002F04a.ec2-doc","13.aws\u002F04a.ec2-doc",{"title":3307,"path":3308,"stem":3309},"Elastic Load Balancing та Auto Scaling","\u002Faws\u002Falb-asg","13.aws\u002F05.alb-asg",{"title":3311,"path":3312,"stem":3313},"Amazon S3 — Simple Storage Service","\u002Faws\u002Fs3","13.aws\u002F06.s3",{"title":3315,"path":3316,"stem":3317},"Amazon CloudFront — Content Delivery Network","\u002Faws\u002Fcloudfront","13.aws\u002F07.cloudfront",{"title":3319,"path":3320,"stem":3321},"Amazon RDS — Relational Database Service","\u002Faws\u002Frds","13.aws\u002F08.rds",{"title":3323,"path":3324,"stem":3325},"Amazon DynamoDB — NoSQL Database","\u002Faws\u002Fdynamodb","13.aws\u002F09.dynamodb",{"title":3327,"path":3328,"stem":3329},"AWS Lambda та Serverless Compute","\u002Faws\u002Flambda","13.aws\u002F10.lambda",{"title":3331,"path":3332,"stem":3333},"Amazon Bedrock - Foundation Models, RAG та Agents","\u002Faws\u002Fbedrock","13.aws\u002F22.bedrock",{"title":3335,"path":3336,"stem":3337},"Amazon Rekognition - Комп'ютерний зір","\u002Faws\u002Frekognition","13.aws\u002F23.rekognition",{"title":3339,"path":3340,"stem":3341},"Amazon Textract - Інтелектуальний аналіз документів","\u002Faws\u002Ftextract","13.aws\u002F24.textract",{"title":3343,"path":3344,"stem":3345},"Amazon Polly, Transcribe, Comprehend та Translate","\u002Faws\u002Faudio-nlp-services","13.aws\u002F25.audio-nlp-services",{"title":3347,"path":3348,"stem":3349,"children":3350,"page":59},"Ai Development","\u002Fai-development","14.ai-development",[3351],{"title":3352,"path":3353,"stem":3354,"children":3355,"page":59},"Foundations","\u002Fai-development\u002Ffoundations","14.ai-development\u002F00.foundations",[3356],{"title":3357,"path":3358,"stem":3359},"Модуль 0.1. Що таке Large Language Model (LLM)","\u002Fai-development\u002Ffoundations\u002Fwhat-is-llm","14.ai-development\u002F00.foundations\u002F01.what-is-llm",{"title":3361,"path":3362,"stem":3363,"children":3364},"React Native","\u002Freact-native","15.react-native",[3365,3367,3371,3375,3379,3383,3387,3391,3395,3399,3403,3407,3411,3415,3419],{"title":3361,"path":3362,"stem":3366},"15.react-native\u002Findex",{"title":3368,"path":3369,"stem":3370},"React Native — навіщо він потрібен","\u002Freact-native\u002Fwhy-react-native","15.react-native\u002F01.why-react-native",{"title":3372,"path":3373,"stem":3374},"Як влаштований React Native «під капотом»","\u002Freact-native\u002Freact-native-architecture","15.react-native\u002F02.react-native-architecture",{"title":3376,"path":3377,"stem":3378},"Expo і класичний React Native — два шляхи одного фреймворку","\u002Freact-native\u002Fexpo-vs-cli-landscape","15.react-native\u002F03.expo-vs-cli-landscape",{"title":3380,"path":3381,"stem":3382},"Середовище Expo — перший запуск","\u002Freact-native\u002Fexpo-setup-and-tooling","15.react-native\u002F04.expo-setup-and-tooling",{"title":3384,"path":3385,"stem":3386},"Структура проєкту та перші UI-примітиви","\u002Freact-native\u002Fproject-structure-and-conventions","15.react-native\u002F05.project-structure-and-conventions",{"title":3388,"path":3389,"stem":3390},"Базові компоненти React Native","\u002Freact-native\u002Fcore-components","15.react-native\u002F06.core-components",{"title":3392,"path":3393,"stem":3394},"Flexbox і layout у React Native","\u002Freact-native\u002Fflexbox-and-layout","15.react-native\u002F07.flexbox-and-layout",{"title":3396,"path":3397,"stem":3398},"StyleSheet і теми (light \u002F dark)","\u002Freact-native\u002Fstylesheet-and-theming","15.react-native\u002F08.stylesheet-and-theming",{"title":3400,"path":3401,"stem":3402},"Списки та віртуалізація","\u002Freact-native\u002Flists-and-virtualization","15.react-native\u002F09.lists-and-virtualization",{"title":3404,"path":3405,"stem":3406},"Форми, ввід і валідація","\u002Freact-native\u002Fforms-input-validation","15.react-native\u002F10.forms-input-validation",{"title":3408,"path":3409,"stem":3410},"Основи Expo Router","\u002Freact-native\u002Fexpo-router-basics","15.react-native\u002F11.expo-router-basics",{"title":3412,"path":3413,"stem":3414},"Вкладені навігатори та модалки","\u002Freact-native\u002Fnested-navigators-and-modals","15.react-native\u002F12.nested-navigators-and-modals",{"title":3416,"path":3417,"stem":3418},"Deep linking і параметри маршрутів","\u002Freact-native\u002Fdeep-linking-and-params","15.react-native\u002F13.deep-linking-and-params",{"title":3420,"path":3421,"stem":3422},"Робота з мережею та життєвий цикл застосунку","\u002Freact-native\u002Fnetworking-and-app-lifecycle","15.react-native\u002F14.networking-and-app-lifecycle",{"title":3424,"path":3425,"stem":3426,"children":3427,"page":59},"Ai Python","\u002Fai-python","16.ai-python",[3428,3432,3436],{"title":3429,"path":3430,"stem":3431},"Вступ до штучного інтелекту та машинного навчання","\u002Fai-python\u002Fintro-to-ai","16.ai-python\u002F01.intro-to-ai",{"title":3433,"path":3434,"stem":3435},"Знайомство з Jupyter Notebook та JupyterLab","\u002Fai-python\u002Fjupyter-notebook","16.ai-python\u002F02.jupyter-notebook",{"title":3437,"path":3438,"stem":3439},"Робота з даними з використанням NumPy і pandas","\u002Fai-python\u002Fnumpy-pandas","16.ai-python\u002F03.numpy-pandas",{"title":3441,"path":3442,"stem":3443,"children":3444,"page":59},"Tailwind","\u002Ftailwind","21.tailwind",[3445,3449,3453,3457,3461,3465,3469,3473,3477,3481,3485,3489],{"title":3446,"path":3447,"stem":3448},"Що таке Tailwind CSS і навіщо він потрібен","\u002Ftailwind\u002Ftailwind-intro-philosophy","21.tailwind\u002F01.tailwind-intro-philosophy",{"title":3450,"path":3451,"stem":3452},"Встановлення та налаштування Tailwind CSS v4","\u002Ftailwind\u002Ftailwind-installation-setup","21.tailwind\u002F02.tailwind-installation-setup",{"title":3454,"path":3455,"stem":3456},"Utility-класи: основи та система Tailwind","\u002Ftailwind\u002Ftailwind-utility-classes-core","21.tailwind\u002F03.tailwind-utility-classes-core",{"title":3458,"path":3459,"stem":3460},"Layout: Flexbox та Grid через Tailwind","\u002Ftailwind\u002Ftailwind-flexbox-grid","21.tailwind\u002F04.tailwind-flexbox-grid",{"title":3462,"path":3463,"stem":3464},"Кастомізація теми через @theme у Tailwind v4","\u002Ftailwind\u002Ftailwind-theme-customization","21.tailwind\u002F05.tailwind-theme-customization",{"title":3466,"path":3467,"stem":3468},"Варіанти: hover, focus, responsive, dark mode та нові v4","\u002Ftailwind\u002Ftailwind-variants-states","21.tailwind\u002F06.tailwind-variants-states",{"title":3470,"path":3471,"stem":3472},"Типографіка та система кольорів у Tailwind v4","\u002Ftailwind\u002Ftailwind-typography-colors","21.tailwind\u002F07.tailwind-typography-colors",{"title":3474,"path":3475,"stem":3476},"Компоненти та повторюваність: @apply, @utility та патерни","\u002Ftailwind\u002Ftailwind-components-patterns","21.tailwind\u002F08.tailwind-components-patterns",{"title":3478,"path":3479,"stem":3480},"Темна тема та система дизайн-токенів у Tailwind v4","\u002Ftailwind\u002Ftailwind-dark-mode-theming","21.tailwind\u002F09.tailwind-dark-mode-theming",{"title":3482,"path":3483,"stem":3484},"Довільні значення та контейнерні запити у Tailwind v4","\u002Ftailwind\u002Ftailwind-arbitrary-container-queries","21.tailwind\u002F10.tailwind-arbitrary-container-queries",{"title":3486,"path":3487,"stem":3488},"Анімації, трансформації та 3D у Tailwind v4","\u002Ftailwind\u002Ftailwind-animations-transforms","21.tailwind\u002F11.tailwind-animations-transforms",{"title":3490,"path":3491,"stem":3492},"Tailwind CLI, PostCSS та інтеграція з фреймворками","\u002Ftailwind\u002Ftailwind-cli-tooling","21.tailwind\u002F12.tailwind-cli-tooling",{"title":3494,"path":3495,"stem":3496},"Тестування компонентів діаграм","\u002Ftest-components","98.test-components",{"id":3498,"title":3400,"body":3499,"description":32366,"extension":19863,"links":32367,"meta":32368,"navigation":3972,"path":3401,"seo":32369,"stem":3402,"__hash__":32370},"docs\u002F15.react-native\u002F09.lists-and-virtualization.md",{"type":3500,"value":3501,"toc":32291},"minimark",[3502,3506,3511,3533,3556,3567,3570,3654,3673,3699,3702,3706,3813,3839,3841,3845,3850,3865,3874,3882,3926,3935,4100,4102,4106,4120,4127,4142,4186,4188,4194,4213,4216,4553,4557,4714,4720,5745,5761,5763,5769,5823,5833,5846,5864,5866,5870,5873,7329,7349,7351,7358,7368,7375,7394,7427,7431,8654,8661,8670,8672,8678,8688,8691,8710,8721,8738,8742,10133,10135,10139,10153,10156,10235,10242,10244,10250,10269,10276,10282,10285,10392,10560,10586,10590,11865,11867,11875,11886,11889,11960,12052,12074,12076,12082,12101,12105,12117,12121,12156,12159,12163,12294,12333,12337,12404,12435,12453,12455,12459,12580,12582,12586,12590,12597,12633,12637,12747,12751,12857,12861,12872,15427,15431,17926,17928,17932,17936,17943,17947,17957,17993,17998,18060,18067,18071,18089,18126,29070,29074,29092,29096,29102,29176,29186,29190,29205,32053,32055,32059,32063,32093,32097,32119,32123,32147,32149,32153,32244,32246,32250,32264,32288],[3503,3504,3400],"h1",{"id":3505},"списки-та-віртуалізація",[3507,3508,3510],"h2",{"id":3509},"навіщо-ця-стаття","Навіщо ця стаття",[3512,3513,3514,3515,3519,3520,3523,3524,3528,3529,3532],"p",{},"Уявіть стрічку поїздок: не три картки «для демо», а ",[3516,3517,3518],"strong",{},"сотні"," записів за роки — з обкладинками, датами, короткими описами. Користувач гортає пальцем униз у метро. Якщо застосунок одразу створює ",[3516,3521,3522],{},"усі"," картки в пам’яті (як ",[3525,3526,3527],"code",{},"array.map"," усередині ",[3525,3530,3531],{},"ScrollView","), телефон починає «заїкатися»: довге перше відкриття, ривки при скролі, нагрів, інколи навіть закриття застосунку системою.",[3512,3534,3535,3536,3538,3539,3542,3543,3546,3547,3552,3553,3555],{},"У статті про базові компоненти ми вже розвели ролі: ",[3525,3537,3531],{}," — для ",[3516,3540,3541],{},"невеликого"," прокручуваного контенту (форма, стаття, 3–5 карток). Офіційна документація React Native прямо радить: для ",[3516,3544,3545],{},"довгих однотипних списків"," брати ",[3516,3548,3549],{},[3525,3550,3551],{},"FlatList"," (або сильніший аналог), а не мапити все в ",[3525,3554,3531],{},".",[3512,3557,3558,3559,3562,3563,3566],{},"Ця стаття — про те, ",[3516,3560,3561],{},"як"," малювати довгі списки так, щоб телефон тримав лише «вікно» рядків біля екрана. Це і є ",[3516,3564,3565],{},"віртуалізація"," (virtualization).",[3512,3568,3569],{},"Після статті ви зможете:",[3571,3572,3573,3584,3600,3618,3629,3636,3647],"ol",{},[3574,3575,3576,3577,3579,3580,3583],"li",{},"Пояснити різницю між ",[3525,3578,3531],{}," + ",[3525,3581,3582],{},"map"," і віртуалізованим списком.",[3574,3585,3586,3587,3589,3590,3593,3594,3593,3597,3555],{},"Зібрати ",[3525,3588,3551],{}," з ",[3525,3591,3592],{},"data",", ",[3525,3595,3596],{},"renderItem",[3525,3598,3599],{},"keyExtractor",[3574,3601,3602,3603,3606,3607,3610,3611,3614,3615,3555],{},"Показати ",[3516,3604,3605],{},"порожній"," стан (",[3525,3608,3609],{},"ListEmptyComponent","), ",[3516,3612,3613],{},"шапку\u002Fпідвал"," списку, ",[3516,3616,3617],{},"pull-to-refresh",[3574,3619,3620,3621,3624,3625,3628],{},"Зрозуміти UI ",[3516,3622,3623],{},"пагінації"," (",[3525,3626,3627],{},"onEndReached",") — без справжнього API (мережа буде пізніше).",[3574,3630,3631,3632,3635],{},"Згрупувати дані в ",[3525,3633,3634],{},"SectionList"," (наприклад, книги за жанром).",[3574,3637,3638,3639,3644,3645,3555],{},"Знати, навіщо ",[3516,3640,3641],{},[3525,3642,3643],{},"FlashList"," і коли його ставити замість ",[3525,3646,3551],{},[3574,3648,3649,3650,3653],{},"У ",[3516,3651,3652],{},"Nomad"," — віртуалізована стрічка поїздок + горизонтальний список місць.",[3655,3656,3657,3660,3661,3664,3665,3668,3669,3672],"note",{},[3516,3658,3659],{},"Головна думка."," Довгий список на телефоні ",[3516,3662,3663],{},"не"," малює всі тисячі рядків одразу. Він тримає в дереві React лише ті, що (майже) видно на екрані, плюс невеликий запас зверху й знизу. Коли ви скролите, старі рядки ",[3516,3666,3667],{},"знімаються"," (або ",[3516,3670,3671],{},"переробляються"," під нові дані), а нові з’являються. Користувач бачить нескінченну стрічку; телефон — лише «вікно» в масив.",[3674,3675,3676,3679,3680,3683,3684,3686,3687,3686,3689,3692,3693,3698],"tip",{},[3516,3677,3678],{},"Живі прев’ю."," Демо нижче — через ",[3525,3681,3682],{},"::react-native-preview"," (react-native-web). ",[3525,3685,3551],{}," \u002F ",[3525,3688,3634],{},[3525,3690,3691],{},"RefreshControl"," у прев’ю працюють. ",[3516,3694,3695,3697],{},[3525,3696,3643],{}," у iframe немає"," (окремий пакет) — його розбираємо в тексті й підключаємо в Nomad \u002F міні-проєкті на пристрої. Скрол у браузері зручніший мишею\u002Fтрекпадом; «рідний» feel — у Expo Go.",[3700,3701],"hr",{},[3507,3703,3705],{"id":3704},"місток-з-web-react","Місток з web React",[3707,3708,3709,3725],"table",{},[3710,3711,3712],"thead",{},[3713,3714,3715,3719,3722],"tr",{},[3716,3717,3718],"th",{},"У браузері",[3716,3720,3721],{},"У React Native",[3716,3723,3724],{},"Коментар",[3726,3727,3728,3749,3764,3789,3801],"tbody",{},[3713,3729,3730,3737,3743],{},[3731,3732,3733,3736],"td",{},[3525,3734,3735],{},"\u003Cul>{items.map(…)}\u003C\u002Ful>"," на сторінці",[3731,3738,3739,3579,3741],{},[3525,3740,3531],{},[3525,3742,3582],{},[3731,3744,3745,3746],{},"Усе в DOM \u002F у нативному дереві ",[3516,3747,3748],{},"одразу",[3713,3750,3751,3757,3761],{},[3731,3752,3753,3756],{},[3525,3754,3755],{},"window"," + document scroll",[3731,3758,3759],{},[3525,3760,3531],{},[3731,3762,3763],{},"Одна довга «сторінка» контенту",[3713,3765,3766,3775,3783],{},[3731,3767,3768,3593,3771,3774],{},[3525,3769,3770],{},"react-window",[3525,3772,3773],{},"react-virtualized",", TanStack Virtual",[3731,3776,3777,3686,3779,3686,3781],{},[3525,3778,3551],{},[3525,3780,3634],{},[3525,3782,3643],{},[3731,3784,3785,3788],{},[3516,3786,3787],{},"Віртуалізація",": малюємо лише visible (+ buffer)",[3713,3790,3791,3794,3798],{},[3731,3792,3793],{},"Infinite scroll (IntersectionObserver)",[3731,3795,3796],{},[3525,3797,3627],{},[3731,3799,3800],{},"Підвантаження, коли близько до кінця",[3713,3802,3803,3806,3810],{},[3731,3804,3805],{},"Pull-to-refresh (мобільні веб-патерни)",[3731,3807,3808],{},[3525,3809,3691],{},[3731,3811,3812],{},"«Потягнути вниз — оновити»",[3814,3815,3816,3819,3820,3823,3824,3826,3827,3830,3831,3834,3835,3838],"warning",{},[3516,3817,3818],{},"Web-звичка."," Написати ",[3525,3821,3822],{},"{trips.map(t => \u003CTripCard … \u002F>)}"," всередині ",[3525,3825,3531],{}," і вважати, що «це ж той самий React». Для ",[3516,3828,3829],{},"3"," карток — нормально. Для ",[3516,3832,3833],{},"200"," — ви створюєте 200 нативних view з картинками ",[3516,3836,3837],{},"до"," першого кадру. На слабкому Android це відчувається одразу.",[3700,3840],{},[3507,3842,3844],{"id":3843},"що-ламається-без-віртуалізації","Що ламається без віртуалізації",[3846,3847,3849],"h3",{"id":3848},"життєва-сцена","Життєва сцена",[3512,3851,3852,3853,3856,3857,3860,3861,3864],{},"Ви відкрили «Мандрівник». На екрані видно ",[3516,3854,3855],{},"дві"," картки поїздок. Решта — нижче, за межами екрана. Питання: чи ",[3516,3858,3859],{},"потрібно"," телефону зараз тримати в пам’яті ще 198 карток з ",[3525,3862,3863],{},"Image","?",[3512,3866,3867,3868,3870,3871,3555],{},"Якщо відповідь «так, бо ми зробили ",[3525,3869,3582],{},"» — ви платите CPU і RAM за те, чого користувач ",[3516,3872,3873],{},"не бачить",[3846,3875,3877,3579,3879,3881],{"id":3876},"scrollview-map-що-відбувається",[3525,3878,3531],{},[3525,3880,3582],{}," — що відбувається",[3883,3884,3885,3889,3901,3905,3912,3916,3919,3923],"steps",{},[3846,3886,3888],{"id":3887},"_1-завантаження-екрана","1. Завантаження екрана",[3512,3890,3891,3892,3894,3895,3593,3898,3900],{},"React будує ",[3516,3893,3522],{}," дочірні елементи масиву. Кожна картка — окремий піддерево (",[3525,3896,3897],{},"Pressable",[3525,3899,3863],{},", тексти).",[3846,3902,3904],{"id":3903},"_2-layout","2. Layout",[3512,3906,3907,3908,3911],{},"Нативний шар рахує висоту ",[3516,3909,3910],{},"всього"," вмісту (навіть за екраном), щоб знати, наскільки довгий скрол.",[3846,3913,3915],{"id":3914},"_3-скрол","3. Скрол",[3512,3917,3918],{},"Пам’ять уже зайнята; під час скролу ще йдуть оновлення зображень, тіні, перерахунки — телефон «пихтить».",[3846,3920,3922],{"id":3921},"_4-що-бачить-користувач","4. Що бачить користувач",[3512,3924,3925],{},"Ривки, білі спалахи, довгий cold start. Людина не каже «віртуалізація погана» — каже «додаток гальмує».",[3512,3927,3928],{},[3929,3930],"img",{"alt":3931,"className":3932,"src":3934},"ScrollView + map проти FlatList: усе в пам’яті vs лише вікно рядків",[3933],"diagram-img","\u002Fimages\u002Freact-native\u002Flists-and-virtualization\u002F01.svg",[3936,3937,3938],"plant-uml",{},[3939,3940,3945],"pre",{"className":3941,"code":3942,"language":3943,"meta":3944,"style":3944},"language-plantuml shiki shiki-themes light-plus dark-plus dark-plus","@startuml\nskinparam style plain\nskinparam backgroundColor #ffffff\n\nrectangle \"ScrollView + map\" as S {\n  rectangle \"Картка 1 (на екрані)\" as C1\n  rectangle \"Картка 2 (на екрані)\" as C2\n  rectangle \"Картка 3 … 200\\n(усі в пам'яті)\" as C3\n}\n\nrectangle \"FlatList \u002F FlashList\" as F {\n  rectangle \"Буфер зверху\" as B1\n  rectangle \"Видимі рядки\" as V\n  rectangle \"Буфер знизу\" as B2\n  rectangle \"Решта даних\\nлише в масиві JS\" as Rest\n}\n\nnote right of S\n  Усі рядки = React-елементи\nend note\n\nnote right of F\n  У дереві — лише вікно\nend note\n\n@enduml\n","plantuml","",[3525,3946,3947,3955,3961,3967,3974,3980,3986,3992,3998,4004,4009,4015,4021,4027,4033,4039,4044,4049,4055,4061,4067,4072,4078,4084,4089,4094],{"__ignoreMap":3944},[3948,3949,3952],"span",{"class":3950,"line":3951},"line",1,[3948,3953,3954],{},"@startuml\n",[3948,3956,3958],{"class":3950,"line":3957},2,[3948,3959,3960],{},"skinparam style plain\n",[3948,3962,3964],{"class":3950,"line":3963},3,[3948,3965,3966],{},"skinparam backgroundColor #ffffff\n",[3948,3968,3970],{"class":3950,"line":3969},4,[3948,3971,3973],{"emptyLinePlaceholder":3972},true,"\n",[3948,3975,3977],{"class":3950,"line":3976},5,[3948,3978,3979],{},"rectangle \"ScrollView + map\" as S {\n",[3948,3981,3983],{"class":3950,"line":3982},6,[3948,3984,3985],{},"  rectangle \"Картка 1 (на екрані)\" as C1\n",[3948,3987,3989],{"class":3950,"line":3988},7,[3948,3990,3991],{},"  rectangle \"Картка 2 (на екрані)\" as C2\n",[3948,3993,3995],{"class":3950,"line":3994},8,[3948,3996,3997],{},"  rectangle \"Картка 3 … 200\\n(усі в пам'яті)\" as C3\n",[3948,3999,4001],{"class":3950,"line":4000},9,[3948,4002,4003],{},"}\n",[3948,4005,4007],{"class":3950,"line":4006},10,[3948,4008,3973],{"emptyLinePlaceholder":3972},[3948,4010,4012],{"class":3950,"line":4011},11,[3948,4013,4014],{},"rectangle \"FlatList \u002F FlashList\" as F {\n",[3948,4016,4018],{"class":3950,"line":4017},12,[3948,4019,4020],{},"  rectangle \"Буфер зверху\" as B1\n",[3948,4022,4024],{"class":3950,"line":4023},13,[3948,4025,4026],{},"  rectangle \"Видимі рядки\" as V\n",[3948,4028,4030],{"class":3950,"line":4029},14,[3948,4031,4032],{},"  rectangle \"Буфер знизу\" as B2\n",[3948,4034,4036],{"class":3950,"line":4035},15,[3948,4037,4038],{},"  rectangle \"Решта даних\\nлише в масиві JS\" as Rest\n",[3948,4040,4042],{"class":3950,"line":4041},16,[3948,4043,4003],{},[3948,4045,4047],{"class":3950,"line":4046},17,[3948,4048,3973],{"emptyLinePlaceholder":3972},[3948,4050,4052],{"class":3950,"line":4051},18,[3948,4053,4054],{},"note right of S\n",[3948,4056,4058],{"class":3950,"line":4057},19,[3948,4059,4060],{},"  Усі рядки = React-елементи\n",[3948,4062,4064],{"class":3950,"line":4063},20,[3948,4065,4066],{},"end note\n",[3948,4068,4070],{"class":3950,"line":4069},21,[3948,4071,3973],{"emptyLinePlaceholder":3972},[3948,4073,4075],{"class":3950,"line":4074},22,[3948,4076,4077],{},"note right of F\n",[3948,4079,4081],{"class":3950,"line":4080},23,[3948,4082,4083],{},"  У дереві — лише вікно\n",[3948,4085,4087],{"class":3950,"line":4086},24,[3948,4088,4066],{},[3948,4090,4092],{"class":3950,"line":4091},25,[3948,4093,3973],{"emptyLinePlaceholder":3972},[3948,4095,4097],{"class":3950,"line":4096},26,[3948,4098,4099],{},"@enduml\n",[3700,4101],{},[3507,4103,4105],{"id":4104},"віртуалізація-простими-словами","Віртуалізація простими словами",[3512,4107,4108,4111,4112,4115,4116,4119],{},[3516,4109,4110],{},"Віртуалізація (virtualization)"," — техніка, коли UI ",[3516,4113,4114],{},"не створює"," одночасно всі елементи довгого списку, а малює лише ті, що потрібні для поточного положення скролу (плюс невеликий ",[3516,4117,4118],{},"буфер"," поза екраном, щоб скрол був плавним).",[3512,4121,4122],{},[3929,4123],{"alt":4124,"className":4125,"src":4126},"Віртуалізація: data, вікно змонтованих рядків і recycle",[3933],"\u002Fimages\u002Freact-native\u002Flists-and-virtualization\u002F02.svg",[3512,4128,4129,4130,4132,4133,4137,4138,4141],{},"Аналогія з вебом: якщо ви колись підключали ",[3525,4131,3770],{}," до таблиці на 10 000 рядків — ідея та сама. У React Native «дефолтний» інструмент для цього — ",[3516,4134,4135],{},[3525,4136,3551],{}," (під капотом — ",[3525,4139,4140],{},"VirtualizedList",").",[4143,4144,4145,4153,4161,4173],"field-group",{},[4146,4147,4149,4150,4152],"field",{"name":3592,"type":4148},"масив","Джерело правди: усі елементи списку в JavaScript. Це ",[3516,4151,3663],{}," означає, що всі вони змонтовані як UI.",[4146,4154,4157,4158,4160],{"name":4155,"type":4156},"вікно (window)","поняття","Підмножина ",[3525,4159,3592],{},", для якої зараз існують нативні view. Рухається разом зі скролом.",[4146,4162,4165,4166,4168,4169,4172],{"name":4163,"type":4164},"recycle \u002F reuse","ідея","Деякі списки (зокрема ",[3516,4167,3643],{},") ",[3516,4170,4171],{},"перевикористовують"," уже створені рядки: знімають старі props і підставляють нові дані, замість знищити компонент і створити новий. Менше алокацій — плавніший скрол.",[4146,4174,4177,4178,4181,4182,4185],{"name":4175,"type":4176},"key \u002F keyExtractor","ідентичність","Стабільний ",[3516,4179,4180],{},"ідентифікатор"," рядка (краще ",[3525,4183,4184],{},"id"," з даних, не індекс масиву). React і список мають розуміти «це той самий trip, лише зсунувся», а не «зовсім новий елемент».",[3700,4187],{},[3507,4189,4191,4193],{"id":4190},"flatlist-базовий-віртуалізований-список",[3525,4192,3551],{}," — базовий віртуалізований список",[3512,4195,4196,4200,4201,4204,4205,4208,4209,4212],{},[3516,4197,4198],{},[3525,4199,3551],{}," — компонент React Native для відображення ",[3516,4202,4203],{},"довгого"," прокручуваного списку ",[3516,4206,4207],{},"однотипних"," елементів з віртуалізацією. Ви передаєте масив і функцію «як намалювати один елемент»; список сам вирішує, ",[3516,4210,4211],{},"які"," елементи зараз живуть у дереві.",[3512,4214,4215],{},"Мінімальний каркас:",[3939,4217,4221],{"className":4218,"code":4219,"language":4220,"meta":3944,"style":3944},"language-tsx shiki shiki-themes light-plus dark-plus dark-plus","import { FlatList, Text, View } from 'react-native';\n\ntype Item = { id: string; title: string };\n\nconst DATA: Item[] = [\n  { id: '1', title: 'Перший' },\n  { id: '2', title: 'Другий' },\n  { id: '3', title: 'Третій' },\n];\n\nexport function SimpleList() {\n  return (\n    \u003CFlatList\n      data={DATA}\n      keyExtractor={(item) => item.id}\n      renderItem={({ item }) => (\n        \u003CView>\n          \u003CText>{item.title}\u003C\u002FText>\n        \u003C\u002FView>\n      )}\n    \u002F>\n  );\n}\n","tsx",[3525,4222,4223,4259,4263,4297,4301,4318,4340,4358,4376,4381,4385,4400,4408,4417,4434,4464,4485,4495,4523,4532,4539,4544,4549],{"__ignoreMap":3944},[3948,4224,4225,4229,4233,4236,4238,4241,4243,4246,4249,4252,4256],{"class":3950,"line":3951},[3948,4226,4228],{"class":4227},"s8xlr","import",[3948,4230,4232],{"class":4231},"sHH4Y"," { ",[3948,4234,3551],{"class":4235},"siwwj",[3948,4237,3593],{"class":4231},[3948,4239,4240],{"class":4235},"Text",[3948,4242,3593],{"class":4231},[3948,4244,4245],{"class":4235},"View",[3948,4247,4248],{"class":4231}," } ",[3948,4250,4251],{"class":4227},"from",[3948,4253,4255],{"class":4254},"sbdoH"," 'react-native'",[3948,4257,4258],{"class":4231},";\n",[3948,4260,4261],{"class":3950,"line":3957},[3948,4262,3973],{"emptyLinePlaceholder":3972},[3948,4264,4265,4269,4273,4276,4278,4281,4284,4287,4290,4292,4294],{"class":3950,"line":3963},[3948,4266,4268],{"class":4267},"su1O8","type",[3948,4270,4272],{"class":4271},"sN1BT"," Item",[3948,4274,4275],{"class":4231}," = { ",[3948,4277,4184],{"class":4235},[3948,4279,4280],{"class":4231},": ",[3948,4282,4283],{"class":4271},"string",[3948,4285,4286],{"class":4231},"; ",[3948,4288,4289],{"class":4235},"title",[3948,4291,4280],{"class":4231},[3948,4293,4283],{"class":4271},[3948,4295,4296],{"class":4231}," };\n",[3948,4298,4299],{"class":3950,"line":3969},[3948,4300,3973],{"emptyLinePlaceholder":3972},[3948,4302,4303,4306,4310,4312,4315],{"class":3950,"line":3976},[3948,4304,4305],{"class":4267},"const",[3948,4307,4309],{"class":4308},"s-QsJ"," DATA",[3948,4311,4280],{"class":4231},[3948,4313,4314],{"class":4271},"Item",[3948,4316,4317],{"class":4231},"[] = [\n",[3948,4319,4320,4323,4326,4329,4331,4334,4337],{"class":3950,"line":3982},[3948,4321,4322],{"class":4231},"  { ",[3948,4324,4325],{"class":4235},"id:",[3948,4327,4328],{"class":4254}," '1'",[3948,4330,3593],{"class":4231},[3948,4332,4333],{"class":4235},"title:",[3948,4335,4336],{"class":4254}," 'Перший'",[3948,4338,4339],{"class":4231}," },\n",[3948,4341,4342,4344,4346,4349,4351,4353,4356],{"class":3950,"line":3988},[3948,4343,4322],{"class":4231},[3948,4345,4325],{"class":4235},[3948,4347,4348],{"class":4254}," '2'",[3948,4350,3593],{"class":4231},[3948,4352,4333],{"class":4235},[3948,4354,4355],{"class":4254}," 'Другий'",[3948,4357,4339],{"class":4231},[3948,4359,4360,4362,4364,4367,4369,4371,4374],{"class":3950,"line":3994},[3948,4361,4322],{"class":4231},[3948,4363,4325],{"class":4235},[3948,4365,4366],{"class":4254}," '3'",[3948,4368,3593],{"class":4231},[3948,4370,4333],{"class":4235},[3948,4372,4373],{"class":4254}," 'Третій'",[3948,4375,4339],{"class":4231},[3948,4377,4378],{"class":3950,"line":4000},[3948,4379,4380],{"class":4231},"];\n",[3948,4382,4383],{"class":3950,"line":4006},[3948,4384,3973],{"emptyLinePlaceholder":3972},[3948,4386,4387,4390,4393,4397],{"class":3950,"line":4011},[3948,4388,4389],{"class":4227},"export",[3948,4391,4392],{"class":4267}," function",[3948,4394,4396],{"class":4395},"s8Opu"," SimpleList",[3948,4398,4399],{"class":4231},"() {\n",[3948,4401,4402,4405],{"class":3950,"line":4017},[3948,4403,4404],{"class":4227},"  return",[3948,4406,4407],{"class":4231}," (\n",[3948,4409,4410,4414],{"class":3950,"line":4023},[3948,4411,4413],{"class":4412},"s0P7L","    \u003C",[3948,4415,4416],{"class":4271},"FlatList\n",[3948,4418,4419,4423,4426,4429,4432],{"class":3950,"line":4029},[3948,4420,4422],{"class":4421},"sa4r_","      data",[3948,4424,4425],{"class":4231},"=",[3948,4427,4428],{"class":4267},"{",[3948,4430,4431],{"class":4308},"DATA",[3948,4433,4003],{"class":4267},[3948,4435,4436,4439,4441,4443,4447,4450,4452,4455,4458,4460,4462],{"class":3950,"line":4035},[3948,4437,4438],{"class":4421},"      keyExtractor",[3948,4440,4425],{"class":4231},[3948,4442,4428],{"class":4267},[3948,4444,4446],{"class":4445},"sD7JJ","(",[3948,4448,4449],{"class":4235},"item",[3948,4451,4168],{"class":4445},[3948,4453,4454],{"class":4267},"=>",[3948,4456,4457],{"class":4235}," item",[3948,4459,3555],{"class":4445},[3948,4461,4184],{"class":4235},[3948,4463,4003],{"class":4267},[3948,4465,4466,4469,4471,4473,4476,4478,4481,4483],{"class":3950,"line":4041},[3948,4467,4468],{"class":4421},"      renderItem",[3948,4470,4425],{"class":4231},[3948,4472,4428],{"class":4267},[3948,4474,4475],{"class":4445},"({ ",[3948,4477,4449],{"class":4235},[3948,4479,4480],{"class":4445}," }) ",[3948,4482,4454],{"class":4267},[3948,4484,4407],{"class":4445},[3948,4486,4487,4490,4492],{"class":3950,"line":4046},[3948,4488,4489],{"class":4412},"        \u003C",[3948,4491,4245],{"class":4271},[3948,4493,4494],{"class":4412},">\n",[3948,4496,4497,4500,4502,4505,4507,4509,4511,4513,4516,4519,4521],{"class":3950,"line":4051},[3948,4498,4499],{"class":4412},"          \u003C",[3948,4501,4240],{"class":4271},[3948,4503,4504],{"class":4412},">",[3948,4506,4428],{"class":4267},[3948,4508,4449],{"class":4235},[3948,4510,3555],{"class":4445},[3948,4512,4289],{"class":4235},[3948,4514,4515],{"class":4267},"}",[3948,4517,4518],{"class":4412},"\u003C\u002F",[3948,4520,4240],{"class":4271},[3948,4522,4494],{"class":4412},[3948,4524,4525,4528,4530],{"class":3950,"line":4057},[3948,4526,4527],{"class":4412},"        \u003C\u002F",[3948,4529,4245],{"class":4271},[3948,4531,4494],{"class":4412},[3948,4533,4534,4537],{"class":3950,"line":4063},[3948,4535,4536],{"class":4445},"      )",[3948,4538,4003],{"class":4267},[3948,4540,4541],{"class":3950,"line":4069},[3948,4542,4543],{"class":4412},"    \u002F>\n",[3948,4545,4546],{"class":3950,"line":4074},[3948,4547,4548],{"class":4231},"  );\n",[3948,4550,4551],{"class":3950,"line":4080},[3948,4552,4003],{"class":4231},[3846,4554,4556],{"id":4555},"анатомія-props","Анатомія props",[4143,4558,4559,4573,4588,4607,4614,4622,4635,4650,4657,4677,4696,4709],{},[4146,4560,4562,4563,4565,4566,4569,4570,3555],{"name":3592,"type":4561},"ArrayLike","Масив (або масивоподібний) елементів. Коли ",[3525,4564,3592],{}," змінюється за ",[3516,4567,4568],{},"посиланням"," і вмістом — список оновлюється. Для «виділили рядок» див. ",[3525,4571,4572],{},"extraData",[4146,4574,4576,4577,4580,4581,3624,4584,4587],{"name":3596,"type":4575},"({ item, index, separators }) => ReactElement","Функція, яка малює ",[3516,4578,4579],{},"один"," рядок. Викликається для елементів у вікні (і при recycle). Тримайте її ",[3516,4582,4583],{},"стабільною",[3525,4585,4586],{},"useCallback",") або виносьте компонент рядка назовні.",[4146,4589,4591,4592,4595,4596,4599,4600,4603,4604,4606],{"name":3599,"type":4590},"(item, index) => string","Повертає унікальний ключ. За замовчуванням FlatList шукає ",[3525,4593,4594],{},"item.key"," або ",[3525,4597,4598],{},"item.id",". Краще ",[3516,4601,4602],{},"явний"," ",[3525,4605,3599],{},", якщо поле інше.",[4146,4608,4610,4611,4613],{"name":3609,"type":4609},"component | element","Що показати, коли ",[3525,4612,3592],{}," порожній (або довжина 0). Порожній стан — частина UX, не «білий екран».",[4146,4615,4617,4618,4621],{"name":4616,"type":4609},"ListHeaderComponent \u002F ListFooterComponent","Шапка й підвал ",[3516,4619,4620],{},"всередині"," скролу (заголовок секції, фільтри, спінер «завантажуємо ще…»).",[4146,4623,4626,4627,4630,4631,4634],{"name":4624,"type":4625},"ItemSeparatorComponent","component","Розділювач ",[3516,4628,4629],{},"між"," рядками (лінія, відступ). Зручніше, ніж ",[3525,4632,4633],{},"marginBottom"," на кожній картці з «у останньої нуль».",[4146,4636,4639,4640,4643,4644,4646,4647,4649],{"name":4637,"type":4638},"contentContainerStyle","style","Стиль ",[3516,4641,4642],{},"внутрішнього"," контейнера вмісту (padding списку). Як у ",[3525,4645,3531],{},": не плутати зі ",[3525,4648,4638],{}," самої «рамки» списку.",[4146,4651,4652,4653,4656],{"name":4638,"type":4638},"Стиль зовнішнього контейнера списку. Часто ",[3525,4654,4655],{},"flex: 1",", щоб зайняти місце між шапкою екрана і sticky-кнопкою.",[4146,4658,4660,4661,4603,4664,4666,4667,4670,4671,4673,4674,4676],{"name":4572,"type":4659},"any","Якщо рядок залежить від стану ",[3516,4662,4663],{},"поза",[3525,4665,4449],{}," (наприклад, ",[3525,4668,4669],{},"selectedId","), передайте цей стан у ",[3525,4672,4572],{},", інакше FlatList може ",[3516,4675,3663],{}," перемалювати рядки (він оптимізує оновлення).",[4146,4678,4681,4682,3686,4685,4688,4689,4692,4693,3555],{"name":4679,"type":4680},"refreshing + onRefresh \u002F refreshControl","refresh","Pull-to-refresh: або пара props ",[3525,4683,4684],{},"refreshing",[3525,4686,4687],{},"onRefresh",", або повний ",[3525,4690,4691],{},"\u003CRefreshControl \u002F>"," через ",[3525,4694,4695],{},"refreshControl={…}",[4146,4697,4700,4701,4704,4705,4708],{"name":4698,"type":4699},"onEndReached + onEndReachedThreshold","pagination UI","Колбек, коли скрол близько до кінця. ",[3525,4702,4703],{},"threshold"," — частка видимої довжини (наприклад ",[3525,4706,4707],{},"0.3"," ≈ «за 30% екрана до кінця»). Для «підвантажити ще сторінку».",[4146,4710,4713],{"name":4711,"type":4712},"horizontal","boolean","Горизонтальний список (чіпи, «останні місця», карусель). Тоді «кінець» — праворуч.",[3846,4715,4717,4718],{"id":4716},"демо-простий-flatlist","Демо: простий ",[3525,4719,3551],{},[4721,4722,4727],"react-native-preview",{"device":4723,"filename":4724,"height":4725,"title":4726},"iphone","FlatListBasic.tsx",560,"FlatList · базовий",[3939,4728,4730],{"className":4218,"code":4729,"language":4220,"meta":3944,"style":3944},"import { FlatList, StyleSheet, Text, View, useColorScheme } from 'react-native';\n\ntype Row = { id: string; title: string; subtitle: string };\n\nconst DATA: Row[] = Array.from({ length: 40 }, (_, i) => ({\n  id: String(i + 1),\n  title: `Поїздка ${i + 1}`,\n  subtitle: i % 2 === 0 ? 'Гори' : 'Місто',\n}));\n\nexport default function App() {\n  const dark = useColorScheme() === 'dark';\n  const bg = dark ? '#000' : '#F8FAFC';\n  const surface = dark ? '#1c1c1e' : '#fff';\n  const text = dark ? '#f5f5f7' : '#0f172a';\n  const muted = dark ? '#a1a1aa' : '#64748b';\n  const border = dark ? '#3a3a3c' : '#e2e8f0';\n\n  return (\n    \u003CView style={[styles.screen, { backgroundColor: bg }]}>\n      \u003CText style={[styles.h, { color: text }]}>FlatList · 40 рядків\u003C\u002FText>\n      \u003CText style={{ color: muted, marginBottom: 8, fontSize: 13 }}>\n        У дереві — лише видимі. Прокрутіть список.\n      \u003C\u002FText>\n      \u003CFlatList\n        style={styles.list}\n        data={DATA}\n        keyExtractor={(item) => item.id}\n        contentContainerStyle={{ paddingBottom: 16, gap: 8 }}\n        renderItem={({ item }) => (\n          \u003CView\n            style={[\n              styles.row,\n              { backgroundColor: surface, borderColor: border },\n            ]}\n          >\n            \u003CText style={[styles.title, { color: text }]}>{item.title}\u003C\u002FText>\n            \u003CText style={{ color: muted, fontSize: 13 }}>{item.subtitle}\u003C\u002FText>\n          \u003C\u002FView>\n        )}\n      \u002F>\n    \u003C\u002FView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  screen: { flex: 1, padding: 16, paddingTop: 24 },\n  h: { fontSize: 20, fontWeight: '800', marginBottom: 4 },\n  list: { flex: 1 },\n  row: {\n    borderWidth: 1,\n    borderRadius: 12,\n    padding: 14,\n  },\n  title: { fontSize: 16, fontWeight: '700', marginBottom: 4 },\n});\n",[3525,4731,4732,4766,4770,4804,4808,4856,4876,4903,4937,4942,4946,4960,4981,5005,5028,5051,5074,5097,5101,5107,5146,5190,5232,5237,5246,5252,5270,5284,5310,5339,5359,5367,5380,5393,5412,5420,5426,5476,5523,5533,5541,5547,5557,5562,5567,5572,5592,5622,5652,5666,5675,5685,5696,5707,5713,5739],{"__ignoreMap":3944},[3948,4733,4734,4736,4738,4740,4742,4745,4747,4749,4751,4753,4755,4758,4760,4762,4764],{"class":3950,"line":3951},[3948,4735,4228],{"class":4227},[3948,4737,4232],{"class":4231},[3948,4739,3551],{"class":4235},[3948,4741,3593],{"class":4231},[3948,4743,4744],{"class":4235},"StyleSheet",[3948,4746,3593],{"class":4231},[3948,4748,4240],{"class":4235},[3948,4750,3593],{"class":4231},[3948,4752,4245],{"class":4235},[3948,4754,3593],{"class":4231},[3948,4756,4757],{"class":4235},"useColorScheme",[3948,4759,4248],{"class":4231},[3948,4761,4251],{"class":4227},[3948,4763,4255],{"class":4254},[3948,4765,4258],{"class":4231},[3948,4767,4768],{"class":3950,"line":3957},[3948,4769,3973],{"emptyLinePlaceholder":3972},[3948,4771,4772,4774,4777,4779,4781,4783,4785,4787,4789,4791,4793,4795,4798,4800,4802],{"class":3950,"line":3963},[3948,4773,4268],{"class":4267},[3948,4775,4776],{"class":4271}," Row",[3948,4778,4275],{"class":4231},[3948,4780,4184],{"class":4235},[3948,4782,4280],{"class":4231},[3948,4784,4283],{"class":4271},[3948,4786,4286],{"class":4231},[3948,4788,4289],{"class":4235},[3948,4790,4280],{"class":4231},[3948,4792,4283],{"class":4271},[3948,4794,4286],{"class":4231},[3948,4796,4797],{"class":4235},"subtitle",[3948,4799,4280],{"class":4231},[3948,4801,4283],{"class":4271},[3948,4803,4296],{"class":4231},[3948,4805,4806],{"class":3950,"line":3969},[3948,4807,3973],{"emptyLinePlaceholder":3972},[3948,4809,4810,4812,4814,4816,4819,4822,4825,4827,4829,4831,4834,4838,4841,4844,4846,4849,4851,4853],{"class":3950,"line":3976},[3948,4811,4305],{"class":4267},[3948,4813,4309],{"class":4308},[3948,4815,4280],{"class":4231},[3948,4817,4818],{"class":4271},"Row",[3948,4820,4821],{"class":4231},"[] = ",[3948,4823,4824],{"class":4235},"Array",[3948,4826,3555],{"class":4231},[3948,4828,4251],{"class":4395},[3948,4830,4475],{"class":4231},[3948,4832,4833],{"class":4235},"length:",[3948,4835,4837],{"class":4836},"sJj4R"," 40",[3948,4839,4840],{"class":4231}," }, (",[3948,4842,4843],{"class":4235},"_",[3948,4845,3593],{"class":4231},[3948,4847,4848],{"class":4235},"i",[3948,4850,4168],{"class":4231},[3948,4852,4454],{"class":4267},[3948,4854,4855],{"class":4231}," ({\n",[3948,4857,4858,4861,4864,4866,4868,4870,4873],{"class":3950,"line":3982},[3948,4859,4860],{"class":4235},"  id:",[3948,4862,4863],{"class":4395}," String",[3948,4865,4446],{"class":4231},[3948,4867,4848],{"class":4235},[3948,4869,3579],{"class":4231},[3948,4871,4872],{"class":4836},"1",[3948,4874,4875],{"class":4231},"),\n",[3948,4877,4878,4881,4884,4887,4889,4892,4895,4897,4900],{"class":3950,"line":3988},[3948,4879,4880],{"class":4235},"  title:",[3948,4882,4883],{"class":4254}," `Поїздка ",[3948,4885,4886],{"class":4267},"${",[3948,4888,4848],{"class":4235},[3948,4890,4891],{"class":4231}," +",[3948,4893,4894],{"class":4836}," 1",[3948,4896,4515],{"class":4267},[3948,4898,4899],{"class":4254},"`",[3948,4901,4902],{"class":4231},",\n",[3948,4904,4905,4908,4911,4914,4917,4920,4923,4926,4929,4932,4935],{"class":3950,"line":3994},[3948,4906,4907],{"class":4235},"  subtitle:",[3948,4909,4910],{"class":4235}," i",[3948,4912,4913],{"class":4231}," % ",[3948,4915,4916],{"class":4836},"2",[3948,4918,4919],{"class":4231}," === ",[3948,4921,4922],{"class":4836},"0",[3948,4924,4925],{"class":4231}," ? ",[3948,4927,4928],{"class":4254},"'Гори'",[3948,4930,4931],{"class":4231}," : ",[3948,4933,4934],{"class":4254},"'Місто'",[3948,4936,4902],{"class":4231},[3948,4938,4939],{"class":3950,"line":4000},[3948,4940,4941],{"class":4231},"}));\n",[3948,4943,4944],{"class":3950,"line":4006},[3948,4945,3973],{"emptyLinePlaceholder":3972},[3948,4947,4948,4950,4953,4955,4958],{"class":3950,"line":4011},[3948,4949,4389],{"class":4227},[3948,4951,4952],{"class":4227}," default",[3948,4954,4392],{"class":4267},[3948,4956,4957],{"class":4395}," App",[3948,4959,4399],{"class":4231},[3948,4961,4962,4965,4968,4971,4973,4976,4979],{"class":3950,"line":4017},[3948,4963,4964],{"class":4267},"  const",[3948,4966,4967],{"class":4308}," dark",[3948,4969,4970],{"class":4231}," = ",[3948,4972,4757],{"class":4395},[3948,4974,4975],{"class":4231},"() === ",[3948,4977,4978],{"class":4254},"'dark'",[3948,4980,4258],{"class":4231},[3948,4982,4983,4985,4988,4990,4993,4995,4998,5000,5003],{"class":3950,"line":4023},[3948,4984,4964],{"class":4267},[3948,4986,4987],{"class":4308}," bg",[3948,4989,4970],{"class":4231},[3948,4991,4992],{"class":4235},"dark",[3948,4994,4925],{"class":4231},[3948,4996,4997],{"class":4254},"'#000'",[3948,4999,4931],{"class":4231},[3948,5001,5002],{"class":4254},"'#F8FAFC'",[3948,5004,4258],{"class":4231},[3948,5006,5007,5009,5012,5014,5016,5018,5021,5023,5026],{"class":3950,"line":4029},[3948,5008,4964],{"class":4267},[3948,5010,5011],{"class":4308}," surface",[3948,5013,4970],{"class":4231},[3948,5015,4992],{"class":4235},[3948,5017,4925],{"class":4231},[3948,5019,5020],{"class":4254},"'#1c1c1e'",[3948,5022,4931],{"class":4231},[3948,5024,5025],{"class":4254},"'#fff'",[3948,5027,4258],{"class":4231},[3948,5029,5030,5032,5035,5037,5039,5041,5044,5046,5049],{"class":3950,"line":4035},[3948,5031,4964],{"class":4267},[3948,5033,5034],{"class":4308}," text",[3948,5036,4970],{"class":4231},[3948,5038,4992],{"class":4235},[3948,5040,4925],{"class":4231},[3948,5042,5043],{"class":4254},"'#f5f5f7'",[3948,5045,4931],{"class":4231},[3948,5047,5048],{"class":4254},"'#0f172a'",[3948,5050,4258],{"class":4231},[3948,5052,5053,5055,5058,5060,5062,5064,5067,5069,5072],{"class":3950,"line":4041},[3948,5054,4964],{"class":4267},[3948,5056,5057],{"class":4308}," muted",[3948,5059,4970],{"class":4231},[3948,5061,4992],{"class":4235},[3948,5063,4925],{"class":4231},[3948,5065,5066],{"class":4254},"'#a1a1aa'",[3948,5068,4931],{"class":4231},[3948,5070,5071],{"class":4254},"'#64748b'",[3948,5073,4258],{"class":4231},[3948,5075,5076,5078,5081,5083,5085,5087,5090,5092,5095],{"class":3950,"line":4046},[3948,5077,4964],{"class":4267},[3948,5079,5080],{"class":4308}," border",[3948,5082,4970],{"class":4231},[3948,5084,4992],{"class":4235},[3948,5086,4925],{"class":4231},[3948,5088,5089],{"class":4254},"'#3a3a3c'",[3948,5091,4931],{"class":4231},[3948,5093,5094],{"class":4254},"'#e2e8f0'",[3948,5096,4258],{"class":4231},[3948,5098,5099],{"class":3950,"line":4051},[3948,5100,3973],{"emptyLinePlaceholder":3972},[3948,5102,5103,5105],{"class":3950,"line":4057},[3948,5104,4404],{"class":4227},[3948,5106,4407],{"class":4231},[3948,5108,5109,5111,5113,5116,5118,5120,5123,5126,5128,5131,5134,5137,5139,5142,5144],{"class":3950,"line":4063},[3948,5110,4413],{"class":4412},[3948,5112,4245],{"class":4271},[3948,5114,5115],{"class":4421}," style",[3948,5117,4425],{"class":4231},[3948,5119,4428],{"class":4267},[3948,5121,5122],{"class":4445},"[",[3948,5124,5125],{"class":4235},"styles",[3948,5127,3555],{"class":4445},[3948,5129,5130],{"class":4235},"screen",[3948,5132,5133],{"class":4445},", { ",[3948,5135,5136],{"class":4235},"backgroundColor:",[3948,5138,4987],{"class":4235},[3948,5140,5141],{"class":4445}," }]",[3948,5143,4515],{"class":4267},[3948,5145,4494],{"class":4412},[3948,5147,5148,5151,5153,5155,5157,5159,5161,5163,5165,5168,5170,5173,5175,5177,5179,5181,5184,5186,5188],{"class":3950,"line":4069},[3948,5149,5150],{"class":4412},"      \u003C",[3948,5152,4240],{"class":4271},[3948,5154,5115],{"class":4421},[3948,5156,4425],{"class":4231},[3948,5158,4428],{"class":4267},[3948,5160,5122],{"class":4445},[3948,5162,5125],{"class":4235},[3948,5164,3555],{"class":4445},[3948,5166,5167],{"class":4235},"h",[3948,5169,5133],{"class":4445},[3948,5171,5172],{"class":4235},"color:",[3948,5174,5034],{"class":4235},[3948,5176,5141],{"class":4445},[3948,5178,4515],{"class":4267},[3948,5180,4504],{"class":4412},[3948,5182,5183],{"class":4231},"FlatList · 40 рядків",[3948,5185,4518],{"class":4412},[3948,5187,4240],{"class":4271},[3948,5189,4494],{"class":4412},[3948,5191,5192,5194,5196,5198,5200,5202,5205,5207,5209,5211,5214,5217,5219,5222,5225,5228,5230],{"class":3950,"line":4074},[3948,5193,5150],{"class":4412},[3948,5195,4240],{"class":4271},[3948,5197,5115],{"class":4421},[3948,5199,4425],{"class":4231},[3948,5201,4428],{"class":4267},[3948,5203,5204],{"class":4445},"{ ",[3948,5206,5172],{"class":4235},[3948,5208,5057],{"class":4235},[3948,5210,3593],{"class":4445},[3948,5212,5213],{"class":4235},"marginBottom:",[3948,5215,5216],{"class":4836}," 8",[3948,5218,3593],{"class":4445},[3948,5220,5221],{"class":4235},"fontSize:",[3948,5223,5224],{"class":4836}," 13",[3948,5226,5227],{"class":4445}," }",[3948,5229,4515],{"class":4267},[3948,5231,4494],{"class":4412},[3948,5233,5234],{"class":3950,"line":4080},[3948,5235,5236],{"class":4231},"        У дереві — лише видимі. Прокрутіть список.\n",[3948,5238,5239,5242,5244],{"class":3950,"line":4086},[3948,5240,5241],{"class":4412},"      \u003C\u002F",[3948,5243,4240],{"class":4271},[3948,5245,4494],{"class":4412},[3948,5247,5248,5250],{"class":3950,"line":4091},[3948,5249,5150],{"class":4412},[3948,5251,4416],{"class":4271},[3948,5253,5254,5257,5259,5261,5263,5265,5268],{"class":3950,"line":4096},[3948,5255,5256],{"class":4421},"        style",[3948,5258,4425],{"class":4231},[3948,5260,4428],{"class":4267},[3948,5262,5125],{"class":4235},[3948,5264,3555],{"class":4445},[3948,5266,5267],{"class":4235},"list",[3948,5269,4003],{"class":4267},[3948,5271,5273,5276,5278,5280,5282],{"class":3950,"line":5272},27,[3948,5274,5275],{"class":4421},"        data",[3948,5277,4425],{"class":4231},[3948,5279,4428],{"class":4267},[3948,5281,4431],{"class":4308},[3948,5283,4003],{"class":4267},[3948,5285,5287,5290,5292,5294,5296,5298,5300,5302,5304,5306,5308],{"class":3950,"line":5286},28,[3948,5288,5289],{"class":4421},"        keyExtractor",[3948,5291,4425],{"class":4231},[3948,5293,4428],{"class":4267},[3948,5295,4446],{"class":4445},[3948,5297,4449],{"class":4235},[3948,5299,4168],{"class":4445},[3948,5301,4454],{"class":4267},[3948,5303,4457],{"class":4235},[3948,5305,3555],{"class":4445},[3948,5307,4184],{"class":4235},[3948,5309,4003],{"class":4267},[3948,5311,5313,5316,5318,5320,5322,5325,5328,5330,5333,5335,5337],{"class":3950,"line":5312},29,[3948,5314,5315],{"class":4421},"        contentContainerStyle",[3948,5317,4425],{"class":4231},[3948,5319,4428],{"class":4267},[3948,5321,5204],{"class":4445},[3948,5323,5324],{"class":4235},"paddingBottom:",[3948,5326,5327],{"class":4836}," 16",[3948,5329,3593],{"class":4445},[3948,5331,5332],{"class":4235},"gap:",[3948,5334,5216],{"class":4836},[3948,5336,5227],{"class":4445},[3948,5338,4003],{"class":4267},[3948,5340,5342,5345,5347,5349,5351,5353,5355,5357],{"class":3950,"line":5341},30,[3948,5343,5344],{"class":4421},"        renderItem",[3948,5346,4425],{"class":4231},[3948,5348,4428],{"class":4267},[3948,5350,4475],{"class":4445},[3948,5352,4449],{"class":4235},[3948,5354,4480],{"class":4445},[3948,5356,4454],{"class":4267},[3948,5358,4407],{"class":4445},[3948,5360,5362,5364],{"class":3950,"line":5361},31,[3948,5363,4499],{"class":4412},[3948,5365,5366],{"class":4271},"View\n",[3948,5368,5370,5373,5375,5377],{"class":3950,"line":5369},32,[3948,5371,5372],{"class":4421},"            style",[3948,5374,4425],{"class":4231},[3948,5376,4428],{"class":4267},[3948,5378,5379],{"class":4445},"[\n",[3948,5381,5383,5386,5388,5391],{"class":3950,"line":5382},33,[3948,5384,5385],{"class":4235},"              styles",[3948,5387,3555],{"class":4445},[3948,5389,5390],{"class":4235},"row",[3948,5392,4902],{"class":4445},[3948,5394,5396,5399,5401,5403,5405,5408,5410],{"class":3950,"line":5395},34,[3948,5397,5398],{"class":4445},"              { ",[3948,5400,5136],{"class":4235},[3948,5402,5011],{"class":4235},[3948,5404,3593],{"class":4445},[3948,5406,5407],{"class":4235},"borderColor:",[3948,5409,5080],{"class":4235},[3948,5411,4339],{"class":4445},[3948,5413,5415,5418],{"class":3950,"line":5414},35,[3948,5416,5417],{"class":4445},"            ]",[3948,5419,4003],{"class":4267},[3948,5421,5423],{"class":3950,"line":5422},36,[3948,5424,5425],{"class":4412},"          >\n",[3948,5427,5429,5432,5434,5436,5438,5440,5442,5444,5446,5448,5450,5452,5454,5456,5458,5460,5462,5464,5466,5468,5470,5472,5474],{"class":3950,"line":5428},37,[3948,5430,5431],{"class":4412},"            \u003C",[3948,5433,4240],{"class":4271},[3948,5435,5115],{"class":4421},[3948,5437,4425],{"class":4231},[3948,5439,4428],{"class":4267},[3948,5441,5122],{"class":4445},[3948,5443,5125],{"class":4235},[3948,5445,3555],{"class":4445},[3948,5447,4289],{"class":4235},[3948,5449,5133],{"class":4445},[3948,5451,5172],{"class":4235},[3948,5453,5034],{"class":4235},[3948,5455,5141],{"class":4445},[3948,5457,4515],{"class":4267},[3948,5459,4504],{"class":4412},[3948,5461,4428],{"class":4267},[3948,5463,4449],{"class":4235},[3948,5465,3555],{"class":4445},[3948,5467,4289],{"class":4235},[3948,5469,4515],{"class":4267},[3948,5471,4518],{"class":4412},[3948,5473,4240],{"class":4271},[3948,5475,4494],{"class":4412},[3948,5477,5479,5481,5483,5485,5487,5489,5491,5493,5495,5497,5499,5501,5503,5505,5507,5509,5511,5513,5515,5517,5519,5521],{"class":3950,"line":5478},38,[3948,5480,5431],{"class":4412},[3948,5482,4240],{"class":4271},[3948,5484,5115],{"class":4421},[3948,5486,4425],{"class":4231},[3948,5488,4428],{"class":4267},[3948,5490,5204],{"class":4445},[3948,5492,5172],{"class":4235},[3948,5494,5057],{"class":4235},[3948,5496,3593],{"class":4445},[3948,5498,5221],{"class":4235},[3948,5500,5224],{"class":4836},[3948,5502,5227],{"class":4445},[3948,5504,4515],{"class":4267},[3948,5506,4504],{"class":4412},[3948,5508,4428],{"class":4267},[3948,5510,4449],{"class":4235},[3948,5512,3555],{"class":4445},[3948,5514,4797],{"class":4235},[3948,5516,4515],{"class":4267},[3948,5518,4518],{"class":4412},[3948,5520,4240],{"class":4271},[3948,5522,4494],{"class":4412},[3948,5524,5526,5529,5531],{"class":3950,"line":5525},39,[3948,5527,5528],{"class":4412},"          \u003C\u002F",[3948,5530,4245],{"class":4271},[3948,5532,4494],{"class":4412},[3948,5534,5536,5539],{"class":3950,"line":5535},40,[3948,5537,5538],{"class":4445},"        )",[3948,5540,4003],{"class":4267},[3948,5542,5544],{"class":3950,"line":5543},41,[3948,5545,5546],{"class":4412},"      \u002F>\n",[3948,5548,5550,5553,5555],{"class":3950,"line":5549},42,[3948,5551,5552],{"class":4412},"    \u003C\u002F",[3948,5554,4245],{"class":4271},[3948,5556,4494],{"class":4412},[3948,5558,5560],{"class":3950,"line":5559},43,[3948,5561,4548],{"class":4231},[3948,5563,5565],{"class":3950,"line":5564},44,[3948,5566,4003],{"class":4231},[3948,5568,5570],{"class":3950,"line":5569},45,[3948,5571,3973],{"emptyLinePlaceholder":3972},[3948,5573,5575,5577,5580,5582,5584,5586,5589],{"class":3950,"line":5574},46,[3948,5576,4305],{"class":4267},[3948,5578,5579],{"class":4308}," styles",[3948,5581,4970],{"class":4231},[3948,5583,4744],{"class":4235},[3948,5585,3555],{"class":4231},[3948,5587,5588],{"class":4395},"create",[3948,5590,5591],{"class":4231},"({\n",[3948,5593,5595,5598,5600,5603,5605,5607,5610,5612,5614,5617,5620],{"class":3950,"line":5594},47,[3948,5596,5597],{"class":4235},"  screen:",[3948,5599,4232],{"class":4231},[3948,5601,5602],{"class":4235},"flex:",[3948,5604,4894],{"class":4836},[3948,5606,3593],{"class":4231},[3948,5608,5609],{"class":4235},"padding:",[3948,5611,5327],{"class":4836},[3948,5613,3593],{"class":4231},[3948,5615,5616],{"class":4235},"paddingTop:",[3948,5618,5619],{"class":4836}," 24",[3948,5621,4339],{"class":4231},[3948,5623,5625,5628,5630,5632,5635,5637,5640,5643,5645,5647,5650],{"class":3950,"line":5624},48,[3948,5626,5627],{"class":4235},"  h:",[3948,5629,4232],{"class":4231},[3948,5631,5221],{"class":4235},[3948,5633,5634],{"class":4836}," 20",[3948,5636,3593],{"class":4231},[3948,5638,5639],{"class":4235},"fontWeight:",[3948,5641,5642],{"class":4254}," '800'",[3948,5644,3593],{"class":4231},[3948,5646,5213],{"class":4235},[3948,5648,5649],{"class":4836}," 4",[3948,5651,4339],{"class":4231},[3948,5653,5655,5658,5660,5662,5664],{"class":3950,"line":5654},49,[3948,5656,5657],{"class":4235},"  list:",[3948,5659,4232],{"class":4231},[3948,5661,5602],{"class":4235},[3948,5663,4894],{"class":4836},[3948,5665,4339],{"class":4231},[3948,5667,5669,5672],{"class":3950,"line":5668},50,[3948,5670,5671],{"class":4235},"  row:",[3948,5673,5674],{"class":4231}," {\n",[3948,5676,5678,5681,5683],{"class":3950,"line":5677},51,[3948,5679,5680],{"class":4235},"    borderWidth:",[3948,5682,4894],{"class":4836},[3948,5684,4902],{"class":4231},[3948,5686,5688,5691,5694],{"class":3950,"line":5687},52,[3948,5689,5690],{"class":4235},"    borderRadius:",[3948,5692,5693],{"class":4836}," 12",[3948,5695,4902],{"class":4231},[3948,5697,5699,5702,5705],{"class":3950,"line":5698},53,[3948,5700,5701],{"class":4235},"    padding:",[3948,5703,5704],{"class":4836}," 14",[3948,5706,4902],{"class":4231},[3948,5708,5710],{"class":3950,"line":5709},54,[3948,5711,5712],{"class":4231},"  },\n",[3948,5714,5716,5718,5720,5722,5724,5726,5728,5731,5733,5735,5737],{"class":3950,"line":5715},55,[3948,5717,4880],{"class":4235},[3948,5719,4232],{"class":4231},[3948,5721,5221],{"class":4235},[3948,5723,5327],{"class":4836},[3948,5725,3593],{"class":4231},[3948,5727,5639],{"class":4235},[3948,5729,5730],{"class":4254}," '700'",[3948,5732,3593],{"class":4231},[3948,5734,5213],{"class":4235},[3948,5736,5649],{"class":4836},[3948,5738,4339],{"class":4231},[3948,5740,5742],{"class":3950,"line":5741},56,[3948,5743,5744],{"class":4231},"});\n",[3674,5746,5747,5750,5751,5753,5754,5757,5758,5760],{},[3516,5748,5749],{},"Bounded height."," Як і ",[3525,5752,3531],{},", список потребує ",[3516,5755,5756],{},"обмеженої висоти"," батька (",[3525,5759,4655],{}," у ланцюжку Screen → область списку). Якщо батько «висота за контентом», віртуалізація ламається або скрол не з’являється.",[3700,5762],{},[3507,5764,5766,5768],{"id":5765},"keyextractor-чому-не-індекс",[3525,5767,3599],{},": чому не індекс",[3939,5770,5772],{"className":4218,"code":5771,"language":4220,"meta":3944,"style":3944},"\u002F\u002F Погано для динамічних списків\nkeyExtractor={(_, index) => String(index)}\n\n\u002F\u002F Добре\nkeyExtractor={(item) => item.id}\n",[3525,5773,5774,5780,5803,5807,5812],{"__ignoreMap":3944},[3948,5775,5776],{"class":3950,"line":3951},[3948,5777,5779],{"class":5778},"spJ8K","\u002F\u002F Погано для динамічних списків\n",[3948,5781,5782,5784,5787,5789,5792,5795,5797,5800],{"class":3950,"line":3957},[3948,5783,3599],{"class":4235},[3948,5785,5786],{"class":4231},"={(",[3948,5788,4843],{"class":4235},[3948,5790,5791],{"class":4231},", index) => ",[3948,5793,5794],{"class":4395},"String",[3948,5796,4446],{"class":4231},[3948,5798,5799],{"class":4235},"index",[3948,5801,5802],{"class":4231},")}\n",[3948,5804,5805],{"class":3950,"line":3963},[3948,5806,3973],{"emptyLinePlaceholder":3972},[3948,5808,5809],{"class":3950,"line":3969},[3948,5810,5811],{"class":5778},"\u002F\u002F Добре\n",[3948,5813,5814,5816,5819,5821],{"class":3950,"line":3976},[3948,5815,3599],{"class":4235},[3948,5817,5818],{"class":4231},"={(item) => item.",[3948,5820,4184],{"class":4235},[3948,5822,4003],{"class":4231},[3512,5824,5825,5828,5829,5832],{},[3516,5826,5827],{},"Що бачить користувач при «поганих» ключах:"," після видалення\u002Fвставки рядка «стрибають» стани (розкрита картка, локальний ",[3525,5830,5831],{},"useState"," у рядку), картинки «липнуть» не до тих об’єктів, анімації дивні.",[3512,5834,5835,5838,5839,3624,5842,5845],{},[3516,5836,5837],{},"Правило:"," ключ = ",[3516,5840,5841],{},"стабільна бізнес-ідентичність",[3525,5843,5844],{},"trip.id","), не позиція в масиві.",[3814,5847,5848,5860,5861,5863],{},[3516,5849,5850,5851,5854,5855,5857,5858,3555],{},"Не ставте ",[3525,5852,5853],{},"key={…}"," вручну на корені того, що повертає ",[3525,5856,3596],{}," «замість» ",[3525,5859,3599],{}," Список сам керує ключами через ",[3525,5862,3599],{},". Дублювання плутає recycle (особливо у FlashList).",[3700,5865],{},[3507,5867,5869],{"id":5868},"порожній-стан-шапка-розділювачі","Порожній стан, шапка, розділювачі",[3512,5871,5872],{},"Порожній список — не баг. Це нормальний екран: «Поки немає поїздок» + підказка, що робити далі.",[4721,5874,5878],{"device":5875,"filename":5876,"height":5877,"title":3609},"android","ListEmpty.tsx",520,[3939,5879,5881],{"className":4218,"code":5880,"language":4220,"meta":3944,"style":3944},"import { useState } from 'react';\nimport {\n  FlatList,\n  Pressable,\n  StyleSheet,\n  Text,\n  View,\n  useColorScheme,\n} from 'react-native';\n\ntype Row = { id: string; title: string };\n\nexport default function App() {\n  const dark = useColorScheme() === 'dark';\n  const bg = dark ? '#000' : '#F8FAFC';\n  const surface = dark ? '#1c1c1e' : '#fff';\n  const text = dark ? '#f5f5f7' : '#0f172a';\n  const muted = dark ? '#a1a1aa' : '#64748b';\n  const primary = dark ? '#3b82f6' : '#2563eb';\n  const border = dark ? '#3a3a3c' : '#e2e8f0';\n\n  const [data, setData] = useState\u003CRow[]>([]);\n\n  return (\n    \u003CView style={[styles.screen, { backgroundColor: bg }]}>\n      \u003CView style={styles.toolbar}>\n        \u003CPressable\n          onPress={() =>\n            setData((prev) => [\n              ...prev,\n              { id: String(Date.now()), title: `Книга ${prev.length + 1}` },\n            ])\n          }\n          style={[styles.btn, { backgroundColor: primary }]}\n        >\n          \u003CText style={styles.btnText}>Додати\u003C\u002FText>\n        \u003C\u002FPressable>\n        \u003CPressable\n          onPress={() => setData([])}\n          style={[styles.btn, { backgroundColor: surface, borderColor: border, borderWidth: 1 }]}\n        >\n          \u003CText style={{ color: text, fontWeight: '700' }}>Очистити\u003C\u002FText>\n        \u003C\u002FPressable>\n      \u003C\u002FView>\n\n      \u003CFlatList\n        style={{ flex: 1 }}\n        data={data}\n        keyExtractor={(item) => item.id}\n        contentContainerStyle={\n          data.length === 0 ? styles.emptyContainer : { paddingBottom: 16, gap: 8 }\n        }\n        ListHeaderComponent={\n          \u003CText style={[styles.h, { color: text }]}>Моя полиця\u003C\u002FText>\n        }\n        ListEmptyComponent={\n          \u003CView style={styles.empty}>\n            \u003CText style={[styles.emptyTitle, { color: text }]}>Порожньо\u003C\u002FText>\n            \u003CText style={{ color: muted, textAlign: 'center', lineHeight: 20 }}>\n              Натисніть «Додати» — з’явиться перший рядок. ListEmptyComponent\n              замінює «нічого».\n            \u003C\u002FText>\n          \u003C\u002FView>\n        }\n        renderItem={({ item }) => (\n          \u003CView style={[styles.row, { backgroundColor: surface, borderColor: border }]}>\n            \u003CText style={{ color: text, fontWeight: '600' }}>{item.title}\u003C\u002FText>\n          \u003C\u002FView>\n        )}\n      \u002F>\n    \u003C\u002FView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  screen: { flex: 1, padding: 16, paddingTop: 24 },\n  toolbar: { flexDirection: 'row', gap: 8, marginBottom: 12 },\n  btn: {\n    paddingHorizontal: 14,\n    paddingVertical: 10,\n    borderRadius: 10,\n  },\n  btnText: { color: '#fff', fontWeight: '700' },\n  h: { fontSize: 18, fontWeight: '800', marginBottom: 12 },\n  emptyContainer: { flexGrow: 1 },\n  empty: {\n    flex: 1,\n    minHeight: 220,\n    alignItems: 'center',\n    justifyContent: 'center',\n    gap: 8,\n    paddingHorizontal: 12,\n  },\n  emptyTitle: { fontSize: 18, fontWeight: '700' },\n  row: {\n    borderWidth: 1,\n    borderRadius: 12,\n    padding: 14,\n  },\n});\n",[3525,5882,5883,5900,5906,5913,5920,5927,5934,5941,5948,5959,5963,5987,5991,6003,6019,6039,6059,6079,6099,6122,6142,6146,6173,6177,6183,6215,6238,6245,6260,6278,6287,6332,6337,6342,6370,6375,6407,6415,6421,6441,6480,6484,6523,6531,6539,6543,6549,6567,6579,6603,6612,6655,6660,6669,6710,6714,6723,6747,6790,6830,6836,6842,6852,6861,6866,6885,6924,6972,6981,6988,6993,7002,7007,7012,7017,7034,7059,7087,7095,7105,7116,7125,7130,7151,7177,7192,7200,7210,7221,7231,7241,7251,7260,7265,7285,7292,7301,7310,7319,7324],{"__ignoreMap":3944},[3948,5884,5885,5887,5889,5891,5893,5895,5898],{"class":3950,"line":3951},[3948,5886,4228],{"class":4227},[3948,5888,4232],{"class":4231},[3948,5890,5831],{"class":4235},[3948,5892,4248],{"class":4231},[3948,5894,4251],{"class":4227},[3948,5896,5897],{"class":4254}," 'react'",[3948,5899,4258],{"class":4231},[3948,5901,5902,5904],{"class":3950,"line":3957},[3948,5903,4228],{"class":4227},[3948,5905,5674],{"class":4231},[3948,5907,5908,5911],{"class":3950,"line":3963},[3948,5909,5910],{"class":4235},"  FlatList",[3948,5912,4902],{"class":4231},[3948,5914,5915,5918],{"class":3950,"line":3969},[3948,5916,5917],{"class":4235},"  Pressable",[3948,5919,4902],{"class":4231},[3948,5921,5922,5925],{"class":3950,"line":3976},[3948,5923,5924],{"class":4235},"  StyleSheet",[3948,5926,4902],{"class":4231},[3948,5928,5929,5932],{"class":3950,"line":3982},[3948,5930,5931],{"class":4235},"  Text",[3948,5933,4902],{"class":4231},[3948,5935,5936,5939],{"class":3950,"line":3988},[3948,5937,5938],{"class":4235},"  View",[3948,5940,4902],{"class":4231},[3948,5942,5943,5946],{"class":3950,"line":3994},[3948,5944,5945],{"class":4235},"  useColorScheme",[3948,5947,4902],{"class":4231},[3948,5949,5950,5953,5955,5957],{"class":3950,"line":4000},[3948,5951,5952],{"class":4231},"} ",[3948,5954,4251],{"class":4227},[3948,5956,4255],{"class":4254},[3948,5958,4258],{"class":4231},[3948,5960,5961],{"class":3950,"line":4006},[3948,5962,3973],{"emptyLinePlaceholder":3972},[3948,5964,5965,5967,5969,5971,5973,5975,5977,5979,5981,5983,5985],{"class":3950,"line":4011},[3948,5966,4268],{"class":4267},[3948,5968,4776],{"class":4271},[3948,5970,4275],{"class":4231},[3948,5972,4184],{"class":4235},[3948,5974,4280],{"class":4231},[3948,5976,4283],{"class":4271},[3948,5978,4286],{"class":4231},[3948,5980,4289],{"class":4235},[3948,5982,4280],{"class":4231},[3948,5984,4283],{"class":4271},[3948,5986,4296],{"class":4231},[3948,5988,5989],{"class":3950,"line":4017},[3948,5990,3973],{"emptyLinePlaceholder":3972},[3948,5992,5993,5995,5997,5999,6001],{"class":3950,"line":4023},[3948,5994,4389],{"class":4227},[3948,5996,4952],{"class":4227},[3948,5998,4392],{"class":4267},[3948,6000,4957],{"class":4395},[3948,6002,4399],{"class":4231},[3948,6004,6005,6007,6009,6011,6013,6015,6017],{"class":3950,"line":4029},[3948,6006,4964],{"class":4267},[3948,6008,4967],{"class":4308},[3948,6010,4970],{"class":4231},[3948,6012,4757],{"class":4395},[3948,6014,4975],{"class":4231},[3948,6016,4978],{"class":4254},[3948,6018,4258],{"class":4231},[3948,6020,6021,6023,6025,6027,6029,6031,6033,6035,6037],{"class":3950,"line":4035},[3948,6022,4964],{"class":4267},[3948,6024,4987],{"class":4308},[3948,6026,4970],{"class":4231},[3948,6028,4992],{"class":4235},[3948,6030,4925],{"class":4231},[3948,6032,4997],{"class":4254},[3948,6034,4931],{"class":4231},[3948,6036,5002],{"class":4254},[3948,6038,4258],{"class":4231},[3948,6040,6041,6043,6045,6047,6049,6051,6053,6055,6057],{"class":3950,"line":4041},[3948,6042,4964],{"class":4267},[3948,6044,5011],{"class":4308},[3948,6046,4970],{"class":4231},[3948,6048,4992],{"class":4235},[3948,6050,4925],{"class":4231},[3948,6052,5020],{"class":4254},[3948,6054,4931],{"class":4231},[3948,6056,5025],{"class":4254},[3948,6058,4258],{"class":4231},[3948,6060,6061,6063,6065,6067,6069,6071,6073,6075,6077],{"class":3950,"line":4046},[3948,6062,4964],{"class":4267},[3948,6064,5034],{"class":4308},[3948,6066,4970],{"class":4231},[3948,6068,4992],{"class":4235},[3948,6070,4925],{"class":4231},[3948,6072,5043],{"class":4254},[3948,6074,4931],{"class":4231},[3948,6076,5048],{"class":4254},[3948,6078,4258],{"class":4231},[3948,6080,6081,6083,6085,6087,6089,6091,6093,6095,6097],{"class":3950,"line":4051},[3948,6082,4964],{"class":4267},[3948,6084,5057],{"class":4308},[3948,6086,4970],{"class":4231},[3948,6088,4992],{"class":4235},[3948,6090,4925],{"class":4231},[3948,6092,5066],{"class":4254},[3948,6094,4931],{"class":4231},[3948,6096,5071],{"class":4254},[3948,6098,4258],{"class":4231},[3948,6100,6101,6103,6106,6108,6110,6112,6115,6117,6120],{"class":3950,"line":4057},[3948,6102,4964],{"class":4267},[3948,6104,6105],{"class":4308}," primary",[3948,6107,4970],{"class":4231},[3948,6109,4992],{"class":4235},[3948,6111,4925],{"class":4231},[3948,6113,6114],{"class":4254},"'#3b82f6'",[3948,6116,4931],{"class":4231},[3948,6118,6119],{"class":4254},"'#2563eb'",[3948,6121,4258],{"class":4231},[3948,6123,6124,6126,6128,6130,6132,6134,6136,6138,6140],{"class":3950,"line":4063},[3948,6125,4964],{"class":4267},[3948,6127,5080],{"class":4308},[3948,6129,4970],{"class":4231},[3948,6131,4992],{"class":4235},[3948,6133,4925],{"class":4231},[3948,6135,5089],{"class":4254},[3948,6137,4931],{"class":4231},[3948,6139,5094],{"class":4254},[3948,6141,4258],{"class":4231},[3948,6143,6144],{"class":3950,"line":4069},[3948,6145,3973],{"emptyLinePlaceholder":3972},[3948,6147,6148,6150,6153,6155,6157,6160,6163,6165,6168,6170],{"class":3950,"line":4074},[3948,6149,4964],{"class":4267},[3948,6151,6152],{"class":4231}," [",[3948,6154,3592],{"class":4308},[3948,6156,3593],{"class":4231},[3948,6158,6159],{"class":4308},"setData",[3948,6161,6162],{"class":4231},"] = ",[3948,6164,5831],{"class":4395},[3948,6166,6167],{"class":4231},"\u003C",[3948,6169,4818],{"class":4271},[3948,6171,6172],{"class":4231},"[]>([]);\n",[3948,6174,6175],{"class":3950,"line":4080},[3948,6176,3973],{"emptyLinePlaceholder":3972},[3948,6178,6179,6181],{"class":3950,"line":4086},[3948,6180,4404],{"class":4227},[3948,6182,4407],{"class":4231},[3948,6184,6185,6187,6189,6191,6193,6195,6197,6199,6201,6203,6205,6207,6209,6211,6213],{"class":3950,"line":4091},[3948,6186,4413],{"class":4412},[3948,6188,4245],{"class":4271},[3948,6190,5115],{"class":4421},[3948,6192,4425],{"class":4231},[3948,6194,4428],{"class":4267},[3948,6196,5122],{"class":4445},[3948,6198,5125],{"class":4235},[3948,6200,3555],{"class":4445},[3948,6202,5130],{"class":4235},[3948,6204,5133],{"class":4445},[3948,6206,5136],{"class":4235},[3948,6208,4987],{"class":4235},[3948,6210,5141],{"class":4445},[3948,6212,4515],{"class":4267},[3948,6214,4494],{"class":4412},[3948,6216,6217,6219,6221,6223,6225,6227,6229,6231,6234,6236],{"class":3950,"line":4096},[3948,6218,5150],{"class":4412},[3948,6220,4245],{"class":4271},[3948,6222,5115],{"class":4421},[3948,6224,4425],{"class":4231},[3948,6226,4428],{"class":4267},[3948,6228,5125],{"class":4235},[3948,6230,3555],{"class":4445},[3948,6232,6233],{"class":4235},"toolbar",[3948,6235,4515],{"class":4267},[3948,6237,4494],{"class":4412},[3948,6239,6240,6242],{"class":3950,"line":5272},[3948,6241,4489],{"class":4412},[3948,6243,6244],{"class":4271},"Pressable\n",[3948,6246,6247,6250,6252,6254,6257],{"class":3950,"line":5286},[3948,6248,6249],{"class":4421},"          onPress",[3948,6251,4425],{"class":4231},[3948,6253,4428],{"class":4267},[3948,6255,6256],{"class":4445},"() ",[3948,6258,6259],{"class":4267},"=>\n",[3948,6261,6262,6265,6268,6271,6273,6275],{"class":3950,"line":5312},[3948,6263,6264],{"class":4395},"            setData",[3948,6266,6267],{"class":4445},"((",[3948,6269,6270],{"class":4235},"prev",[3948,6272,4168],{"class":4445},[3948,6274,4454],{"class":4267},[3948,6276,6277],{"class":4445}," [\n",[3948,6279,6280,6283,6285],{"class":3950,"line":5341},[3948,6281,6282],{"class":4231},"              ...",[3948,6284,6270],{"class":4235},[3948,6286,4902],{"class":4445},[3948,6288,6289,6291,6293,6295,6297,6300,6302,6305,6308,6310,6313,6315,6317,6319,6322,6324,6326,6328,6330],{"class":3950,"line":5361},[3948,6290,5398],{"class":4445},[3948,6292,4325],{"class":4235},[3948,6294,4863],{"class":4395},[3948,6296,4446],{"class":4445},[3948,6298,6299],{"class":4235},"Date",[3948,6301,3555],{"class":4445},[3948,6303,6304],{"class":4395},"now",[3948,6306,6307],{"class":4445},"()), ",[3948,6309,4333],{"class":4235},[3948,6311,6312],{"class":4254}," `Книга ",[3948,6314,4886],{"class":4267},[3948,6316,6270],{"class":4235},[3948,6318,3555],{"class":4445},[3948,6320,6321],{"class":4235},"length",[3948,6323,4891],{"class":4231},[3948,6325,4894],{"class":4836},[3948,6327,4515],{"class":4267},[3948,6329,4899],{"class":4254},[3948,6331,4339],{"class":4445},[3948,6333,6334],{"class":3950,"line":5369},[3948,6335,6336],{"class":4445},"            ])\n",[3948,6338,6339],{"class":3950,"line":5382},[3948,6340,6341],{"class":4267},"          }\n",[3948,6343,6344,6347,6349,6351,6353,6355,6357,6360,6362,6364,6366,6368],{"class":3950,"line":5395},[3948,6345,6346],{"class":4421},"          style",[3948,6348,4425],{"class":4231},[3948,6350,4428],{"class":4267},[3948,6352,5122],{"class":4445},[3948,6354,5125],{"class":4235},[3948,6356,3555],{"class":4445},[3948,6358,6359],{"class":4235},"btn",[3948,6361,5133],{"class":4445},[3948,6363,5136],{"class":4235},[3948,6365,6105],{"class":4235},[3948,6367,5141],{"class":4445},[3948,6369,4003],{"class":4267},[3948,6371,6372],{"class":3950,"line":5414},[3948,6373,6374],{"class":4412},"        >\n",[3948,6376,6377,6379,6381,6383,6385,6387,6389,6391,6394,6396,6398,6401,6403,6405],{"class":3950,"line":5422},[3948,6378,4499],{"class":4412},[3948,6380,4240],{"class":4271},[3948,6382,5115],{"class":4421},[3948,6384,4425],{"class":4231},[3948,6386,4428],{"class":4267},[3948,6388,5125],{"class":4235},[3948,6390,3555],{"class":4445},[3948,6392,6393],{"class":4235},"btnText",[3948,6395,4515],{"class":4267},[3948,6397,4504],{"class":4412},[3948,6399,6400],{"class":4231},"Додати",[3948,6402,4518],{"class":4412},[3948,6404,4240],{"class":4271},[3948,6406,4494],{"class":4412},[3948,6408,6409,6411,6413],{"class":3950,"line":5428},[3948,6410,4527],{"class":4412},[3948,6412,3897],{"class":4271},[3948,6414,4494],{"class":4412},[3948,6416,6417,6419],{"class":3950,"line":5478},[3948,6418,4489],{"class":4412},[3948,6420,6244],{"class":4271},[3948,6422,6423,6425,6427,6429,6431,6433,6436,6439],{"class":3950,"line":5525},[3948,6424,6249],{"class":4421},[3948,6426,4425],{"class":4231},[3948,6428,4428],{"class":4267},[3948,6430,6256],{"class":4445},[3948,6432,4454],{"class":4267},[3948,6434,6435],{"class":4395}," setData",[3948,6437,6438],{"class":4445},"([])",[3948,6440,4003],{"class":4267},[3948,6442,6443,6445,6447,6449,6451,6453,6455,6457,6459,6461,6463,6465,6467,6469,6471,6474,6476,6478],{"class":3950,"line":5535},[3948,6444,6346],{"class":4421},[3948,6446,4425],{"class":4231},[3948,6448,4428],{"class":4267},[3948,6450,5122],{"class":4445},[3948,6452,5125],{"class":4235},[3948,6454,3555],{"class":4445},[3948,6456,6359],{"class":4235},[3948,6458,5133],{"class":4445},[3948,6460,5136],{"class":4235},[3948,6462,5011],{"class":4235},[3948,6464,3593],{"class":4445},[3948,6466,5407],{"class":4235},[3948,6468,5080],{"class":4235},[3948,6470,3593],{"class":4445},[3948,6472,6473],{"class":4235},"borderWidth:",[3948,6475,4894],{"class":4836},[3948,6477,5141],{"class":4445},[3948,6479,4003],{"class":4267},[3948,6481,6482],{"class":3950,"line":5543},[3948,6483,6374],{"class":4412},[3948,6485,6486,6488,6490,6492,6494,6496,6498,6500,6502,6504,6506,6508,6510,6512,6514,6517,6519,6521],{"class":3950,"line":5549},[3948,6487,4499],{"class":4412},[3948,6489,4240],{"class":4271},[3948,6491,5115],{"class":4421},[3948,6493,4425],{"class":4231},[3948,6495,4428],{"class":4267},[3948,6497,5204],{"class":4445},[3948,6499,5172],{"class":4235},[3948,6501,5034],{"class":4235},[3948,6503,3593],{"class":4445},[3948,6505,5639],{"class":4235},[3948,6507,5730],{"class":4254},[3948,6509,5227],{"class":4445},[3948,6511,4515],{"class":4267},[3948,6513,4504],{"class":4412},[3948,6515,6516],{"class":4231},"Очистити",[3948,6518,4518],{"class":4412},[3948,6520,4240],{"class":4271},[3948,6522,4494],{"class":4412},[3948,6524,6525,6527,6529],{"class":3950,"line":5559},[3948,6526,4527],{"class":4412},[3948,6528,3897],{"class":4271},[3948,6530,4494],{"class":4412},[3948,6532,6533,6535,6537],{"class":3950,"line":5564},[3948,6534,5241],{"class":4412},[3948,6536,4245],{"class":4271},[3948,6538,4494],{"class":4412},[3948,6540,6541],{"class":3950,"line":5569},[3948,6542,3973],{"emptyLinePlaceholder":3972},[3948,6544,6545,6547],{"class":3950,"line":5574},[3948,6546,5150],{"class":4412},[3948,6548,4416],{"class":4271},[3948,6550,6551,6553,6555,6557,6559,6561,6563,6565],{"class":3950,"line":5594},[3948,6552,5256],{"class":4421},[3948,6554,4425],{"class":4231},[3948,6556,4428],{"class":4267},[3948,6558,5204],{"class":4445},[3948,6560,5602],{"class":4235},[3948,6562,4894],{"class":4836},[3948,6564,5227],{"class":4445},[3948,6566,4003],{"class":4267},[3948,6568,6569,6571,6573,6575,6577],{"class":3950,"line":5624},[3948,6570,5275],{"class":4421},[3948,6572,4425],{"class":4231},[3948,6574,4428],{"class":4267},[3948,6576,3592],{"class":4235},[3948,6578,4003],{"class":4267},[3948,6580,6581,6583,6585,6587,6589,6591,6593,6595,6597,6599,6601],{"class":3950,"line":5654},[3948,6582,5289],{"class":4421},[3948,6584,4425],{"class":4231},[3948,6586,4428],{"class":4267},[3948,6588,4446],{"class":4445},[3948,6590,4449],{"class":4235},[3948,6592,4168],{"class":4445},[3948,6594,4454],{"class":4267},[3948,6596,4457],{"class":4235},[3948,6598,3555],{"class":4445},[3948,6600,4184],{"class":4235},[3948,6602,4003],{"class":4267},[3948,6604,6605,6607,6609],{"class":3950,"line":5668},[3948,6606,5315],{"class":4421},[3948,6608,4425],{"class":4231},[3948,6610,6611],{"class":4267},"{\n",[3948,6613,6614,6617,6619,6621,6624,6627,6630,6632,6634,6637,6640,6642,6644,6646,6648,6650,6652],{"class":3950,"line":5677},[3948,6615,6616],{"class":4235},"          data",[3948,6618,3555],{"class":4445},[3948,6620,6321],{"class":4235},[3948,6622,6623],{"class":4231}," ===",[3948,6625,6626],{"class":4836}," 0",[3948,6628,6629],{"class":4231}," ?",[3948,6631,5579],{"class":4235},[3948,6633,3555],{"class":4445},[3948,6635,6636],{"class":4235},"emptyContainer",[3948,6638,6639],{"class":4231}," :",[3948,6641,4232],{"class":4445},[3948,6643,5324],{"class":4235},[3948,6645,5327],{"class":4836},[3948,6647,3593],{"class":4445},[3948,6649,5332],{"class":4235},[3948,6651,5216],{"class":4836},[3948,6653,6654],{"class":4445}," }\n",[3948,6656,6657],{"class":3950,"line":5687},[3948,6658,6659],{"class":4267},"        }\n",[3948,6661,6662,6665,6667],{"class":3950,"line":5698},[3948,6663,6664],{"class":4421},"        ListHeaderComponent",[3948,6666,4425],{"class":4231},[3948,6668,6611],{"class":4267},[3948,6670,6671,6673,6675,6677,6679,6681,6683,6685,6687,6689,6691,6693,6695,6697,6699,6701,6704,6706,6708],{"class":3950,"line":5709},[3948,6672,4499],{"class":4412},[3948,6674,4240],{"class":4271},[3948,6676,5115],{"class":4421},[3948,6678,4425],{"class":4231},[3948,6680,4428],{"class":4267},[3948,6682,5122],{"class":4445},[3948,6684,5125],{"class":4235},[3948,6686,3555],{"class":4445},[3948,6688,5167],{"class":4235},[3948,6690,5133],{"class":4445},[3948,6692,5172],{"class":4235},[3948,6694,5034],{"class":4235},[3948,6696,5141],{"class":4445},[3948,6698,4515],{"class":4267},[3948,6700,4504],{"class":4412},[3948,6702,6703],{"class":4445},"Моя полиця",[3948,6705,4518],{"class":4412},[3948,6707,4240],{"class":4271},[3948,6709,4494],{"class":4412},[3948,6711,6712],{"class":3950,"line":5715},[3948,6713,6659],{"class":4267},[3948,6715,6716,6719,6721],{"class":3950,"line":5741},[3948,6717,6718],{"class":4421},"        ListEmptyComponent",[3948,6720,4425],{"class":4231},[3948,6722,6611],{"class":4267},[3948,6724,6726,6728,6730,6732,6734,6736,6738,6740,6743,6745],{"class":3950,"line":6725},57,[3948,6727,4499],{"class":4412},[3948,6729,4245],{"class":4271},[3948,6731,5115],{"class":4421},[3948,6733,4425],{"class":4231},[3948,6735,4428],{"class":4267},[3948,6737,5125],{"class":4235},[3948,6739,3555],{"class":4445},[3948,6741,6742],{"class":4235},"empty",[3948,6744,4515],{"class":4267},[3948,6746,4494],{"class":4412},[3948,6748,6750,6752,6754,6756,6758,6760,6762,6764,6766,6769,6771,6773,6775,6777,6779,6781,6784,6786,6788],{"class":3950,"line":6749},58,[3948,6751,5431],{"class":4412},[3948,6753,4240],{"class":4271},[3948,6755,5115],{"class":4421},[3948,6757,4425],{"class":4231},[3948,6759,4428],{"class":4267},[3948,6761,5122],{"class":4445},[3948,6763,5125],{"class":4235},[3948,6765,3555],{"class":4445},[3948,6767,6768],{"class":4235},"emptyTitle",[3948,6770,5133],{"class":4445},[3948,6772,5172],{"class":4235},[3948,6774,5034],{"class":4235},[3948,6776,5141],{"class":4445},[3948,6778,4515],{"class":4267},[3948,6780,4504],{"class":4412},[3948,6782,6783],{"class":4445},"Порожньо",[3948,6785,4518],{"class":4412},[3948,6787,4240],{"class":4271},[3948,6789,4494],{"class":4412},[3948,6791,6793,6795,6797,6799,6801,6803,6805,6807,6809,6811,6814,6817,6819,6822,6824,6826,6828],{"class":3950,"line":6792},59,[3948,6794,5431],{"class":4412},[3948,6796,4240],{"class":4271},[3948,6798,5115],{"class":4421},[3948,6800,4425],{"class":4231},[3948,6802,4428],{"class":4267},[3948,6804,5204],{"class":4445},[3948,6806,5172],{"class":4235},[3948,6808,5057],{"class":4235},[3948,6810,3593],{"class":4445},[3948,6812,6813],{"class":4235},"textAlign:",[3948,6815,6816],{"class":4254}," 'center'",[3948,6818,3593],{"class":4445},[3948,6820,6821],{"class":4235},"lineHeight:",[3948,6823,5634],{"class":4836},[3948,6825,5227],{"class":4445},[3948,6827,4515],{"class":4267},[3948,6829,4494],{"class":4412},[3948,6831,6833],{"class":3950,"line":6832},60,[3948,6834,6835],{"class":4445},"              Натисніть «Додати» — з’явиться перший рядок. ListEmptyComponent\n",[3948,6837,6839],{"class":3950,"line":6838},61,[3948,6840,6841],{"class":4445},"              замінює «нічого».\n",[3948,6843,6845,6848,6850],{"class":3950,"line":6844},62,[3948,6846,6847],{"class":4412},"            \u003C\u002F",[3948,6849,4240],{"class":4271},[3948,6851,4494],{"class":4412},[3948,6853,6855,6857,6859],{"class":3950,"line":6854},63,[3948,6856,5528],{"class":4412},[3948,6858,4245],{"class":4271},[3948,6860,4494],{"class":4412},[3948,6862,6864],{"class":3950,"line":6863},64,[3948,6865,6659],{"class":4267},[3948,6867,6869,6871,6873,6875,6877,6879,6881,6883],{"class":3950,"line":6868},65,[3948,6870,5344],{"class":4421},[3948,6872,4425],{"class":4231},[3948,6874,4428],{"class":4267},[3948,6876,4475],{"class":4445},[3948,6878,4449],{"class":4235},[3948,6880,4480],{"class":4445},[3948,6882,4454],{"class":4267},[3948,6884,4407],{"class":4445},[3948,6886,6888,6890,6892,6894,6896,6898,6900,6902,6904,6906,6908,6910,6912,6914,6916,6918,6920,6922],{"class":3950,"line":6887},66,[3948,6889,4499],{"class":4412},[3948,6891,4245],{"class":4271},[3948,6893,5115],{"class":4421},[3948,6895,4425],{"class":4231},[3948,6897,4428],{"class":4267},[3948,6899,5122],{"class":4445},[3948,6901,5125],{"class":4235},[3948,6903,3555],{"class":4445},[3948,6905,5390],{"class":4235},[3948,6907,5133],{"class":4445},[3948,6909,5136],{"class":4235},[3948,6911,5011],{"class":4235},[3948,6913,3593],{"class":4445},[3948,6915,5407],{"class":4235},[3948,6917,5080],{"class":4235},[3948,6919,5141],{"class":4445},[3948,6921,4515],{"class":4267},[3948,6923,4494],{"class":4412},[3948,6925,6927,6929,6931,6933,6935,6937,6939,6941,6943,6945,6947,6950,6952,6954,6956,6958,6960,6962,6964,6966,6968,6970],{"class":3950,"line":6926},67,[3948,6928,5431],{"class":4412},[3948,6930,4240],{"class":4271},[3948,6932,5115],{"class":4421},[3948,6934,4425],{"class":4231},[3948,6936,4428],{"class":4267},[3948,6938,5204],{"class":4445},[3948,6940,5172],{"class":4235},[3948,6942,5034],{"class":4235},[3948,6944,3593],{"class":4445},[3948,6946,5639],{"class":4235},[3948,6948,6949],{"class":4254}," '600'",[3948,6951,5227],{"class":4445},[3948,6953,4515],{"class":4267},[3948,6955,4504],{"class":4412},[3948,6957,4428],{"class":4267},[3948,6959,4449],{"class":4235},[3948,6961,3555],{"class":4445},[3948,6963,4289],{"class":4235},[3948,6965,4515],{"class":4267},[3948,6967,4518],{"class":4412},[3948,6969,4240],{"class":4271},[3948,6971,4494],{"class":4412},[3948,6973,6975,6977,6979],{"class":3950,"line":6974},68,[3948,6976,5528],{"class":4412},[3948,6978,4245],{"class":4271},[3948,6980,4494],{"class":4412},[3948,6982,6984,6986],{"class":3950,"line":6983},69,[3948,6985,5538],{"class":4445},[3948,6987,4003],{"class":4267},[3948,6989,6991],{"class":3950,"line":6990},70,[3948,6992,5546],{"class":4412},[3948,6994,6996,6998,7000],{"class":3950,"line":6995},71,[3948,6997,5552],{"class":4412},[3948,6999,4245],{"class":4271},[3948,7001,4494],{"class":4412},[3948,7003,7005],{"class":3950,"line":7004},72,[3948,7006,4548],{"class":4231},[3948,7008,7010],{"class":3950,"line":7009},73,[3948,7011,4003],{"class":4231},[3948,7013,7015],{"class":3950,"line":7014},74,[3948,7016,3973],{"emptyLinePlaceholder":3972},[3948,7018,7020,7022,7024,7026,7028,7030,7032],{"class":3950,"line":7019},75,[3948,7021,4305],{"class":4267},[3948,7023,5579],{"class":4308},[3948,7025,4970],{"class":4231},[3948,7027,4744],{"class":4235},[3948,7029,3555],{"class":4231},[3948,7031,5588],{"class":4395},[3948,7033,5591],{"class":4231},[3948,7035,7037,7039,7041,7043,7045,7047,7049,7051,7053,7055,7057],{"class":3950,"line":7036},76,[3948,7038,5597],{"class":4235},[3948,7040,4232],{"class":4231},[3948,7042,5602],{"class":4235},[3948,7044,4894],{"class":4836},[3948,7046,3593],{"class":4231},[3948,7048,5609],{"class":4235},[3948,7050,5327],{"class":4836},[3948,7052,3593],{"class":4231},[3948,7054,5616],{"class":4235},[3948,7056,5619],{"class":4836},[3948,7058,4339],{"class":4231},[3948,7060,7062,7065,7067,7070,7073,7075,7077,7079,7081,7083,7085],{"class":3950,"line":7061},77,[3948,7063,7064],{"class":4235},"  toolbar:",[3948,7066,4232],{"class":4231},[3948,7068,7069],{"class":4235},"flexDirection:",[3948,7071,7072],{"class":4254}," 'row'",[3948,7074,3593],{"class":4231},[3948,7076,5332],{"class":4235},[3948,7078,5216],{"class":4836},[3948,7080,3593],{"class":4231},[3948,7082,5213],{"class":4235},[3948,7084,5693],{"class":4836},[3948,7086,4339],{"class":4231},[3948,7088,7090,7093],{"class":3950,"line":7089},78,[3948,7091,7092],{"class":4235},"  btn:",[3948,7094,5674],{"class":4231},[3948,7096,7098,7101,7103],{"class":3950,"line":7097},79,[3948,7099,7100],{"class":4235},"    paddingHorizontal:",[3948,7102,5704],{"class":4836},[3948,7104,4902],{"class":4231},[3948,7106,7108,7111,7114],{"class":3950,"line":7107},80,[3948,7109,7110],{"class":4235},"    paddingVertical:",[3948,7112,7113],{"class":4836}," 10",[3948,7115,4902],{"class":4231},[3948,7117,7119,7121,7123],{"class":3950,"line":7118},81,[3948,7120,5690],{"class":4235},[3948,7122,7113],{"class":4836},[3948,7124,4902],{"class":4231},[3948,7126,7128],{"class":3950,"line":7127},82,[3948,7129,5712],{"class":4231},[3948,7131,7133,7136,7138,7140,7143,7145,7147,7149],{"class":3950,"line":7132},83,[3948,7134,7135],{"class":4235},"  btnText:",[3948,7137,4232],{"class":4231},[3948,7139,5172],{"class":4235},[3948,7141,7142],{"class":4254}," '#fff'",[3948,7144,3593],{"class":4231},[3948,7146,5639],{"class":4235},[3948,7148,5730],{"class":4254},[3948,7150,4339],{"class":4231},[3948,7152,7154,7156,7158,7160,7163,7165,7167,7169,7171,7173,7175],{"class":3950,"line":7153},84,[3948,7155,5627],{"class":4235},[3948,7157,4232],{"class":4231},[3948,7159,5221],{"class":4235},[3948,7161,7162],{"class":4836}," 18",[3948,7164,3593],{"class":4231},[3948,7166,5639],{"class":4235},[3948,7168,5642],{"class":4254},[3948,7170,3593],{"class":4231},[3948,7172,5213],{"class":4235},[3948,7174,5693],{"class":4836},[3948,7176,4339],{"class":4231},[3948,7178,7180,7183,7185,7188,7190],{"class":3950,"line":7179},85,[3948,7181,7182],{"class":4235},"  emptyContainer:",[3948,7184,4232],{"class":4231},[3948,7186,7187],{"class":4235},"flexGrow:",[3948,7189,4894],{"class":4836},[3948,7191,4339],{"class":4231},[3948,7193,7195,7198],{"class":3950,"line":7194},86,[3948,7196,7197],{"class":4235},"  empty:",[3948,7199,5674],{"class":4231},[3948,7201,7203,7206,7208],{"class":3950,"line":7202},87,[3948,7204,7205],{"class":4235},"    flex:",[3948,7207,4894],{"class":4836},[3948,7209,4902],{"class":4231},[3948,7211,7213,7216,7219],{"class":3950,"line":7212},88,[3948,7214,7215],{"class":4235},"    minHeight:",[3948,7217,7218],{"class":4836}," 220",[3948,7220,4902],{"class":4231},[3948,7222,7224,7227,7229],{"class":3950,"line":7223},89,[3948,7225,7226],{"class":4235},"    alignItems:",[3948,7228,6816],{"class":4254},[3948,7230,4902],{"class":4231},[3948,7232,7234,7237,7239],{"class":3950,"line":7233},90,[3948,7235,7236],{"class":4235},"    justifyContent:",[3948,7238,6816],{"class":4254},[3948,7240,4902],{"class":4231},[3948,7242,7244,7247,7249],{"class":3950,"line":7243},91,[3948,7245,7246],{"class":4235},"    gap:",[3948,7248,5216],{"class":4836},[3948,7250,4902],{"class":4231},[3948,7252,7254,7256,7258],{"class":3950,"line":7253},92,[3948,7255,7100],{"class":4235},[3948,7257,5693],{"class":4836},[3948,7259,4902],{"class":4231},[3948,7261,7263],{"class":3950,"line":7262},93,[3948,7264,5712],{"class":4231},[3948,7266,7268,7271,7273,7275,7277,7279,7281,7283],{"class":3950,"line":7267},94,[3948,7269,7270],{"class":4235},"  emptyTitle:",[3948,7272,4232],{"class":4231},[3948,7274,5221],{"class":4235},[3948,7276,7162],{"class":4836},[3948,7278,3593],{"class":4231},[3948,7280,5639],{"class":4235},[3948,7282,5730],{"class":4254},[3948,7284,4339],{"class":4231},[3948,7286,7288,7290],{"class":3950,"line":7287},95,[3948,7289,5671],{"class":4235},[3948,7291,5674],{"class":4231},[3948,7293,7295,7297,7299],{"class":3950,"line":7294},96,[3948,7296,5680],{"class":4235},[3948,7298,4894],{"class":4836},[3948,7300,4902],{"class":4231},[3948,7302,7304,7306,7308],{"class":3950,"line":7303},97,[3948,7305,5690],{"class":4235},[3948,7307,5693],{"class":4836},[3948,7309,4902],{"class":4231},[3948,7311,7313,7315,7317],{"class":3950,"line":7312},98,[3948,7314,5701],{"class":4235},[3948,7316,5704],{"class":4836},[3948,7318,4902],{"class":4231},[3948,7320,7322],{"class":3950,"line":7321},99,[3948,7323,5712],{"class":4231},[3948,7325,7327],{"class":3950,"line":7326},100,[3948,7328,5744],{"class":4231},[3674,7330,7331,7336,7337,7340,7341,7344,7345,7348],{},[3516,7332,7333,7335],{},[3525,7334,4637],{}," + empty."," Щоб порожній стан ",[3516,7338,7339],{},"вирівняти по центру"," вертикально, часто ставлять ",[3525,7342,7343],{},"contentContainerStyle={{ flexGrow: 1 }}"," (коли ",[3525,7346,7347],{},"data.length === 0","). Інакше empty «прилипає» до верху скролу.",[3700,7350],{},[3507,7352,7354,7355,7357],{"id":7353},"pull-to-refresh-refreshcontrol","Pull-to-refresh (",[3525,7356,3691],{},")",[3512,7359,7360,7363,7364,7367],{},[3516,7361,7362],{},"Pull-to-refresh"," — жест «потягнути список вниз і відпустити», після якого застосунок ",[3516,7365,7366],{},"оновлює"," дані. На iOS звичний спінер зверху; на Android — свій Material-індикатор.",[3512,7369,7370],{},[3929,7371],{"alt":7372,"className":7373,"src":7374},"Pull-to-refresh і пагінація UI: жести оновлення та підвантаження списку",[3933],"\u002Fimages\u002Freact-native\u002Flists-and-virtualization\u002F03.svg",[3512,7376,7377,7378,7382,7383,7386,7387,3686,7389,3686,7391,7393],{},"У React Native це компонент ",[3516,7379,7380],{},[3525,7381,3691],{},", який передають у ",[3525,7384,7385],{},"refreshControl"," у ",[3525,7388,3531],{},[3525,7390,3551],{},[3525,7392,3634],{}," (вертикальний скрол).",[4143,7395,7396,7403,7414],{},[4146,7397,7398,7399,7402],{"name":4684,"type":4712},"Чи зараз іде оновлення. ",[3525,7400,7401],{},"true"," — крутиться індикатор, навіть якщо жест уже відпущено.",[4146,7404,7406,7407,7410,7411,3555],{"name":4687,"type":7405},"() => void","Колбек після жесту. Тут ви ставите ",[3525,7408,7409],{},"refreshing = true",", вантажите дані, потім ",[3525,7412,7413],{},"false",[4146,7415,7418,7419,7422,7423,7426],{"name":7416,"type":7417},"tintColor \u002F colors","стиль","iOS: ",[3525,7420,7421],{},"tintColor",". Android: ",[3525,7424,7425],{},"colors={[…]}"," — колір індикатора під ваш primary.",[3846,7428,7430],{"id":7429},"демо-оновлення-списку","Демо: оновлення списку",[4721,7432,7434],{"device":4723,"filename":7433,"height":4725,"title":7362},"PullRefresh.tsx",[3939,7435,7437],{"className":4218,"code":7436,"language":4220,"meta":3944,"style":3944},"import { useCallback, useState } from 'react';\nimport {\n  FlatList,\n  RefreshControl,\n  StyleSheet,\n  Text,\n  View,\n  useColorScheme,\n} from 'react-native';\n\ntype Row = { id: string; title: string; stamp: number };\n\nfunction makeRows(seed: number): Row[] {\n  return Array.from({ length: 12 }, (_, i) => ({\n    id: `${seed}-${i}`,\n    title: `Елемент ${i + 1}`,\n    stamp: seed,\n  }));\n}\n\nexport default function App() {\n  const dark = useColorScheme() === 'dark';\n  const bg = dark ? '#000' : '#F8FAFC';\n  const surface = dark ? '#1c1c1e' : '#fff';\n  const text = dark ? '#f5f5f7' : '#0f172a';\n  const muted = dark ? '#a1a1aa' : '#64748b';\n  const primary = dark ? '#3b82f6' : '#2563eb';\n  const border = dark ? '#3a3a3c' : '#e2e8f0';\n\n  const [seed, setSeed] = useState(1);\n  const [data, setData] = useState(() => makeRows(1));\n  const [refreshing, setRefreshing] = useState(false);\n\n  const onRefresh = useCallback(() => {\n    setRefreshing(true);\n    setTimeout(() => {\n      const next = seed + 1;\n      setSeed(next);\n      setData(makeRows(next));\n      setRefreshing(false);\n    }, 800);\n  }, [seed]);\n\n  return (\n    \u003CView style={[styles.screen, { backgroundColor: bg }]}>\n      \u003CText style={[styles.h, { color: text }]}>Потягніть униз\u003C\u002FText>\n      \u003CText style={{ color: muted, marginBottom: 8, fontSize: 13 }}>\n        Оновлення №{seed} · mock-затримка 800 ms\n      \u003C\u002FText>\n      \u003CFlatList\n        style={{ flex: 1 }}\n        data={data}\n        keyExtractor={(item) => item.id}\n        contentContainerStyle={{ gap: 8, paddingBottom: 16 }}\n        refreshControl={\n          \u003CRefreshControl\n            refreshing={refreshing}\n            onRefresh={onRefresh}\n            tintColor={primary}\n            colors={[primary]}\n          \u002F>\n        }\n        renderItem={({ item }) => (\n          \u003CView\n            style={[styles.row, { backgroundColor: surface, borderColor: border }]}\n          >\n            \u003CText style={{ color: text, fontWeight: '600' }}>{item.title}\u003C\u002FText>\n            \u003CText style={{ color: muted, fontSize: 12 }}>batch {item.stamp}\u003C\u002FText>\n          \u003C\u002FView>\n        )}\n      \u002F>\n    \u003C\u002FView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  screen: { flex: 1, padding: 16, paddingTop: 24 },\n  h: { fontSize: 20, fontWeight: '800' },\n  row: {\n    borderWidth: 1,\n    borderRadius: 12,\n    padding: 14,\n    flexDirection: 'row',\n    justifyContent: 'space-between',\n    alignItems: 'center',\n  },\n});\n",[3525,7438,7439,7459,7465,7471,7478,7484,7490,7496,7502,7512,7516,7550,7554,7579,7610,7637,7659,7669,7674,7678,7682,7694,7710,7730,7750,7770,7790,7810,7830,7834,7858,7888,7911,7915,7932,7943,7954,7972,7984,8000,8011,8021,8031,8035,8041,8073,8114,8150,8164,8172,8178,8196,8208,8232,8256,8265,8272,8285,8298,8312,8330,8335,8339,8357,8363,8395,8399,8445,8494,8502,8508,8512,8520,8524,8528,8532,8548,8572,8590,8596,8604,8612,8620,8629,8638,8646,8650],{"__ignoreMap":3944},[3948,7440,7441,7443,7445,7447,7449,7451,7453,7455,7457],{"class":3950,"line":3951},[3948,7442,4228],{"class":4227},[3948,7444,4232],{"class":4231},[3948,7446,4586],{"class":4235},[3948,7448,3593],{"class":4231},[3948,7450,5831],{"class":4235},[3948,7452,4248],{"class":4231},[3948,7454,4251],{"class":4227},[3948,7456,5897],{"class":4254},[3948,7458,4258],{"class":4231},[3948,7460,7461,7463],{"class":3950,"line":3957},[3948,7462,4228],{"class":4227},[3948,7464,5674],{"class":4231},[3948,7466,7467,7469],{"class":3950,"line":3963},[3948,7468,5910],{"class":4235},[3948,7470,4902],{"class":4231},[3948,7472,7473,7476],{"class":3950,"line":3969},[3948,7474,7475],{"class":4235},"  RefreshControl",[3948,7477,4902],{"class":4231},[3948,7479,7480,7482],{"class":3950,"line":3976},[3948,7481,5924],{"class":4235},[3948,7483,4902],{"class":4231},[3948,7485,7486,7488],{"class":3950,"line":3982},[3948,7487,5931],{"class":4235},[3948,7489,4902],{"class":4231},[3948,7491,7492,7494],{"class":3950,"line":3988},[3948,7493,5938],{"class":4235},[3948,7495,4902],{"class":4231},[3948,7497,7498,7500],{"class":3950,"line":3994},[3948,7499,5945],{"class":4235},[3948,7501,4902],{"class":4231},[3948,7503,7504,7506,7508,7510],{"class":3950,"line":4000},[3948,7505,5952],{"class":4231},[3948,7507,4251],{"class":4227},[3948,7509,4255],{"class":4254},[3948,7511,4258],{"class":4231},[3948,7513,7514],{"class":3950,"line":4006},[3948,7515,3973],{"emptyLinePlaceholder":3972},[3948,7517,7518,7520,7522,7524,7526,7528,7530,7532,7534,7536,7538,7540,7543,7545,7548],{"class":3950,"line":4011},[3948,7519,4268],{"class":4267},[3948,7521,4776],{"class":4271},[3948,7523,4275],{"class":4231},[3948,7525,4184],{"class":4235},[3948,7527,4280],{"class":4231},[3948,7529,4283],{"class":4271},[3948,7531,4286],{"class":4231},[3948,7533,4289],{"class":4235},[3948,7535,4280],{"class":4231},[3948,7537,4283],{"class":4271},[3948,7539,4286],{"class":4231},[3948,7541,7542],{"class":4235},"stamp",[3948,7544,4280],{"class":4231},[3948,7546,7547],{"class":4271},"number",[3948,7549,4296],{"class":4231},[3948,7551,7552],{"class":3950,"line":4017},[3948,7553,3973],{"emptyLinePlaceholder":3972},[3948,7555,7556,7559,7562,7564,7567,7569,7571,7574,7576],{"class":3950,"line":4023},[3948,7557,7558],{"class":4267},"function",[3948,7560,7561],{"class":4395}," makeRows",[3948,7563,4446],{"class":4231},[3948,7565,7566],{"class":4235},"seed",[3948,7568,4280],{"class":4231},[3948,7570,7547],{"class":4271},[3948,7572,7573],{"class":4231},"): ",[3948,7575,4818],{"class":4271},[3948,7577,7578],{"class":4231},"[] {\n",[3948,7580,7581,7583,7586,7588,7590,7592,7594,7596,7598,7600,7602,7604,7606,7608],{"class":3950,"line":4029},[3948,7582,4404],{"class":4227},[3948,7584,7585],{"class":4235}," Array",[3948,7587,3555],{"class":4231},[3948,7589,4251],{"class":4395},[3948,7591,4475],{"class":4231},[3948,7593,4833],{"class":4235},[3948,7595,5693],{"class":4836},[3948,7597,4840],{"class":4231},[3948,7599,4843],{"class":4235},[3948,7601,3593],{"class":4231},[3948,7603,4848],{"class":4235},[3948,7605,4168],{"class":4231},[3948,7607,4454],{"class":4267},[3948,7609,4855],{"class":4231},[3948,7611,7612,7615,7618,7620,7622,7624,7627,7629,7631,7633,7635],{"class":3950,"line":4035},[3948,7613,7614],{"class":4235},"    id:",[3948,7616,7617],{"class":4254}," `",[3948,7619,4886],{"class":4267},[3948,7621,7566],{"class":4235},[3948,7623,4515],{"class":4267},[3948,7625,7626],{"class":4254},"-",[3948,7628,4886],{"class":4267},[3948,7630,4848],{"class":4235},[3948,7632,4515],{"class":4267},[3948,7634,4899],{"class":4254},[3948,7636,4902],{"class":4231},[3948,7638,7639,7642,7645,7647,7649,7651,7653,7655,7657],{"class":3950,"line":4041},[3948,7640,7641],{"class":4235},"    title:",[3948,7643,7644],{"class":4254}," `Елемент ",[3948,7646,4886],{"class":4267},[3948,7648,4848],{"class":4235},[3948,7650,4891],{"class":4231},[3948,7652,4894],{"class":4836},[3948,7654,4515],{"class":4267},[3948,7656,4899],{"class":4254},[3948,7658,4902],{"class":4231},[3948,7660,7661,7664,7667],{"class":3950,"line":4046},[3948,7662,7663],{"class":4235},"    stamp:",[3948,7665,7666],{"class":4235}," seed",[3948,7668,4902],{"class":4231},[3948,7670,7671],{"class":3950,"line":4051},[3948,7672,7673],{"class":4231},"  }));\n",[3948,7675,7676],{"class":3950,"line":4057},[3948,7677,4003],{"class":4231},[3948,7679,7680],{"class":3950,"line":4063},[3948,7681,3973],{"emptyLinePlaceholder":3972},[3948,7683,7684,7686,7688,7690,7692],{"class":3950,"line":4069},[3948,7685,4389],{"class":4227},[3948,7687,4952],{"class":4227},[3948,7689,4392],{"class":4267},[3948,7691,4957],{"class":4395},[3948,7693,4399],{"class":4231},[3948,7695,7696,7698,7700,7702,7704,7706,7708],{"class":3950,"line":4074},[3948,7697,4964],{"class":4267},[3948,7699,4967],{"class":4308},[3948,7701,4970],{"class":4231},[3948,7703,4757],{"class":4395},[3948,7705,4975],{"class":4231},[3948,7707,4978],{"class":4254},[3948,7709,4258],{"class":4231},[3948,7711,7712,7714,7716,7718,7720,7722,7724,7726,7728],{"class":3950,"line":4080},[3948,7713,4964],{"class":4267},[3948,7715,4987],{"class":4308},[3948,7717,4970],{"class":4231},[3948,7719,4992],{"class":4235},[3948,7721,4925],{"class":4231},[3948,7723,4997],{"class":4254},[3948,7725,4931],{"class":4231},[3948,7727,5002],{"class":4254},[3948,7729,4258],{"class":4231},[3948,7731,7732,7734,7736,7738,7740,7742,7744,7746,7748],{"class":3950,"line":4086},[3948,7733,4964],{"class":4267},[3948,7735,5011],{"class":4308},[3948,7737,4970],{"class":4231},[3948,7739,4992],{"class":4235},[3948,7741,4925],{"class":4231},[3948,7743,5020],{"class":4254},[3948,7745,4931],{"class":4231},[3948,7747,5025],{"class":4254},[3948,7749,4258],{"class":4231},[3948,7751,7752,7754,7756,7758,7760,7762,7764,7766,7768],{"class":3950,"line":4091},[3948,7753,4964],{"class":4267},[3948,7755,5034],{"class":4308},[3948,7757,4970],{"class":4231},[3948,7759,4992],{"class":4235},[3948,7761,4925],{"class":4231},[3948,7763,5043],{"class":4254},[3948,7765,4931],{"class":4231},[3948,7767,5048],{"class":4254},[3948,7769,4258],{"class":4231},[3948,7771,7772,7774,7776,7778,7780,7782,7784,7786,7788],{"class":3950,"line":4096},[3948,7773,4964],{"class":4267},[3948,7775,5057],{"class":4308},[3948,7777,4970],{"class":4231},[3948,7779,4992],{"class":4235},[3948,7781,4925],{"class":4231},[3948,7783,5066],{"class":4254},[3948,7785,4931],{"class":4231},[3948,7787,5071],{"class":4254},[3948,7789,4258],{"class":4231},[3948,7791,7792,7794,7796,7798,7800,7802,7804,7806,7808],{"class":3950,"line":5272},[3948,7793,4964],{"class":4267},[3948,7795,6105],{"class":4308},[3948,7797,4970],{"class":4231},[3948,7799,4992],{"class":4235},[3948,7801,4925],{"class":4231},[3948,7803,6114],{"class":4254},[3948,7805,4931],{"class":4231},[3948,7807,6119],{"class":4254},[3948,7809,4258],{"class":4231},[3948,7811,7812,7814,7816,7818,7820,7822,7824,7826,7828],{"class":3950,"line":5286},[3948,7813,4964],{"class":4267},[3948,7815,5080],{"class":4308},[3948,7817,4970],{"class":4231},[3948,7819,4992],{"class":4235},[3948,7821,4925],{"class":4231},[3948,7823,5089],{"class":4254},[3948,7825,4931],{"class":4231},[3948,7827,5094],{"class":4254},[3948,7829,4258],{"class":4231},[3948,7831,7832],{"class":3950,"line":5312},[3948,7833,3973],{"emptyLinePlaceholder":3972},[3948,7835,7836,7838,7840,7842,7844,7847,7849,7851,7853,7855],{"class":3950,"line":5341},[3948,7837,4964],{"class":4267},[3948,7839,6152],{"class":4231},[3948,7841,7566],{"class":4308},[3948,7843,3593],{"class":4231},[3948,7845,7846],{"class":4308},"setSeed",[3948,7848,6162],{"class":4231},[3948,7850,5831],{"class":4395},[3948,7852,4446],{"class":4231},[3948,7854,4872],{"class":4836},[3948,7856,7857],{"class":4231},");\n",[3948,7859,7860,7862,7864,7866,7868,7870,7872,7874,7877,7879,7881,7883,7885],{"class":3950,"line":5361},[3948,7861,4964],{"class":4267},[3948,7863,6152],{"class":4231},[3948,7865,3592],{"class":4308},[3948,7867,3593],{"class":4231},[3948,7869,6159],{"class":4308},[3948,7871,6162],{"class":4231},[3948,7873,5831],{"class":4395},[3948,7875,7876],{"class":4231},"(() ",[3948,7878,4454],{"class":4267},[3948,7880,7561],{"class":4395},[3948,7882,4446],{"class":4231},[3948,7884,4872],{"class":4836},[3948,7886,7887],{"class":4231},"));\n",[3948,7889,7890,7892,7894,7896,7898,7901,7903,7905,7907,7909],{"class":3950,"line":5369},[3948,7891,4964],{"class":4267},[3948,7893,6152],{"class":4231},[3948,7895,4684],{"class":4308},[3948,7897,3593],{"class":4231},[3948,7899,7900],{"class":4308},"setRefreshing",[3948,7902,6162],{"class":4231},[3948,7904,5831],{"class":4395},[3948,7906,4446],{"class":4231},[3948,7908,7413],{"class":4267},[3948,7910,7857],{"class":4231},[3948,7912,7913],{"class":3950,"line":5382},[3948,7914,3973],{"emptyLinePlaceholder":3972},[3948,7916,7917,7919,7922,7924,7926,7928,7930],{"class":3950,"line":5395},[3948,7918,4964],{"class":4267},[3948,7920,7921],{"class":4308}," onRefresh",[3948,7923,4970],{"class":4231},[3948,7925,4586],{"class":4395},[3948,7927,7876],{"class":4231},[3948,7929,4454],{"class":4267},[3948,7931,5674],{"class":4231},[3948,7933,7934,7937,7939,7941],{"class":3950,"line":5414},[3948,7935,7936],{"class":4395},"    setRefreshing",[3948,7938,4446],{"class":4231},[3948,7940,7401],{"class":4267},[3948,7942,7857],{"class":4231},[3948,7944,7945,7948,7950,7952],{"class":3950,"line":5422},[3948,7946,7947],{"class":4395},"    setTimeout",[3948,7949,7876],{"class":4231},[3948,7951,4454],{"class":4267},[3948,7953,5674],{"class":4231},[3948,7955,7956,7959,7962,7964,7966,7968,7970],{"class":3950,"line":5428},[3948,7957,7958],{"class":4267},"      const",[3948,7960,7961],{"class":4308}," next",[3948,7963,4970],{"class":4231},[3948,7965,7566],{"class":4235},[3948,7967,3579],{"class":4231},[3948,7969,4872],{"class":4836},[3948,7971,4258],{"class":4231},[3948,7973,7974,7977,7979,7982],{"class":3950,"line":5478},[3948,7975,7976],{"class":4395},"      setSeed",[3948,7978,4446],{"class":4231},[3948,7980,7981],{"class":4235},"next",[3948,7983,7857],{"class":4231},[3948,7985,7986,7989,7991,7994,7996,7998],{"class":3950,"line":5525},[3948,7987,7988],{"class":4395},"      setData",[3948,7990,4446],{"class":4231},[3948,7992,7993],{"class":4395},"makeRows",[3948,7995,4446],{"class":4231},[3948,7997,7981],{"class":4235},[3948,7999,7887],{"class":4231},[3948,8001,8002,8005,8007,8009],{"class":3950,"line":5535},[3948,8003,8004],{"class":4395},"      setRefreshing",[3948,8006,4446],{"class":4231},[3948,8008,7413],{"class":4267},[3948,8010,7857],{"class":4231},[3948,8012,8013,8016,8019],{"class":3950,"line":5543},[3948,8014,8015],{"class":4231},"    }, ",[3948,8017,8018],{"class":4836},"800",[3948,8020,7857],{"class":4231},[3948,8022,8023,8026,8028],{"class":3950,"line":5549},[3948,8024,8025],{"class":4231},"  }, [",[3948,8027,7566],{"class":4235},[3948,8029,8030],{"class":4231},"]);\n",[3948,8032,8033],{"class":3950,"line":5559},[3948,8034,3973],{"emptyLinePlaceholder":3972},[3948,8036,8037,8039],{"class":3950,"line":5564},[3948,8038,4404],{"class":4227},[3948,8040,4407],{"class":4231},[3948,8042,8043,8045,8047,8049,8051,8053,8055,8057,8059,8061,8063,8065,8067,8069,8071],{"class":3950,"line":5569},[3948,8044,4413],{"class":4412},[3948,8046,4245],{"class":4271},[3948,8048,5115],{"class":4421},[3948,8050,4425],{"class":4231},[3948,8052,4428],{"class":4267},[3948,8054,5122],{"class":4445},[3948,8056,5125],{"class":4235},[3948,8058,3555],{"class":4445},[3948,8060,5130],{"class":4235},[3948,8062,5133],{"class":4445},[3948,8064,5136],{"class":4235},[3948,8066,4987],{"class":4235},[3948,8068,5141],{"class":4445},[3948,8070,4515],{"class":4267},[3948,8072,4494],{"class":4412},[3948,8074,8075,8077,8079,8081,8083,8085,8087,8089,8091,8093,8095,8097,8099,8101,8103,8105,8108,8110,8112],{"class":3950,"line":5574},[3948,8076,5150],{"class":4412},[3948,8078,4240],{"class":4271},[3948,8080,5115],{"class":4421},[3948,8082,4425],{"class":4231},[3948,8084,4428],{"class":4267},[3948,8086,5122],{"class":4445},[3948,8088,5125],{"class":4235},[3948,8090,3555],{"class":4445},[3948,8092,5167],{"class":4235},[3948,8094,5133],{"class":4445},[3948,8096,5172],{"class":4235},[3948,8098,5034],{"class":4235},[3948,8100,5141],{"class":4445},[3948,8102,4515],{"class":4267},[3948,8104,4504],{"class":4412},[3948,8106,8107],{"class":4231},"Потягніть униз",[3948,8109,4518],{"class":4412},[3948,8111,4240],{"class":4271},[3948,8113,4494],{"class":4412},[3948,8115,8116,8118,8120,8122,8124,8126,8128,8130,8132,8134,8136,8138,8140,8142,8144,8146,8148],{"class":3950,"line":5594},[3948,8117,5150],{"class":4412},[3948,8119,4240],{"class":4271},[3948,8121,5115],{"class":4421},[3948,8123,4425],{"class":4231},[3948,8125,4428],{"class":4267},[3948,8127,5204],{"class":4445},[3948,8129,5172],{"class":4235},[3948,8131,5057],{"class":4235},[3948,8133,3593],{"class":4445},[3948,8135,5213],{"class":4235},[3948,8137,5216],{"class":4836},[3948,8139,3593],{"class":4445},[3948,8141,5221],{"class":4235},[3948,8143,5224],{"class":4836},[3948,8145,5227],{"class":4445},[3948,8147,4515],{"class":4267},[3948,8149,4494],{"class":4412},[3948,8151,8152,8155,8157,8159,8161],{"class":3950,"line":5624},[3948,8153,8154],{"class":4231},"        Оновлення №",[3948,8156,4428],{"class":4267},[3948,8158,7566],{"class":4235},[3948,8160,4515],{"class":4267},[3948,8162,8163],{"class":4231}," · mock-затримка 800 ms\n",[3948,8165,8166,8168,8170],{"class":3950,"line":5654},[3948,8167,5241],{"class":4412},[3948,8169,4240],{"class":4271},[3948,8171,4494],{"class":4412},[3948,8173,8174,8176],{"class":3950,"line":5668},[3948,8175,5150],{"class":4412},[3948,8177,4416],{"class":4271},[3948,8179,8180,8182,8184,8186,8188,8190,8192,8194],{"class":3950,"line":5677},[3948,8181,5256],{"class":4421},[3948,8183,4425],{"class":4231},[3948,8185,4428],{"class":4267},[3948,8187,5204],{"class":4445},[3948,8189,5602],{"class":4235},[3948,8191,4894],{"class":4836},[3948,8193,5227],{"class":4445},[3948,8195,4003],{"class":4267},[3948,8197,8198,8200,8202,8204,8206],{"class":3950,"line":5687},[3948,8199,5275],{"class":4421},[3948,8201,4425],{"class":4231},[3948,8203,4428],{"class":4267},[3948,8205,3592],{"class":4235},[3948,8207,4003],{"class":4267},[3948,8209,8210,8212,8214,8216,8218,8220,8222,8224,8226,8228,8230],{"class":3950,"line":5698},[3948,8211,5289],{"class":4421},[3948,8213,4425],{"class":4231},[3948,8215,4428],{"class":4267},[3948,8217,4446],{"class":4445},[3948,8219,4449],{"class":4235},[3948,8221,4168],{"class":4445},[3948,8223,4454],{"class":4267},[3948,8225,4457],{"class":4235},[3948,8227,3555],{"class":4445},[3948,8229,4184],{"class":4235},[3948,8231,4003],{"class":4267},[3948,8233,8234,8236,8238,8240,8242,8244,8246,8248,8250,8252,8254],{"class":3950,"line":5709},[3948,8235,5315],{"class":4421},[3948,8237,4425],{"class":4231},[3948,8239,4428],{"class":4267},[3948,8241,5204],{"class":4445},[3948,8243,5332],{"class":4235},[3948,8245,5216],{"class":4836},[3948,8247,3593],{"class":4445},[3948,8249,5324],{"class":4235},[3948,8251,5327],{"class":4836},[3948,8253,5227],{"class":4445},[3948,8255,4003],{"class":4267},[3948,8257,8258,8261,8263],{"class":3950,"line":5715},[3948,8259,8260],{"class":4421},"        refreshControl",[3948,8262,4425],{"class":4231},[3948,8264,6611],{"class":4267},[3948,8266,8267,8269],{"class":3950,"line":5741},[3948,8268,4499],{"class":4412},[3948,8270,8271],{"class":4271},"RefreshControl\n",[3948,8273,8274,8277,8279,8281,8283],{"class":3950,"line":6725},[3948,8275,8276],{"class":4421},"            refreshing",[3948,8278,4425],{"class":4231},[3948,8280,4428],{"class":4267},[3948,8282,4684],{"class":4235},[3948,8284,4003],{"class":4267},[3948,8286,8287,8290,8292,8294,8296],{"class":3950,"line":6749},[3948,8288,8289],{"class":4421},"            onRefresh",[3948,8291,4425],{"class":4231},[3948,8293,4428],{"class":4267},[3948,8295,4687],{"class":4235},[3948,8297,4003],{"class":4267},[3948,8299,8300,8303,8305,8307,8310],{"class":3950,"line":6792},[3948,8301,8302],{"class":4421},"            tintColor",[3948,8304,4425],{"class":4231},[3948,8306,4428],{"class":4267},[3948,8308,8309],{"class":4235},"primary",[3948,8311,4003],{"class":4267},[3948,8313,8314,8317,8319,8321,8323,8325,8328],{"class":3950,"line":6832},[3948,8315,8316],{"class":4421},"            colors",[3948,8318,4425],{"class":4231},[3948,8320,4428],{"class":4267},[3948,8322,5122],{"class":4445},[3948,8324,8309],{"class":4235},[3948,8326,8327],{"class":4445},"]",[3948,8329,4003],{"class":4267},[3948,8331,8332],{"class":3950,"line":6838},[3948,8333,8334],{"class":4412},"          \u002F>\n",[3948,8336,8337],{"class":3950,"line":6844},[3948,8338,6659],{"class":4267},[3948,8340,8341,8343,8345,8347,8349,8351,8353,8355],{"class":3950,"line":6854},[3948,8342,5344],{"class":4421},[3948,8344,4425],{"class":4231},[3948,8346,4428],{"class":4267},[3948,8348,4475],{"class":4445},[3948,8350,4449],{"class":4235},[3948,8352,4480],{"class":4445},[3948,8354,4454],{"class":4267},[3948,8356,4407],{"class":4445},[3948,8358,8359,8361],{"class":3950,"line":6863},[3948,8360,4499],{"class":4412},[3948,8362,5366],{"class":4271},[3948,8364,8365,8367,8369,8371,8373,8375,8377,8379,8381,8383,8385,8387,8389,8391,8393],{"class":3950,"line":6868},[3948,8366,5372],{"class":4421},[3948,8368,4425],{"class":4231},[3948,8370,4428],{"class":4267},[3948,8372,5122],{"class":4445},[3948,8374,5125],{"class":4235},[3948,8376,3555],{"class":4445},[3948,8378,5390],{"class":4235},[3948,8380,5133],{"class":4445},[3948,8382,5136],{"class":4235},[3948,8384,5011],{"class":4235},[3948,8386,3593],{"class":4445},[3948,8388,5407],{"class":4235},[3948,8390,5080],{"class":4235},[3948,8392,5141],{"class":4445},[3948,8394,4003],{"class":4267},[3948,8396,8397],{"class":3950,"line":6887},[3948,8398,5425],{"class":4412},[3948,8400,8401,8403,8405,8407,8409,8411,8413,8415,8417,8419,8421,8423,8425,8427,8429,8431,8433,8435,8437,8439,8441,8443],{"class":3950,"line":6926},[3948,8402,5431],{"class":4412},[3948,8404,4240],{"class":4271},[3948,8406,5115],{"class":4421},[3948,8408,4425],{"class":4231},[3948,8410,4428],{"class":4267},[3948,8412,5204],{"class":4445},[3948,8414,5172],{"class":4235},[3948,8416,5034],{"class":4235},[3948,8418,3593],{"class":4445},[3948,8420,5639],{"class":4235},[3948,8422,6949],{"class":4254},[3948,8424,5227],{"class":4445},[3948,8426,4515],{"class":4267},[3948,8428,4504],{"class":4412},[3948,8430,4428],{"class":4267},[3948,8432,4449],{"class":4235},[3948,8434,3555],{"class":4445},[3948,8436,4289],{"class":4235},[3948,8438,4515],{"class":4267},[3948,8440,4518],{"class":4412},[3948,8442,4240],{"class":4271},[3948,8444,4494],{"class":4412},[3948,8446,8447,8449,8451,8453,8455,8457,8459,8461,8463,8465,8467,8469,8471,8473,8475,8478,8480,8482,8484,8486,8488,8490,8492],{"class":3950,"line":6974},[3948,8448,5431],{"class":4412},[3948,8450,4240],{"class":4271},[3948,8452,5115],{"class":4421},[3948,8454,4425],{"class":4231},[3948,8456,4428],{"class":4267},[3948,8458,5204],{"class":4445},[3948,8460,5172],{"class":4235},[3948,8462,5057],{"class":4235},[3948,8464,3593],{"class":4445},[3948,8466,5221],{"class":4235},[3948,8468,5693],{"class":4836},[3948,8470,5227],{"class":4445},[3948,8472,4515],{"class":4267},[3948,8474,4504],{"class":4412},[3948,8476,8477],{"class":4445},"batch ",[3948,8479,4428],{"class":4267},[3948,8481,4449],{"class":4235},[3948,8483,3555],{"class":4445},[3948,8485,7542],{"class":4235},[3948,8487,4515],{"class":4267},[3948,8489,4518],{"class":4412},[3948,8491,4240],{"class":4271},[3948,8493,4494],{"class":4412},[3948,8495,8496,8498,8500],{"class":3950,"line":6983},[3948,8497,5528],{"class":4412},[3948,8499,4245],{"class":4271},[3948,8501,4494],{"class":4412},[3948,8503,8504,8506],{"class":3950,"line":6990},[3948,8505,5538],{"class":4445},[3948,8507,4003],{"class":4267},[3948,8509,8510],{"class":3950,"line":6995},[3948,8511,5546],{"class":4412},[3948,8513,8514,8516,8518],{"class":3950,"line":7004},[3948,8515,5552],{"class":4412},[3948,8517,4245],{"class":4271},[3948,8519,4494],{"class":4412},[3948,8521,8522],{"class":3950,"line":7009},[3948,8523,4548],{"class":4231},[3948,8525,8526],{"class":3950,"line":7014},[3948,8527,4003],{"class":4231},[3948,8529,8530],{"class":3950,"line":7019},[3948,8531,3973],{"emptyLinePlaceholder":3972},[3948,8533,8534,8536,8538,8540,8542,8544,8546],{"class":3950,"line":7036},[3948,8535,4305],{"class":4267},[3948,8537,5579],{"class":4308},[3948,8539,4970],{"class":4231},[3948,8541,4744],{"class":4235},[3948,8543,3555],{"class":4231},[3948,8545,5588],{"class":4395},[3948,8547,5591],{"class":4231},[3948,8549,8550,8552,8554,8556,8558,8560,8562,8564,8566,8568,8570],{"class":3950,"line":7061},[3948,8551,5597],{"class":4235},[3948,8553,4232],{"class":4231},[3948,8555,5602],{"class":4235},[3948,8557,4894],{"class":4836},[3948,8559,3593],{"class":4231},[3948,8561,5609],{"class":4235},[3948,8563,5327],{"class":4836},[3948,8565,3593],{"class":4231},[3948,8567,5616],{"class":4235},[3948,8569,5619],{"class":4836},[3948,8571,4339],{"class":4231},[3948,8573,8574,8576,8578,8580,8582,8584,8586,8588],{"class":3950,"line":7089},[3948,8575,5627],{"class":4235},[3948,8577,4232],{"class":4231},[3948,8579,5221],{"class":4235},[3948,8581,5634],{"class":4836},[3948,8583,3593],{"class":4231},[3948,8585,5639],{"class":4235},[3948,8587,5642],{"class":4254},[3948,8589,4339],{"class":4231},[3948,8591,8592,8594],{"class":3950,"line":7097},[3948,8593,5671],{"class":4235},[3948,8595,5674],{"class":4231},[3948,8597,8598,8600,8602],{"class":3950,"line":7107},[3948,8599,5680],{"class":4235},[3948,8601,4894],{"class":4836},[3948,8603,4902],{"class":4231},[3948,8605,8606,8608,8610],{"class":3950,"line":7118},[3948,8607,5690],{"class":4235},[3948,8609,5693],{"class":4836},[3948,8611,4902],{"class":4231},[3948,8613,8614,8616,8618],{"class":3950,"line":7127},[3948,8615,5701],{"class":4235},[3948,8617,5704],{"class":4836},[3948,8619,4902],{"class":4231},[3948,8621,8622,8625,8627],{"class":3950,"line":7132},[3948,8623,8624],{"class":4235},"    flexDirection:",[3948,8626,7072],{"class":4254},[3948,8628,4902],{"class":4231},[3948,8630,8631,8633,8636],{"class":3950,"line":7153},[3948,8632,7236],{"class":4235},[3948,8634,8635],{"class":4254}," 'space-between'",[3948,8637,4902],{"class":4231},[3948,8639,8640,8642,8644],{"class":3950,"line":7179},[3948,8641,7226],{"class":4235},[3948,8643,6816],{"class":4254},[3948,8645,4902],{"class":4231},[3948,8647,8648],{"class":3950,"line":7194},[3948,8649,5712],{"class":4231},[3948,8651,8652],{"class":3950,"line":7202},[3948,8653,5744],{"class":4231},[3512,8655,8656,8657,8660],{},"У прев’ю потягніть список ",[3516,8658,8659],{},"униз"," (на тачпаді \u002F з зажатою кнопкою миші). На реальному телефоні жест природніший.",[3512,8662,8663,8664,4280,8667,8669],{},"Мережевий шар (справжній GET, помилки, offline) — у статті про networking. Тут важливий ",[3516,8665,8666],{},"UI-контракт",[3525,8668,4684],{}," чесний, індикатор зникає, дані оновлюються або показується помилка.",[3700,8671],{},[3507,8673,8675,8676],{"id":8674},"пагінація-ui-onendreached","Пагінація UI: ",[3525,8677,3627],{},[3512,8679,8680,8683,8684,8687],{},[3516,8681,8682],{},"Пагінація"," — підвантаження даних ",[3516,8685,8686],{},"порціями"," (сторінками), а не «усі 10 000 з сервера одразу».",[3512,8689,8690],{},"На мобільному UX часто:",[3571,8692,8693,8696,8699,8702,8707],{},[3574,8694,8695],{},"Перша порція (наприклад, 20 елементів).",[3574,8697,8698],{},"Користувач доскролив майже до кінця.",[3574,8700,8701],{},"Показуємо footer «Завантаження…».",[3574,8703,8704,8705,3555],{},"Дописуємо наступну порцію в ",[3525,8706,3592],{},[3574,8708,8709],{},"Якщо сервер сказав «більше немає» — footer зникає \u002F «Це все».",[3512,8711,8712,8714,8715,8720],{},[3525,8713,3627],{}," викликається, коли скрол наближається до кінця списку. ",[3516,8716,8717],{},[3525,8718,8719],{},"onEndReachedThreshold"," — наскільки рано (частка visible length).",[3814,8722,8723,8726,8727,8729,8730,8733,8734,8737],{},[3516,8724,8725],{},"Обережно з подвійними викликами."," Під час швидкого скролу або зміни ",[3525,8728,3592],{}," колбек може спрацювати знову. Захист: прапорець ",[3525,8731,8732],{},"loadingMore",", перевірка ",[3525,8735,8736],{},"hasMore",", не стартувати другий fetch, поки перший не закінчився. У цій статті — mock; з RTK Query \u002F TanStack Query захист ляже на шар даних.",[3846,8739,8741],{"id":8740},"демо-ще-10-коли-внизу","Демо: «ще 10», коли внизу",[4721,8743,8747],{"device":4723,"filename":8744,"height":8745,"title":8746},"PaginationUI.tsx",600,"onEndReached · mock pages",[3939,8748,8750],{"className":4218,"code":8749,"language":4220,"meta":3944,"style":3944},"import { useCallback, useState } from 'react';\nimport {\n  ActivityIndicator,\n  FlatList,\n  StyleSheet,\n  Text,\n  View,\n  useColorScheme,\n} from 'react-native';\n\ntype Row = { id: string; title: string };\n\nconst PAGE = 10;\nconst MAX = 50;\n\nfunction pageItems(from: number, count: number): Row[] {\n  return Array.from({ length: count }, (_, i) => {\n    const n = from + i + 1;\n    return { id: String(n), title: `Книга №${n}` };\n  });\n}\n\nexport default function App() {\n  const dark = useColorScheme() === 'dark';\n  const bg = dark ? '#000' : '#F8FAFC';\n  const surface = dark ? '#1c1c1e' : '#fff';\n  const text = dark ? '#f5f5f7' : '#0f172a';\n  const muted = dark ? '#a1a1aa' : '#64748b';\n  const primary = dark ? '#3b82f6' : '#2563eb';\n  const border = dark ? '#3a3a3c' : '#e2e8f0';\n\n  const [data, setData] = useState(() => pageItems(0, PAGE));\n  const [loadingMore, setLoadingMore] = useState(false);\n  const hasMore = data.length \u003C MAX;\n\n  const loadMore = useCallback(() => {\n    if (loadingMore || !hasMore) return;\n    setLoadingMore(true);\n    setTimeout(() => {\n      setData((prev) => {\n        const next = pageItems(prev.length, Math.min(PAGE, MAX - prev.length));\n        return [...prev, ...next];\n      });\n      setLoadingMore(false);\n    }, 700);\n  }, [loadingMore, hasMore]);\n\n  return (\n    \u003CView style={[styles.screen, { backgroundColor: bg }]}>\n      \u003CText style={[styles.h, { color: text }]}>Пагінація UI\u003C\u002FText>\n      \u003CText style={{ color: muted, marginBottom: 8, fontSize: 13 }}>\n        {data.length} \u002F {MAX} · долистайте вниз\n      \u003C\u002FText>\n      \u003CFlatList\n        style={{ flex: 1 }}\n        data={data}\n        keyExtractor={(item) => item.id}\n        onEndReached={loadMore}\n        onEndReachedThreshold={0.3}\n        contentContainerStyle={{ gap: 8, paddingBottom: 16 }}\n        ListFooterComponent={\n          loadingMore ? (\n            \u003CView style={styles.footer}>\n              \u003CActivityIndicator color={primary} \u002F>\n              \u003CText style={{ color: muted, marginTop: 8 }}>Завантаження…\u003C\u002FText>\n            \u003C\u002FView>\n          ) : !hasMore ? (\n            \u003CText style={{ color: muted, textAlign: 'center', padding: 12 }}>\n              Це всі книги (mock)\n            \u003C\u002FText>\n          ) : null\n        }\n        renderItem={({ item }) => (\n          \u003CView\n            style={[styles.row, { backgroundColor: surface, borderColor: border }]}\n          >\n            \u003CText style={{ color: text, fontWeight: '600' }}>{item.title}\u003C\u002FText>\n          \u003C\u002FView>\n        )}\n      \u002F>\n    \u003C\u002FView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  screen: { flex: 1, padding: 16, paddingTop: 24 },\n  h: { fontSize: 20, fontWeight: '800' },\n  row: { borderWidth: 1, borderRadius: 12, padding: 14 },\n  footer: { paddingVertical: 16, alignItems: 'center' },\n});\n",[3525,8751,8752,8772,8778,8785,8791,8797,8803,8809,8815,8825,8829,8853,8857,8871,8885,8889,8919,8950,8972,9005,9010,9014,9018,9030,9046,9066,9086,9106,9126,9146,9166,9170,9203,9226,9249,9253,9270,9291,9302,9312,9326,9375,9392,9397,9408,9417,9429,9433,9439,9471,9512,9548,9572,9580,9586,9604,9616,9640,9654,9667,9691,9700,9709,9732,9754,9794,9802,9819,9855,9860,9868,9877,9881,9899,9905,9937,9941,9987,9995,10001,10005,10013,10017,10021,10025,10041,10065,10083,10108,10129],{"__ignoreMap":3944},[3948,8753,8754,8756,8758,8760,8762,8764,8766,8768,8770],{"class":3950,"line":3951},[3948,8755,4228],{"class":4227},[3948,8757,4232],{"class":4231},[3948,8759,4586],{"class":4235},[3948,8761,3593],{"class":4231},[3948,8763,5831],{"class":4235},[3948,8765,4248],{"class":4231},[3948,8767,4251],{"class":4227},[3948,8769,5897],{"class":4254},[3948,8771,4258],{"class":4231},[3948,8773,8774,8776],{"class":3950,"line":3957},[3948,8775,4228],{"class":4227},[3948,8777,5674],{"class":4231},[3948,8779,8780,8783],{"class":3950,"line":3963},[3948,8781,8782],{"class":4235},"  ActivityIndicator",[3948,8784,4902],{"class":4231},[3948,8786,8787,8789],{"class":3950,"line":3969},[3948,8788,5910],{"class":4235},[3948,8790,4902],{"class":4231},[3948,8792,8793,8795],{"class":3950,"line":3976},[3948,8794,5924],{"class":4235},[3948,8796,4902],{"class":4231},[3948,8798,8799,8801],{"class":3950,"line":3982},[3948,8800,5931],{"class":4235},[3948,8802,4902],{"class":4231},[3948,8804,8805,8807],{"class":3950,"line":3988},[3948,8806,5938],{"class":4235},[3948,8808,4902],{"class":4231},[3948,8810,8811,8813],{"class":3950,"line":3994},[3948,8812,5945],{"class":4235},[3948,8814,4902],{"class":4231},[3948,8816,8817,8819,8821,8823],{"class":3950,"line":4000},[3948,8818,5952],{"class":4231},[3948,8820,4251],{"class":4227},[3948,8822,4255],{"class":4254},[3948,8824,4258],{"class":4231},[3948,8826,8827],{"class":3950,"line":4006},[3948,8828,3973],{"emptyLinePlaceholder":3972},[3948,8830,8831,8833,8835,8837,8839,8841,8843,8845,8847,8849,8851],{"class":3950,"line":4011},[3948,8832,4268],{"class":4267},[3948,8834,4776],{"class":4271},[3948,8836,4275],{"class":4231},[3948,8838,4184],{"class":4235},[3948,8840,4280],{"class":4231},[3948,8842,4283],{"class":4271},[3948,8844,4286],{"class":4231},[3948,8846,4289],{"class":4235},[3948,8848,4280],{"class":4231},[3948,8850,4283],{"class":4271},[3948,8852,4296],{"class":4231},[3948,8854,8855],{"class":3950,"line":4017},[3948,8856,3973],{"emptyLinePlaceholder":3972},[3948,8858,8859,8861,8864,8866,8869],{"class":3950,"line":4023},[3948,8860,4305],{"class":4267},[3948,8862,8863],{"class":4308}," PAGE",[3948,8865,4970],{"class":4231},[3948,8867,8868],{"class":4836},"10",[3948,8870,4258],{"class":4231},[3948,8872,8873,8875,8878,8880,8883],{"class":3950,"line":4029},[3948,8874,4305],{"class":4267},[3948,8876,8877],{"class":4308}," MAX",[3948,8879,4970],{"class":4231},[3948,8881,8882],{"class":4836},"50",[3948,8884,4258],{"class":4231},[3948,8886,8887],{"class":3950,"line":4035},[3948,8888,3973],{"emptyLinePlaceholder":3972},[3948,8890,8891,8893,8896,8898,8900,8902,8904,8906,8909,8911,8913,8915,8917],{"class":3950,"line":4041},[3948,8892,7558],{"class":4267},[3948,8894,8895],{"class":4395}," pageItems",[3948,8897,4446],{"class":4231},[3948,8899,4251],{"class":4235},[3948,8901,4280],{"class":4231},[3948,8903,7547],{"class":4271},[3948,8905,3593],{"class":4231},[3948,8907,8908],{"class":4235},"count",[3948,8910,4280],{"class":4231},[3948,8912,7547],{"class":4271},[3948,8914,7573],{"class":4231},[3948,8916,4818],{"class":4271},[3948,8918,7578],{"class":4231},[3948,8920,8921,8923,8925,8927,8929,8931,8933,8936,8938,8940,8942,8944,8946,8948],{"class":3950,"line":4046},[3948,8922,4404],{"class":4227},[3948,8924,7585],{"class":4235},[3948,8926,3555],{"class":4231},[3948,8928,4251],{"class":4395},[3948,8930,4475],{"class":4231},[3948,8932,4833],{"class":4235},[3948,8934,8935],{"class":4235}," count",[3948,8937,4840],{"class":4231},[3948,8939,4843],{"class":4235},[3948,8941,3593],{"class":4231},[3948,8943,4848],{"class":4235},[3948,8945,4168],{"class":4231},[3948,8947,4454],{"class":4267},[3948,8949,5674],{"class":4231},[3948,8951,8952,8955,8958,8960,8962,8964,8966,8968,8970],{"class":3950,"line":4051},[3948,8953,8954],{"class":4267},"    const",[3948,8956,8957],{"class":4308}," n",[3948,8959,4970],{"class":4231},[3948,8961,4251],{"class":4235},[3948,8963,3579],{"class":4231},[3948,8965,4848],{"class":4235},[3948,8967,3579],{"class":4231},[3948,8969,4872],{"class":4836},[3948,8971,4258],{"class":4231},[3948,8973,8974,8977,8979,8981,8983,8985,8988,8990,8992,8995,8997,8999,9001,9003],{"class":3950,"line":4057},[3948,8975,8976],{"class":4227},"    return",[3948,8978,4232],{"class":4231},[3948,8980,4325],{"class":4235},[3948,8982,4863],{"class":4395},[3948,8984,4446],{"class":4231},[3948,8986,8987],{"class":4235},"n",[3948,8989,3610],{"class":4231},[3948,8991,4333],{"class":4235},[3948,8993,8994],{"class":4254}," `Книга №",[3948,8996,4886],{"class":4267},[3948,8998,8987],{"class":4235},[3948,9000,4515],{"class":4267},[3948,9002,4899],{"class":4254},[3948,9004,4296],{"class":4231},[3948,9006,9007],{"class":3950,"line":4063},[3948,9008,9009],{"class":4231},"  });\n",[3948,9011,9012],{"class":3950,"line":4069},[3948,9013,4003],{"class":4231},[3948,9015,9016],{"class":3950,"line":4074},[3948,9017,3973],{"emptyLinePlaceholder":3972},[3948,9019,9020,9022,9024,9026,9028],{"class":3950,"line":4080},[3948,9021,4389],{"class":4227},[3948,9023,4952],{"class":4227},[3948,9025,4392],{"class":4267},[3948,9027,4957],{"class":4395},[3948,9029,4399],{"class":4231},[3948,9031,9032,9034,9036,9038,9040,9042,9044],{"class":3950,"line":4086},[3948,9033,4964],{"class":4267},[3948,9035,4967],{"class":4308},[3948,9037,4970],{"class":4231},[3948,9039,4757],{"class":4395},[3948,9041,4975],{"class":4231},[3948,9043,4978],{"class":4254},[3948,9045,4258],{"class":4231},[3948,9047,9048,9050,9052,9054,9056,9058,9060,9062,9064],{"class":3950,"line":4091},[3948,9049,4964],{"class":4267},[3948,9051,4987],{"class":4308},[3948,9053,4970],{"class":4231},[3948,9055,4992],{"class":4235},[3948,9057,4925],{"class":4231},[3948,9059,4997],{"class":4254},[3948,9061,4931],{"class":4231},[3948,9063,5002],{"class":4254},[3948,9065,4258],{"class":4231},[3948,9067,9068,9070,9072,9074,9076,9078,9080,9082,9084],{"class":3950,"line":4096},[3948,9069,4964],{"class":4267},[3948,9071,5011],{"class":4308},[3948,9073,4970],{"class":4231},[3948,9075,4992],{"class":4235},[3948,9077,4925],{"class":4231},[3948,9079,5020],{"class":4254},[3948,9081,4931],{"class":4231},[3948,9083,5025],{"class":4254},[3948,9085,4258],{"class":4231},[3948,9087,9088,9090,9092,9094,9096,9098,9100,9102,9104],{"class":3950,"line":5272},[3948,9089,4964],{"class":4267},[3948,9091,5034],{"class":4308},[3948,9093,4970],{"class":4231},[3948,9095,4992],{"class":4235},[3948,9097,4925],{"class":4231},[3948,9099,5043],{"class":4254},[3948,9101,4931],{"class":4231},[3948,9103,5048],{"class":4254},[3948,9105,4258],{"class":4231},[3948,9107,9108,9110,9112,9114,9116,9118,9120,9122,9124],{"class":3950,"line":5286},[3948,9109,4964],{"class":4267},[3948,9111,5057],{"class":4308},[3948,9113,4970],{"class":4231},[3948,9115,4992],{"class":4235},[3948,9117,4925],{"class":4231},[3948,9119,5066],{"class":4254},[3948,9121,4931],{"class":4231},[3948,9123,5071],{"class":4254},[3948,9125,4258],{"class":4231},[3948,9127,9128,9130,9132,9134,9136,9138,9140,9142,9144],{"class":3950,"line":5312},[3948,9129,4964],{"class":4267},[3948,9131,6105],{"class":4308},[3948,9133,4970],{"class":4231},[3948,9135,4992],{"class":4235},[3948,9137,4925],{"class":4231},[3948,9139,6114],{"class":4254},[3948,9141,4931],{"class":4231},[3948,9143,6119],{"class":4254},[3948,9145,4258],{"class":4231},[3948,9147,9148,9150,9152,9154,9156,9158,9160,9162,9164],{"class":3950,"line":5341},[3948,9149,4964],{"class":4267},[3948,9151,5080],{"class":4308},[3948,9153,4970],{"class":4231},[3948,9155,4992],{"class":4235},[3948,9157,4925],{"class":4231},[3948,9159,5089],{"class":4254},[3948,9161,4931],{"class":4231},[3948,9163,5094],{"class":4254},[3948,9165,4258],{"class":4231},[3948,9167,9168],{"class":3950,"line":5361},[3948,9169,3973],{"emptyLinePlaceholder":3972},[3948,9171,9172,9174,9176,9178,9180,9182,9184,9186,9188,9190,9192,9194,9196,9198,9201],{"class":3950,"line":5369},[3948,9173,4964],{"class":4267},[3948,9175,6152],{"class":4231},[3948,9177,3592],{"class":4308},[3948,9179,3593],{"class":4231},[3948,9181,6159],{"class":4308},[3948,9183,6162],{"class":4231},[3948,9185,5831],{"class":4395},[3948,9187,7876],{"class":4231},[3948,9189,4454],{"class":4267},[3948,9191,8895],{"class":4395},[3948,9193,4446],{"class":4231},[3948,9195,4922],{"class":4836},[3948,9197,3593],{"class":4231},[3948,9199,9200],{"class":4308},"PAGE",[3948,9202,7887],{"class":4231},[3948,9204,9205,9207,9209,9211,9213,9216,9218,9220,9222,9224],{"class":3950,"line":5382},[3948,9206,4964],{"class":4267},[3948,9208,6152],{"class":4231},[3948,9210,8732],{"class":4308},[3948,9212,3593],{"class":4231},[3948,9214,9215],{"class":4308},"setLoadingMore",[3948,9217,6162],{"class":4231},[3948,9219,5831],{"class":4395},[3948,9221,4446],{"class":4231},[3948,9223,7413],{"class":4267},[3948,9225,7857],{"class":4231},[3948,9227,9228,9230,9233,9235,9237,9239,9241,9244,9247],{"class":3950,"line":5395},[3948,9229,4964],{"class":4267},[3948,9231,9232],{"class":4308}," hasMore",[3948,9234,4970],{"class":4231},[3948,9236,3592],{"class":4235},[3948,9238,3555],{"class":4231},[3948,9240,6321],{"class":4235},[3948,9242,9243],{"class":4231}," \u003C ",[3948,9245,9246],{"class":4308},"MAX",[3948,9248,4258],{"class":4231},[3948,9250,9251],{"class":3950,"line":5414},[3948,9252,3973],{"emptyLinePlaceholder":3972},[3948,9254,9255,9257,9260,9262,9264,9266,9268],{"class":3950,"line":5422},[3948,9256,4964],{"class":4267},[3948,9258,9259],{"class":4308}," loadMore",[3948,9261,4970],{"class":4231},[3948,9263,4586],{"class":4395},[3948,9265,7876],{"class":4231},[3948,9267,4454],{"class":4267},[3948,9269,5674],{"class":4231},[3948,9271,9272,9275,9277,9279,9282,9284,9286,9289],{"class":3950,"line":5428},[3948,9273,9274],{"class":4227},"    if",[3948,9276,3624],{"class":4231},[3948,9278,8732],{"class":4235},[3948,9280,9281],{"class":4231}," || !",[3948,9283,8736],{"class":4235},[3948,9285,4168],{"class":4231},[3948,9287,9288],{"class":4227},"return",[3948,9290,4258],{"class":4231},[3948,9292,9293,9296,9298,9300],{"class":3950,"line":5478},[3948,9294,9295],{"class":4395},"    setLoadingMore",[3948,9297,4446],{"class":4231},[3948,9299,7401],{"class":4267},[3948,9301,7857],{"class":4231},[3948,9303,9304,9306,9308,9310],{"class":3950,"line":5525},[3948,9305,7947],{"class":4395},[3948,9307,7876],{"class":4231},[3948,9309,4454],{"class":4267},[3948,9311,5674],{"class":4231},[3948,9313,9314,9316,9318,9320,9322,9324],{"class":3950,"line":5535},[3948,9315,7988],{"class":4395},[3948,9317,6267],{"class":4231},[3948,9319,6270],{"class":4235},[3948,9321,4168],{"class":4231},[3948,9323,4454],{"class":4267},[3948,9325,5674],{"class":4231},[3948,9327,9328,9331,9333,9335,9338,9340,9342,9344,9346,9348,9351,9353,9356,9358,9360,9362,9364,9367,9369,9371,9373],{"class":3950,"line":5543},[3948,9329,9330],{"class":4267},"        const",[3948,9332,7961],{"class":4308},[3948,9334,4970],{"class":4231},[3948,9336,9337],{"class":4395},"pageItems",[3948,9339,4446],{"class":4231},[3948,9341,6270],{"class":4235},[3948,9343,3555],{"class":4231},[3948,9345,6321],{"class":4235},[3948,9347,3593],{"class":4231},[3948,9349,9350],{"class":4235},"Math",[3948,9352,3555],{"class":4231},[3948,9354,9355],{"class":4395},"min",[3948,9357,4446],{"class":4231},[3948,9359,9200],{"class":4308},[3948,9361,3593],{"class":4231},[3948,9363,9246],{"class":4308},[3948,9365,9366],{"class":4231}," - ",[3948,9368,6270],{"class":4235},[3948,9370,3555],{"class":4231},[3948,9372,6321],{"class":4235},[3948,9374,7887],{"class":4231},[3948,9376,9377,9380,9383,9385,9388,9390],{"class":3950,"line":5549},[3948,9378,9379],{"class":4227},"        return",[3948,9381,9382],{"class":4231}," [...",[3948,9384,6270],{"class":4235},[3948,9386,9387],{"class":4231},", ...",[3948,9389,7981],{"class":4235},[3948,9391,4380],{"class":4231},[3948,9393,9394],{"class":3950,"line":5559},[3948,9395,9396],{"class":4231},"      });\n",[3948,9398,9399,9402,9404,9406],{"class":3950,"line":5564},[3948,9400,9401],{"class":4395},"      setLoadingMore",[3948,9403,4446],{"class":4231},[3948,9405,7413],{"class":4267},[3948,9407,7857],{"class":4231},[3948,9409,9410,9412,9415],{"class":3950,"line":5569},[3948,9411,8015],{"class":4231},[3948,9413,9414],{"class":4836},"700",[3948,9416,7857],{"class":4231},[3948,9418,9419,9421,9423,9425,9427],{"class":3950,"line":5574},[3948,9420,8025],{"class":4231},[3948,9422,8732],{"class":4235},[3948,9424,3593],{"class":4231},[3948,9426,8736],{"class":4235},[3948,9428,8030],{"class":4231},[3948,9430,9431],{"class":3950,"line":5594},[3948,9432,3973],{"emptyLinePlaceholder":3972},[3948,9434,9435,9437],{"class":3950,"line":5624},[3948,9436,4404],{"class":4227},[3948,9438,4407],{"class":4231},[3948,9440,9441,9443,9445,9447,9449,9451,9453,9455,9457,9459,9461,9463,9465,9467,9469],{"class":3950,"line":5654},[3948,9442,4413],{"class":4412},[3948,9444,4245],{"class":4271},[3948,9446,5115],{"class":4421},[3948,9448,4425],{"class":4231},[3948,9450,4428],{"class":4267},[3948,9452,5122],{"class":4445},[3948,9454,5125],{"class":4235},[3948,9456,3555],{"class":4445},[3948,9458,5130],{"class":4235},[3948,9460,5133],{"class":4445},[3948,9462,5136],{"class":4235},[3948,9464,4987],{"class":4235},[3948,9466,5141],{"class":4445},[3948,9468,4515],{"class":4267},[3948,9470,4494],{"class":4412},[3948,9472,9473,9475,9477,9479,9481,9483,9485,9487,9489,9491,9493,9495,9497,9499,9501,9503,9506,9508,9510],{"class":3950,"line":5668},[3948,9474,5150],{"class":4412},[3948,9476,4240],{"class":4271},[3948,9478,5115],{"class":4421},[3948,9480,4425],{"class":4231},[3948,9482,4428],{"class":4267},[3948,9484,5122],{"class":4445},[3948,9486,5125],{"class":4235},[3948,9488,3555],{"class":4445},[3948,9490,5167],{"class":4235},[3948,9492,5133],{"class":4445},[3948,9494,5172],{"class":4235},[3948,9496,5034],{"class":4235},[3948,9498,5141],{"class":4445},[3948,9500,4515],{"class":4267},[3948,9502,4504],{"class":4412},[3948,9504,9505],{"class":4231},"Пагінація UI",[3948,9507,4518],{"class":4412},[3948,9509,4240],{"class":4271},[3948,9511,4494],{"class":4412},[3948,9513,9514,9516,9518,9520,9522,9524,9526,9528,9530,9532,9534,9536,9538,9540,9542,9544,9546],{"class":3950,"line":5677},[3948,9515,5150],{"class":4412},[3948,9517,4240],{"class":4271},[3948,9519,5115],{"class":4421},[3948,9521,4425],{"class":4231},[3948,9523,4428],{"class":4267},[3948,9525,5204],{"class":4445},[3948,9527,5172],{"class":4235},[3948,9529,5057],{"class":4235},[3948,9531,3593],{"class":4445},[3948,9533,5213],{"class":4235},[3948,9535,5216],{"class":4836},[3948,9537,3593],{"class":4445},[3948,9539,5221],{"class":4235},[3948,9541,5224],{"class":4836},[3948,9543,5227],{"class":4445},[3948,9545,4515],{"class":4267},[3948,9547,4494],{"class":4412},[3948,9549,9550,9553,9555,9557,9559,9561,9563,9565,9567,9569],{"class":3950,"line":5687},[3948,9551,9552],{"class":4267},"        {",[3948,9554,3592],{"class":4235},[3948,9556,3555],{"class":4445},[3948,9558,6321],{"class":4235},[3948,9560,4515],{"class":4267},[3948,9562,3686],{"class":4231},[3948,9564,4428],{"class":4267},[3948,9566,9246],{"class":4308},[3948,9568,4515],{"class":4267},[3948,9570,9571],{"class":4231}," · долистайте вниз\n",[3948,9573,9574,9576,9578],{"class":3950,"line":5698},[3948,9575,5241],{"class":4412},[3948,9577,4240],{"class":4271},[3948,9579,4494],{"class":4412},[3948,9581,9582,9584],{"class":3950,"line":5709},[3948,9583,5150],{"class":4412},[3948,9585,4416],{"class":4271},[3948,9587,9588,9590,9592,9594,9596,9598,9600,9602],{"class":3950,"line":5715},[3948,9589,5256],{"class":4421},[3948,9591,4425],{"class":4231},[3948,9593,4428],{"class":4267},[3948,9595,5204],{"class":4445},[3948,9597,5602],{"class":4235},[3948,9599,4894],{"class":4836},[3948,9601,5227],{"class":4445},[3948,9603,4003],{"class":4267},[3948,9605,9606,9608,9610,9612,9614],{"class":3950,"line":5741},[3948,9607,5275],{"class":4421},[3948,9609,4425],{"class":4231},[3948,9611,4428],{"class":4267},[3948,9613,3592],{"class":4235},[3948,9615,4003],{"class":4267},[3948,9617,9618,9620,9622,9624,9626,9628,9630,9632,9634,9636,9638],{"class":3950,"line":6725},[3948,9619,5289],{"class":4421},[3948,9621,4425],{"class":4231},[3948,9623,4428],{"class":4267},[3948,9625,4446],{"class":4445},[3948,9627,4449],{"class":4235},[3948,9629,4168],{"class":4445},[3948,9631,4454],{"class":4267},[3948,9633,4457],{"class":4235},[3948,9635,3555],{"class":4445},[3948,9637,4184],{"class":4235},[3948,9639,4003],{"class":4267},[3948,9641,9642,9645,9647,9649,9652],{"class":3950,"line":6749},[3948,9643,9644],{"class":4421},"        onEndReached",[3948,9646,4425],{"class":4231},[3948,9648,4428],{"class":4267},[3948,9650,9651],{"class":4235},"loadMore",[3948,9653,4003],{"class":4267},[3948,9655,9656,9659,9661,9663,9665],{"class":3950,"line":6792},[3948,9657,9658],{"class":4421},"        onEndReachedThreshold",[3948,9660,4425],{"class":4231},[3948,9662,4428],{"class":4267},[3948,9664,4707],{"class":4836},[3948,9666,4003],{"class":4267},[3948,9668,9669,9671,9673,9675,9677,9679,9681,9683,9685,9687,9689],{"class":3950,"line":6832},[3948,9670,5315],{"class":4421},[3948,9672,4425],{"class":4231},[3948,9674,4428],{"class":4267},[3948,9676,5204],{"class":4445},[3948,9678,5332],{"class":4235},[3948,9680,5216],{"class":4836},[3948,9682,3593],{"class":4445},[3948,9684,5324],{"class":4235},[3948,9686,5327],{"class":4836},[3948,9688,5227],{"class":4445},[3948,9690,4003],{"class":4267},[3948,9692,9693,9696,9698],{"class":3950,"line":6838},[3948,9694,9695],{"class":4421},"        ListFooterComponent",[3948,9697,4425],{"class":4231},[3948,9699,6611],{"class":4267},[3948,9701,9702,9705,9707],{"class":3950,"line":6844},[3948,9703,9704],{"class":4235},"          loadingMore",[3948,9706,6629],{"class":4231},[3948,9708,4407],{"class":4445},[3948,9710,9711,9713,9715,9717,9719,9721,9723,9725,9728,9730],{"class":3950,"line":6854},[3948,9712,5431],{"class":4412},[3948,9714,4245],{"class":4271},[3948,9716,5115],{"class":4421},[3948,9718,4425],{"class":4231},[3948,9720,4428],{"class":4267},[3948,9722,5125],{"class":4235},[3948,9724,3555],{"class":4445},[3948,9726,9727],{"class":4235},"footer",[3948,9729,4515],{"class":4267},[3948,9731,4494],{"class":4412},[3948,9733,9734,9737,9740,9743,9745,9747,9749,9751],{"class":3950,"line":6863},[3948,9735,9736],{"class":4412},"              \u003C",[3948,9738,9739],{"class":4271},"ActivityIndicator",[3948,9741,9742],{"class":4421}," color",[3948,9744,4425],{"class":4231},[3948,9746,4428],{"class":4267},[3948,9748,8309],{"class":4235},[3948,9750,4515],{"class":4267},[3948,9752,9753],{"class":4412}," \u002F>\n",[3948,9755,9756,9758,9760,9762,9764,9766,9768,9770,9772,9774,9777,9779,9781,9783,9785,9788,9790,9792],{"class":3950,"line":6868},[3948,9757,9736],{"class":4412},[3948,9759,4240],{"class":4271},[3948,9761,5115],{"class":4421},[3948,9763,4425],{"class":4231},[3948,9765,4428],{"class":4267},[3948,9767,5204],{"class":4445},[3948,9769,5172],{"class":4235},[3948,9771,5057],{"class":4235},[3948,9773,3593],{"class":4445},[3948,9775,9776],{"class":4235},"marginTop:",[3948,9778,5216],{"class":4836},[3948,9780,5227],{"class":4445},[3948,9782,4515],{"class":4267},[3948,9784,4504],{"class":4412},[3948,9786,9787],{"class":4445},"Завантаження…",[3948,9789,4518],{"class":4412},[3948,9791,4240],{"class":4271},[3948,9793,4494],{"class":4412},[3948,9795,9796,9798,9800],{"class":3950,"line":6887},[3948,9797,6847],{"class":4412},[3948,9799,4245],{"class":4271},[3948,9801,4494],{"class":4412},[3948,9803,9804,9807,9810,9813,9815,9817],{"class":3950,"line":6926},[3948,9805,9806],{"class":4445},"          ) ",[3948,9808,9809],{"class":4231},":",[3948,9811,9812],{"class":4231}," !",[3948,9814,8736],{"class":4235},[3948,9816,6629],{"class":4231},[3948,9818,4407],{"class":4445},[3948,9820,9821,9823,9825,9827,9829,9831,9833,9835,9837,9839,9841,9843,9845,9847,9849,9851,9853],{"class":3950,"line":6974},[3948,9822,5431],{"class":4412},[3948,9824,4240],{"class":4271},[3948,9826,5115],{"class":4421},[3948,9828,4425],{"class":4231},[3948,9830,4428],{"class":4267},[3948,9832,5204],{"class":4445},[3948,9834,5172],{"class":4235},[3948,9836,5057],{"class":4235},[3948,9838,3593],{"class":4445},[3948,9840,6813],{"class":4235},[3948,9842,6816],{"class":4254},[3948,9844,3593],{"class":4445},[3948,9846,5609],{"class":4235},[3948,9848,5693],{"class":4836},[3948,9850,5227],{"class":4445},[3948,9852,4515],{"class":4267},[3948,9854,4494],{"class":4412},[3948,9856,9857],{"class":3950,"line":6983},[3948,9858,9859],{"class":4445},"              Це всі книги (mock)\n",[3948,9861,9862,9864,9866],{"class":3950,"line":6990},[3948,9863,6847],{"class":4412},[3948,9865,4240],{"class":4271},[3948,9867,4494],{"class":4412},[3948,9869,9870,9872,9874],{"class":3950,"line":6995},[3948,9871,9806],{"class":4445},[3948,9873,9809],{"class":4231},[3948,9875,9876],{"class":4267}," null\n",[3948,9878,9879],{"class":3950,"line":7004},[3948,9880,6659],{"class":4267},[3948,9882,9883,9885,9887,9889,9891,9893,9895,9897],{"class":3950,"line":7009},[3948,9884,5344],{"class":4421},[3948,9886,4425],{"class":4231},[3948,9888,4428],{"class":4267},[3948,9890,4475],{"class":4445},[3948,9892,4449],{"class":4235},[3948,9894,4480],{"class":4445},[3948,9896,4454],{"class":4267},[3948,9898,4407],{"class":4445},[3948,9900,9901,9903],{"class":3950,"line":7014},[3948,9902,4499],{"class":4412},[3948,9904,5366],{"class":4271},[3948,9906,9907,9909,9911,9913,9915,9917,9919,9921,9923,9925,9927,9929,9931,9933,9935],{"class":3950,"line":7019},[3948,9908,5372],{"class":4421},[3948,9910,4425],{"class":4231},[3948,9912,4428],{"class":4267},[3948,9914,5122],{"class":4445},[3948,9916,5125],{"class":4235},[3948,9918,3555],{"class":4445},[3948,9920,5390],{"class":4235},[3948,9922,5133],{"class":4445},[3948,9924,5136],{"class":4235},[3948,9926,5011],{"class":4235},[3948,9928,3593],{"class":4445},[3948,9930,5407],{"class":4235},[3948,9932,5080],{"class":4235},[3948,9934,5141],{"class":4445},[3948,9936,4003],{"class":4267},[3948,9938,9939],{"class":3950,"line":7036},[3948,9940,5425],{"class":4412},[3948,9942,9943,9945,9947,9949,9951,9953,9955,9957,9959,9961,9963,9965,9967,9969,9971,9973,9975,9977,9979,9981,9983,9985],{"class":3950,"line":7061},[3948,9944,5431],{"class":4412},[3948,9946,4240],{"class":4271},[3948,9948,5115],{"class":4421},[3948,9950,4425],{"class":4231},[3948,9952,4428],{"class":4267},[3948,9954,5204],{"class":4445},[3948,9956,5172],{"class":4235},[3948,9958,5034],{"class":4235},[3948,9960,3593],{"class":4445},[3948,9962,5639],{"class":4235},[3948,9964,6949],{"class":4254},[3948,9966,5227],{"class":4445},[3948,9968,4515],{"class":4267},[3948,9970,4504],{"class":4412},[3948,9972,4428],{"class":4267},[3948,9974,4449],{"class":4235},[3948,9976,3555],{"class":4445},[3948,9978,4289],{"class":4235},[3948,9980,4515],{"class":4267},[3948,9982,4518],{"class":4412},[3948,9984,4240],{"class":4271},[3948,9986,4494],{"class":4412},[3948,9988,9989,9991,9993],{"class":3950,"line":7089},[3948,9990,5528],{"class":4412},[3948,9992,4245],{"class":4271},[3948,9994,4494],{"class":4412},[3948,9996,9997,9999],{"class":3950,"line":7097},[3948,9998,5538],{"class":4445},[3948,10000,4003],{"class":4267},[3948,10002,10003],{"class":3950,"line":7107},[3948,10004,5546],{"class":4412},[3948,10006,10007,10009,10011],{"class":3950,"line":7118},[3948,10008,5552],{"class":4412},[3948,10010,4245],{"class":4271},[3948,10012,4494],{"class":4412},[3948,10014,10015],{"class":3950,"line":7127},[3948,10016,4548],{"class":4231},[3948,10018,10019],{"class":3950,"line":7132},[3948,10020,4003],{"class":4231},[3948,10022,10023],{"class":3950,"line":7153},[3948,10024,3973],{"emptyLinePlaceholder":3972},[3948,10026,10027,10029,10031,10033,10035,10037,10039],{"class":3950,"line":7179},[3948,10028,4305],{"class":4267},[3948,10030,5579],{"class":4308},[3948,10032,4970],{"class":4231},[3948,10034,4744],{"class":4235},[3948,10036,3555],{"class":4231},[3948,10038,5588],{"class":4395},[3948,10040,5591],{"class":4231},[3948,10042,10043,10045,10047,10049,10051,10053,10055,10057,10059,10061,10063],{"class":3950,"line":7194},[3948,10044,5597],{"class":4235},[3948,10046,4232],{"class":4231},[3948,10048,5602],{"class":4235},[3948,10050,4894],{"class":4836},[3948,10052,3593],{"class":4231},[3948,10054,5609],{"class":4235},[3948,10056,5327],{"class":4836},[3948,10058,3593],{"class":4231},[3948,10060,5616],{"class":4235},[3948,10062,5619],{"class":4836},[3948,10064,4339],{"class":4231},[3948,10066,10067,10069,10071,10073,10075,10077,10079,10081],{"class":3950,"line":7202},[3948,10068,5627],{"class":4235},[3948,10070,4232],{"class":4231},[3948,10072,5221],{"class":4235},[3948,10074,5634],{"class":4836},[3948,10076,3593],{"class":4231},[3948,10078,5639],{"class":4235},[3948,10080,5642],{"class":4254},[3948,10082,4339],{"class":4231},[3948,10084,10085,10087,10089,10091,10093,10095,10098,10100,10102,10104,10106],{"class":3950,"line":7212},[3948,10086,5671],{"class":4235},[3948,10088,4232],{"class":4231},[3948,10090,6473],{"class":4235},[3948,10092,4894],{"class":4836},[3948,10094,3593],{"class":4231},[3948,10096,10097],{"class":4235},"borderRadius:",[3948,10099,5693],{"class":4836},[3948,10101,3593],{"class":4231},[3948,10103,5609],{"class":4235},[3948,10105,5704],{"class":4836},[3948,10107,4339],{"class":4231},[3948,10109,10110,10113,10115,10118,10120,10122,10125,10127],{"class":3950,"line":7223},[3948,10111,10112],{"class":4235},"  footer:",[3948,10114,4232],{"class":4231},[3948,10116,10117],{"class":4235},"paddingVertical:",[3948,10119,5327],{"class":4836},[3948,10121,3593],{"class":4231},[3948,10123,10124],{"class":4235},"alignItems:",[3948,10126,6816],{"class":4254},[3948,10128,4339],{"class":4231},[3948,10130,10131],{"class":3950,"line":7233},[3948,10132,5744],{"class":4231},[3700,10134],{},[3507,10136,10138],{"id":10137},"стан-помилки-списку","Стан помилки списку",[3512,10140,10141,10142,10145,10146,10149,10150,10152],{},"Порожній масив після ",[3516,10143,10144],{},"успішного"," відповіді «у вас 0 поїздок» і порожній екран після ",[3516,10147,10148],{},"мережевої помилки"," — різні речі. Не зводьте обидва до одного ",[3525,10151,3609],{}," без розрізнення.",[3512,10154,10155],{},"Типова модель UI (ще до RTK Query):",[3707,10157,10158,10168],{},[3710,10159,10160],{},[3713,10161,10162,10165],{},[3716,10163,10164],{},"Стан",[3716,10166,10167],{},"Що на екрані",[3726,10169,10170,10184,10198,10210,10224],{},[3713,10171,10172,10178],{},[3731,10173,10174,10177],{},[3525,10175,10176],{},"loading"," (перший раз)",[3731,10179,10180,10181,10183],{},"скелетон \u002F спінер по центру, ",[3516,10182,3663],{}," empty",[3713,10185,10186,10193],{},[3731,10187,10188,3579,10191],{},[3525,10189,10190],{},"success",[3525,10192,7347],{},[3731,10194,10195,10197],{},[3525,10196,3609],{}," («Створіть першу поїздку»)",[3713,10199,10200,10205],{},[3731,10201,10202,10204],{},[3525,10203,10190],{}," + є дані",[3731,10206,10207,10209],{},[3525,10208,3551],{}," з рядками",[3713,10211,10212,10217],{},[3731,10213,10214],{},[3525,10215,10216],{},"error",[3731,10218,10219,10220,10223],{},"банер \u002F повний error-state з «Спробувати знову» (часто ",[3516,10221,10222],{},"замість"," списку або над ним)",[3713,10225,10226,10230],{},[3731,10227,10228],{},[3525,10229,4684],{},[3731,10231,10232,10233],{},"список лишається, зверху ",[3525,10234,3691],{},[3655,10236,10237,10238,10241],{},"Поки в курсі mock-дані в пам’яті, error-state можна зімітувати кнопкою «Зіпсувати завантаження». У проді помилка прийде з шару мережі — але ",[3516,10239,10240],{},"розмітка екрана"," лишиться тією ж ідеєю.",[3700,10243],{},[3507,10245,10247,10249],{"id":10246},"sectionlist-секції-з-заголовками",[3525,10248,3634],{}," — секції з заголовками",[3512,10251,10252,10256,10257,10260,10261,3686,10263,10266,10267,3555],{},[3516,10253,10254],{},[3525,10255,3634],{}," — віртуалізований список, де дані розбиті на ",[3516,10258,10259],{},"секції"," (sections). У кожної секції є заголовок (",[3525,10262,4289],{},[3525,10264,10265],{},"renderSectionHeader",") і свій масив ",[3525,10268,3592],{},[3512,10270,10271],{},[3929,10272],{"alt":10273,"className":10274,"src":10275},"SectionList: секції з заголовками (наприклад, книги за жанром)",[3933],"\u002Fimages\u002Freact-native\u002Flists-and-virtualization\u002F04.svg",[3512,10277,10278,10279,3555],{},"Аналогія: контакти в телефоні, згруповані за літерою; меню ресторану за категоріями; ",[3516,10280,10281],{},"каталог книг за жанром",[3512,10283,10284],{},"Форма даних:",[3939,10286,10288],{"className":4218,"code":10287,"language":4220,"meta":3944,"style":3944},"type Section = {\n  title: string;\n  data: Book[];\n};\n\nconst sections: Section[] = [\n  { title: 'Фантастика', data: [\u002F* … *\u002F] },\n  { title: 'Детектив', data: [\u002F* … *\u002F] },\n];\n",[3525,10289,10290,10300,10311,10324,10329,10333,10347,10369,10388],{"__ignoreMap":3944},[3948,10291,10292,10294,10297],{"class":3950,"line":3951},[3948,10293,4268],{"class":4267},[3948,10295,10296],{"class":4271}," Section",[3948,10298,10299],{"class":4231}," = {\n",[3948,10301,10302,10305,10307,10309],{"class":3950,"line":3957},[3948,10303,10304],{"class":4235},"  title",[3948,10306,4280],{"class":4231},[3948,10308,4283],{"class":4271},[3948,10310,4258],{"class":4231},[3948,10312,10313,10316,10318,10321],{"class":3950,"line":3963},[3948,10314,10315],{"class":4235},"  data",[3948,10317,4280],{"class":4231},[3948,10319,10320],{"class":4271},"Book",[3948,10322,10323],{"class":4231},"[];\n",[3948,10325,10326],{"class":3950,"line":3969},[3948,10327,10328],{"class":4231},"};\n",[3948,10330,10331],{"class":3950,"line":3976},[3948,10332,3973],{"emptyLinePlaceholder":3972},[3948,10334,10335,10337,10340,10342,10345],{"class":3950,"line":3982},[3948,10336,4305],{"class":4267},[3948,10338,10339],{"class":4308}," sections",[3948,10341,4280],{"class":4231},[3948,10343,10344],{"class":4271},"Section",[3948,10346,4317],{"class":4231},[3948,10348,10349,10351,10353,10356,10358,10361,10363,10366],{"class":3950,"line":3988},[3948,10350,4322],{"class":4231},[3948,10352,4333],{"class":4235},[3948,10354,10355],{"class":4254}," 'Фантастика'",[3948,10357,3593],{"class":4231},[3948,10359,10360],{"class":4235},"data:",[3948,10362,6152],{"class":4231},[3948,10364,10365],{"class":5778},"\u002F* … *\u002F",[3948,10367,10368],{"class":4231},"] },\n",[3948,10370,10371,10373,10375,10378,10380,10382,10384,10386],{"class":3950,"line":3994},[3948,10372,4322],{"class":4231},[3948,10374,4333],{"class":4235},[3948,10376,10377],{"class":4254}," 'Детектив'",[3948,10379,3593],{"class":4231},[3948,10381,10360],{"class":4235},[3948,10383,6152],{"class":4231},[3948,10385,10365],{"class":5778},[3948,10387,10368],{"class":4231},[3948,10389,10390],{"class":3950,"line":4000},[3948,10391,4380],{"class":4231},[3939,10393,10395],{"className":4218,"code":10394,"language":4220,"meta":3944,"style":3944},"\u003CSectionList\n  sections={sections}\n  keyExtractor={(item) => item.id}\n  renderItem={({ item }) => \u003CBookRow book={item} \u002F>}\n  renderSectionHeader={({ section: { title } }) => (\n    \u003CText style={styles.sectionHeader}>{title}\u003C\u002FText>\n  )}\n  stickySectionHeadersEnabled\n\u002F>\n",[3525,10396,10397,10404,10418,10443,10482,10508,10543,10550,10555],{"__ignoreMap":3944},[3948,10398,10399,10401],{"class":3950,"line":3951},[3948,10400,6167],{"class":4412},[3948,10402,10403],{"class":4271},"SectionList\n",[3948,10405,10406,10409,10411,10413,10416],{"class":3950,"line":3957},[3948,10407,10408],{"class":4421},"  sections",[3948,10410,4425],{"class":4231},[3948,10412,4428],{"class":4267},[3948,10414,10415],{"class":4235},"sections",[3948,10417,4003],{"class":4267},[3948,10419,10420,10423,10425,10427,10429,10431,10433,10435,10437,10439,10441],{"class":3950,"line":3963},[3948,10421,10422],{"class":4421},"  keyExtractor",[3948,10424,4425],{"class":4231},[3948,10426,4428],{"class":4267},[3948,10428,4446],{"class":4445},[3948,10430,4449],{"class":4235},[3948,10432,4168],{"class":4445},[3948,10434,4454],{"class":4267},[3948,10436,4457],{"class":4235},[3948,10438,3555],{"class":4445},[3948,10440,4184],{"class":4235},[3948,10442,4003],{"class":4267},[3948,10444,10445,10448,10450,10452,10454,10456,10458,10460,10463,10466,10469,10471,10473,10475,10477,10480],{"class":3950,"line":3969},[3948,10446,10447],{"class":4421},"  renderItem",[3948,10449,4425],{"class":4231},[3948,10451,4428],{"class":4267},[3948,10453,4475],{"class":4445},[3948,10455,4449],{"class":4235},[3948,10457,4480],{"class":4445},[3948,10459,4454],{"class":4267},[3948,10461,10462],{"class":4412}," \u003C",[3948,10464,10465],{"class":4271},"BookRow",[3948,10467,10468],{"class":4421}," book",[3948,10470,4425],{"class":4231},[3948,10472,4428],{"class":4267},[3948,10474,4449],{"class":4235},[3948,10476,4515],{"class":4267},[3948,10478,10479],{"class":4412}," \u002F>",[3948,10481,4003],{"class":4267},[3948,10483,10484,10487,10489,10491,10493,10496,10499,10501,10504,10506],{"class":3950,"line":3976},[3948,10485,10486],{"class":4421},"  renderSectionHeader",[3948,10488,4425],{"class":4231},[3948,10490,4428],{"class":4267},[3948,10492,4475],{"class":4445},[3948,10494,10495],{"class":4235},"section",[3948,10497,10498],{"class":4445},": { ",[3948,10500,4289],{"class":4235},[3948,10502,10503],{"class":4445}," } }) ",[3948,10505,4454],{"class":4267},[3948,10507,4407],{"class":4445},[3948,10509,10510,10512,10514,10516,10518,10520,10522,10524,10527,10529,10531,10533,10535,10537,10539,10541],{"class":3950,"line":3982},[3948,10511,4413],{"class":4412},[3948,10513,4240],{"class":4271},[3948,10515,5115],{"class":4421},[3948,10517,4425],{"class":4231},[3948,10519,4428],{"class":4267},[3948,10521,5125],{"class":4235},[3948,10523,3555],{"class":4445},[3948,10525,10526],{"class":4235},"sectionHeader",[3948,10528,4515],{"class":4267},[3948,10530,4504],{"class":4412},[3948,10532,4428],{"class":4267},[3948,10534,4289],{"class":4235},[3948,10536,4515],{"class":4267},[3948,10538,4518],{"class":4412},[3948,10540,4240],{"class":4271},[3948,10542,4494],{"class":4412},[3948,10544,10545,10548],{"class":3950,"line":3988},[3948,10546,10547],{"class":4445},"  )",[3948,10549,4003],{"class":4267},[3948,10551,10552],{"class":3950,"line":3994},[3948,10553,10554],{"class":4421},"  stickySectionHeadersEnabled\n",[3948,10556,10557],{"class":3950,"line":4000},[3948,10558,10559],{"class":4412},"\u002F>\n",[10561,10562,10563,10576],"tabs",{},[10564,10565,10567,10570,10571,10575],"tab",{"label":10566},"iOS",[3525,10568,10569],{},"stickySectionHeadersEnabled"," за замовчуванням ",[3516,10572,10573],{},[3525,10574,7401],{},": заголовок секції «липне» зверху, доки його не витіснить наступний. Звичний патерн системних списків Apple.",[10564,10577,10579,10580,3624,10583,10585],{"label":10578},"Android","За замовчуванням sticky-заголовки ",[3516,10581,10582],{},"вимкнені",[3525,10584,7413],{},") — на Android це не такий універсальний системний жест. Можна ввімкнути явно, якщо дизайн цього хоче; перевірте на реальному пристрої, що заголовки не перекривають контент дивно.",[3846,10587,10589],{"id":10588},"демо-секції","Демо: секції",[4721,10591,10595],{"device":4723,"filename":10592,"height":10593,"title":10594},"SectionListDemo.tsx",620,"SectionList · жанри",[3939,10596,10598],{"className":4218,"code":10597,"language":4220,"meta":3944,"style":3944},"import {\n  SectionList,\n  StyleSheet,\n  Text,\n  View,\n  useColorScheme,\n} from 'react-native';\n\ntype Book = { id: string; title: string; author: string };\n\nconst SECTIONS: { title: string; data: Book[] }[] = [\n  {\n    title: 'Фантастика',\n    data: [\n      { id: '1', title: 'Дюна', author: 'Ф. Герберт' },\n      { id: '2', title: 'Ліва рука темряви', author: 'У. Ле Ґуїн' },\n      { id: '3', title: 'Нейромант', author: 'В. Ґібсон' },\n    ],\n  },\n  {\n    title: 'Детектив',\n    data: [\n      { id: '4', title: 'Ім’я троянди', author: 'У. Еко' },\n      { id: '5', title: 'Дівчина з тату', author: 'С. Ларссон' },\n    ],\n  },\n  {\n    title: 'Подорожі',\n    data: [\n      { id: '6', title: 'Дорога', author: 'Дж. Керуак' },\n      { id: '7', title: 'Холод', author: 'А. Камю' },\n      { id: '8', title: 'Nomad notes', author: 'Анонім' },\n    ],\n  },\n];\n\nexport default function App() {\n  const dark = useColorScheme() === 'dark';\n  const bg = dark ? '#000' : '#F8FAFC';\n  const surface = dark ? '#1c1c1e' : '#fff';\n  const text = dark ? '#f5f5f7' : '#0f172a';\n  const muted = dark ? '#a1a1aa' : '#64748b';\n  const primary = dark ? '#3b82f6' : '#2563eb';\n  const border = dark ? '#3a3a3c' : '#e2e8f0';\n  const headerBg = dark ? '#111' : '#e2e8f0';\n\n  return (\n    \u003CView style={[styles.screen, { backgroundColor: bg }]}>\n      \u003CText style={[styles.h, { color: text }]}>Каталог · SectionList\u003C\u002FText>\n      \u003CSectionList\n        style={{ flex: 1 }}\n        sections={SECTIONS}\n        keyExtractor={(item) => item.id}\n        stickySectionHeadersEnabled\n        contentContainerStyle={{ paddingBottom: 24 }}\n        renderSectionHeader={({ section: { title } }) => (\n          \u003CView style={[styles.sec, { backgroundColor: headerBg }]}>\n            \u003CText style={{ color: primary, fontWeight: '800' }}>{title}\u003C\u002FText>\n          \u003C\u002FView>\n        )}\n        renderItem={({ item }) => (\n          \u003CView\n            style={[styles.row, { backgroundColor: surface, borderColor: border }]}\n          >\n            \u003CText style={{ color: text, fontWeight: '700' }}>{item.title}\u003C\u002FText>\n            \u003CText style={{ color: muted, marginTop: 4 }}>{item.author}\u003C\u002FText>\n          \u003C\u002FView>\n        )}\n        ItemSeparatorComponent={() => \u003CView style={{ height: 8 }} \u002F>}\n        SectionSeparatorComponent={() => \u003CView style={{ height: 12 }} \u002F>}\n      \u002F>\n    \u003C\u002FView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  screen: { flex: 1, padding: 16, paddingTop: 24 },\n  h: { fontSize: 20, fontWeight: '800', marginBottom: 12 },\n  sec: {\n    paddingVertical: 8,\n    paddingHorizontal: 10,\n    borderRadius: 8,\n    marginBottom: 8,\n  },\n  row: {\n    borderWidth: 1,\n    borderRadius: 12,\n    padding: 14,\n  },\n});\n",[3525,10599,10600,10606,10613,10619,10625,10631,10637,10647,10651,10685,10689,10715,10720,10728,10735,10761,10785,10809,10814,10818,10822,10830,10836,10861,10886,10890,10894,10898,10907,10913,10938,10963,10988,10992,10996,11000,11004,11016,11032,11052,11072,11092,11112,11132,11152,11174,11178,11184,11216,11257,11263,11281,11295,11319,11324,11342,11365,11398,11440,11448,11454,11472,11478,11510,11514,11560,11606,11614,11620,11658,11695,11699,11707,11711,11715,11719,11735,11759,11783,11790,11798,11806,11814,11823,11827,11833,11841,11849,11857,11861],{"__ignoreMap":3944},[3948,10601,10602,10604],{"class":3950,"line":3951},[3948,10603,4228],{"class":4227},[3948,10605,5674],{"class":4231},[3948,10607,10608,10611],{"class":3950,"line":3957},[3948,10609,10610],{"class":4235},"  SectionList",[3948,10612,4902],{"class":4231},[3948,10614,10615,10617],{"class":3950,"line":3963},[3948,10616,5924],{"class":4235},[3948,10618,4902],{"class":4231},[3948,10620,10621,10623],{"class":3950,"line":3969},[3948,10622,5931],{"class":4235},[3948,10624,4902],{"class":4231},[3948,10626,10627,10629],{"class":3950,"line":3976},[3948,10628,5938],{"class":4235},[3948,10630,4902],{"class":4231},[3948,10632,10633,10635],{"class":3950,"line":3982},[3948,10634,5945],{"class":4235},[3948,10636,4902],{"class":4231},[3948,10638,10639,10641,10643,10645],{"class":3950,"line":3988},[3948,10640,5952],{"class":4231},[3948,10642,4251],{"class":4227},[3948,10644,4255],{"class":4254},[3948,10646,4258],{"class":4231},[3948,10648,10649],{"class":3950,"line":3994},[3948,10650,3973],{"emptyLinePlaceholder":3972},[3948,10652,10653,10655,10658,10660,10662,10664,10666,10668,10670,10672,10674,10676,10679,10681,10683],{"class":3950,"line":4000},[3948,10654,4268],{"class":4267},[3948,10656,10657],{"class":4271}," Book",[3948,10659,4275],{"class":4231},[3948,10661,4184],{"class":4235},[3948,10663,4280],{"class":4231},[3948,10665,4283],{"class":4271},[3948,10667,4286],{"class":4231},[3948,10669,4289],{"class":4235},[3948,10671,4280],{"class":4231},[3948,10673,4283],{"class":4271},[3948,10675,4286],{"class":4231},[3948,10677,10678],{"class":4235},"author",[3948,10680,4280],{"class":4231},[3948,10682,4283],{"class":4271},[3948,10684,4296],{"class":4231},[3948,10686,10687],{"class":3950,"line":4006},[3948,10688,3973],{"emptyLinePlaceholder":3972},[3948,10690,10691,10693,10696,10698,10700,10702,10704,10706,10708,10710,10712],{"class":3950,"line":4011},[3948,10692,4305],{"class":4267},[3948,10694,10695],{"class":4308}," SECTIONS",[3948,10697,10498],{"class":4231},[3948,10699,4289],{"class":4235},[3948,10701,4280],{"class":4231},[3948,10703,4283],{"class":4271},[3948,10705,4286],{"class":4231},[3948,10707,3592],{"class":4235},[3948,10709,4280],{"class":4231},[3948,10711,10320],{"class":4271},[3948,10713,10714],{"class":4231},"[] }[] = [\n",[3948,10716,10717],{"class":3950,"line":4017},[3948,10718,10719],{"class":4231},"  {\n",[3948,10721,10722,10724,10726],{"class":3950,"line":4023},[3948,10723,7641],{"class":4235},[3948,10725,10355],{"class":4254},[3948,10727,4902],{"class":4231},[3948,10729,10730,10733],{"class":3950,"line":4029},[3948,10731,10732],{"class":4235},"    data:",[3948,10734,6277],{"class":4231},[3948,10736,10737,10740,10742,10744,10746,10748,10751,10753,10756,10759],{"class":3950,"line":4035},[3948,10738,10739],{"class":4231},"      { ",[3948,10741,4325],{"class":4235},[3948,10743,4328],{"class":4254},[3948,10745,3593],{"class":4231},[3948,10747,4333],{"class":4235},[3948,10749,10750],{"class":4254}," 'Дюна'",[3948,10752,3593],{"class":4231},[3948,10754,10755],{"class":4235},"author:",[3948,10757,10758],{"class":4254}," 'Ф. Герберт'",[3948,10760,4339],{"class":4231},[3948,10762,10763,10765,10767,10769,10771,10773,10776,10778,10780,10783],{"class":3950,"line":4041},[3948,10764,10739],{"class":4231},[3948,10766,4325],{"class":4235},[3948,10768,4348],{"class":4254},[3948,10770,3593],{"class":4231},[3948,10772,4333],{"class":4235},[3948,10774,10775],{"class":4254}," 'Ліва рука темряви'",[3948,10777,3593],{"class":4231},[3948,10779,10755],{"class":4235},[3948,10781,10782],{"class":4254}," 'У. Ле Ґуїн'",[3948,10784,4339],{"class":4231},[3948,10786,10787,10789,10791,10793,10795,10797,10800,10802,10804,10807],{"class":3950,"line":4046},[3948,10788,10739],{"class":4231},[3948,10790,4325],{"class":4235},[3948,10792,4366],{"class":4254},[3948,10794,3593],{"class":4231},[3948,10796,4333],{"class":4235},[3948,10798,10799],{"class":4254}," 'Нейромант'",[3948,10801,3593],{"class":4231},[3948,10803,10755],{"class":4235},[3948,10805,10806],{"class":4254}," 'В. Ґібсон'",[3948,10808,4339],{"class":4231},[3948,10810,10811],{"class":3950,"line":4051},[3948,10812,10813],{"class":4231},"    ],\n",[3948,10815,10816],{"class":3950,"line":4057},[3948,10817,5712],{"class":4231},[3948,10819,10820],{"class":3950,"line":4063},[3948,10821,10719],{"class":4231},[3948,10823,10824,10826,10828],{"class":3950,"line":4069},[3948,10825,7641],{"class":4235},[3948,10827,10377],{"class":4254},[3948,10829,4902],{"class":4231},[3948,10831,10832,10834],{"class":3950,"line":4074},[3948,10833,10732],{"class":4235},[3948,10835,6277],{"class":4231},[3948,10837,10838,10840,10842,10845,10847,10849,10852,10854,10856,10859],{"class":3950,"line":4080},[3948,10839,10739],{"class":4231},[3948,10841,4325],{"class":4235},[3948,10843,10844],{"class":4254}," '4'",[3948,10846,3593],{"class":4231},[3948,10848,4333],{"class":4235},[3948,10850,10851],{"class":4254}," 'Ім’я троянди'",[3948,10853,3593],{"class":4231},[3948,10855,10755],{"class":4235},[3948,10857,10858],{"class":4254}," 'У. Еко'",[3948,10860,4339],{"class":4231},[3948,10862,10863,10865,10867,10870,10872,10874,10877,10879,10881,10884],{"class":3950,"line":4086},[3948,10864,10739],{"class":4231},[3948,10866,4325],{"class":4235},[3948,10868,10869],{"class":4254}," '5'",[3948,10871,3593],{"class":4231},[3948,10873,4333],{"class":4235},[3948,10875,10876],{"class":4254}," 'Дівчина з тату'",[3948,10878,3593],{"class":4231},[3948,10880,10755],{"class":4235},[3948,10882,10883],{"class":4254}," 'С. Ларссон'",[3948,10885,4339],{"class":4231},[3948,10887,10888],{"class":3950,"line":4091},[3948,10889,10813],{"class":4231},[3948,10891,10892],{"class":3950,"line":4096},[3948,10893,5712],{"class":4231},[3948,10895,10896],{"class":3950,"line":5272},[3948,10897,10719],{"class":4231},[3948,10899,10900,10902,10905],{"class":3950,"line":5286},[3948,10901,7641],{"class":4235},[3948,10903,10904],{"class":4254}," 'Подорожі'",[3948,10906,4902],{"class":4231},[3948,10908,10909,10911],{"class":3950,"line":5312},[3948,10910,10732],{"class":4235},[3948,10912,6277],{"class":4231},[3948,10914,10915,10917,10919,10922,10924,10926,10929,10931,10933,10936],{"class":3950,"line":5341},[3948,10916,10739],{"class":4231},[3948,10918,4325],{"class":4235},[3948,10920,10921],{"class":4254}," '6'",[3948,10923,3593],{"class":4231},[3948,10925,4333],{"class":4235},[3948,10927,10928],{"class":4254}," 'Дорога'",[3948,10930,3593],{"class":4231},[3948,10932,10755],{"class":4235},[3948,10934,10935],{"class":4254}," 'Дж. Керуак'",[3948,10937,4339],{"class":4231},[3948,10939,10940,10942,10944,10947,10949,10951,10954,10956,10958,10961],{"class":3950,"line":5361},[3948,10941,10739],{"class":4231},[3948,10943,4325],{"class":4235},[3948,10945,10946],{"class":4254}," '7'",[3948,10948,3593],{"class":4231},[3948,10950,4333],{"class":4235},[3948,10952,10953],{"class":4254}," 'Холод'",[3948,10955,3593],{"class":4231},[3948,10957,10755],{"class":4235},[3948,10959,10960],{"class":4254}," 'А. Камю'",[3948,10962,4339],{"class":4231},[3948,10964,10965,10967,10969,10972,10974,10976,10979,10981,10983,10986],{"class":3950,"line":5369},[3948,10966,10739],{"class":4231},[3948,10968,4325],{"class":4235},[3948,10970,10971],{"class":4254}," '8'",[3948,10973,3593],{"class":4231},[3948,10975,4333],{"class":4235},[3948,10977,10978],{"class":4254}," 'Nomad notes'",[3948,10980,3593],{"class":4231},[3948,10982,10755],{"class":4235},[3948,10984,10985],{"class":4254}," 'Анонім'",[3948,10987,4339],{"class":4231},[3948,10989,10990],{"class":3950,"line":5382},[3948,10991,10813],{"class":4231},[3948,10993,10994],{"class":3950,"line":5395},[3948,10995,5712],{"class":4231},[3948,10997,10998],{"class":3950,"line":5414},[3948,10999,4380],{"class":4231},[3948,11001,11002],{"class":3950,"line":5422},[3948,11003,3973],{"emptyLinePlaceholder":3972},[3948,11005,11006,11008,11010,11012,11014],{"class":3950,"line":5428},[3948,11007,4389],{"class":4227},[3948,11009,4952],{"class":4227},[3948,11011,4392],{"class":4267},[3948,11013,4957],{"class":4395},[3948,11015,4399],{"class":4231},[3948,11017,11018,11020,11022,11024,11026,11028,11030],{"class":3950,"line":5478},[3948,11019,4964],{"class":4267},[3948,11021,4967],{"class":4308},[3948,11023,4970],{"class":4231},[3948,11025,4757],{"class":4395},[3948,11027,4975],{"class":4231},[3948,11029,4978],{"class":4254},[3948,11031,4258],{"class":4231},[3948,11033,11034,11036,11038,11040,11042,11044,11046,11048,11050],{"class":3950,"line":5525},[3948,11035,4964],{"class":4267},[3948,11037,4987],{"class":4308},[3948,11039,4970],{"class":4231},[3948,11041,4992],{"class":4235},[3948,11043,4925],{"class":4231},[3948,11045,4997],{"class":4254},[3948,11047,4931],{"class":4231},[3948,11049,5002],{"class":4254},[3948,11051,4258],{"class":4231},[3948,11053,11054,11056,11058,11060,11062,11064,11066,11068,11070],{"class":3950,"line":5535},[3948,11055,4964],{"class":4267},[3948,11057,5011],{"class":4308},[3948,11059,4970],{"class":4231},[3948,11061,4992],{"class":4235},[3948,11063,4925],{"class":4231},[3948,11065,5020],{"class":4254},[3948,11067,4931],{"class":4231},[3948,11069,5025],{"class":4254},[3948,11071,4258],{"class":4231},[3948,11073,11074,11076,11078,11080,11082,11084,11086,11088,11090],{"class":3950,"line":5543},[3948,11075,4964],{"class":4267},[3948,11077,5034],{"class":4308},[3948,11079,4970],{"class":4231},[3948,11081,4992],{"class":4235},[3948,11083,4925],{"class":4231},[3948,11085,5043],{"class":4254},[3948,11087,4931],{"class":4231},[3948,11089,5048],{"class":4254},[3948,11091,4258],{"class":4231},[3948,11093,11094,11096,11098,11100,11102,11104,11106,11108,11110],{"class":3950,"line":5549},[3948,11095,4964],{"class":4267},[3948,11097,5057],{"class":4308},[3948,11099,4970],{"class":4231},[3948,11101,4992],{"class":4235},[3948,11103,4925],{"class":4231},[3948,11105,5066],{"class":4254},[3948,11107,4931],{"class":4231},[3948,11109,5071],{"class":4254},[3948,11111,4258],{"class":4231},[3948,11113,11114,11116,11118,11120,11122,11124,11126,11128,11130],{"class":3950,"line":5559},[3948,11115,4964],{"class":4267},[3948,11117,6105],{"class":4308},[3948,11119,4970],{"class":4231},[3948,11121,4992],{"class":4235},[3948,11123,4925],{"class":4231},[3948,11125,6114],{"class":4254},[3948,11127,4931],{"class":4231},[3948,11129,6119],{"class":4254},[3948,11131,4258],{"class":4231},[3948,11133,11134,11136,11138,11140,11142,11144,11146,11148,11150],{"class":3950,"line":5564},[3948,11135,4964],{"class":4267},[3948,11137,5080],{"class":4308},[3948,11139,4970],{"class":4231},[3948,11141,4992],{"class":4235},[3948,11143,4925],{"class":4231},[3948,11145,5089],{"class":4254},[3948,11147,4931],{"class":4231},[3948,11149,5094],{"class":4254},[3948,11151,4258],{"class":4231},[3948,11153,11154,11156,11159,11161,11163,11165,11168,11170,11172],{"class":3950,"line":5569},[3948,11155,4964],{"class":4267},[3948,11157,11158],{"class":4308}," headerBg",[3948,11160,4970],{"class":4231},[3948,11162,4992],{"class":4235},[3948,11164,4925],{"class":4231},[3948,11166,11167],{"class":4254},"'#111'",[3948,11169,4931],{"class":4231},[3948,11171,5094],{"class":4254},[3948,11173,4258],{"class":4231},[3948,11175,11176],{"class":3950,"line":5574},[3948,11177,3973],{"emptyLinePlaceholder":3972},[3948,11179,11180,11182],{"class":3950,"line":5594},[3948,11181,4404],{"class":4227},[3948,11183,4407],{"class":4231},[3948,11185,11186,11188,11190,11192,11194,11196,11198,11200,11202,11204,11206,11208,11210,11212,11214],{"class":3950,"line":5624},[3948,11187,4413],{"class":4412},[3948,11189,4245],{"class":4271},[3948,11191,5115],{"class":4421},[3948,11193,4425],{"class":4231},[3948,11195,4428],{"class":4267},[3948,11197,5122],{"class":4445},[3948,11199,5125],{"class":4235},[3948,11201,3555],{"class":4445},[3948,11203,5130],{"class":4235},[3948,11205,5133],{"class":4445},[3948,11207,5136],{"class":4235},[3948,11209,4987],{"class":4235},[3948,11211,5141],{"class":4445},[3948,11213,4515],{"class":4267},[3948,11215,4494],{"class":4412},[3948,11217,11218,11220,11222,11224,11226,11228,11230,11232,11234,11236,11238,11240,11242,11244,11246,11248,11251,11253,11255],{"class":3950,"line":5654},[3948,11219,5150],{"class":4412},[3948,11221,4240],{"class":4271},[3948,11223,5115],{"class":4421},[3948,11225,4425],{"class":4231},[3948,11227,4428],{"class":4267},[3948,11229,5122],{"class":4445},[3948,11231,5125],{"class":4235},[3948,11233,3555],{"class":4445},[3948,11235,5167],{"class":4235},[3948,11237,5133],{"class":4445},[3948,11239,5172],{"class":4235},[3948,11241,5034],{"class":4235},[3948,11243,5141],{"class":4445},[3948,11245,4515],{"class":4267},[3948,11247,4504],{"class":4412},[3948,11249,11250],{"class":4231},"Каталог · SectionList",[3948,11252,4518],{"class":4412},[3948,11254,4240],{"class":4271},[3948,11256,4494],{"class":4412},[3948,11258,11259,11261],{"class":3950,"line":5668},[3948,11260,5150],{"class":4412},[3948,11262,10403],{"class":4271},[3948,11264,11265,11267,11269,11271,11273,11275,11277,11279],{"class":3950,"line":5677},[3948,11266,5256],{"class":4421},[3948,11268,4425],{"class":4231},[3948,11270,4428],{"class":4267},[3948,11272,5204],{"class":4445},[3948,11274,5602],{"class":4235},[3948,11276,4894],{"class":4836},[3948,11278,5227],{"class":4445},[3948,11280,4003],{"class":4267},[3948,11282,11283,11286,11288,11290,11293],{"class":3950,"line":5687},[3948,11284,11285],{"class":4421},"        sections",[3948,11287,4425],{"class":4231},[3948,11289,4428],{"class":4267},[3948,11291,11292],{"class":4308},"SECTIONS",[3948,11294,4003],{"class":4267},[3948,11296,11297,11299,11301,11303,11305,11307,11309,11311,11313,11315,11317],{"class":3950,"line":5698},[3948,11298,5289],{"class":4421},[3948,11300,4425],{"class":4231},[3948,11302,4428],{"class":4267},[3948,11304,4446],{"class":4445},[3948,11306,4449],{"class":4235},[3948,11308,4168],{"class":4445},[3948,11310,4454],{"class":4267},[3948,11312,4457],{"class":4235},[3948,11314,3555],{"class":4445},[3948,11316,4184],{"class":4235},[3948,11318,4003],{"class":4267},[3948,11320,11321],{"class":3950,"line":5709},[3948,11322,11323],{"class":4421},"        stickySectionHeadersEnabled\n",[3948,11325,11326,11328,11330,11332,11334,11336,11338,11340],{"class":3950,"line":5715},[3948,11327,5315],{"class":4421},[3948,11329,4425],{"class":4231},[3948,11331,4428],{"class":4267},[3948,11333,5204],{"class":4445},[3948,11335,5324],{"class":4235},[3948,11337,5619],{"class":4836},[3948,11339,5227],{"class":4445},[3948,11341,4003],{"class":4267},[3948,11343,11344,11347,11349,11351,11353,11355,11357,11359,11361,11363],{"class":3950,"line":5741},[3948,11345,11346],{"class":4421},"        renderSectionHeader",[3948,11348,4425],{"class":4231},[3948,11350,4428],{"class":4267},[3948,11352,4475],{"class":4445},[3948,11354,10495],{"class":4235},[3948,11356,10498],{"class":4445},[3948,11358,4289],{"class":4235},[3948,11360,10503],{"class":4445},[3948,11362,4454],{"class":4267},[3948,11364,4407],{"class":4445},[3948,11366,11367,11369,11371,11373,11375,11377,11379,11381,11383,11386,11388,11390,11392,11394,11396],{"class":3950,"line":6725},[3948,11368,4499],{"class":4412},[3948,11370,4245],{"class":4271},[3948,11372,5115],{"class":4421},[3948,11374,4425],{"class":4231},[3948,11376,4428],{"class":4267},[3948,11378,5122],{"class":4445},[3948,11380,5125],{"class":4235},[3948,11382,3555],{"class":4445},[3948,11384,11385],{"class":4235},"sec",[3948,11387,5133],{"class":4445},[3948,11389,5136],{"class":4235},[3948,11391,11158],{"class":4235},[3948,11393,5141],{"class":4445},[3948,11395,4515],{"class":4267},[3948,11397,4494],{"class":4412},[3948,11399,11400,11402,11404,11406,11408,11410,11412,11414,11416,11418,11420,11422,11424,11426,11428,11430,11432,11434,11436,11438],{"class":3950,"line":6749},[3948,11401,5431],{"class":4412},[3948,11403,4240],{"class":4271},[3948,11405,5115],{"class":4421},[3948,11407,4425],{"class":4231},[3948,11409,4428],{"class":4267},[3948,11411,5204],{"class":4445},[3948,11413,5172],{"class":4235},[3948,11415,6105],{"class":4235},[3948,11417,3593],{"class":4445},[3948,11419,5639],{"class":4235},[3948,11421,5642],{"class":4254},[3948,11423,5227],{"class":4445},[3948,11425,4515],{"class":4267},[3948,11427,4504],{"class":4412},[3948,11429,4428],{"class":4267},[3948,11431,4289],{"class":4235},[3948,11433,4515],{"class":4267},[3948,11435,4518],{"class":4412},[3948,11437,4240],{"class":4271},[3948,11439,4494],{"class":4412},[3948,11441,11442,11444,11446],{"class":3950,"line":6792},[3948,11443,5528],{"class":4412},[3948,11445,4245],{"class":4271},[3948,11447,4494],{"class":4412},[3948,11449,11450,11452],{"class":3950,"line":6832},[3948,11451,5538],{"class":4445},[3948,11453,4003],{"class":4267},[3948,11455,11456,11458,11460,11462,11464,11466,11468,11470],{"class":3950,"line":6838},[3948,11457,5344],{"class":4421},[3948,11459,4425],{"class":4231},[3948,11461,4428],{"class":4267},[3948,11463,4475],{"class":4445},[3948,11465,4449],{"class":4235},[3948,11467,4480],{"class":4445},[3948,11469,4454],{"class":4267},[3948,11471,4407],{"class":4445},[3948,11473,11474,11476],{"class":3950,"line":6844},[3948,11475,4499],{"class":4412},[3948,11477,5366],{"class":4271},[3948,11479,11480,11482,11484,11486,11488,11490,11492,11494,11496,11498,11500,11502,11504,11506,11508],{"class":3950,"line":6854},[3948,11481,5372],{"class":4421},[3948,11483,4425],{"class":4231},[3948,11485,4428],{"class":4267},[3948,11487,5122],{"class":4445},[3948,11489,5125],{"class":4235},[3948,11491,3555],{"class":4445},[3948,11493,5390],{"class":4235},[3948,11495,5133],{"class":4445},[3948,11497,5136],{"class":4235},[3948,11499,5011],{"class":4235},[3948,11501,3593],{"class":4445},[3948,11503,5407],{"class":4235},[3948,11505,5080],{"class":4235},[3948,11507,5141],{"class":4445},[3948,11509,4003],{"class":4267},[3948,11511,11512],{"class":3950,"line":6863},[3948,11513,5425],{"class":4412},[3948,11515,11516,11518,11520,11522,11524,11526,11528,11530,11532,11534,11536,11538,11540,11542,11544,11546,11548,11550,11552,11554,11556,11558],{"class":3950,"line":6868},[3948,11517,5431],{"class":4412},[3948,11519,4240],{"class":4271},[3948,11521,5115],{"class":4421},[3948,11523,4425],{"class":4231},[3948,11525,4428],{"class":4267},[3948,11527,5204],{"class":4445},[3948,11529,5172],{"class":4235},[3948,11531,5034],{"class":4235},[3948,11533,3593],{"class":4445},[3948,11535,5639],{"class":4235},[3948,11537,5730],{"class":4254},[3948,11539,5227],{"class":4445},[3948,11541,4515],{"class":4267},[3948,11543,4504],{"class":4412},[3948,11545,4428],{"class":4267},[3948,11547,4449],{"class":4235},[3948,11549,3555],{"class":4445},[3948,11551,4289],{"class":4235},[3948,11553,4515],{"class":4267},[3948,11555,4518],{"class":4412},[3948,11557,4240],{"class":4271},[3948,11559,4494],{"class":4412},[3948,11561,11562,11564,11566,11568,11570,11572,11574,11576,11578,11580,11582,11584,11586,11588,11590,11592,11594,11596,11598,11600,11602,11604],{"class":3950,"line":6887},[3948,11563,5431],{"class":4412},[3948,11565,4240],{"class":4271},[3948,11567,5115],{"class":4421},[3948,11569,4425],{"class":4231},[3948,11571,4428],{"class":4267},[3948,11573,5204],{"class":4445},[3948,11575,5172],{"class":4235},[3948,11577,5057],{"class":4235},[3948,11579,3593],{"class":4445},[3948,11581,9776],{"class":4235},[3948,11583,5649],{"class":4836},[3948,11585,5227],{"class":4445},[3948,11587,4515],{"class":4267},[3948,11589,4504],{"class":4412},[3948,11591,4428],{"class":4267},[3948,11593,4449],{"class":4235},[3948,11595,3555],{"class":4445},[3948,11597,10678],{"class":4235},[3948,11599,4515],{"class":4267},[3948,11601,4518],{"class":4412},[3948,11603,4240],{"class":4271},[3948,11605,4494],{"class":4412},[3948,11607,11608,11610,11612],{"class":3950,"line":6926},[3948,11609,5528],{"class":4412},[3948,11611,4245],{"class":4271},[3948,11613,4494],{"class":4412},[3948,11615,11616,11618],{"class":3950,"line":6974},[3948,11617,5538],{"class":4445},[3948,11619,4003],{"class":4267},[3948,11621,11622,11625,11627,11629,11631,11633,11635,11637,11639,11641,11643,11645,11648,11650,11652,11654,11656],{"class":3950,"line":6983},[3948,11623,11624],{"class":4421},"        ItemSeparatorComponent",[3948,11626,4425],{"class":4231},[3948,11628,4428],{"class":4267},[3948,11630,6256],{"class":4445},[3948,11632,4454],{"class":4267},[3948,11634,10462],{"class":4412},[3948,11636,4245],{"class":4271},[3948,11638,5115],{"class":4421},[3948,11640,4425],{"class":4231},[3948,11642,4428],{"class":4267},[3948,11644,5204],{"class":4445},[3948,11646,11647],{"class":4235},"height:",[3948,11649,5216],{"class":4836},[3948,11651,5227],{"class":4445},[3948,11653,4515],{"class":4267},[3948,11655,10479],{"class":4412},[3948,11657,4003],{"class":4267},[3948,11659,11660,11663,11665,11667,11669,11671,11673,11675,11677,11679,11681,11683,11685,11687,11689,11691,11693],{"class":3950,"line":6990},[3948,11661,11662],{"class":4421},"        SectionSeparatorComponent",[3948,11664,4425],{"class":4231},[3948,11666,4428],{"class":4267},[3948,11668,6256],{"class":4445},[3948,11670,4454],{"class":4267},[3948,11672,10462],{"class":4412},[3948,11674,4245],{"class":4271},[3948,11676,5115],{"class":4421},[3948,11678,4425],{"class":4231},[3948,11680,4428],{"class":4267},[3948,11682,5204],{"class":4445},[3948,11684,11647],{"class":4235},[3948,11686,5693],{"class":4836},[3948,11688,5227],{"class":4445},[3948,11690,4515],{"class":4267},[3948,11692,10479],{"class":4412},[3948,11694,4003],{"class":4267},[3948,11696,11697],{"class":3950,"line":6995},[3948,11698,5546],{"class":4412},[3948,11700,11701,11703,11705],{"class":3950,"line":7004},[3948,11702,5552],{"class":4412},[3948,11704,4245],{"class":4271},[3948,11706,4494],{"class":4412},[3948,11708,11709],{"class":3950,"line":7009},[3948,11710,4548],{"class":4231},[3948,11712,11713],{"class":3950,"line":7014},[3948,11714,4003],{"class":4231},[3948,11716,11717],{"class":3950,"line":7019},[3948,11718,3973],{"emptyLinePlaceholder":3972},[3948,11720,11721,11723,11725,11727,11729,11731,11733],{"class":3950,"line":7036},[3948,11722,4305],{"class":4267},[3948,11724,5579],{"class":4308},[3948,11726,4970],{"class":4231},[3948,11728,4744],{"class":4235},[3948,11730,3555],{"class":4231},[3948,11732,5588],{"class":4395},[3948,11734,5591],{"class":4231},[3948,11736,11737,11739,11741,11743,11745,11747,11749,11751,11753,11755,11757],{"class":3950,"line":7061},[3948,11738,5597],{"class":4235},[3948,11740,4232],{"class":4231},[3948,11742,5602],{"class":4235},[3948,11744,4894],{"class":4836},[3948,11746,3593],{"class":4231},[3948,11748,5609],{"class":4235},[3948,11750,5327],{"class":4836},[3948,11752,3593],{"class":4231},[3948,11754,5616],{"class":4235},[3948,11756,5619],{"class":4836},[3948,11758,4339],{"class":4231},[3948,11760,11761,11763,11765,11767,11769,11771,11773,11775,11777,11779,11781],{"class":3950,"line":7089},[3948,11762,5627],{"class":4235},[3948,11764,4232],{"class":4231},[3948,11766,5221],{"class":4235},[3948,11768,5634],{"class":4836},[3948,11770,3593],{"class":4231},[3948,11772,5639],{"class":4235},[3948,11774,5642],{"class":4254},[3948,11776,3593],{"class":4231},[3948,11778,5213],{"class":4235},[3948,11780,5693],{"class":4836},[3948,11782,4339],{"class":4231},[3948,11784,11785,11788],{"class":3950,"line":7097},[3948,11786,11787],{"class":4235},"  sec:",[3948,11789,5674],{"class":4231},[3948,11791,11792,11794,11796],{"class":3950,"line":7107},[3948,11793,7110],{"class":4235},[3948,11795,5216],{"class":4836},[3948,11797,4902],{"class":4231},[3948,11799,11800,11802,11804],{"class":3950,"line":7118},[3948,11801,7100],{"class":4235},[3948,11803,7113],{"class":4836},[3948,11805,4902],{"class":4231},[3948,11807,11808,11810,11812],{"class":3950,"line":7127},[3948,11809,5690],{"class":4235},[3948,11811,5216],{"class":4836},[3948,11813,4902],{"class":4231},[3948,11815,11816,11819,11821],{"class":3950,"line":7132},[3948,11817,11818],{"class":4235},"    marginBottom:",[3948,11820,5216],{"class":4836},[3948,11822,4902],{"class":4231},[3948,11824,11825],{"class":3950,"line":7153},[3948,11826,5712],{"class":4231},[3948,11828,11829,11831],{"class":3950,"line":7179},[3948,11830,5671],{"class":4235},[3948,11832,5674],{"class":4231},[3948,11834,11835,11837,11839],{"class":3950,"line":7194},[3948,11836,5680],{"class":4235},[3948,11838,4894],{"class":4836},[3948,11840,4902],{"class":4231},[3948,11842,11843,11845,11847],{"class":3950,"line":7202},[3948,11844,5690],{"class":4235},[3948,11846,5693],{"class":4836},[3948,11848,4902],{"class":4231},[3948,11850,11851,11853,11855],{"class":3950,"line":7212},[3948,11852,5701],{"class":4235},[3948,11854,5704],{"class":4836},[3948,11856,4902],{"class":4231},[3948,11858,11859],{"class":3950,"line":7223},[3948,11860,5712],{"class":4231},[3948,11862,11863],{"class":3950,"line":7233},[3948,11864,5744],{"class":4231},[3700,11866],{},[3507,11868,11870,11871,11874],{"id":11869},"продуктивність-рядка-memo-стабільні-колбеки","Продуктивність рядка: ",[3525,11872,11873],{},"memo",", стабільні колбеки",[3512,11876,11877,11878,11881,11882,11885],{},"Віртуалізація ",[3516,11879,11880],{},"не скасовує"," дорогий рядок. Якщо кожен ",[3525,11883,11884],{},"TripCard"," тягне величезне зображення без розмірів, робить важкі обчислення в render і слухає зайвий контекст — список усе одно гальмуватиме.",[3512,11887,11888],{},"Практичні звички (достатньо «на зараз»; глибокий profiling — окрема стаття):",[3571,11890,11891,11908,11920,11929,11942],{},[3574,11892,11893,11899,11900,11903,11904,11907],{},[3516,11894,11895,11898],{},[3525,11896,11897],{},"React.memo"," на компоненті рядка"," — не перемальовувати, якщо ",[3525,11901,11902],{},"trip"," і ",[3525,11905,11906],{},"onPress"," ті самі за посиланням.",[3574,11909,11910,11919],{},[3516,11911,11912,11914,11915,3686,11917],{},[3525,11913,4586],{}," для ",[3525,11916,3596],{},[3525,11918,11906],{}," — щоб memo мав шанс спрацювати.",[3574,11921,11922,11925,11926,11928],{},[3516,11923,11924],{},"Не створювати нову функцію-обгортку в JSX без потреби"," в кожному рядку, якщо можна передати ",[3525,11927,4449],{}," і стабільний handler.",[3574,11930,11931,11934,11935,11938,11939,3555],{},[3516,11932,11933],{},"Картинки:"," фіксована висота обкладинки, розумний розмір URI (",[3525,11936,11937],{},"w=800","), пізніше — кеш \u002F ",[3525,11940,11941],{},"expo-image",[3574,11943,11944,11949,11950,11952,11953,11956,11957,11959],{},[3516,11945,11946],{},[3525,11947,11948],{},"getItemLayout"," (опційно), якщо ",[3516,11951,3522],{}," рядки ",[3516,11954,11955],{},"однакової"," висоти — список швидше рахує offsets без вимірювання. Для карток різної висоти часто ",[3516,11958,3663],{}," використовують.",[3939,11961,11963],{"className":4218,"code":11962,"language":4220,"meta":3944,"style":3944},"const renderItem = useCallback(\n  ({ item }: { item: Trip }) => (\n    \u003CTripCard trip={item} onPress={handleOpenTrip} \u002F>\n  ),\n  [handleOpenTrip],\n);\n",[3525,11964,11965,11979,12002,12033,12038,12048],{"__ignoreMap":3944},[3948,11966,11967,11969,11972,11974,11976],{"class":3950,"line":3951},[3948,11968,4305],{"class":4267},[3948,11970,11971],{"class":4308}," renderItem",[3948,11973,4970],{"class":4231},[3948,11975,4586],{"class":4395},[3948,11977,11978],{"class":4231},"(\n",[3948,11980,11981,11984,11986,11989,11991,11993,11996,11998,12000],{"class":3950,"line":3957},[3948,11982,11983],{"class":4231},"  ({ ",[3948,11985,4449],{"class":4235},[3948,11987,11988],{"class":4231}," }: { ",[3948,11990,4449],{"class":4235},[3948,11992,4280],{"class":4231},[3948,11994,11995],{"class":4271},"Trip",[3948,11997,4480],{"class":4231},[3948,11999,4454],{"class":4267},[3948,12001,4407],{"class":4231},[3948,12003,12004,12006,12008,12011,12013,12015,12017,12019,12022,12024,12026,12029,12031],{"class":3950,"line":3963},[3948,12005,4413],{"class":4412},[3948,12007,11884],{"class":4271},[3948,12009,12010],{"class":4421}," trip",[3948,12012,4425],{"class":4231},[3948,12014,4428],{"class":4267},[3948,12016,4449],{"class":4235},[3948,12018,4515],{"class":4267},[3948,12020,12021],{"class":4421}," onPress",[3948,12023,4425],{"class":4231},[3948,12025,4428],{"class":4267},[3948,12027,12028],{"class":4235},"handleOpenTrip",[3948,12030,4515],{"class":4267},[3948,12032,9753],{"class":4412},[3948,12034,12035],{"class":3950,"line":3969},[3948,12036,12037],{"class":4231},"  ),\n",[3948,12039,12040,12043,12045],{"class":3950,"line":3976},[3948,12041,12042],{"class":4231},"  [",[3948,12044,12028],{"class":4235},[3948,12046,12047],{"class":4231},"],\n",[3948,12049,12050],{"class":3950,"line":3982},[3948,12051,7857],{"class":4231},[3674,12053,12054,12058,12059,12061,12062,4603,12064,12066,12067,12070,12071,12073],{},[3516,12055,12056,3555],{},[3525,12057,4572],{}," Виділення рядка (",[3525,12060,4669],{},") живе ",[3516,12063,4663],{},[3525,12065,4449],{},". Без ",[3525,12068,12069],{},"extraData={selectedId}"," FlatList може вирішити, що ",[3525,12072,3592],{}," не змінився, і не оновити підсвітку. Передавайте все «зовнішнє», від чого залежить вигляд рядка.",[3700,12075],{},[3507,12077,12079,12081],{"id":12078},"flashlist-коли-flatlist-уже-не-тягне",[3525,12080,3643],{}," — коли FlatList уже «не тягне»",[3512,12083,12084,3624,12086,12089,12090,12093,12094,12097,12098,12100],{},[3516,12085,3643],{},[3525,12087,12088],{},"@shopify\u002Fflash-list",") — список від Shopify з ",[3516,12091,12092],{},"більш агресивним recycling"," рядків і зазвичай ",[3516,12095,12096],{},"кращою"," продуктивністю на довгих\u002Fскладних списках, ніж у вбудованого ",[3525,12099,3551],{},". API навмисно близький до FlatList: часто міграція — це зміна імпорту й кілька props.",[3846,12102,12104],{"id":12103},"навіщо-він-зявився","Навіщо він з’явився",[3512,12106,12107,12109,12110,12113,12114,4141],{},[3525,12108,3551],{}," достатній для багатьох екранів. Але на стрічках з картинками, змінною висотою, складними картками з’являються «порожні дірки» під час швидкого скролу, jank, зайві mount\u002Funmount. FlashList ",[3516,12111,12112],{},"перевикористовує"," view-рядків (ідея близька до Android ",[3525,12115,12116],{},"RecyclerView",[3846,12118,12120],{"id":12119},"встановлення-expo","Встановлення (Expo)",[3939,12122,12126],{"className":12123,"code":12124,"language":12125,"meta":3944,"style":3944},"language-bash shiki shiki-themes light-plus dark-plus dark-plus","npx expo install @shopify\u002Fflash-list\n# або\nnpm install @shopify\u002Fflash-list\n","bash",[3525,12127,12128,12142,12147],{"__ignoreMap":3944},[3948,12129,12130,12133,12136,12139],{"class":3950,"line":3951},[3948,12131,12132],{"class":4395},"npx",[3948,12134,12135],{"class":4254}," expo",[3948,12137,12138],{"class":4254}," install",[3948,12140,12141],{"class":4254}," @shopify\u002Fflash-list\n",[3948,12143,12144],{"class":3950,"line":3957},[3948,12145,12146],{"class":5778},"# або\n",[3948,12148,12149,12152,12154],{"class":3950,"line":3963},[3948,12150,12151],{"class":4395},"npm",[3948,12153,12138],{"class":4254},[3948,12155,12141],{"class":4254},[3512,12157,12158],{},"Сумісний з Expo Go (окремий native config plugin для базового сценарію зазвичай не потрібен).",[3846,12160,12162],{"id":12161},"міграція-з-flatlist-ідея","Міграція з FlatList (ідея)",[3939,12164,12166],{"className":4218,"code":12165,"language":4220,"meta":3944,"style":3944},"\u002F\u002F було\nimport { FlatList } from 'react-native';\n\u003CFlatList data={…} renderItem={…} keyExtractor={…} \u002F>\n\n\u002F\u002F стало\nimport { FlashList } from '@shopify\u002Fflash-list';\n\u003CFlashList data={…} renderItem={…} keyExtractor={…} \u002F>\n",[3525,12167,12168,12173,12189,12230,12234,12239,12256],{"__ignoreMap":3944},[3948,12169,12170],{"class":3950,"line":3951},[3948,12171,12172],{"class":5778},"\u002F\u002F було\n",[3948,12174,12175,12177,12179,12181,12183,12185,12187],{"class":3950,"line":3957},[3948,12176,4228],{"class":4227},[3948,12178,4232],{"class":4231},[3948,12180,3551],{"class":4235},[3948,12182,4248],{"class":4231},[3948,12184,4251],{"class":4227},[3948,12186,4255],{"class":4254},[3948,12188,4258],{"class":4231},[3948,12190,12191,12193,12195,12198,12200,12202,12205,12207,12209,12211,12213,12215,12217,12220,12222,12224,12226,12228],{"class":3950,"line":3963},[3948,12192,6167],{"class":4412},[3948,12194,3551],{"class":4271},[3948,12196,12197],{"class":4421}," data",[3948,12199,4425],{"class":4231},[3948,12201,4428],{"class":4267},[3948,12203,12204],{"class":4445},"…",[3948,12206,4515],{"class":4267},[3948,12208,11971],{"class":4421},[3948,12210,4425],{"class":4231},[3948,12212,4428],{"class":4267},[3948,12214,12204],{"class":4445},[3948,12216,4515],{"class":4267},[3948,12218,12219],{"class":4421}," keyExtractor",[3948,12221,4425],{"class":4231},[3948,12223,4428],{"class":4267},[3948,12225,12204],{"class":4445},[3948,12227,4515],{"class":4267},[3948,12229,9753],{"class":4412},[3948,12231,12232],{"class":3950,"line":3969},[3948,12233,3973],{"emptyLinePlaceholder":3972},[3948,12235,12236],{"class":3950,"line":3976},[3948,12237,12238],{"class":5778},"\u002F\u002F стало\n",[3948,12240,12241,12243,12245,12247,12249,12251,12254],{"class":3950,"line":3982},[3948,12242,4228],{"class":4227},[3948,12244,4232],{"class":4231},[3948,12246,3643],{"class":4235},[3948,12248,4248],{"class":4231},[3948,12250,4251],{"class":4227},[3948,12252,12253],{"class":4254}," '@shopify\u002Fflash-list'",[3948,12255,4258],{"class":4231},[3948,12257,12258,12260,12262,12264,12266,12268,12270,12272,12274,12276,12278,12280,12282,12284,12286,12288,12290,12292],{"class":3950,"line":3988},[3948,12259,6167],{"class":4412},[3948,12261,3643],{"class":4271},[3948,12263,12197],{"class":4421},[3948,12265,4425],{"class":4231},[3948,12267,4428],{"class":4267},[3948,12269,12204],{"class":4445},[3948,12271,4515],{"class":4267},[3948,12273,11971],{"class":4421},[3948,12275,4425],{"class":4231},[3948,12277,4428],{"class":4267},[3948,12279,12204],{"class":4445},[3948,12281,4515],{"class":4267},[3948,12283,12219],{"class":4421},[3948,12285,4425],{"class":4231},[3948,12287,4428],{"class":4267},[3948,12289,12204],{"class":4445},[3948,12291,4515],{"class":4267},[3948,12293,9753],{"class":4412},[10561,12295,12296,12309],{},[10564,12297,12299,12300,12305,12306,4141],{"label":12298},"FlashList v1","Часто вимагав ",[3516,12301,12302],{},[3525,12303,12304],{},"estimatedItemSize"," — приблизну висоту (або ширину) рядка в dp. Без оцінки layout «стрибав». Брали середню висоту картки (наприклад, ",[3525,12307,12308],{},"220",[10564,12310,12312,12313,3686,12315,4603,12318,12321,12322,11903,12325,12332],{"label":12311},"FlashList v2","У v2 props на кшталт ",[3525,12314,12304],{},[3525,12316,12317],{},"estimatedListSize",[3516,12319,12320],{},"прибрали",": розміри рахуються сучасніше. Дивіться версію в ",[3525,12323,12324],{},"package.json",[12326,12327,12331],"a",{"href":12328,"rel":12329},"https:\u002F\u002Fshopify.github.io\u002Fflash-list\u002F",[12330],"nofollow","migration notes"," для вашої major-версії.",[3846,12334,12336],{"id":12335},"важливі-відмінності-від-flatlist","Важливі відмінності від FlatList",[3707,12338,12339,12349],{},[3710,12340,12341],{},[3713,12342,12343,12346],{},[3716,12344,12345],{},"Тема",[3716,12347,12348],{},"Що знати",[3726,12350,12351,12368,12382,12390],{},[3713,12352,12353,12356],{},[3731,12354,12355],{},"Recycling",[3731,12357,12358,12359,12362,12363,12365,12366],{},"Рядок може ",[3516,12360,12361],{},"одержати нові props"," без повного unmount — локальний ",[3525,12364,5831],{}," у рядку «переїде» на інший item, якщо не синхронізувати зі ",[3525,12367,4598],{},[3713,12369,12370,12376],{},[3731,12371,12372,12375],{},[3525,12373,12374],{},"key"," у дереві item",[3731,12377,12378,12379,12381],{},"Не розставляйте зайві ",[3525,12380,12374],{}," всередині item tree «по-старому» — суперечить recycle",[3713,12383,12384,12387],{},[3731,12385,12386],{},"Nested lists",[3731,12388,12389],{},"Горизонтальний список у header — ок; важкі вкладені вертикальні списки все одно болючі для UX",[3713,12391,12392,12395],{},[3731,12393,12394],{},"Прев’ю на сайті курсу",[3731,12396,3649,12397,12399,12400,12403],{},[3525,12398,3682],{}," пакета ",[3516,12401,12402],{},"немає"," — перевірка на пристрої \u002F симуляторі",[12405,12406,12407,12410,12411,12414,12415,4603,12418,12420,12421,12424,12425,12428,12429,12432,12433,3555],"caution",{},[3516,12408,12409],{},"Стан усередині item-компонента."," Якщо в рядку ",[3525,12412,12413],{},"const [open, setOpen] = useState(false)"," і користувач розкрив акордеон, після recycle цей же компонент-інстанс може показати ",[3516,12416,12417],{},"інший",[3525,12419,4449],{}," уже з ",[3525,12422,12423],{},"open === true",". Або ключуйте стан словником ",[3525,12426,12427],{},"id → state"," зверху, або скидайте стан у ",[3525,12430,12431],{},"useEffect"," від ",[3525,12434,4598],{},[3655,12436,3649,12437,12439,12440,12444,12445,12450,12451,3555],{},[3516,12438,3652],{}," на домашньому екрані стрічка поїздок — ",[3516,12441,12442],{},[3525,12443,3643],{},". Горизонтальні «останні місця» — ",[3516,12446,12447,12449],{},[3525,12448,3551],{}," horizontal"," (короткий список, API з коробки). Обидва підходи законні; головне — не мапити 200 карток у ",[3525,12452,3531],{},[3700,12454],{},[3507,12456,12458],{"id":12457},"антипатерни","Антипатерни",[3707,12460,12461,12474],{},[3710,12462,12463],{},[3713,12464,12465,12468,12471],{},[3716,12466,12467],{},"Антипатерн",[3716,12469,12470],{},"Чому погано",[3716,12472,12473],{},"Що замість",[3726,12475,12476,12495,12509,12528,12541,12552,12567],{},[3713,12477,12478,12486,12489],{},[3731,12479,12480,3579,12482,12485],{},[3525,12481,3531],{},[3525,12483,12484],{},"data.map"," на 100+",[3731,12487,12488],{},"Усе в пам’яті одразу",[3731,12490,12491,3686,12493],{},[3525,12492,3551],{},[3525,12494,3643],{},[3713,12496,12497,12502,12505],{},[3731,12498,12499,12501],{},[3525,12500,3599],{}," = index",[3731,12503,12504],{},"Плутанина ідентичності",[3731,12506,12507],{},[3525,12508,4598],{},[3713,12510,12511,12518,12521],{},[3731,12512,12513,12514,12517],{},"Новий ",[3525,12515,12516],{},"renderItem={() => …}"," без memo-стратегії",[3731,12519,12520],{},"Зайві ререндери",[3731,12522,12523,3579,12525,12527],{},[3525,12524,4586],{},[3525,12526,11873],{}," на рядку",[3713,12529,12530,12535,12538],{},[3731,12531,12532,12533],{},"Список без ",[3525,12534,4655],{},[3731,12536,12537],{},"Немає bounded height",[3731,12539,12540],{},"Ланцюг flex від Screen",[3713,12542,12543,12546,12549],{},[3731,12544,12545],{},"Empty і error — один екран",[3731,12547,12548],{},"Користувач не розуміє причину",[3731,12550,12551],{},"Окремі стани",[3713,12553,12554,12561,12564],{},[3731,12555,12556,12558,12559],{},[3525,12557,3627],{}," без ",[3525,12560,8732],{},[3731,12562,12563],{},"Подвійні запити",[3731,12565,12566],{},"Прапорець \u002F захист у data-шарі",[3713,12568,12569,12572,12575],{},[3731,12570,12571],{},"Ігнорувати recycle у FlashList",[3731,12573,12574],{},"«Липкий» UI-стан рядка",[3731,12576,12577,12578],{},"Стан від ",[3525,12579,4598],{},[3700,12581],{},[3507,12583,12585],{"id":12584},"міні-проєкт-каталог-книг","Міні-проєкт: «Каталог книг»",[3846,12587,12589],{"id":12588},"що-має-вийти","Що має вийти",[3512,12591,12592,12593,12596],{},"Окремий маленький Expo-екран (можна тимчасовий проєкт ",[3525,12594,12595],{},"npx create-expo-app book-catalog"," або окремий файл у пісочниці):",[3571,12598,12599,12605,12613,12618,12621],{},[3574,12600,12601,12604],{},[3516,12602,12603],{},"200+"," mock-книг.",[3574,12606,12607,12608,3624,12611,4141],{},"Групування в ",[3516,12609,12610],{},"секції за жанром",[3525,12612,3634],{},[3574,12614,12615,12617],{},[3516,12616,7362],{}," (перемішує \u002F оновлює «рейтинг» mock).",[3574,12619,12620],{},"Порожній стан (кнопка «Очистити полицю» \u002F «Заповнити знову»).",[3574,12622,12623,12624,12627,12628,12630,12631,3555],{},"(Опційно) footer пагінації ",[3516,12625,12626],{},"або"," одразу всі 200 у ",[3525,12629,10415],{}," — на вибір; головне — віртуалізація, не ",[3525,12632,3531],{},[3846,12634,12636],{"id":12635},"модель-даних","Модель даних",[3939,12638,12642],{"className":12639,"code":12640,"language":12641,"meta":3944,"style":3944},"language-ts shiki shiki-themes light-plus dark-plus dark-plus","type Book = {\n  id: string;\n  title: string;\n  author: string;\n  genre: string;\n  year: number;\n};\n\ntype BookSection = {\n  title: string;\n  data: Book[];\n};\n","ts",[3525,12643,12644,12652,12663,12673,12684,12695,12706,12710,12714,12723,12733,12743],{"__ignoreMap":3944},[3948,12645,12646,12648,12650],{"class":3950,"line":3951},[3948,12647,4268],{"class":4267},[3948,12649,10657],{"class":4271},[3948,12651,10299],{"class":4231},[3948,12653,12654,12657,12659,12661],{"class":3950,"line":3957},[3948,12655,12656],{"class":4235},"  id",[3948,12658,4280],{"class":4231},[3948,12660,4283],{"class":4271},[3948,12662,4258],{"class":4231},[3948,12664,12665,12667,12669,12671],{"class":3950,"line":3963},[3948,12666,10304],{"class":4235},[3948,12668,4280],{"class":4231},[3948,12670,4283],{"class":4271},[3948,12672,4258],{"class":4231},[3948,12674,12675,12678,12680,12682],{"class":3950,"line":3969},[3948,12676,12677],{"class":4235},"  author",[3948,12679,4280],{"class":4231},[3948,12681,4283],{"class":4271},[3948,12683,4258],{"class":4231},[3948,12685,12686,12689,12691,12693],{"class":3950,"line":3976},[3948,12687,12688],{"class":4235},"  genre",[3948,12690,4280],{"class":4231},[3948,12692,4283],{"class":4271},[3948,12694,4258],{"class":4231},[3948,12696,12697,12700,12702,12704],{"class":3950,"line":3982},[3948,12698,12699],{"class":4235},"  year",[3948,12701,4280],{"class":4231},[3948,12703,7547],{"class":4271},[3948,12705,4258],{"class":4231},[3948,12707,12708],{"class":3950,"line":3988},[3948,12709,10328],{"class":4231},[3948,12711,12712],{"class":3950,"line":3994},[3948,12713,3973],{"emptyLinePlaceholder":3972},[3948,12715,12716,12718,12721],{"class":3950,"line":4000},[3948,12717,4268],{"class":4267},[3948,12719,12720],{"class":4271}," BookSection",[3948,12722,10299],{"class":4231},[3948,12724,12725,12727,12729,12731],{"class":3950,"line":4006},[3948,12726,10304],{"class":4235},[3948,12728,4280],{"class":4231},[3948,12730,4283],{"class":4271},[3948,12732,4258],{"class":4231},[3948,12734,12735,12737,12739,12741],{"class":3950,"line":4011},[3948,12736,10315],{"class":4235},[3948,12738,4280],{"class":4231},[3948,12740,10320],{"class":4271},[3948,12742,10323],{"class":4231},[3948,12744,12745],{"class":3950,"line":4017},[3948,12746,10328],{"class":4231},[3846,12748,12750],{"id":12749},"кроки","Кроки",[3883,12752,12753,12757,12774,12778,12797,12803,12818,12822,12831,12835,12847,12851],{},[3846,12754,12756],{"id":12755},"_1-згенерувати-mock","1. Згенерувати mock",[3512,12758,12759,12760,3555,12763,12766,12767,12769,12770,12773],{},"Масив жанрів: ",[3525,12761,12762],{},"['Фантастика', 'Детектив', 'Подорожі', 'Історія', 'Поезія']",[12764,12765],"br",{},"\nЦикл на 220 елементів: ",[3525,12768,4184],{},", назва ",[3525,12771,12772],{},"Книга ${i}",", автор, жанр по модулю, рік.",[3846,12775,12777],{"id":12776},"_2-згрупувати-в-sections","2. Згрупувати в sections",[3512,12779,12780,3686,12783,12786,12787,12790,12791,12794,12795,3555],{},[3525,12781,12782],{},"reduce",[3525,12784,12785],{},"Map"," за ",[3525,12788,12789],{},"genre"," → масив ",[3525,12792,12793],{},"{ title, data }",", відсортувати ",[3525,12796,4289],{},[3846,12798,12800,12801],{"id":12799},"_3-sectionlist","3. ",[3525,12802,3634],{},[3512,12804,12805,12807,12808,12810,12812,12813,12815,12817],{},[3525,12806,3596],{}," — рядок (назва, автор, рік).",[12764,12809],{},[3525,12811,10265],{}," — жанр.",[12764,12814],{},[3525,12816,10569],{}," — увімкнути й глянути на iOS\u002FAndroid.",[3846,12819,12821],{"id":12820},"_4-refresh","4. Refresh",[3512,12823,12824,12826,12827,12830],{},[3525,12825,3691],{},": під час refresh — ",[3525,12828,12829],{},"setSeed(s => s+1)"," і перезібрати mock (інші «рейтинги» в підзаголовку).",[3846,12832,12834],{"id":12833},"_5-empty","5. Empty",[3512,12836,12837,12838,12841,12842,3555,12844,12846],{},"Кнопка «Очистити» → ",[3525,12839,12840],{},"sections = []"," → ",[3525,12843,3609],{},[12764,12845],{},"\n«Заповнити» → знову generate.",[3846,12848,12850],{"id":12849},"_6-перевірка","6. Перевірка",[3512,12852,12853,12854,12856],{},"Скрол має бути плавним; у React DevTools \u002F логіці ви ",[3516,12855,3663],{}," монтуєте 220 важких дерев одночасно як у ScrollView (перевірка «на око»: швидкий fling без багатосекундного freeze на старті).",[3846,12858,12860],{"id":12859},"повний-орієнтир-коду-згорнуто","Повний орієнтир коду (згорнуто)",[3512,12862,12863,12864,12867,12868,12871],{},"Код ",[3516,12865,12866],{},"повний"," — розгорніть, щоб скопіювати в ",[3525,12869,12870],{},"App.tsx"," пісочниці. У прев’ю нижче — стисліша версія для браузера.",[12873,12874,12876],"collapsible",{"title":12875},"Повний код App.tsx каталогу — розгорнути за потреби",[3939,12877,12879],{"className":4218,"code":12878,"language":4220,"meta":3944,"style":3944},"import { useCallback, useMemo, useState } from 'react';\nimport {\n  Pressable,\n  RefreshControl,\n  SectionList,\n  StyleSheet,\n  Text,\n  View,\n} from 'react-native';\nimport { SafeAreaView } from 'react-native-safe-area-context';\n\ntype Book = {\n  id: string;\n  title: string;\n  author: string;\n  genre: string;\n  year: number;\n  rating: number;\n};\n\ntype BookSection = { title: string; data: Book[] };\n\nconst GENRES = ['Фантастика', 'Детектив', 'Подорожі', 'Історія', 'Поезія'] as const;\nconst AUTHORS = ['Коваленко', 'Шевченко', 'Лис', 'Мельник', 'Бондар'];\n\nfunction buildBooks(seed: number, count = 220): Book[] {\n  return Array.from({ length: count }, (_, i) => {\n    const genre = GENRES[i % GENRES.length];\n    return {\n      id: `${seed}-${i}`,\n      title: `Книга ${i + 1}`,\n      author: AUTHORS[i % AUTHORS.length],\n      genre,\n      year: 1990 + (i % 35),\n      rating: ((seed + i) % 50) \u002F 10 + 5, \u002F\u002F 5.0–9.9\n    };\n  });\n}\n\nfunction toSections(books: Book[]): BookSection[] {\n  const map = new Map\u003Cstring, Book[]>();\n  for (const b of books) {\n    const list = map.get(b.genre) ?? [];\n    list.push(b);\n    map.set(b.genre, list);\n  }\n  return [...map.entries()]\n    .sort(([a], [b]) => a.localeCompare(b, 'uk'))\n    .map(([title, data]) => ({ title, data }));\n}\n\nexport default function App() {\n  const [seed, setSeed] = useState(1);\n  const [books, setBooks] = useState(() => buildBooks(1));\n  const [refreshing, setRefreshing] = useState(false);\n\n  const sections = useMemo(() => toSections(books), [books]);\n\n  const onRefresh = useCallback(() => {\n    setRefreshing(true);\n    setTimeout(() => {\n      setSeed((s) => {\n        const next = s + 1;\n        setBooks(buildBooks(next));\n        return next;\n      });\n      setRefreshing(false);\n    }, 700);\n  }, []);\n\n  return (\n    \u003CSafeAreaView style={styles.safe}>\n      \u003CView style={styles.toolbar}>\n        \u003CText style={styles.h}>Каталог книг\u003C\u002FText>\n        \u003CText style={styles.muted}>\n          {books.length} книг · seed {seed}\n        \u003C\u002FText>\n        \u003CView style={styles.row}>\n          \u003CPressable\n            style={styles.btn}\n            onPress={() => {\n              setBooks(buildBooks(seed));\n            }}\n          >\n            \u003CText style={styles.btnText}>Заповнити\u003C\u002FText>\n          \u003C\u002FPressable>\n          \u003CPressable\n            style={[styles.btn, styles.btnGhost]}\n            onPress={() => setBooks([])}\n          >\n            \u003CText style={styles.btnGhostText}>Очистити\u003C\u002FText>\n          \u003C\u002FPressable>\n        \u003C\u002FView>\n      \u003C\u002FView>\n\n      \u003CSectionList\n        sections={sections}\n        style={styles.list}\n        keyExtractor={(item) => item.id}\n        stickySectionHeadersEnabled\n        refreshControl={\n          \u003CRefreshControl refreshing={refreshing} onRefresh={onRefresh} \u002F>\n        }\n        contentContainerStyle={\n          books.length === 0 ? styles.grow : { paddingBottom: 24 }\n        }\n        ListEmptyComponent={\n          \u003CView style={styles.empty}>\n            \u003CText style={styles.emptyTitle}>Полиця порожня\u003C\u002FText>\n            \u003CText style={styles.muted}>Натисніть «Заповнити» або pull-to-refresh.\u003C\u002FText>\n          \u003C\u002FView>\n        }\n        renderSectionHeader={({ section: { title, data } }) => (\n          \u003CView style={styles.sec}>\n            \u003CText style={styles.secText}>\n              {title} · {data.length}\n            \u003C\u002FText>\n          \u003C\u002FView>\n        )}\n        renderItem={({ item }) => (\n          \u003CView style={styles.card}>\n            \u003CText style={styles.title}>{item.title}\u003C\u002FText>\n            \u003CText style={styles.muted}>\n              {item.author} · {item.year} · ★ {item.rating.toFixed(1)}\n            \u003C\u002FText>\n          \u003C\u002FView>\n        )}\n        ItemSeparatorComponent={() => \u003CView style={{ height: 8 }} \u002F>}\n      \u002F>\n    \u003C\u002FSafeAreaView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  safe: { flex: 1, backgroundColor: '#F8FAFC' },\n  toolbar: { padding: 16, gap: 6, borderBottomWidth: 1, borderColor: '#E2E8F0' },\n  h: { fontSize: 22, fontWeight: '800', color: '#0F172A' },\n  muted: { color: '#64748B', fontSize: 13 },\n  row: { flexDirection: 'row', gap: 8, marginTop: 8 },\n  btn: {\n    backgroundColor: '#2563EB',\n    paddingHorizontal: 12,\n    paddingVertical: 10,\n    borderRadius: 10,\n  },\n  btnText: { color: '#fff', fontWeight: '700' },\n  btnGhost: { backgroundColor: '#fff', borderWidth: 1, borderColor: '#E2E8F0' },\n  btnGhostText: { color: '#0F172A', fontWeight: '700' },\n  list: { flex: 1, paddingHorizontal: 16, paddingTop: 12 },\n  grow: { flexGrow: 1 },\n  empty: { flex: 1, minHeight: 240, alignItems: 'center', justifyContent: 'center', gap: 8 },\n  emptyTitle: { fontSize: 18, fontWeight: '700', color: '#0F172A' },\n  sec: {\n    backgroundColor: '#E2E8F0',\n    paddingVertical: 8,\n    paddingHorizontal: 10,\n    borderRadius: 8,\n    marginBottom: 8,\n  },\n  secText: { fontWeight: '800', color: '#2563EB' },\n  card: {\n    backgroundColor: '#fff',\n    borderRadius: 12,\n    borderWidth: 1,\n    borderColor: '#E2E8F0',\n    padding: 14,\n  },\n  title: { fontWeight: '700', color: '#0F172A', marginBottom: 4 },\n});\n",[3525,12880,12881,12906,12912,12918,12924,12930,12936,12942,12948,12958,12976,12980,12988,12998,13008,13018,13028,13038,13049,13053,13057,13082,13086,13130,13164,13168,13197,13227,13253,13259,13284,13305,13327,13334,13354,13388,13393,13397,13401,13405,13429,13455,13476,13504,13520,13544,13549,13565,13608,13638,13642,13646,13658,13680,13709,13731,13735,13762,13766,13782,13792,13802,13817,13833,13849,13857,13861,13871,13879,13884,13888,13894,13917,13939,13970,13993,14015,14023,14045,14051,14067,14082,14097,14104,14108,14139,14147,14153,14182,14201,14205,14236,14244,14252,14260,14264,14270,14282,14298,14322,14326,14335,14365,14370,14379,14412,14417,14426,14449,14481,14513,14522,14527,14554,14577,14601,14624,14633,14642,14649,14668,14692,14731,14754,14805,14814,14823,14830,14867,14872,14881,14886,14891,14896,14913,14934,14968,14995,15016,15041,15048,15059,15068,15077,15086,15091,15110,15136,15156,15182,15196,15236,15261,15268,15277,15286,15295,15304,15313,15318,15338,15346,15355,15364,15373,15383,15392,15397,15422],{"__ignoreMap":3944},[3948,12882,12883,12885,12887,12889,12891,12894,12896,12898,12900,12902,12904],{"class":3950,"line":3951},[3948,12884,4228],{"class":4227},[3948,12886,4232],{"class":4231},[3948,12888,4586],{"class":4235},[3948,12890,3593],{"class":4231},[3948,12892,12893],{"class":4235},"useMemo",[3948,12895,3593],{"class":4231},[3948,12897,5831],{"class":4235},[3948,12899,4248],{"class":4231},[3948,12901,4251],{"class":4227},[3948,12903,5897],{"class":4254},[3948,12905,4258],{"class":4231},[3948,12907,12908,12910],{"class":3950,"line":3957},[3948,12909,4228],{"class":4227},[3948,12911,5674],{"class":4231},[3948,12913,12914,12916],{"class":3950,"line":3963},[3948,12915,5917],{"class":4235},[3948,12917,4902],{"class":4231},[3948,12919,12920,12922],{"class":3950,"line":3969},[3948,12921,7475],{"class":4235},[3948,12923,4902],{"class":4231},[3948,12925,12926,12928],{"class":3950,"line":3976},[3948,12927,10610],{"class":4235},[3948,12929,4902],{"class":4231},[3948,12931,12932,12934],{"class":3950,"line":3982},[3948,12933,5924],{"class":4235},[3948,12935,4902],{"class":4231},[3948,12937,12938,12940],{"class":3950,"line":3988},[3948,12939,5931],{"class":4235},[3948,12941,4902],{"class":4231},[3948,12943,12944,12946],{"class":3950,"line":3994},[3948,12945,5938],{"class":4235},[3948,12947,4902],{"class":4231},[3948,12949,12950,12952,12954,12956],{"class":3950,"line":4000},[3948,12951,5952],{"class":4231},[3948,12953,4251],{"class":4227},[3948,12955,4255],{"class":4254},[3948,12957,4258],{"class":4231},[3948,12959,12960,12962,12964,12967,12969,12971,12974],{"class":3950,"line":4006},[3948,12961,4228],{"class":4227},[3948,12963,4232],{"class":4231},[3948,12965,12966],{"class":4235},"SafeAreaView",[3948,12968,4248],{"class":4231},[3948,12970,4251],{"class":4227},[3948,12972,12973],{"class":4254}," 'react-native-safe-area-context'",[3948,12975,4258],{"class":4231},[3948,12977,12978],{"class":3950,"line":4011},[3948,12979,3973],{"emptyLinePlaceholder":3972},[3948,12981,12982,12984,12986],{"class":3950,"line":4017},[3948,12983,4268],{"class":4267},[3948,12985,10657],{"class":4271},[3948,12987,10299],{"class":4231},[3948,12989,12990,12992,12994,12996],{"class":3950,"line":4023},[3948,12991,12656],{"class":4235},[3948,12993,4280],{"class":4231},[3948,12995,4283],{"class":4271},[3948,12997,4258],{"class":4231},[3948,12999,13000,13002,13004,13006],{"class":3950,"line":4029},[3948,13001,10304],{"class":4235},[3948,13003,4280],{"class":4231},[3948,13005,4283],{"class":4271},[3948,13007,4258],{"class":4231},[3948,13009,13010,13012,13014,13016],{"class":3950,"line":4035},[3948,13011,12677],{"class":4235},[3948,13013,4280],{"class":4231},[3948,13015,4283],{"class":4271},[3948,13017,4258],{"class":4231},[3948,13019,13020,13022,13024,13026],{"class":3950,"line":4041},[3948,13021,12688],{"class":4235},[3948,13023,4280],{"class":4231},[3948,13025,4283],{"class":4271},[3948,13027,4258],{"class":4231},[3948,13029,13030,13032,13034,13036],{"class":3950,"line":4046},[3948,13031,12699],{"class":4235},[3948,13033,4280],{"class":4231},[3948,13035,7547],{"class":4271},[3948,13037,4258],{"class":4231},[3948,13039,13040,13043,13045,13047],{"class":3950,"line":4051},[3948,13041,13042],{"class":4235},"  rating",[3948,13044,4280],{"class":4231},[3948,13046,7547],{"class":4271},[3948,13048,4258],{"class":4231},[3948,13050,13051],{"class":3950,"line":4057},[3948,13052,10328],{"class":4231},[3948,13054,13055],{"class":3950,"line":4063},[3948,13056,3973],{"emptyLinePlaceholder":3972},[3948,13058,13059,13061,13063,13065,13067,13069,13071,13073,13075,13077,13079],{"class":3950,"line":4069},[3948,13060,4268],{"class":4267},[3948,13062,12720],{"class":4271},[3948,13064,4275],{"class":4231},[3948,13066,4289],{"class":4235},[3948,13068,4280],{"class":4231},[3948,13070,4283],{"class":4271},[3948,13072,4286],{"class":4231},[3948,13074,3592],{"class":4235},[3948,13076,4280],{"class":4231},[3948,13078,10320],{"class":4271},[3948,13080,13081],{"class":4231},"[] };\n",[3948,13083,13084],{"class":3950,"line":4074},[3948,13085,3973],{"emptyLinePlaceholder":3972},[3948,13087,13088,13090,13093,13096,13099,13101,13104,13106,13109,13111,13114,13116,13119,13122,13125,13128],{"class":3950,"line":4080},[3948,13089,4305],{"class":4267},[3948,13091,13092],{"class":4308}," GENRES",[3948,13094,13095],{"class":4231}," = [",[3948,13097,13098],{"class":4254},"'Фантастика'",[3948,13100,3593],{"class":4231},[3948,13102,13103],{"class":4254},"'Детектив'",[3948,13105,3593],{"class":4231},[3948,13107,13108],{"class":4254},"'Подорожі'",[3948,13110,3593],{"class":4231},[3948,13112,13113],{"class":4254},"'Історія'",[3948,13115,3593],{"class":4231},[3948,13117,13118],{"class":4254},"'Поезія'",[3948,13120,13121],{"class":4231},"] ",[3948,13123,13124],{"class":4227},"as",[3948,13126,13127],{"class":4267}," const",[3948,13129,4258],{"class":4231},[3948,13131,13132,13134,13137,13139,13142,13144,13147,13149,13152,13154,13157,13159,13162],{"class":3950,"line":4086},[3948,13133,4305],{"class":4267},[3948,13135,13136],{"class":4308}," AUTHORS",[3948,13138,13095],{"class":4231},[3948,13140,13141],{"class":4254},"'Коваленко'",[3948,13143,3593],{"class":4231},[3948,13145,13146],{"class":4254},"'Шевченко'",[3948,13148,3593],{"class":4231},[3948,13150,13151],{"class":4254},"'Лис'",[3948,13153,3593],{"class":4231},[3948,13155,13156],{"class":4254},"'Мельник'",[3948,13158,3593],{"class":4231},[3948,13160,13161],{"class":4254},"'Бондар'",[3948,13163,4380],{"class":4231},[3948,13165,13166],{"class":3950,"line":4091},[3948,13167,3973],{"emptyLinePlaceholder":3972},[3948,13169,13170,13172,13175,13177,13179,13181,13183,13185,13187,13189,13191,13193,13195],{"class":3950,"line":4096},[3948,13171,7558],{"class":4267},[3948,13173,13174],{"class":4395}," buildBooks",[3948,13176,4446],{"class":4231},[3948,13178,7566],{"class":4235},[3948,13180,4280],{"class":4231},[3948,13182,7547],{"class":4271},[3948,13184,3593],{"class":4231},[3948,13186,8908],{"class":4235},[3948,13188,4970],{"class":4231},[3948,13190,12308],{"class":4836},[3948,13192,7573],{"class":4231},[3948,13194,10320],{"class":4271},[3948,13196,7578],{"class":4231},[3948,13198,13199,13201,13203,13205,13207,13209,13211,13213,13215,13217,13219,13221,13223,13225],{"class":3950,"line":5272},[3948,13200,4404],{"class":4227},[3948,13202,7585],{"class":4235},[3948,13204,3555],{"class":4231},[3948,13206,4251],{"class":4395},[3948,13208,4475],{"class":4231},[3948,13210,4833],{"class":4235},[3948,13212,8935],{"class":4235},[3948,13214,4840],{"class":4231},[3948,13216,4843],{"class":4235},[3948,13218,3593],{"class":4231},[3948,13220,4848],{"class":4235},[3948,13222,4168],{"class":4231},[3948,13224,4454],{"class":4267},[3948,13226,5674],{"class":4231},[3948,13228,13229,13231,13234,13236,13239,13241,13243,13245,13247,13249,13251],{"class":3950,"line":5286},[3948,13230,8954],{"class":4267},[3948,13232,13233],{"class":4308}," genre",[3948,13235,4970],{"class":4231},[3948,13237,13238],{"class":4308},"GENRES",[3948,13240,5122],{"class":4231},[3948,13242,4848],{"class":4235},[3948,13244,4913],{"class":4231},[3948,13246,13238],{"class":4308},[3948,13248,3555],{"class":4231},[3948,13250,6321],{"class":4235},[3948,13252,4380],{"class":4231},[3948,13254,13255,13257],{"class":3950,"line":5312},[3948,13256,8976],{"class":4227},[3948,13258,5674],{"class":4231},[3948,13260,13261,13264,13266,13268,13270,13272,13274,13276,13278,13280,13282],{"class":3950,"line":5341},[3948,13262,13263],{"class":4235},"      id:",[3948,13265,7617],{"class":4254},[3948,13267,4886],{"class":4267},[3948,13269,7566],{"class":4235},[3948,13271,4515],{"class":4267},[3948,13273,7626],{"class":4254},[3948,13275,4886],{"class":4267},[3948,13277,4848],{"class":4235},[3948,13279,4515],{"class":4267},[3948,13281,4899],{"class":4254},[3948,13283,4902],{"class":4231},[3948,13285,13286,13289,13291,13293,13295,13297,13299,13301,13303],{"class":3950,"line":5361},[3948,13287,13288],{"class":4235},"      title:",[3948,13290,6312],{"class":4254},[3948,13292,4886],{"class":4267},[3948,13294,4848],{"class":4235},[3948,13296,4891],{"class":4231},[3948,13298,4894],{"class":4836},[3948,13300,4515],{"class":4267},[3948,13302,4899],{"class":4254},[3948,13304,4902],{"class":4231},[3948,13306,13307,13310,13312,13314,13316,13318,13321,13323,13325],{"class":3950,"line":5369},[3948,13308,13309],{"class":4235},"      author:",[3948,13311,13136],{"class":4308},[3948,13313,5122],{"class":4231},[3948,13315,4848],{"class":4235},[3948,13317,4913],{"class":4231},[3948,13319,13320],{"class":4308},"AUTHORS",[3948,13322,3555],{"class":4231},[3948,13324,6321],{"class":4235},[3948,13326,12047],{"class":4231},[3948,13328,13329,13332],{"class":3950,"line":5382},[3948,13330,13331],{"class":4235},"      genre",[3948,13333,4902],{"class":4231},[3948,13335,13336,13339,13342,13345,13347,13349,13352],{"class":3950,"line":5395},[3948,13337,13338],{"class":4235},"      year:",[3948,13340,13341],{"class":4836}," 1990",[3948,13343,13344],{"class":4231}," + (",[3948,13346,4848],{"class":4235},[3948,13348,4913],{"class":4231},[3948,13350,13351],{"class":4836},"35",[3948,13353,4875],{"class":4231},[3948,13355,13356,13359,13362,13364,13366,13368,13371,13373,13376,13378,13380,13383,13385],{"class":3950,"line":5414},[3948,13357,13358],{"class":4235},"      rating:",[3948,13360,13361],{"class":4231}," ((",[3948,13363,7566],{"class":4235},[3948,13365,3579],{"class":4231},[3948,13367,4848],{"class":4235},[3948,13369,13370],{"class":4231},") % ",[3948,13372,8882],{"class":4836},[3948,13374,13375],{"class":4231},") \u002F ",[3948,13377,8868],{"class":4836},[3948,13379,3579],{"class":4231},[3948,13381,13382],{"class":4836},"5",[3948,13384,3593],{"class":4231},[3948,13386,13387],{"class":5778},"\u002F\u002F 5.0–9.9\n",[3948,13389,13390],{"class":3950,"line":5422},[3948,13391,13392],{"class":4231},"    };\n",[3948,13394,13395],{"class":3950,"line":5428},[3948,13396,9009],{"class":4231},[3948,13398,13399],{"class":3950,"line":5478},[3948,13400,4003],{"class":4231},[3948,13402,13403],{"class":3950,"line":5525},[3948,13404,3973],{"emptyLinePlaceholder":3972},[3948,13406,13407,13409,13412,13414,13417,13419,13421,13424,13427],{"class":3950,"line":5535},[3948,13408,7558],{"class":4267},[3948,13410,13411],{"class":4395}," toSections",[3948,13413,4446],{"class":4231},[3948,13415,13416],{"class":4235},"books",[3948,13418,4280],{"class":4231},[3948,13420,10320],{"class":4271},[3948,13422,13423],{"class":4231},"[]): ",[3948,13425,13426],{"class":4271},"BookSection",[3948,13428,7578],{"class":4231},[3948,13430,13431,13433,13436,13438,13441,13444,13446,13448,13450,13452],{"class":3950,"line":5543},[3948,13432,4964],{"class":4267},[3948,13434,13435],{"class":4308}," map",[3948,13437,4970],{"class":4231},[3948,13439,13440],{"class":4267},"new",[3948,13442,13443],{"class":4395}," Map",[3948,13445,6167],{"class":4231},[3948,13447,4283],{"class":4271},[3948,13449,3593],{"class":4231},[3948,13451,10320],{"class":4271},[3948,13453,13454],{"class":4231},"[]>();\n",[3948,13456,13457,13460,13462,13464,13467,13470,13473],{"class":3950,"line":5549},[3948,13458,13459],{"class":4227},"  for",[3948,13461,3624],{"class":4231},[3948,13463,4305],{"class":4267},[3948,13465,13466],{"class":4308}," b",[3948,13468,13469],{"class":4267}," of",[3948,13471,13472],{"class":4235}," books",[3948,13474,13475],{"class":4231},") {\n",[3948,13477,13478,13480,13483,13485,13487,13489,13492,13494,13497,13499,13501],{"class":3950,"line":5559},[3948,13479,8954],{"class":4267},[3948,13481,13482],{"class":4308}," list",[3948,13484,4970],{"class":4231},[3948,13486,3582],{"class":4235},[3948,13488,3555],{"class":4231},[3948,13490,13491],{"class":4395},"get",[3948,13493,4446],{"class":4231},[3948,13495,13496],{"class":4235},"b",[3948,13498,3555],{"class":4231},[3948,13500,12789],{"class":4235},[3948,13502,13503],{"class":4231},") ?? [];\n",[3948,13505,13506,13509,13511,13514,13516,13518],{"class":3950,"line":5564},[3948,13507,13508],{"class":4235},"    list",[3948,13510,3555],{"class":4231},[3948,13512,13513],{"class":4395},"push",[3948,13515,4446],{"class":4231},[3948,13517,13496],{"class":4235},[3948,13519,7857],{"class":4231},[3948,13521,13522,13525,13527,13530,13532,13534,13536,13538,13540,13542],{"class":3950,"line":5569},[3948,13523,13524],{"class":4235},"    map",[3948,13526,3555],{"class":4231},[3948,13528,13529],{"class":4395},"set",[3948,13531,4446],{"class":4231},[3948,13533,13496],{"class":4235},[3948,13535,3555],{"class":4231},[3948,13537,12789],{"class":4235},[3948,13539,3593],{"class":4231},[3948,13541,5267],{"class":4235},[3948,13543,7857],{"class":4231},[3948,13545,13546],{"class":3950,"line":5574},[3948,13547,13548],{"class":4231},"  }\n",[3948,13550,13551,13553,13555,13557,13559,13562],{"class":3950,"line":5594},[3948,13552,4404],{"class":4227},[3948,13554,9382],{"class":4231},[3948,13556,3582],{"class":4235},[3948,13558,3555],{"class":4231},[3948,13560,13561],{"class":4395},"entries",[3948,13563,13564],{"class":4231},"()]\n",[3948,13566,13567,13570,13573,13576,13578,13581,13583,13586,13588,13591,13593,13596,13598,13600,13602,13605],{"class":3950,"line":5624},[3948,13568,13569],{"class":4231},"    .",[3948,13571,13572],{"class":4395},"sort",[3948,13574,13575],{"class":4231},"(([",[3948,13577,12326],{"class":4235},[3948,13579,13580],{"class":4231},"], [",[3948,13582,13496],{"class":4235},[3948,13584,13585],{"class":4231},"]) ",[3948,13587,4454],{"class":4267},[3948,13589,13590],{"class":4235}," a",[3948,13592,3555],{"class":4231},[3948,13594,13595],{"class":4395},"localeCompare",[3948,13597,4446],{"class":4231},[3948,13599,13496],{"class":4235},[3948,13601,3593],{"class":4231},[3948,13603,13604],{"class":4254},"'uk'",[3948,13606,13607],{"class":4231},"))\n",[3948,13609,13610,13612,13614,13616,13618,13620,13622,13624,13626,13629,13631,13633,13635],{"class":3950,"line":5654},[3948,13611,13569],{"class":4231},[3948,13613,3582],{"class":4395},[3948,13615,13575],{"class":4231},[3948,13617,4289],{"class":4235},[3948,13619,3593],{"class":4231},[3948,13621,3592],{"class":4235},[3948,13623,13585],{"class":4231},[3948,13625,4454],{"class":4267},[3948,13627,13628],{"class":4231}," ({ ",[3948,13630,4289],{"class":4235},[3948,13632,3593],{"class":4231},[3948,13634,3592],{"class":4235},[3948,13636,13637],{"class":4231}," }));\n",[3948,13639,13640],{"class":3950,"line":5668},[3948,13641,4003],{"class":4231},[3948,13643,13644],{"class":3950,"line":5677},[3948,13645,3973],{"emptyLinePlaceholder":3972},[3948,13647,13648,13650,13652,13654,13656],{"class":3950,"line":5687},[3948,13649,4389],{"class":4227},[3948,13651,4952],{"class":4227},[3948,13653,4392],{"class":4267},[3948,13655,4957],{"class":4395},[3948,13657,4399],{"class":4231},[3948,13659,13660,13662,13664,13666,13668,13670,13672,13674,13676,13678],{"class":3950,"line":5698},[3948,13661,4964],{"class":4267},[3948,13663,6152],{"class":4231},[3948,13665,7566],{"class":4308},[3948,13667,3593],{"class":4231},[3948,13669,7846],{"class":4308},[3948,13671,6162],{"class":4231},[3948,13673,5831],{"class":4395},[3948,13675,4446],{"class":4231},[3948,13677,4872],{"class":4836},[3948,13679,7857],{"class":4231},[3948,13681,13682,13684,13686,13688,13690,13693,13695,13697,13699,13701,13703,13705,13707],{"class":3950,"line":5709},[3948,13683,4964],{"class":4267},[3948,13685,6152],{"class":4231},[3948,13687,13416],{"class":4308},[3948,13689,3593],{"class":4231},[3948,13691,13692],{"class":4308},"setBooks",[3948,13694,6162],{"class":4231},[3948,13696,5831],{"class":4395},[3948,13698,7876],{"class":4231},[3948,13700,4454],{"class":4267},[3948,13702,13174],{"class":4395},[3948,13704,4446],{"class":4231},[3948,13706,4872],{"class":4836},[3948,13708,7887],{"class":4231},[3948,13710,13711,13713,13715,13717,13719,13721,13723,13725,13727,13729],{"class":3950,"line":5715},[3948,13712,4964],{"class":4267},[3948,13714,6152],{"class":4231},[3948,13716,4684],{"class":4308},[3948,13718,3593],{"class":4231},[3948,13720,7900],{"class":4308},[3948,13722,6162],{"class":4231},[3948,13724,5831],{"class":4395},[3948,13726,4446],{"class":4231},[3948,13728,7413],{"class":4267},[3948,13730,7857],{"class":4231},[3948,13732,13733],{"class":3950,"line":5741},[3948,13734,3973],{"emptyLinePlaceholder":3972},[3948,13736,13737,13739,13741,13743,13745,13747,13749,13751,13753,13755,13758,13760],{"class":3950,"line":6725},[3948,13738,4964],{"class":4267},[3948,13740,10339],{"class":4308},[3948,13742,4970],{"class":4231},[3948,13744,12893],{"class":4395},[3948,13746,7876],{"class":4231},[3948,13748,4454],{"class":4267},[3948,13750,13411],{"class":4395},[3948,13752,4446],{"class":4231},[3948,13754,13416],{"class":4235},[3948,13756,13757],{"class":4231},"), [",[3948,13759,13416],{"class":4235},[3948,13761,8030],{"class":4231},[3948,13763,13764],{"class":3950,"line":6749},[3948,13765,3973],{"emptyLinePlaceholder":3972},[3948,13767,13768,13770,13772,13774,13776,13778,13780],{"class":3950,"line":6792},[3948,13769,4964],{"class":4267},[3948,13771,7921],{"class":4308},[3948,13773,4970],{"class":4231},[3948,13775,4586],{"class":4395},[3948,13777,7876],{"class":4231},[3948,13779,4454],{"class":4267},[3948,13781,5674],{"class":4231},[3948,13783,13784,13786,13788,13790],{"class":3950,"line":6832},[3948,13785,7936],{"class":4395},[3948,13787,4446],{"class":4231},[3948,13789,7401],{"class":4267},[3948,13791,7857],{"class":4231},[3948,13793,13794,13796,13798,13800],{"class":3950,"line":6838},[3948,13795,7947],{"class":4395},[3948,13797,7876],{"class":4231},[3948,13799,4454],{"class":4267},[3948,13801,5674],{"class":4231},[3948,13803,13804,13806,13808,13811,13813,13815],{"class":3950,"line":6844},[3948,13805,7976],{"class":4395},[3948,13807,6267],{"class":4231},[3948,13809,13810],{"class":4235},"s",[3948,13812,4168],{"class":4231},[3948,13814,4454],{"class":4267},[3948,13816,5674],{"class":4231},[3948,13818,13819,13821,13823,13825,13827,13829,13831],{"class":3950,"line":6854},[3948,13820,9330],{"class":4267},[3948,13822,7961],{"class":4308},[3948,13824,4970],{"class":4231},[3948,13826,13810],{"class":4235},[3948,13828,3579],{"class":4231},[3948,13830,4872],{"class":4836},[3948,13832,4258],{"class":4231},[3948,13834,13835,13838,13840,13843,13845,13847],{"class":3950,"line":6863},[3948,13836,13837],{"class":4395},"        setBooks",[3948,13839,4446],{"class":4231},[3948,13841,13842],{"class":4395},"buildBooks",[3948,13844,4446],{"class":4231},[3948,13846,7981],{"class":4235},[3948,13848,7887],{"class":4231},[3948,13850,13851,13853,13855],{"class":3950,"line":6868},[3948,13852,9379],{"class":4227},[3948,13854,7961],{"class":4235},[3948,13856,4258],{"class":4231},[3948,13858,13859],{"class":3950,"line":6887},[3948,13860,9396],{"class":4231},[3948,13862,13863,13865,13867,13869],{"class":3950,"line":6926},[3948,13864,8004],{"class":4395},[3948,13866,4446],{"class":4231},[3948,13868,7413],{"class":4267},[3948,13870,7857],{"class":4231},[3948,13872,13873,13875,13877],{"class":3950,"line":6974},[3948,13874,8015],{"class":4231},[3948,13876,9414],{"class":4836},[3948,13878,7857],{"class":4231},[3948,13880,13881],{"class":3950,"line":6983},[3948,13882,13883],{"class":4231},"  }, []);\n",[3948,13885,13886],{"class":3950,"line":6990},[3948,13887,3973],{"emptyLinePlaceholder":3972},[3948,13889,13890,13892],{"class":3950,"line":6995},[3948,13891,4404],{"class":4227},[3948,13893,4407],{"class":4231},[3948,13895,13896,13898,13900,13902,13904,13906,13908,13910,13913,13915],{"class":3950,"line":7004},[3948,13897,4413],{"class":4412},[3948,13899,12966],{"class":4271},[3948,13901,5115],{"class":4421},[3948,13903,4425],{"class":4231},[3948,13905,4428],{"class":4267},[3948,13907,5125],{"class":4235},[3948,13909,3555],{"class":4445},[3948,13911,13912],{"class":4235},"safe",[3948,13914,4515],{"class":4267},[3948,13916,4494],{"class":4412},[3948,13918,13919,13921,13923,13925,13927,13929,13931,13933,13935,13937],{"class":3950,"line":7009},[3948,13920,5150],{"class":4412},[3948,13922,4245],{"class":4271},[3948,13924,5115],{"class":4421},[3948,13926,4425],{"class":4231},[3948,13928,4428],{"class":4267},[3948,13930,5125],{"class":4235},[3948,13932,3555],{"class":4445},[3948,13934,6233],{"class":4235},[3948,13936,4515],{"class":4267},[3948,13938,4494],{"class":4412},[3948,13940,13941,13943,13945,13947,13949,13951,13953,13955,13957,13959,13961,13964,13966,13968],{"class":3950,"line":7014},[3948,13942,4489],{"class":4412},[3948,13944,4240],{"class":4271},[3948,13946,5115],{"class":4421},[3948,13948,4425],{"class":4231},[3948,13950,4428],{"class":4267},[3948,13952,5125],{"class":4235},[3948,13954,3555],{"class":4445},[3948,13956,5167],{"class":4235},[3948,13958,4515],{"class":4267},[3948,13960,4504],{"class":4412},[3948,13962,13963],{"class":4231},"Каталог книг",[3948,13965,4518],{"class":4412},[3948,13967,4240],{"class":4271},[3948,13969,4494],{"class":4412},[3948,13971,13972,13974,13976,13978,13980,13982,13984,13986,13989,13991],{"class":3950,"line":7019},[3948,13973,4489],{"class":4412},[3948,13975,4240],{"class":4271},[3948,13977,5115],{"class":4421},[3948,13979,4425],{"class":4231},[3948,13981,4428],{"class":4267},[3948,13983,5125],{"class":4235},[3948,13985,3555],{"class":4445},[3948,13987,13988],{"class":4235},"muted",[3948,13990,4515],{"class":4267},[3948,13992,4494],{"class":4412},[3948,13994,13995,13998,14000,14002,14004,14006,14009,14011,14013],{"class":3950,"line":7036},[3948,13996,13997],{"class":4267},"          {",[3948,13999,13416],{"class":4235},[3948,14001,3555],{"class":4445},[3948,14003,6321],{"class":4235},[3948,14005,4515],{"class":4267},[3948,14007,14008],{"class":4231}," книг · seed ",[3948,14010,4428],{"class":4267},[3948,14012,7566],{"class":4235},[3948,14014,4003],{"class":4267},[3948,14016,14017,14019,14021],{"class":3950,"line":7061},[3948,14018,4527],{"class":4412},[3948,14020,4240],{"class":4271},[3948,14022,4494],{"class":4412},[3948,14024,14025,14027,14029,14031,14033,14035,14037,14039,14041,14043],{"class":3950,"line":7089},[3948,14026,4489],{"class":4412},[3948,14028,4245],{"class":4271},[3948,14030,5115],{"class":4421},[3948,14032,4425],{"class":4231},[3948,14034,4428],{"class":4267},[3948,14036,5125],{"class":4235},[3948,14038,3555],{"class":4445},[3948,14040,5390],{"class":4235},[3948,14042,4515],{"class":4267},[3948,14044,4494],{"class":4412},[3948,14046,14047,14049],{"class":3950,"line":7097},[3948,14048,4499],{"class":4412},[3948,14050,6244],{"class":4271},[3948,14052,14053,14055,14057,14059,14061,14063,14065],{"class":3950,"line":7107},[3948,14054,5372],{"class":4421},[3948,14056,4425],{"class":4231},[3948,14058,4428],{"class":4267},[3948,14060,5125],{"class":4235},[3948,14062,3555],{"class":4445},[3948,14064,6359],{"class":4235},[3948,14066,4003],{"class":4267},[3948,14068,14069,14072,14074,14076,14078,14080],{"class":3950,"line":7118},[3948,14070,14071],{"class":4421},"            onPress",[3948,14073,4425],{"class":4231},[3948,14075,4428],{"class":4267},[3948,14077,6256],{"class":4445},[3948,14079,4454],{"class":4267},[3948,14081,5674],{"class":4445},[3948,14083,14084,14087,14089,14091,14093,14095],{"class":3950,"line":7127},[3948,14085,14086],{"class":4395},"              setBooks",[3948,14088,4446],{"class":4445},[3948,14090,13842],{"class":4395},[3948,14092,4446],{"class":4445},[3948,14094,7566],{"class":4235},[3948,14096,7887],{"class":4445},[3948,14098,14099,14102],{"class":3950,"line":7132},[3948,14100,14101],{"class":4445},"            }",[3948,14103,4003],{"class":4267},[3948,14105,14106],{"class":3950,"line":7153},[3948,14107,5425],{"class":4412},[3948,14109,14110,14112,14114,14116,14118,14120,14122,14124,14126,14128,14130,14133,14135,14137],{"class":3950,"line":7179},[3948,14111,5431],{"class":4412},[3948,14113,4240],{"class":4271},[3948,14115,5115],{"class":4421},[3948,14117,4425],{"class":4231},[3948,14119,4428],{"class":4267},[3948,14121,5125],{"class":4235},[3948,14123,3555],{"class":4445},[3948,14125,6393],{"class":4235},[3948,14127,4515],{"class":4267},[3948,14129,4504],{"class":4412},[3948,14131,14132],{"class":4231},"Заповнити",[3948,14134,4518],{"class":4412},[3948,14136,4240],{"class":4271},[3948,14138,4494],{"class":4412},[3948,14140,14141,14143,14145],{"class":3950,"line":7194},[3948,14142,5528],{"class":4412},[3948,14144,3897],{"class":4271},[3948,14146,4494],{"class":4412},[3948,14148,14149,14151],{"class":3950,"line":7202},[3948,14150,4499],{"class":4412},[3948,14152,6244],{"class":4271},[3948,14154,14155,14157,14159,14161,14163,14165,14167,14169,14171,14173,14175,14178,14180],{"class":3950,"line":7212},[3948,14156,5372],{"class":4421},[3948,14158,4425],{"class":4231},[3948,14160,4428],{"class":4267},[3948,14162,5122],{"class":4445},[3948,14164,5125],{"class":4235},[3948,14166,3555],{"class":4445},[3948,14168,6359],{"class":4235},[3948,14170,3593],{"class":4445},[3948,14172,5125],{"class":4235},[3948,14174,3555],{"class":4445},[3948,14176,14177],{"class":4235},"btnGhost",[3948,14179,8327],{"class":4445},[3948,14181,4003],{"class":4267},[3948,14183,14184,14186,14188,14190,14192,14194,14197,14199],{"class":3950,"line":7223},[3948,14185,14071],{"class":4421},[3948,14187,4425],{"class":4231},[3948,14189,4428],{"class":4267},[3948,14191,6256],{"class":4445},[3948,14193,4454],{"class":4267},[3948,14195,14196],{"class":4395}," setBooks",[3948,14198,6438],{"class":4445},[3948,14200,4003],{"class":4267},[3948,14202,14203],{"class":3950,"line":7233},[3948,14204,5425],{"class":4412},[3948,14206,14207,14209,14211,14213,14215,14217,14219,14221,14224,14226,14228,14230,14232,14234],{"class":3950,"line":7243},[3948,14208,5431],{"class":4412},[3948,14210,4240],{"class":4271},[3948,14212,5115],{"class":4421},[3948,14214,4425],{"class":4231},[3948,14216,4428],{"class":4267},[3948,14218,5125],{"class":4235},[3948,14220,3555],{"class":4445},[3948,14222,14223],{"class":4235},"btnGhostText",[3948,14225,4515],{"class":4267},[3948,14227,4504],{"class":4412},[3948,14229,6516],{"class":4231},[3948,14231,4518],{"class":4412},[3948,14233,4240],{"class":4271},[3948,14235,4494],{"class":4412},[3948,14237,14238,14240,14242],{"class":3950,"line":7253},[3948,14239,5528],{"class":4412},[3948,14241,3897],{"class":4271},[3948,14243,4494],{"class":4412},[3948,14245,14246,14248,14250],{"class":3950,"line":7262},[3948,14247,4527],{"class":4412},[3948,14249,4245],{"class":4271},[3948,14251,4494],{"class":4412},[3948,14253,14254,14256,14258],{"class":3950,"line":7267},[3948,14255,5241],{"class":4412},[3948,14257,4245],{"class":4271},[3948,14259,4494],{"class":4412},[3948,14261,14262],{"class":3950,"line":7287},[3948,14263,3973],{"emptyLinePlaceholder":3972},[3948,14265,14266,14268],{"class":3950,"line":7294},[3948,14267,5150],{"class":4412},[3948,14269,10403],{"class":4271},[3948,14271,14272,14274,14276,14278,14280],{"class":3950,"line":7303},[3948,14273,11285],{"class":4421},[3948,14275,4425],{"class":4231},[3948,14277,4428],{"class":4267},[3948,14279,10415],{"class":4235},[3948,14281,4003],{"class":4267},[3948,14283,14284,14286,14288,14290,14292,14294,14296],{"class":3950,"line":7312},[3948,14285,5256],{"class":4421},[3948,14287,4425],{"class":4231},[3948,14289,4428],{"class":4267},[3948,14291,5125],{"class":4235},[3948,14293,3555],{"class":4445},[3948,14295,5267],{"class":4235},[3948,14297,4003],{"class":4267},[3948,14299,14300,14302,14304,14306,14308,14310,14312,14314,14316,14318,14320],{"class":3950,"line":7321},[3948,14301,5289],{"class":4421},[3948,14303,4425],{"class":4231},[3948,14305,4428],{"class":4267},[3948,14307,4446],{"class":4445},[3948,14309,4449],{"class":4235},[3948,14311,4168],{"class":4445},[3948,14313,4454],{"class":4267},[3948,14315,4457],{"class":4235},[3948,14317,3555],{"class":4445},[3948,14319,4184],{"class":4235},[3948,14321,4003],{"class":4267},[3948,14323,14324],{"class":3950,"line":7326},[3948,14325,11323],{"class":4421},[3948,14327,14329,14331,14333],{"class":3950,"line":14328},101,[3948,14330,8260],{"class":4421},[3948,14332,4425],{"class":4231},[3948,14334,6611],{"class":4267},[3948,14336,14338,14340,14342,14345,14347,14349,14351,14353,14355,14357,14359,14361,14363],{"class":3950,"line":14337},102,[3948,14339,4499],{"class":4412},[3948,14341,3691],{"class":4271},[3948,14343,14344],{"class":4421}," refreshing",[3948,14346,4425],{"class":4231},[3948,14348,4428],{"class":4267},[3948,14350,4684],{"class":4235},[3948,14352,4515],{"class":4267},[3948,14354,7921],{"class":4421},[3948,14356,4425],{"class":4231},[3948,14358,4428],{"class":4267},[3948,14360,4687],{"class":4235},[3948,14362,4515],{"class":4267},[3948,14364,9753],{"class":4412},[3948,14366,14368],{"class":3950,"line":14367},103,[3948,14369,6659],{"class":4267},[3948,14371,14373,14375,14377],{"class":3950,"line":14372},104,[3948,14374,5315],{"class":4421},[3948,14376,4425],{"class":4231},[3948,14378,6611],{"class":4267},[3948,14380,14382,14385,14387,14389,14391,14393,14395,14397,14399,14402,14404,14406,14408,14410],{"class":3950,"line":14381},105,[3948,14383,14384],{"class":4235},"          books",[3948,14386,3555],{"class":4445},[3948,14388,6321],{"class":4235},[3948,14390,6623],{"class":4231},[3948,14392,6626],{"class":4836},[3948,14394,6629],{"class":4231},[3948,14396,5579],{"class":4235},[3948,14398,3555],{"class":4445},[3948,14400,14401],{"class":4235},"grow",[3948,14403,6639],{"class":4231},[3948,14405,4232],{"class":4445},[3948,14407,5324],{"class":4235},[3948,14409,5619],{"class":4836},[3948,14411,6654],{"class":4445},[3948,14413,14415],{"class":3950,"line":14414},106,[3948,14416,6659],{"class":4267},[3948,14418,14420,14422,14424],{"class":3950,"line":14419},107,[3948,14421,6718],{"class":4421},[3948,14423,4425],{"class":4231},[3948,14425,6611],{"class":4267},[3948,14427,14429,14431,14433,14435,14437,14439,14441,14443,14445,14447],{"class":3950,"line":14428},108,[3948,14430,4499],{"class":4412},[3948,14432,4245],{"class":4271},[3948,14434,5115],{"class":4421},[3948,14436,4425],{"class":4231},[3948,14438,4428],{"class":4267},[3948,14440,5125],{"class":4235},[3948,14442,3555],{"class":4445},[3948,14444,6742],{"class":4235},[3948,14446,4515],{"class":4267},[3948,14448,4494],{"class":4412},[3948,14450,14452,14454,14456,14458,14460,14462,14464,14466,14468,14470,14472,14475,14477,14479],{"class":3950,"line":14451},109,[3948,14453,5431],{"class":4412},[3948,14455,4240],{"class":4271},[3948,14457,5115],{"class":4421},[3948,14459,4425],{"class":4231},[3948,14461,4428],{"class":4267},[3948,14463,5125],{"class":4235},[3948,14465,3555],{"class":4445},[3948,14467,6768],{"class":4235},[3948,14469,4515],{"class":4267},[3948,14471,4504],{"class":4412},[3948,14473,14474],{"class":4445},"Полиця порожня",[3948,14476,4518],{"class":4412},[3948,14478,4240],{"class":4271},[3948,14480,4494],{"class":4412},[3948,14482,14484,14486,14488,14490,14492,14494,14496,14498,14500,14502,14504,14507,14509,14511],{"class":3950,"line":14483},110,[3948,14485,5431],{"class":4412},[3948,14487,4240],{"class":4271},[3948,14489,5115],{"class":4421},[3948,14491,4425],{"class":4231},[3948,14493,4428],{"class":4267},[3948,14495,5125],{"class":4235},[3948,14497,3555],{"class":4445},[3948,14499,13988],{"class":4235},[3948,14501,4515],{"class":4267},[3948,14503,4504],{"class":4412},[3948,14505,14506],{"class":4445},"Натисніть «Заповнити» або pull-to-refresh.",[3948,14508,4518],{"class":4412},[3948,14510,4240],{"class":4271},[3948,14512,4494],{"class":4412},[3948,14514,14516,14518,14520],{"class":3950,"line":14515},111,[3948,14517,5528],{"class":4412},[3948,14519,4245],{"class":4271},[3948,14521,4494],{"class":4412},[3948,14523,14525],{"class":3950,"line":14524},112,[3948,14526,6659],{"class":4267},[3948,14528,14530,14532,14534,14536,14538,14540,14542,14544,14546,14548,14550,14552],{"class":3950,"line":14529},113,[3948,14531,11346],{"class":4421},[3948,14533,4425],{"class":4231},[3948,14535,4428],{"class":4267},[3948,14537,4475],{"class":4445},[3948,14539,10495],{"class":4235},[3948,14541,10498],{"class":4445},[3948,14543,4289],{"class":4235},[3948,14545,3593],{"class":4445},[3948,14547,3592],{"class":4235},[3948,14549,10503],{"class":4445},[3948,14551,4454],{"class":4267},[3948,14553,4407],{"class":4445},[3948,14555,14557,14559,14561,14563,14565,14567,14569,14571,14573,14575],{"class":3950,"line":14556},114,[3948,14558,4499],{"class":4412},[3948,14560,4245],{"class":4271},[3948,14562,5115],{"class":4421},[3948,14564,4425],{"class":4231},[3948,14566,4428],{"class":4267},[3948,14568,5125],{"class":4235},[3948,14570,3555],{"class":4445},[3948,14572,11385],{"class":4235},[3948,14574,4515],{"class":4267},[3948,14576,4494],{"class":4412},[3948,14578,14580,14582,14584,14586,14588,14590,14592,14594,14597,14599],{"class":3950,"line":14579},115,[3948,14581,5431],{"class":4412},[3948,14583,4240],{"class":4271},[3948,14585,5115],{"class":4421},[3948,14587,4425],{"class":4231},[3948,14589,4428],{"class":4267},[3948,14591,5125],{"class":4235},[3948,14593,3555],{"class":4445},[3948,14595,14596],{"class":4235},"secText",[3948,14598,4515],{"class":4267},[3948,14600,4494],{"class":4412},[3948,14602,14604,14607,14609,14611,14614,14616,14618,14620,14622],{"class":3950,"line":14603},116,[3948,14605,14606],{"class":4267},"              {",[3948,14608,4289],{"class":4235},[3948,14610,4515],{"class":4267},[3948,14612,14613],{"class":4445}," · ",[3948,14615,4428],{"class":4267},[3948,14617,3592],{"class":4235},[3948,14619,3555],{"class":4445},[3948,14621,6321],{"class":4235},[3948,14623,4003],{"class":4267},[3948,14625,14627,14629,14631],{"class":3950,"line":14626},117,[3948,14628,6847],{"class":4412},[3948,14630,4240],{"class":4271},[3948,14632,4494],{"class":4412},[3948,14634,14636,14638,14640],{"class":3950,"line":14635},118,[3948,14637,5528],{"class":4412},[3948,14639,4245],{"class":4271},[3948,14641,4494],{"class":4412},[3948,14643,14645,14647],{"class":3950,"line":14644},119,[3948,14646,5538],{"class":4445},[3948,14648,4003],{"class":4267},[3948,14650,14652,14654,14656,14658,14660,14662,14664,14666],{"class":3950,"line":14651},120,[3948,14653,5344],{"class":4421},[3948,14655,4425],{"class":4231},[3948,14657,4428],{"class":4267},[3948,14659,4475],{"class":4445},[3948,14661,4449],{"class":4235},[3948,14663,4480],{"class":4445},[3948,14665,4454],{"class":4267},[3948,14667,4407],{"class":4445},[3948,14669,14671,14673,14675,14677,14679,14681,14683,14685,14688,14690],{"class":3950,"line":14670},121,[3948,14672,4499],{"class":4412},[3948,14674,4245],{"class":4271},[3948,14676,5115],{"class":4421},[3948,14678,4425],{"class":4231},[3948,14680,4428],{"class":4267},[3948,14682,5125],{"class":4235},[3948,14684,3555],{"class":4445},[3948,14686,14687],{"class":4235},"card",[3948,14689,4515],{"class":4267},[3948,14691,4494],{"class":4412},[3948,14693,14695,14697,14699,14701,14703,14705,14707,14709,14711,14713,14715,14717,14719,14721,14723,14725,14727,14729],{"class":3950,"line":14694},122,[3948,14696,5431],{"class":4412},[3948,14698,4240],{"class":4271},[3948,14700,5115],{"class":4421},[3948,14702,4425],{"class":4231},[3948,14704,4428],{"class":4267},[3948,14706,5125],{"class":4235},[3948,14708,3555],{"class":4445},[3948,14710,4289],{"class":4235},[3948,14712,4515],{"class":4267},[3948,14714,4504],{"class":4412},[3948,14716,4428],{"class":4267},[3948,14718,4449],{"class":4235},[3948,14720,3555],{"class":4445},[3948,14722,4289],{"class":4235},[3948,14724,4515],{"class":4267},[3948,14726,4518],{"class":4412},[3948,14728,4240],{"class":4271},[3948,14730,4494],{"class":4412},[3948,14732,14734,14736,14738,14740,14742,14744,14746,14748,14750,14752],{"class":3950,"line":14733},123,[3948,14735,5431],{"class":4412},[3948,14737,4240],{"class":4271},[3948,14739,5115],{"class":4421},[3948,14741,4425],{"class":4231},[3948,14743,4428],{"class":4267},[3948,14745,5125],{"class":4235},[3948,14747,3555],{"class":4445},[3948,14749,13988],{"class":4235},[3948,14751,4515],{"class":4267},[3948,14753,4494],{"class":4412},[3948,14755,14757,14759,14761,14763,14765,14767,14769,14771,14773,14775,14778,14780,14783,14785,14787,14789,14792,14794,14797,14799,14801,14803],{"class":3950,"line":14756},124,[3948,14758,14606],{"class":4267},[3948,14760,4449],{"class":4235},[3948,14762,3555],{"class":4445},[3948,14764,10678],{"class":4235},[3948,14766,4515],{"class":4267},[3948,14768,14613],{"class":4445},[3948,14770,4428],{"class":4267},[3948,14772,4449],{"class":4235},[3948,14774,3555],{"class":4445},[3948,14776,14777],{"class":4235},"year",[3948,14779,4515],{"class":4267},[3948,14781,14782],{"class":4445}," · ★ ",[3948,14784,4428],{"class":4267},[3948,14786,4449],{"class":4235},[3948,14788,3555],{"class":4445},[3948,14790,14791],{"class":4235},"rating",[3948,14793,3555],{"class":4445},[3948,14795,14796],{"class":4395},"toFixed",[3948,14798,4446],{"class":4445},[3948,14800,4872],{"class":4836},[3948,14802,7357],{"class":4445},[3948,14804,4003],{"class":4267},[3948,14806,14808,14810,14812],{"class":3950,"line":14807},125,[3948,14809,6847],{"class":4412},[3948,14811,4240],{"class":4271},[3948,14813,4494],{"class":4412},[3948,14815,14817,14819,14821],{"class":3950,"line":14816},126,[3948,14818,5528],{"class":4412},[3948,14820,4245],{"class":4271},[3948,14822,4494],{"class":4412},[3948,14824,14826,14828],{"class":3950,"line":14825},127,[3948,14827,5538],{"class":4445},[3948,14829,4003],{"class":4267},[3948,14831,14833,14835,14837,14839,14841,14843,14845,14847,14849,14851,14853,14855,14857,14859,14861,14863,14865],{"class":3950,"line":14832},128,[3948,14834,11624],{"class":4421},[3948,14836,4425],{"class":4231},[3948,14838,4428],{"class":4267},[3948,14840,6256],{"class":4445},[3948,14842,4454],{"class":4267},[3948,14844,10462],{"class":4412},[3948,14846,4245],{"class":4271},[3948,14848,5115],{"class":4421},[3948,14850,4425],{"class":4231},[3948,14852,4428],{"class":4267},[3948,14854,5204],{"class":4445},[3948,14856,11647],{"class":4235},[3948,14858,5216],{"class":4836},[3948,14860,5227],{"class":4445},[3948,14862,4515],{"class":4267},[3948,14864,10479],{"class":4412},[3948,14866,4003],{"class":4267},[3948,14868,14870],{"class":3950,"line":14869},129,[3948,14871,5546],{"class":4412},[3948,14873,14875,14877,14879],{"class":3950,"line":14874},130,[3948,14876,5552],{"class":4412},[3948,14878,12966],{"class":4271},[3948,14880,4494],{"class":4412},[3948,14882,14884],{"class":3950,"line":14883},131,[3948,14885,4548],{"class":4231},[3948,14887,14889],{"class":3950,"line":14888},132,[3948,14890,4003],{"class":4231},[3948,14892,14894],{"class":3950,"line":14893},133,[3948,14895,3973],{"emptyLinePlaceholder":3972},[3948,14897,14899,14901,14903,14905,14907,14909,14911],{"class":3950,"line":14898},134,[3948,14900,4305],{"class":4267},[3948,14902,5579],{"class":4308},[3948,14904,4970],{"class":4231},[3948,14906,4744],{"class":4235},[3948,14908,3555],{"class":4231},[3948,14910,5588],{"class":4395},[3948,14912,5591],{"class":4231},[3948,14914,14916,14919,14921,14923,14925,14927,14929,14932],{"class":3950,"line":14915},135,[3948,14917,14918],{"class":4235},"  safe:",[3948,14920,4232],{"class":4231},[3948,14922,5602],{"class":4235},[3948,14924,4894],{"class":4836},[3948,14926,3593],{"class":4231},[3948,14928,5136],{"class":4235},[3948,14930,14931],{"class":4254}," '#F8FAFC'",[3948,14933,4339],{"class":4231},[3948,14935,14937,14939,14941,14943,14945,14947,14949,14952,14954,14957,14959,14961,14963,14966],{"class":3950,"line":14936},136,[3948,14938,7064],{"class":4235},[3948,14940,4232],{"class":4231},[3948,14942,5609],{"class":4235},[3948,14944,5327],{"class":4836},[3948,14946,3593],{"class":4231},[3948,14948,5332],{"class":4235},[3948,14950,14951],{"class":4836}," 6",[3948,14953,3593],{"class":4231},[3948,14955,14956],{"class":4235},"borderBottomWidth:",[3948,14958,4894],{"class":4836},[3948,14960,3593],{"class":4231},[3948,14962,5407],{"class":4235},[3948,14964,14965],{"class":4254}," '#E2E8F0'",[3948,14967,4339],{"class":4231},[3948,14969,14971,14973,14975,14977,14980,14982,14984,14986,14988,14990,14993],{"class":3950,"line":14970},137,[3948,14972,5627],{"class":4235},[3948,14974,4232],{"class":4231},[3948,14976,5221],{"class":4235},[3948,14978,14979],{"class":4836}," 22",[3948,14981,3593],{"class":4231},[3948,14983,5639],{"class":4235},[3948,14985,5642],{"class":4254},[3948,14987,3593],{"class":4231},[3948,14989,5172],{"class":4235},[3948,14991,14992],{"class":4254}," '#0F172A'",[3948,14994,4339],{"class":4231},[3948,14996,14998,15001,15003,15005,15008,15010,15012,15014],{"class":3950,"line":14997},138,[3948,14999,15000],{"class":4235},"  muted:",[3948,15002,4232],{"class":4231},[3948,15004,5172],{"class":4235},[3948,15006,15007],{"class":4254}," '#64748B'",[3948,15009,3593],{"class":4231},[3948,15011,5221],{"class":4235},[3948,15013,5224],{"class":4836},[3948,15015,4339],{"class":4231},[3948,15017,15019,15021,15023,15025,15027,15029,15031,15033,15035,15037,15039],{"class":3950,"line":15018},139,[3948,15020,5671],{"class":4235},[3948,15022,4232],{"class":4231},[3948,15024,7069],{"class":4235},[3948,15026,7072],{"class":4254},[3948,15028,3593],{"class":4231},[3948,15030,5332],{"class":4235},[3948,15032,5216],{"class":4836},[3948,15034,3593],{"class":4231},[3948,15036,9776],{"class":4235},[3948,15038,5216],{"class":4836},[3948,15040,4339],{"class":4231},[3948,15042,15044,15046],{"class":3950,"line":15043},140,[3948,15045,7092],{"class":4235},[3948,15047,5674],{"class":4231},[3948,15049,15051,15054,15057],{"class":3950,"line":15050},141,[3948,15052,15053],{"class":4235},"    backgroundColor:",[3948,15055,15056],{"class":4254}," '#2563EB'",[3948,15058,4902],{"class":4231},[3948,15060,15062,15064,15066],{"class":3950,"line":15061},142,[3948,15063,7100],{"class":4235},[3948,15065,5693],{"class":4836},[3948,15067,4902],{"class":4231},[3948,15069,15071,15073,15075],{"class":3950,"line":15070},143,[3948,15072,7110],{"class":4235},[3948,15074,7113],{"class":4836},[3948,15076,4902],{"class":4231},[3948,15078,15080,15082,15084],{"class":3950,"line":15079},144,[3948,15081,5690],{"class":4235},[3948,15083,7113],{"class":4836},[3948,15085,4902],{"class":4231},[3948,15087,15089],{"class":3950,"line":15088},145,[3948,15090,5712],{"class":4231},[3948,15092,15094,15096,15098,15100,15102,15104,15106,15108],{"class":3950,"line":15093},146,[3948,15095,7135],{"class":4235},[3948,15097,4232],{"class":4231},[3948,15099,5172],{"class":4235},[3948,15101,7142],{"class":4254},[3948,15103,3593],{"class":4231},[3948,15105,5639],{"class":4235},[3948,15107,5730],{"class":4254},[3948,15109,4339],{"class":4231},[3948,15111,15113,15116,15118,15120,15122,15124,15126,15128,15130,15132,15134],{"class":3950,"line":15112},147,[3948,15114,15115],{"class":4235},"  btnGhost:",[3948,15117,4232],{"class":4231},[3948,15119,5136],{"class":4235},[3948,15121,7142],{"class":4254},[3948,15123,3593],{"class":4231},[3948,15125,6473],{"class":4235},[3948,15127,4894],{"class":4836},[3948,15129,3593],{"class":4231},[3948,15131,5407],{"class":4235},[3948,15133,14965],{"class":4254},[3948,15135,4339],{"class":4231},[3948,15137,15139,15142,15144,15146,15148,15150,15152,15154],{"class":3950,"line":15138},148,[3948,15140,15141],{"class":4235},"  btnGhostText:",[3948,15143,4232],{"class":4231},[3948,15145,5172],{"class":4235},[3948,15147,14992],{"class":4254},[3948,15149,3593],{"class":4231},[3948,15151,5639],{"class":4235},[3948,15153,5730],{"class":4254},[3948,15155,4339],{"class":4231},[3948,15157,15159,15161,15163,15165,15167,15169,15172,15174,15176,15178,15180],{"class":3950,"line":15158},149,[3948,15160,5657],{"class":4235},[3948,15162,4232],{"class":4231},[3948,15164,5602],{"class":4235},[3948,15166,4894],{"class":4836},[3948,15168,3593],{"class":4231},[3948,15170,15171],{"class":4235},"paddingHorizontal:",[3948,15173,5327],{"class":4836},[3948,15175,3593],{"class":4231},[3948,15177,5616],{"class":4235},[3948,15179,5693],{"class":4836},[3948,15181,4339],{"class":4231},[3948,15183,15185,15188,15190,15192,15194],{"class":3950,"line":15184},150,[3948,15186,15187],{"class":4235},"  grow:",[3948,15189,4232],{"class":4231},[3948,15191,7187],{"class":4235},[3948,15193,4894],{"class":4836},[3948,15195,4339],{"class":4231},[3948,15197,15199,15201,15203,15205,15207,15209,15212,15215,15217,15219,15221,15223,15226,15228,15230,15232,15234],{"class":3950,"line":15198},151,[3948,15200,7197],{"class":4235},[3948,15202,4232],{"class":4231},[3948,15204,5602],{"class":4235},[3948,15206,4894],{"class":4836},[3948,15208,3593],{"class":4231},[3948,15210,15211],{"class":4235},"minHeight:",[3948,15213,15214],{"class":4836}," 240",[3948,15216,3593],{"class":4231},[3948,15218,10124],{"class":4235},[3948,15220,6816],{"class":4254},[3948,15222,3593],{"class":4231},[3948,15224,15225],{"class":4235},"justifyContent:",[3948,15227,6816],{"class":4254},[3948,15229,3593],{"class":4231},[3948,15231,5332],{"class":4235},[3948,15233,5216],{"class":4836},[3948,15235,4339],{"class":4231},[3948,15237,15239,15241,15243,15245,15247,15249,15251,15253,15255,15257,15259],{"class":3950,"line":15238},152,[3948,15240,7270],{"class":4235},[3948,15242,4232],{"class":4231},[3948,15244,5221],{"class":4235},[3948,15246,7162],{"class":4836},[3948,15248,3593],{"class":4231},[3948,15250,5639],{"class":4235},[3948,15252,5730],{"class":4254},[3948,15254,3593],{"class":4231},[3948,15256,5172],{"class":4235},[3948,15258,14992],{"class":4254},[3948,15260,4339],{"class":4231},[3948,15262,15264,15266],{"class":3950,"line":15263},153,[3948,15265,11787],{"class":4235},[3948,15267,5674],{"class":4231},[3948,15269,15271,15273,15275],{"class":3950,"line":15270},154,[3948,15272,15053],{"class":4235},[3948,15274,14965],{"class":4254},[3948,15276,4902],{"class":4231},[3948,15278,15280,15282,15284],{"class":3950,"line":15279},155,[3948,15281,7110],{"class":4235},[3948,15283,5216],{"class":4836},[3948,15285,4902],{"class":4231},[3948,15287,15289,15291,15293],{"class":3950,"line":15288},156,[3948,15290,7100],{"class":4235},[3948,15292,7113],{"class":4836},[3948,15294,4902],{"class":4231},[3948,15296,15298,15300,15302],{"class":3950,"line":15297},157,[3948,15299,5690],{"class":4235},[3948,15301,5216],{"class":4836},[3948,15303,4902],{"class":4231},[3948,15305,15307,15309,15311],{"class":3950,"line":15306},158,[3948,15308,11818],{"class":4235},[3948,15310,5216],{"class":4836},[3948,15312,4902],{"class":4231},[3948,15314,15316],{"class":3950,"line":15315},159,[3948,15317,5712],{"class":4231},[3948,15319,15321,15324,15326,15328,15330,15332,15334,15336],{"class":3950,"line":15320},160,[3948,15322,15323],{"class":4235},"  secText:",[3948,15325,4232],{"class":4231},[3948,15327,5639],{"class":4235},[3948,15329,5642],{"class":4254},[3948,15331,3593],{"class":4231},[3948,15333,5172],{"class":4235},[3948,15335,15056],{"class":4254},[3948,15337,4339],{"class":4231},[3948,15339,15341,15344],{"class":3950,"line":15340},161,[3948,15342,15343],{"class":4235},"  card:",[3948,15345,5674],{"class":4231},[3948,15347,15349,15351,15353],{"class":3950,"line":15348},162,[3948,15350,15053],{"class":4235},[3948,15352,7142],{"class":4254},[3948,15354,4902],{"class":4231},[3948,15356,15358,15360,15362],{"class":3950,"line":15357},163,[3948,15359,5690],{"class":4235},[3948,15361,5693],{"class":4836},[3948,15363,4902],{"class":4231},[3948,15365,15367,15369,15371],{"class":3950,"line":15366},164,[3948,15368,5680],{"class":4235},[3948,15370,4894],{"class":4836},[3948,15372,4902],{"class":4231},[3948,15374,15376,15379,15381],{"class":3950,"line":15375},165,[3948,15377,15378],{"class":4235},"    borderColor:",[3948,15380,14965],{"class":4254},[3948,15382,4902],{"class":4231},[3948,15384,15386,15388,15390],{"class":3950,"line":15385},166,[3948,15387,5701],{"class":4235},[3948,15389,5704],{"class":4836},[3948,15391,4902],{"class":4231},[3948,15393,15395],{"class":3950,"line":15394},167,[3948,15396,5712],{"class":4231},[3948,15398,15400,15402,15404,15406,15408,15410,15412,15414,15416,15418,15420],{"class":3950,"line":15399},168,[3948,15401,4880],{"class":4235},[3948,15403,4232],{"class":4231},[3948,15405,5639],{"class":4235},[3948,15407,5730],{"class":4254},[3948,15409,3593],{"class":4231},[3948,15411,5172],{"class":4235},[3948,15413,14992],{"class":4254},[3948,15415,3593],{"class":4231},[3948,15417,5213],{"class":4235},[3948,15419,5649],{"class":4836},[3948,15421,4339],{"class":4231},[3948,15423,15425],{"class":3950,"line":15424},169,[3948,15426,5744],{"class":4231},[3846,15428,15430],{"id":15429},"живе-превю-після-кроків","Живе прев’ю (після кроків)",[4721,15432,15436],{"device":4723,"filename":15433,"height":15434,"title":15435},"BookCatalog.tsx",700,"Каталог книг · SectionList",[3939,15437,15439],{"className":4218,"code":15438,"language":4220,"meta":3944,"style":3944},"import { useCallback, useMemo, useState } from 'react';\nimport {\n  Pressable,\n  RefreshControl,\n  SectionList,\n  StyleSheet,\n  Text,\n  View,\n  useColorScheme,\n} from 'react-native';\n\ntype Book = {\n  id: string;\n  title: string;\n  author: string;\n  genre: string;\n  year: number;\n  rating: number;\n};\n\nconst GENRES = ['Фантастика', 'Детектив', 'Подорожі', 'Історія', 'Поезія'] as const;\nconst AUTHORS = ['Коваленко', 'Шевченко', 'Лис', 'Мельник', 'Бондар'];\n\nfunction buildBooks(seed: number, count = 80): Book[] {\n  return Array.from({ length: count }, (_, i) => ({\n    id: `${seed}-${i}`,\n    title: `Книга ${i + 1}`,\n    author: AUTHORS[i % AUTHORS.length],\n    genre: GENRES[i % GENRES.length],\n    year: 1990 + (i % 35),\n    rating: ((seed + i) % 50) \u002F 10 + 5,\n  }));\n}\n\nfunction toSections(books: Book[]) {\n  const map = new Map\u003Cstring, Book[]>();\n  for (const b of books) {\n    const list = map.get(b.genre) ?? [];\n    list.push(b);\n    map.set(b.genre, list);\n  }\n  return [...map.entries()]\n    .sort(([a], [b]) => a.localeCompare(b, 'uk'))\n    .map(([title, data]) => ({ title, data }));\n}\n\nexport default function App() {\n  const dark = useColorScheme() === 'dark';\n  const bg = dark ? '#000' : '#F8FAFC';\n  const surface = dark ? '#1c1c1e' : '#fff';\n  const text = dark ? '#f5f5f7' : '#0f172a';\n  const muted = dark ? '#a1a1aa' : '#64748b';\n  const primary = dark ? '#3b82f6' : '#2563eb';\n  const border = dark ? '#3a3a3c' : '#e2e8f0';\n  const headerBg = dark ? '#111' : '#e2e8f0';\n\n  const [seed, setSeed] = useState(1);\n  const [books, setBooks] = useState(() => buildBooks(1));\n  const [refreshing, setRefreshing] = useState(false);\n  const sections = useMemo(() => toSections(books), [books]);\n\n  const onRefresh = useCallback(() => {\n    setRefreshing(true);\n    setTimeout(() => {\n      setSeed((s) => {\n        const next = s + 1;\n        setBooks(buildBooks(next));\n        return next;\n      });\n      setRefreshing(false);\n    }, 700);\n  }, []);\n\n  return (\n    \u003CView style={[styles.safe, { backgroundColor: bg }]}>\n      \u003CView style={[styles.toolbar, { borderColor: border }]}>\n        \u003CText style={[styles.h, { color: text }]}>Каталог книг\u003C\u002FText>\n        \u003CText style={{ color: muted, fontSize: 13 }}>\n          {books.length} · seed {seed} · SectionList\n        \u003C\u002FText>\n        \u003CView style={styles.rowBtns}>\n          \u003CPressable\n            style={[styles.btn, { backgroundColor: primary }]}\n            onPress={() => setBooks(buildBooks(seed))}\n          >\n            \u003CText style={styles.btnText}>Заповнити\u003C\u002FText>\n          \u003C\u002FPressable>\n          \u003CPressable\n            style={[styles.btn, { backgroundColor: surface, borderColor: border, borderWidth: 1 }]}\n            onPress={() => setBooks([])}\n          >\n            \u003CText style={{ color: text, fontWeight: '700' }}>Очистити\u003C\u002FText>\n          \u003C\u002FPressable>\n        \u003C\u002FView>\n      \u003C\u002FView>\n\n      \u003CSectionList\n        style={{ flex: 1 }}\n        sections={sections}\n        keyExtractor={(item) => item.id}\n        stickySectionHeadersEnabled\n        refreshControl={\n          \u003CRefreshControl\n            refreshing={refreshing}\n            onRefresh={onRefresh}\n            tintColor={primary}\n            colors={[primary]}\n          \u002F>\n        }\n        contentContainerStyle={\n          books.length === 0\n            ? { flexGrow: 1, padding: 16 }\n            : { padding: 16, paddingBottom: 24 }\n        }\n        ListEmptyComponent={\n          \u003CView style={styles.empty}>\n            \u003CText style={[styles.emptyTitle, { color: text }]}>Полиця порожня\u003C\u002FText>\n            \u003CText style={{ color: muted, textAlign: 'center' }}>\n              Заповніть або pull-to-refresh\n            \u003C\u002FText>\n          \u003C\u002FView>\n        }\n        renderSectionHeader={({ section: { title, data } }) => (\n          \u003CView style={[styles.sec, { backgroundColor: headerBg }]}>\n            \u003CText style={{ color: primary, fontWeight: '800' }}>\n              {title} · {data.length}\n            \u003C\u002FText>\n          \u003C\u002FView>\n        )}\n        renderItem={({ item }) => (\n          \u003CView style={[styles.card, { backgroundColor: surface, borderColor: border }]}>\n            \u003CText style={{ color: text, fontWeight: '700' }}>{item.title}\u003C\u002FText>\n            \u003CText style={{ color: muted, marginTop: 4, fontSize: 13 }}>\n              {item.author} · {item.year} · ★ {item.rating.toFixed(1)}\n            \u003C\u002FText>\n          \u003C\u002FView>\n        )}\n        ItemSeparatorComponent={() => \u003CView style={{ height: 8 }} \u002F>}\n        SectionSeparatorComponent={() => \u003CView style={{ height: 10 }} \u002F>}\n      \u002F>\n    \u003C\u002FView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  safe: { flex: 1 },\n  toolbar: { padding: 16, gap: 6, borderBottomWidth: 1 },\n  h: { fontSize: 20, fontWeight: '800' },\n  rowBtns: { flexDirection: 'row', gap: 8, marginTop: 8 },\n  btn: { paddingHorizontal: 12, paddingVertical: 10, borderRadius: 10 },\n  btnText: { color: '#fff', fontWeight: '700' },\n  empty: {\n    flex: 1,\n    minHeight: 220,\n    alignItems: 'center',\n    justifyContent: 'center',\n    gap: 8,\n  },\n  emptyTitle: { fontSize: 18, fontWeight: '700' },\n  sec: {\n    paddingVertical: 8,\n    paddingHorizontal: 10,\n    borderRadius: 8,\n    marginBottom: 8,\n  },\n  card: { borderWidth: 1, borderRadius: 12, padding: 14 },\n});\n",[3525,15440,15441,15465,15471,15477,15483,15489,15495,15501,15507,15513,15523,15527,15535,15545,15555,15565,15575,15585,15595,15599,15603,15637,15665,15669,15698,15728,15752,15772,15793,15814,15831,15858,15862,15866,15870,15887,15909,15925,15949,15963,15985,15989,16003,16037,16065,16069,16073,16085,16101,16121,16141,16161,16181,16201,16221,16241,16245,16267,16295,16317,16343,16347,16363,16373,16383,16397,16413,16427,16435,16439,16449,16457,16461,16465,16471,16503,16535,16575,16605,16629,16637,16660,16666,16692,16719,16723,16753,16761,16767,16805,16823,16827,16865,16873,16881,16889,16893,16899,16917,16929,16953,16957,16965,16971,16983,16995,17007,17023,17027,17031,17039,17052,17071,17090,17094,17102,17124,17164,17194,17199,17207,17215,17219,17245,17277,17307,17327,17335,17343,17349,17367,17405,17451,17487,17533,17541,17549,17555,17591,17627,17631,17639,17643,17647,17651,17667,17679,17703,17721,17746,17770,17788,17794,17802,17810,17818,17826,17834,17838,17856,17862,17870,17878,17886,17894,17898,17922],{"__ignoreMap":3944},[3948,15442,15443,15445,15447,15449,15451,15453,15455,15457,15459,15461,15463],{"class":3950,"line":3951},[3948,15444,4228],{"class":4227},[3948,15446,4232],{"class":4231},[3948,15448,4586],{"class":4235},[3948,15450,3593],{"class":4231},[3948,15452,12893],{"class":4235},[3948,15454,3593],{"class":4231},[3948,15456,5831],{"class":4235},[3948,15458,4248],{"class":4231},[3948,15460,4251],{"class":4227},[3948,15462,5897],{"class":4254},[3948,15464,4258],{"class":4231},[3948,15466,15467,15469],{"class":3950,"line":3957},[3948,15468,4228],{"class":4227},[3948,15470,5674],{"class":4231},[3948,15472,15473,15475],{"class":3950,"line":3963},[3948,15474,5917],{"class":4235},[3948,15476,4902],{"class":4231},[3948,15478,15479,15481],{"class":3950,"line":3969},[3948,15480,7475],{"class":4235},[3948,15482,4902],{"class":4231},[3948,15484,15485,15487],{"class":3950,"line":3976},[3948,15486,10610],{"class":4235},[3948,15488,4902],{"class":4231},[3948,15490,15491,15493],{"class":3950,"line":3982},[3948,15492,5924],{"class":4235},[3948,15494,4902],{"class":4231},[3948,15496,15497,15499],{"class":3950,"line":3988},[3948,15498,5931],{"class":4235},[3948,15500,4902],{"class":4231},[3948,15502,15503,15505],{"class":3950,"line":3994},[3948,15504,5938],{"class":4235},[3948,15506,4902],{"class":4231},[3948,15508,15509,15511],{"class":3950,"line":4000},[3948,15510,5945],{"class":4235},[3948,15512,4902],{"class":4231},[3948,15514,15515,15517,15519,15521],{"class":3950,"line":4006},[3948,15516,5952],{"class":4231},[3948,15518,4251],{"class":4227},[3948,15520,4255],{"class":4254},[3948,15522,4258],{"class":4231},[3948,15524,15525],{"class":3950,"line":4011},[3948,15526,3973],{"emptyLinePlaceholder":3972},[3948,15528,15529,15531,15533],{"class":3950,"line":4017},[3948,15530,4268],{"class":4267},[3948,15532,10657],{"class":4271},[3948,15534,10299],{"class":4231},[3948,15536,15537,15539,15541,15543],{"class":3950,"line":4023},[3948,15538,12656],{"class":4235},[3948,15540,4280],{"class":4231},[3948,15542,4283],{"class":4271},[3948,15544,4258],{"class":4231},[3948,15546,15547,15549,15551,15553],{"class":3950,"line":4029},[3948,15548,10304],{"class":4235},[3948,15550,4280],{"class":4231},[3948,15552,4283],{"class":4271},[3948,15554,4258],{"class":4231},[3948,15556,15557,15559,15561,15563],{"class":3950,"line":4035},[3948,15558,12677],{"class":4235},[3948,15560,4280],{"class":4231},[3948,15562,4283],{"class":4271},[3948,15564,4258],{"class":4231},[3948,15566,15567,15569,15571,15573],{"class":3950,"line":4041},[3948,15568,12688],{"class":4235},[3948,15570,4280],{"class":4231},[3948,15572,4283],{"class":4271},[3948,15574,4258],{"class":4231},[3948,15576,15577,15579,15581,15583],{"class":3950,"line":4046},[3948,15578,12699],{"class":4235},[3948,15580,4280],{"class":4231},[3948,15582,7547],{"class":4271},[3948,15584,4258],{"class":4231},[3948,15586,15587,15589,15591,15593],{"class":3950,"line":4051},[3948,15588,13042],{"class":4235},[3948,15590,4280],{"class":4231},[3948,15592,7547],{"class":4271},[3948,15594,4258],{"class":4231},[3948,15596,15597],{"class":3950,"line":4057},[3948,15598,10328],{"class":4231},[3948,15600,15601],{"class":3950,"line":4063},[3948,15602,3973],{"emptyLinePlaceholder":3972},[3948,15604,15605,15607,15609,15611,15613,15615,15617,15619,15621,15623,15625,15627,15629,15631,15633,15635],{"class":3950,"line":4069},[3948,15606,4305],{"class":4267},[3948,15608,13092],{"class":4308},[3948,15610,13095],{"class":4231},[3948,15612,13098],{"class":4254},[3948,15614,3593],{"class":4231},[3948,15616,13103],{"class":4254},[3948,15618,3593],{"class":4231},[3948,15620,13108],{"class":4254},[3948,15622,3593],{"class":4231},[3948,15624,13113],{"class":4254},[3948,15626,3593],{"class":4231},[3948,15628,13118],{"class":4254},[3948,15630,13121],{"class":4231},[3948,15632,13124],{"class":4227},[3948,15634,13127],{"class":4267},[3948,15636,4258],{"class":4231},[3948,15638,15639,15641,15643,15645,15647,15649,15651,15653,15655,15657,15659,15661,15663],{"class":3950,"line":4074},[3948,15640,4305],{"class":4267},[3948,15642,13136],{"class":4308},[3948,15644,13095],{"class":4231},[3948,15646,13141],{"class":4254},[3948,15648,3593],{"class":4231},[3948,15650,13146],{"class":4254},[3948,15652,3593],{"class":4231},[3948,15654,13151],{"class":4254},[3948,15656,3593],{"class":4231},[3948,15658,13156],{"class":4254},[3948,15660,3593],{"class":4231},[3948,15662,13161],{"class":4254},[3948,15664,4380],{"class":4231},[3948,15666,15667],{"class":3950,"line":4080},[3948,15668,3973],{"emptyLinePlaceholder":3972},[3948,15670,15671,15673,15675,15677,15679,15681,15683,15685,15687,15689,15692,15694,15696],{"class":3950,"line":4086},[3948,15672,7558],{"class":4267},[3948,15674,13174],{"class":4395},[3948,15676,4446],{"class":4231},[3948,15678,7566],{"class":4235},[3948,15680,4280],{"class":4231},[3948,15682,7547],{"class":4271},[3948,15684,3593],{"class":4231},[3948,15686,8908],{"class":4235},[3948,15688,4970],{"class":4231},[3948,15690,15691],{"class":4836},"80",[3948,15693,7573],{"class":4231},[3948,15695,10320],{"class":4271},[3948,15697,7578],{"class":4231},[3948,15699,15700,15702,15704,15706,15708,15710,15712,15714,15716,15718,15720,15722,15724,15726],{"class":3950,"line":4091},[3948,15701,4404],{"class":4227},[3948,15703,7585],{"class":4235},[3948,15705,3555],{"class":4231},[3948,15707,4251],{"class":4395},[3948,15709,4475],{"class":4231},[3948,15711,4833],{"class":4235},[3948,15713,8935],{"class":4235},[3948,15715,4840],{"class":4231},[3948,15717,4843],{"class":4235},[3948,15719,3593],{"class":4231},[3948,15721,4848],{"class":4235},[3948,15723,4168],{"class":4231},[3948,15725,4454],{"class":4267},[3948,15727,4855],{"class":4231},[3948,15729,15730,15732,15734,15736,15738,15740,15742,15744,15746,15748,15750],{"class":3950,"line":4096},[3948,15731,7614],{"class":4235},[3948,15733,7617],{"class":4254},[3948,15735,4886],{"class":4267},[3948,15737,7566],{"class":4235},[3948,15739,4515],{"class":4267},[3948,15741,7626],{"class":4254},[3948,15743,4886],{"class":4267},[3948,15745,4848],{"class":4235},[3948,15747,4515],{"class":4267},[3948,15749,4899],{"class":4254},[3948,15751,4902],{"class":4231},[3948,15753,15754,15756,15758,15760,15762,15764,15766,15768,15770],{"class":3950,"line":5272},[3948,15755,7641],{"class":4235},[3948,15757,6312],{"class":4254},[3948,15759,4886],{"class":4267},[3948,15761,4848],{"class":4235},[3948,15763,4891],{"class":4231},[3948,15765,4894],{"class":4836},[3948,15767,4515],{"class":4267},[3948,15769,4899],{"class":4254},[3948,15771,4902],{"class":4231},[3948,15773,15774,15777,15779,15781,15783,15785,15787,15789,15791],{"class":3950,"line":5286},[3948,15775,15776],{"class":4235},"    author:",[3948,15778,13136],{"class":4308},[3948,15780,5122],{"class":4231},[3948,15782,4848],{"class":4235},[3948,15784,4913],{"class":4231},[3948,15786,13320],{"class":4308},[3948,15788,3555],{"class":4231},[3948,15790,6321],{"class":4235},[3948,15792,12047],{"class":4231},[3948,15794,15795,15798,15800,15802,15804,15806,15808,15810,15812],{"class":3950,"line":5312},[3948,15796,15797],{"class":4235},"    genre:",[3948,15799,13092],{"class":4308},[3948,15801,5122],{"class":4231},[3948,15803,4848],{"class":4235},[3948,15805,4913],{"class":4231},[3948,15807,13238],{"class":4308},[3948,15809,3555],{"class":4231},[3948,15811,6321],{"class":4235},[3948,15813,12047],{"class":4231},[3948,15815,15816,15819,15821,15823,15825,15827,15829],{"class":3950,"line":5341},[3948,15817,15818],{"class":4235},"    year:",[3948,15820,13341],{"class":4836},[3948,15822,13344],{"class":4231},[3948,15824,4848],{"class":4235},[3948,15826,4913],{"class":4231},[3948,15828,13351],{"class":4836},[3948,15830,4875],{"class":4231},[3948,15832,15833,15836,15838,15840,15842,15844,15846,15848,15850,15852,15854,15856],{"class":3950,"line":5361},[3948,15834,15835],{"class":4235},"    rating:",[3948,15837,13361],{"class":4231},[3948,15839,7566],{"class":4235},[3948,15841,3579],{"class":4231},[3948,15843,4848],{"class":4235},[3948,15845,13370],{"class":4231},[3948,15847,8882],{"class":4836},[3948,15849,13375],{"class":4231},[3948,15851,8868],{"class":4836},[3948,15853,3579],{"class":4231},[3948,15855,13382],{"class":4836},[3948,15857,4902],{"class":4231},[3948,15859,15860],{"class":3950,"line":5369},[3948,15861,7673],{"class":4231},[3948,15863,15864],{"class":3950,"line":5382},[3948,15865,4003],{"class":4231},[3948,15867,15868],{"class":3950,"line":5395},[3948,15869,3973],{"emptyLinePlaceholder":3972},[3948,15871,15872,15874,15876,15878,15880,15882,15884],{"class":3950,"line":5414},[3948,15873,7558],{"class":4267},[3948,15875,13411],{"class":4395},[3948,15877,4446],{"class":4231},[3948,15879,13416],{"class":4235},[3948,15881,4280],{"class":4231},[3948,15883,10320],{"class":4271},[3948,15885,15886],{"class":4231},"[]) {\n",[3948,15888,15889,15891,15893,15895,15897,15899,15901,15903,15905,15907],{"class":3950,"line":5422},[3948,15890,4964],{"class":4267},[3948,15892,13435],{"class":4308},[3948,15894,4970],{"class":4231},[3948,15896,13440],{"class":4267},[3948,15898,13443],{"class":4395},[3948,15900,6167],{"class":4231},[3948,15902,4283],{"class":4271},[3948,15904,3593],{"class":4231},[3948,15906,10320],{"class":4271},[3948,15908,13454],{"class":4231},[3948,15910,15911,15913,15915,15917,15919,15921,15923],{"class":3950,"line":5428},[3948,15912,13459],{"class":4227},[3948,15914,3624],{"class":4231},[3948,15916,4305],{"class":4267},[3948,15918,13466],{"class":4308},[3948,15920,13469],{"class":4267},[3948,15922,13472],{"class":4235},[3948,15924,13475],{"class":4231},[3948,15926,15927,15929,15931,15933,15935,15937,15939,15941,15943,15945,15947],{"class":3950,"line":5478},[3948,15928,8954],{"class":4267},[3948,15930,13482],{"class":4308},[3948,15932,4970],{"class":4231},[3948,15934,3582],{"class":4235},[3948,15936,3555],{"class":4231},[3948,15938,13491],{"class":4395},[3948,15940,4446],{"class":4231},[3948,15942,13496],{"class":4235},[3948,15944,3555],{"class":4231},[3948,15946,12789],{"class":4235},[3948,15948,13503],{"class":4231},[3948,15950,15951,15953,15955,15957,15959,15961],{"class":3950,"line":5525},[3948,15952,13508],{"class":4235},[3948,15954,3555],{"class":4231},[3948,15956,13513],{"class":4395},[3948,15958,4446],{"class":4231},[3948,15960,13496],{"class":4235},[3948,15962,7857],{"class":4231},[3948,15964,15965,15967,15969,15971,15973,15975,15977,15979,15981,15983],{"class":3950,"line":5535},[3948,15966,13524],{"class":4235},[3948,15968,3555],{"class":4231},[3948,15970,13529],{"class":4395},[3948,15972,4446],{"class":4231},[3948,15974,13496],{"class":4235},[3948,15976,3555],{"class":4231},[3948,15978,12789],{"class":4235},[3948,15980,3593],{"class":4231},[3948,15982,5267],{"class":4235},[3948,15984,7857],{"class":4231},[3948,15986,15987],{"class":3950,"line":5543},[3948,15988,13548],{"class":4231},[3948,15990,15991,15993,15995,15997,15999,16001],{"class":3950,"line":5549},[3948,15992,4404],{"class":4227},[3948,15994,9382],{"class":4231},[3948,15996,3582],{"class":4235},[3948,15998,3555],{"class":4231},[3948,16000,13561],{"class":4395},[3948,16002,13564],{"class":4231},[3948,16004,16005,16007,16009,16011,16013,16015,16017,16019,16021,16023,16025,16027,16029,16031,16033,16035],{"class":3950,"line":5559},[3948,16006,13569],{"class":4231},[3948,16008,13572],{"class":4395},[3948,16010,13575],{"class":4231},[3948,16012,12326],{"class":4235},[3948,16014,13580],{"class":4231},[3948,16016,13496],{"class":4235},[3948,16018,13585],{"class":4231},[3948,16020,4454],{"class":4267},[3948,16022,13590],{"class":4235},[3948,16024,3555],{"class":4231},[3948,16026,13595],{"class":4395},[3948,16028,4446],{"class":4231},[3948,16030,13496],{"class":4235},[3948,16032,3593],{"class":4231},[3948,16034,13604],{"class":4254},[3948,16036,13607],{"class":4231},[3948,16038,16039,16041,16043,16045,16047,16049,16051,16053,16055,16057,16059,16061,16063],{"class":3950,"line":5564},[3948,16040,13569],{"class":4231},[3948,16042,3582],{"class":4395},[3948,16044,13575],{"class":4231},[3948,16046,4289],{"class":4235},[3948,16048,3593],{"class":4231},[3948,16050,3592],{"class":4235},[3948,16052,13585],{"class":4231},[3948,16054,4454],{"class":4267},[3948,16056,13628],{"class":4231},[3948,16058,4289],{"class":4235},[3948,16060,3593],{"class":4231},[3948,16062,3592],{"class":4235},[3948,16064,13637],{"class":4231},[3948,16066,16067],{"class":3950,"line":5569},[3948,16068,4003],{"class":4231},[3948,16070,16071],{"class":3950,"line":5574},[3948,16072,3973],{"emptyLinePlaceholder":3972},[3948,16074,16075,16077,16079,16081,16083],{"class":3950,"line":5594},[3948,16076,4389],{"class":4227},[3948,16078,4952],{"class":4227},[3948,16080,4392],{"class":4267},[3948,16082,4957],{"class":4395},[3948,16084,4399],{"class":4231},[3948,16086,16087,16089,16091,16093,16095,16097,16099],{"class":3950,"line":5624},[3948,16088,4964],{"class":4267},[3948,16090,4967],{"class":4308},[3948,16092,4970],{"class":4231},[3948,16094,4757],{"class":4395},[3948,16096,4975],{"class":4231},[3948,16098,4978],{"class":4254},[3948,16100,4258],{"class":4231},[3948,16102,16103,16105,16107,16109,16111,16113,16115,16117,16119],{"class":3950,"line":5654},[3948,16104,4964],{"class":4267},[3948,16106,4987],{"class":4308},[3948,16108,4970],{"class":4231},[3948,16110,4992],{"class":4235},[3948,16112,4925],{"class":4231},[3948,16114,4997],{"class":4254},[3948,16116,4931],{"class":4231},[3948,16118,5002],{"class":4254},[3948,16120,4258],{"class":4231},[3948,16122,16123,16125,16127,16129,16131,16133,16135,16137,16139],{"class":3950,"line":5668},[3948,16124,4964],{"class":4267},[3948,16126,5011],{"class":4308},[3948,16128,4970],{"class":4231},[3948,16130,4992],{"class":4235},[3948,16132,4925],{"class":4231},[3948,16134,5020],{"class":4254},[3948,16136,4931],{"class":4231},[3948,16138,5025],{"class":4254},[3948,16140,4258],{"class":4231},[3948,16142,16143,16145,16147,16149,16151,16153,16155,16157,16159],{"class":3950,"line":5677},[3948,16144,4964],{"class":4267},[3948,16146,5034],{"class":4308},[3948,16148,4970],{"class":4231},[3948,16150,4992],{"class":4235},[3948,16152,4925],{"class":4231},[3948,16154,5043],{"class":4254},[3948,16156,4931],{"class":4231},[3948,16158,5048],{"class":4254},[3948,16160,4258],{"class":4231},[3948,16162,16163,16165,16167,16169,16171,16173,16175,16177,16179],{"class":3950,"line":5687},[3948,16164,4964],{"class":4267},[3948,16166,5057],{"class":4308},[3948,16168,4970],{"class":4231},[3948,16170,4992],{"class":4235},[3948,16172,4925],{"class":4231},[3948,16174,5066],{"class":4254},[3948,16176,4931],{"class":4231},[3948,16178,5071],{"class":4254},[3948,16180,4258],{"class":4231},[3948,16182,16183,16185,16187,16189,16191,16193,16195,16197,16199],{"class":3950,"line":5698},[3948,16184,4964],{"class":4267},[3948,16186,6105],{"class":4308},[3948,16188,4970],{"class":4231},[3948,16190,4992],{"class":4235},[3948,16192,4925],{"class":4231},[3948,16194,6114],{"class":4254},[3948,16196,4931],{"class":4231},[3948,16198,6119],{"class":4254},[3948,16200,4258],{"class":4231},[3948,16202,16203,16205,16207,16209,16211,16213,16215,16217,16219],{"class":3950,"line":5709},[3948,16204,4964],{"class":4267},[3948,16206,5080],{"class":4308},[3948,16208,4970],{"class":4231},[3948,16210,4992],{"class":4235},[3948,16212,4925],{"class":4231},[3948,16214,5089],{"class":4254},[3948,16216,4931],{"class":4231},[3948,16218,5094],{"class":4254},[3948,16220,4258],{"class":4231},[3948,16222,16223,16225,16227,16229,16231,16233,16235,16237,16239],{"class":3950,"line":5715},[3948,16224,4964],{"class":4267},[3948,16226,11158],{"class":4308},[3948,16228,4970],{"class":4231},[3948,16230,4992],{"class":4235},[3948,16232,4925],{"class":4231},[3948,16234,11167],{"class":4254},[3948,16236,4931],{"class":4231},[3948,16238,5094],{"class":4254},[3948,16240,4258],{"class":4231},[3948,16242,16243],{"class":3950,"line":5741},[3948,16244,3973],{"emptyLinePlaceholder":3972},[3948,16246,16247,16249,16251,16253,16255,16257,16259,16261,16263,16265],{"class":3950,"line":6725},[3948,16248,4964],{"class":4267},[3948,16250,6152],{"class":4231},[3948,16252,7566],{"class":4308},[3948,16254,3593],{"class":4231},[3948,16256,7846],{"class":4308},[3948,16258,6162],{"class":4231},[3948,16260,5831],{"class":4395},[3948,16262,4446],{"class":4231},[3948,16264,4872],{"class":4836},[3948,16266,7857],{"class":4231},[3948,16268,16269,16271,16273,16275,16277,16279,16281,16283,16285,16287,16289,16291,16293],{"class":3950,"line":6749},[3948,16270,4964],{"class":4267},[3948,16272,6152],{"class":4231},[3948,16274,13416],{"class":4308},[3948,16276,3593],{"class":4231},[3948,16278,13692],{"class":4308},[3948,16280,6162],{"class":4231},[3948,16282,5831],{"class":4395},[3948,16284,7876],{"class":4231},[3948,16286,4454],{"class":4267},[3948,16288,13174],{"class":4395},[3948,16290,4446],{"class":4231},[3948,16292,4872],{"class":4836},[3948,16294,7887],{"class":4231},[3948,16296,16297,16299,16301,16303,16305,16307,16309,16311,16313,16315],{"class":3950,"line":6792},[3948,16298,4964],{"class":4267},[3948,16300,6152],{"class":4231},[3948,16302,4684],{"class":4308},[3948,16304,3593],{"class":4231},[3948,16306,7900],{"class":4308},[3948,16308,6162],{"class":4231},[3948,16310,5831],{"class":4395},[3948,16312,4446],{"class":4231},[3948,16314,7413],{"class":4267},[3948,16316,7857],{"class":4231},[3948,16318,16319,16321,16323,16325,16327,16329,16331,16333,16335,16337,16339,16341],{"class":3950,"line":6832},[3948,16320,4964],{"class":4267},[3948,16322,10339],{"class":4308},[3948,16324,4970],{"class":4231},[3948,16326,12893],{"class":4395},[3948,16328,7876],{"class":4231},[3948,16330,4454],{"class":4267},[3948,16332,13411],{"class":4395},[3948,16334,4446],{"class":4231},[3948,16336,13416],{"class":4235},[3948,16338,13757],{"class":4231},[3948,16340,13416],{"class":4235},[3948,16342,8030],{"class":4231},[3948,16344,16345],{"class":3950,"line":6838},[3948,16346,3973],{"emptyLinePlaceholder":3972},[3948,16348,16349,16351,16353,16355,16357,16359,16361],{"class":3950,"line":6844},[3948,16350,4964],{"class":4267},[3948,16352,7921],{"class":4308},[3948,16354,4970],{"class":4231},[3948,16356,4586],{"class":4395},[3948,16358,7876],{"class":4231},[3948,16360,4454],{"class":4267},[3948,16362,5674],{"class":4231},[3948,16364,16365,16367,16369,16371],{"class":3950,"line":6854},[3948,16366,7936],{"class":4395},[3948,16368,4446],{"class":4231},[3948,16370,7401],{"class":4267},[3948,16372,7857],{"class":4231},[3948,16374,16375,16377,16379,16381],{"class":3950,"line":6863},[3948,16376,7947],{"class":4395},[3948,16378,7876],{"class":4231},[3948,16380,4454],{"class":4267},[3948,16382,5674],{"class":4231},[3948,16384,16385,16387,16389,16391,16393,16395],{"class":3950,"line":6868},[3948,16386,7976],{"class":4395},[3948,16388,6267],{"class":4231},[3948,16390,13810],{"class":4235},[3948,16392,4168],{"class":4231},[3948,16394,4454],{"class":4267},[3948,16396,5674],{"class":4231},[3948,16398,16399,16401,16403,16405,16407,16409,16411],{"class":3950,"line":6887},[3948,16400,9330],{"class":4267},[3948,16402,7961],{"class":4308},[3948,16404,4970],{"class":4231},[3948,16406,13810],{"class":4235},[3948,16408,3579],{"class":4231},[3948,16410,4872],{"class":4836},[3948,16412,4258],{"class":4231},[3948,16414,16415,16417,16419,16421,16423,16425],{"class":3950,"line":6926},[3948,16416,13837],{"class":4395},[3948,16418,4446],{"class":4231},[3948,16420,13842],{"class":4395},[3948,16422,4446],{"class":4231},[3948,16424,7981],{"class":4235},[3948,16426,7887],{"class":4231},[3948,16428,16429,16431,16433],{"class":3950,"line":6974},[3948,16430,9379],{"class":4227},[3948,16432,7961],{"class":4235},[3948,16434,4258],{"class":4231},[3948,16436,16437],{"class":3950,"line":6983},[3948,16438,9396],{"class":4231},[3948,16440,16441,16443,16445,16447],{"class":3950,"line":6990},[3948,16442,8004],{"class":4395},[3948,16444,4446],{"class":4231},[3948,16446,7413],{"class":4267},[3948,16448,7857],{"class":4231},[3948,16450,16451,16453,16455],{"class":3950,"line":6995},[3948,16452,8015],{"class":4231},[3948,16454,9414],{"class":4836},[3948,16456,7857],{"class":4231},[3948,16458,16459],{"class":3950,"line":7004},[3948,16460,13883],{"class":4231},[3948,16462,16463],{"class":3950,"line":7009},[3948,16464,3973],{"emptyLinePlaceholder":3972},[3948,16466,16467,16469],{"class":3950,"line":7014},[3948,16468,4404],{"class":4227},[3948,16470,4407],{"class":4231},[3948,16472,16473,16475,16477,16479,16481,16483,16485,16487,16489,16491,16493,16495,16497,16499,16501],{"class":3950,"line":7019},[3948,16474,4413],{"class":4412},[3948,16476,4245],{"class":4271},[3948,16478,5115],{"class":4421},[3948,16480,4425],{"class":4231},[3948,16482,4428],{"class":4267},[3948,16484,5122],{"class":4445},[3948,16486,5125],{"class":4235},[3948,16488,3555],{"class":4445},[3948,16490,13912],{"class":4235},[3948,16492,5133],{"class":4445},[3948,16494,5136],{"class":4235},[3948,16496,4987],{"class":4235},[3948,16498,5141],{"class":4445},[3948,16500,4515],{"class":4267},[3948,16502,4494],{"class":4412},[3948,16504,16505,16507,16509,16511,16513,16515,16517,16519,16521,16523,16525,16527,16529,16531,16533],{"class":3950,"line":7036},[3948,16506,5150],{"class":4412},[3948,16508,4245],{"class":4271},[3948,16510,5115],{"class":4421},[3948,16512,4425],{"class":4231},[3948,16514,4428],{"class":4267},[3948,16516,5122],{"class":4445},[3948,16518,5125],{"class":4235},[3948,16520,3555],{"class":4445},[3948,16522,6233],{"class":4235},[3948,16524,5133],{"class":4445},[3948,16526,5407],{"class":4235},[3948,16528,5080],{"class":4235},[3948,16530,5141],{"class":4445},[3948,16532,4515],{"class":4267},[3948,16534,4494],{"class":4412},[3948,16536,16537,16539,16541,16543,16545,16547,16549,16551,16553,16555,16557,16559,16561,16563,16565,16567,16569,16571,16573],{"class":3950,"line":7061},[3948,16538,4489],{"class":4412},[3948,16540,4240],{"class":4271},[3948,16542,5115],{"class":4421},[3948,16544,4425],{"class":4231},[3948,16546,4428],{"class":4267},[3948,16548,5122],{"class":4445},[3948,16550,5125],{"class":4235},[3948,16552,3555],{"class":4445},[3948,16554,5167],{"class":4235},[3948,16556,5133],{"class":4445},[3948,16558,5172],{"class":4235},[3948,16560,5034],{"class":4235},[3948,16562,5141],{"class":4445},[3948,16564,4515],{"class":4267},[3948,16566,4504],{"class":4412},[3948,16568,13963],{"class":4231},[3948,16570,4518],{"class":4412},[3948,16572,4240],{"class":4271},[3948,16574,4494],{"class":4412},[3948,16576,16577,16579,16581,16583,16585,16587,16589,16591,16593,16595,16597,16599,16601,16603],{"class":3950,"line":7089},[3948,16578,4489],{"class":4412},[3948,16580,4240],{"class":4271},[3948,16582,5115],{"class":4421},[3948,16584,4425],{"class":4231},[3948,16586,4428],{"class":4267},[3948,16588,5204],{"class":4445},[3948,16590,5172],{"class":4235},[3948,16592,5057],{"class":4235},[3948,16594,3593],{"class":4445},[3948,16596,5221],{"class":4235},[3948,16598,5224],{"class":4836},[3948,16600,5227],{"class":4445},[3948,16602,4515],{"class":4267},[3948,16604,4494],{"class":4412},[3948,16606,16607,16609,16611,16613,16615,16617,16620,16622,16624,16626],{"class":3950,"line":7097},[3948,16608,13997],{"class":4267},[3948,16610,13416],{"class":4235},[3948,16612,3555],{"class":4445},[3948,16614,6321],{"class":4235},[3948,16616,4515],{"class":4267},[3948,16618,16619],{"class":4231}," · seed ",[3948,16621,4428],{"class":4267},[3948,16623,7566],{"class":4235},[3948,16625,4515],{"class":4267},[3948,16627,16628],{"class":4231}," · SectionList\n",[3948,16630,16631,16633,16635],{"class":3950,"line":7107},[3948,16632,4527],{"class":4412},[3948,16634,4240],{"class":4271},[3948,16636,4494],{"class":4412},[3948,16638,16639,16641,16643,16645,16647,16649,16651,16653,16656,16658],{"class":3950,"line":7118},[3948,16640,4489],{"class":4412},[3948,16642,4245],{"class":4271},[3948,16644,5115],{"class":4421},[3948,16646,4425],{"class":4231},[3948,16648,4428],{"class":4267},[3948,16650,5125],{"class":4235},[3948,16652,3555],{"class":4445},[3948,16654,16655],{"class":4235},"rowBtns",[3948,16657,4515],{"class":4267},[3948,16659,4494],{"class":4412},[3948,16661,16662,16664],{"class":3950,"line":7127},[3948,16663,4499],{"class":4412},[3948,16665,6244],{"class":4271},[3948,16667,16668,16670,16672,16674,16676,16678,16680,16682,16684,16686,16688,16690],{"class":3950,"line":7132},[3948,16669,5372],{"class":4421},[3948,16671,4425],{"class":4231},[3948,16673,4428],{"class":4267},[3948,16675,5122],{"class":4445},[3948,16677,5125],{"class":4235},[3948,16679,3555],{"class":4445},[3948,16681,6359],{"class":4235},[3948,16683,5133],{"class":4445},[3948,16685,5136],{"class":4235},[3948,16687,6105],{"class":4235},[3948,16689,5141],{"class":4445},[3948,16691,4003],{"class":4267},[3948,16693,16694,16696,16698,16700,16702,16704,16706,16708,16710,16712,16714,16717],{"class":3950,"line":7153},[3948,16695,14071],{"class":4421},[3948,16697,4425],{"class":4231},[3948,16699,4428],{"class":4267},[3948,16701,6256],{"class":4445},[3948,16703,4454],{"class":4267},[3948,16705,14196],{"class":4395},[3948,16707,4446],{"class":4445},[3948,16709,13842],{"class":4395},[3948,16711,4446],{"class":4445},[3948,16713,7566],{"class":4235},[3948,16715,16716],{"class":4445},"))",[3948,16718,4003],{"class":4267},[3948,16720,16721],{"class":3950,"line":7179},[3948,16722,5425],{"class":4412},[3948,16724,16725,16727,16729,16731,16733,16735,16737,16739,16741,16743,16745,16747,16749,16751],{"class":3950,"line":7194},[3948,16726,5431],{"class":4412},[3948,16728,4240],{"class":4271},[3948,16730,5115],{"class":4421},[3948,16732,4425],{"class":4231},[3948,16734,4428],{"class":4267},[3948,16736,5125],{"class":4235},[3948,16738,3555],{"class":4445},[3948,16740,6393],{"class":4235},[3948,16742,4515],{"class":4267},[3948,16744,4504],{"class":4412},[3948,16746,14132],{"class":4231},[3948,16748,4518],{"class":4412},[3948,16750,4240],{"class":4271},[3948,16752,4494],{"class":4412},[3948,16754,16755,16757,16759],{"class":3950,"line":7202},[3948,16756,5528],{"class":4412},[3948,16758,3897],{"class":4271},[3948,16760,4494],{"class":4412},[3948,16762,16763,16765],{"class":3950,"line":7212},[3948,16764,4499],{"class":4412},[3948,16766,6244],{"class":4271},[3948,16768,16769,16771,16773,16775,16777,16779,16781,16783,16785,16787,16789,16791,16793,16795,16797,16799,16801,16803],{"class":3950,"line":7223},[3948,16770,5372],{"class":4421},[3948,16772,4425],{"class":4231},[3948,16774,4428],{"class":4267},[3948,16776,5122],{"class":4445},[3948,16778,5125],{"class":4235},[3948,16780,3555],{"class":4445},[3948,16782,6359],{"class":4235},[3948,16784,5133],{"class":4445},[3948,16786,5136],{"class":4235},[3948,16788,5011],{"class":4235},[3948,16790,3593],{"class":4445},[3948,16792,5407],{"class":4235},[3948,16794,5080],{"class":4235},[3948,16796,3593],{"class":4445},[3948,16798,6473],{"class":4235},[3948,16800,4894],{"class":4836},[3948,16802,5141],{"class":4445},[3948,16804,4003],{"class":4267},[3948,16806,16807,16809,16811,16813,16815,16817,16819,16821],{"class":3950,"line":7233},[3948,16808,14071],{"class":4421},[3948,16810,4425],{"class":4231},[3948,16812,4428],{"class":4267},[3948,16814,6256],{"class":4445},[3948,16816,4454],{"class":4267},[3948,16818,14196],{"class":4395},[3948,16820,6438],{"class":4445},[3948,16822,4003],{"class":4267},[3948,16824,16825],{"class":3950,"line":7243},[3948,16826,5425],{"class":4412},[3948,16828,16829,16831,16833,16835,16837,16839,16841,16843,16845,16847,16849,16851,16853,16855,16857,16859,16861,16863],{"class":3950,"line":7253},[3948,16830,5431],{"class":4412},[3948,16832,4240],{"class":4271},[3948,16834,5115],{"class":4421},[3948,16836,4425],{"class":4231},[3948,16838,4428],{"class":4267},[3948,16840,5204],{"class":4445},[3948,16842,5172],{"class":4235},[3948,16844,5034],{"class":4235},[3948,16846,3593],{"class":4445},[3948,16848,5639],{"class":4235},[3948,16850,5730],{"class":4254},[3948,16852,5227],{"class":4445},[3948,16854,4515],{"class":4267},[3948,16856,4504],{"class":4412},[3948,16858,6516],{"class":4231},[3948,16860,4518],{"class":4412},[3948,16862,4240],{"class":4271},[3948,16864,4494],{"class":4412},[3948,16866,16867,16869,16871],{"class":3950,"line":7262},[3948,16868,5528],{"class":4412},[3948,16870,3897],{"class":4271},[3948,16872,4494],{"class":4412},[3948,16874,16875,16877,16879],{"class":3950,"line":7267},[3948,16876,4527],{"class":4412},[3948,16878,4245],{"class":4271},[3948,16880,4494],{"class":4412},[3948,16882,16883,16885,16887],{"class":3950,"line":7287},[3948,16884,5241],{"class":4412},[3948,16886,4245],{"class":4271},[3948,16888,4494],{"class":4412},[3948,16890,16891],{"class":3950,"line":7294},[3948,16892,3973],{"emptyLinePlaceholder":3972},[3948,16894,16895,16897],{"class":3950,"line":7303},[3948,16896,5150],{"class":4412},[3948,16898,10403],{"class":4271},[3948,16900,16901,16903,16905,16907,16909,16911,16913,16915],{"class":3950,"line":7312},[3948,16902,5256],{"class":4421},[3948,16904,4425],{"class":4231},[3948,16906,4428],{"class":4267},[3948,16908,5204],{"class":4445},[3948,16910,5602],{"class":4235},[3948,16912,4894],{"class":4836},[3948,16914,5227],{"class":4445},[3948,16916,4003],{"class":4267},[3948,16918,16919,16921,16923,16925,16927],{"class":3950,"line":7321},[3948,16920,11285],{"class":4421},[3948,16922,4425],{"class":4231},[3948,16924,4428],{"class":4267},[3948,16926,10415],{"class":4235},[3948,16928,4003],{"class":4267},[3948,16930,16931,16933,16935,16937,16939,16941,16943,16945,16947,16949,16951],{"class":3950,"line":7326},[3948,16932,5289],{"class":4421},[3948,16934,4425],{"class":4231},[3948,16936,4428],{"class":4267},[3948,16938,4446],{"class":4445},[3948,16940,4449],{"class":4235},[3948,16942,4168],{"class":4445},[3948,16944,4454],{"class":4267},[3948,16946,4457],{"class":4235},[3948,16948,3555],{"class":4445},[3948,16950,4184],{"class":4235},[3948,16952,4003],{"class":4267},[3948,16954,16955],{"class":3950,"line":14328},[3948,16956,11323],{"class":4421},[3948,16958,16959,16961,16963],{"class":3950,"line":14337},[3948,16960,8260],{"class":4421},[3948,16962,4425],{"class":4231},[3948,16964,6611],{"class":4267},[3948,16966,16967,16969],{"class":3950,"line":14367},[3948,16968,4499],{"class":4412},[3948,16970,8271],{"class":4271},[3948,16972,16973,16975,16977,16979,16981],{"class":3950,"line":14372},[3948,16974,8276],{"class":4421},[3948,16976,4425],{"class":4231},[3948,16978,4428],{"class":4267},[3948,16980,4684],{"class":4235},[3948,16982,4003],{"class":4267},[3948,16984,16985,16987,16989,16991,16993],{"class":3950,"line":14381},[3948,16986,8289],{"class":4421},[3948,16988,4425],{"class":4231},[3948,16990,4428],{"class":4267},[3948,16992,4687],{"class":4235},[3948,16994,4003],{"class":4267},[3948,16996,16997,16999,17001,17003,17005],{"class":3950,"line":14414},[3948,16998,8302],{"class":4421},[3948,17000,4425],{"class":4231},[3948,17002,4428],{"class":4267},[3948,17004,8309],{"class":4235},[3948,17006,4003],{"class":4267},[3948,17008,17009,17011,17013,17015,17017,17019,17021],{"class":3950,"line":14419},[3948,17010,8316],{"class":4421},[3948,17012,4425],{"class":4231},[3948,17014,4428],{"class":4267},[3948,17016,5122],{"class":4445},[3948,17018,8309],{"class":4235},[3948,17020,8327],{"class":4445},[3948,17022,4003],{"class":4267},[3948,17024,17025],{"class":3950,"line":14428},[3948,17026,8334],{"class":4412},[3948,17028,17029],{"class":3950,"line":14451},[3948,17030,6659],{"class":4267},[3948,17032,17033,17035,17037],{"class":3950,"line":14483},[3948,17034,5315],{"class":4421},[3948,17036,4425],{"class":4231},[3948,17038,6611],{"class":4267},[3948,17040,17041,17043,17045,17047,17049],{"class":3950,"line":14515},[3948,17042,14384],{"class":4235},[3948,17044,3555],{"class":4445},[3948,17046,6321],{"class":4235},[3948,17048,6623],{"class":4231},[3948,17050,17051],{"class":4836}," 0\n",[3948,17053,17054,17057,17059,17061,17063,17065,17067,17069],{"class":3950,"line":14524},[3948,17055,17056],{"class":4231},"            ?",[3948,17058,4232],{"class":4445},[3948,17060,7187],{"class":4235},[3948,17062,4894],{"class":4836},[3948,17064,3593],{"class":4445},[3948,17066,5609],{"class":4235},[3948,17068,5327],{"class":4836},[3948,17070,6654],{"class":4445},[3948,17072,17073,17076,17078,17080,17082,17084,17086,17088],{"class":3950,"line":14529},[3948,17074,17075],{"class":4231},"            :",[3948,17077,4232],{"class":4445},[3948,17079,5609],{"class":4235},[3948,17081,5327],{"class":4836},[3948,17083,3593],{"class":4445},[3948,17085,5324],{"class":4235},[3948,17087,5619],{"class":4836},[3948,17089,6654],{"class":4445},[3948,17091,17092],{"class":3950,"line":14556},[3948,17093,6659],{"class":4267},[3948,17095,17096,17098,17100],{"class":3950,"line":14579},[3948,17097,6718],{"class":4421},[3948,17099,4425],{"class":4231},[3948,17101,6611],{"class":4267},[3948,17103,17104,17106,17108,17110,17112,17114,17116,17118,17120,17122],{"class":3950,"line":14603},[3948,17105,4499],{"class":4412},[3948,17107,4245],{"class":4271},[3948,17109,5115],{"class":4421},[3948,17111,4425],{"class":4231},[3948,17113,4428],{"class":4267},[3948,17115,5125],{"class":4235},[3948,17117,3555],{"class":4445},[3948,17119,6742],{"class":4235},[3948,17121,4515],{"class":4267},[3948,17123,4494],{"class":4412},[3948,17125,17126,17128,17130,17132,17134,17136,17138,17140,17142,17144,17146,17148,17150,17152,17154,17156,17158,17160,17162],{"class":3950,"line":14626},[3948,17127,5431],{"class":4412},[3948,17129,4240],{"class":4271},[3948,17131,5115],{"class":4421},[3948,17133,4425],{"class":4231},[3948,17135,4428],{"class":4267},[3948,17137,5122],{"class":4445},[3948,17139,5125],{"class":4235},[3948,17141,3555],{"class":4445},[3948,17143,6768],{"class":4235},[3948,17145,5133],{"class":4445},[3948,17147,5172],{"class":4235},[3948,17149,5034],{"class":4235},[3948,17151,5141],{"class":4445},[3948,17153,4515],{"class":4267},[3948,17155,4504],{"class":4412},[3948,17157,14474],{"class":4445},[3948,17159,4518],{"class":4412},[3948,17161,4240],{"class":4271},[3948,17163,4494],{"class":4412},[3948,17165,17166,17168,17170,17172,17174,17176,17178,17180,17182,17184,17186,17188,17190,17192],{"class":3950,"line":14635},[3948,17167,5431],{"class":4412},[3948,17169,4240],{"class":4271},[3948,17171,5115],{"class":4421},[3948,17173,4425],{"class":4231},[3948,17175,4428],{"class":4267},[3948,17177,5204],{"class":4445},[3948,17179,5172],{"class":4235},[3948,17181,5057],{"class":4235},[3948,17183,3593],{"class":4445},[3948,17185,6813],{"class":4235},[3948,17187,6816],{"class":4254},[3948,17189,5227],{"class":4445},[3948,17191,4515],{"class":4267},[3948,17193,4494],{"class":4412},[3948,17195,17196],{"class":3950,"line":14644},[3948,17197,17198],{"class":4445},"              Заповніть або pull-to-refresh\n",[3948,17200,17201,17203,17205],{"class":3950,"line":14651},[3948,17202,6847],{"class":4412},[3948,17204,4240],{"class":4271},[3948,17206,4494],{"class":4412},[3948,17208,17209,17211,17213],{"class":3950,"line":14670},[3948,17210,5528],{"class":4412},[3948,17212,4245],{"class":4271},[3948,17214,4494],{"class":4412},[3948,17216,17217],{"class":3950,"line":14694},[3948,17218,6659],{"class":4267},[3948,17220,17221,17223,17225,17227,17229,17231,17233,17235,17237,17239,17241,17243],{"class":3950,"line":14733},[3948,17222,11346],{"class":4421},[3948,17224,4425],{"class":4231},[3948,17226,4428],{"class":4267},[3948,17228,4475],{"class":4445},[3948,17230,10495],{"class":4235},[3948,17232,10498],{"class":4445},[3948,17234,4289],{"class":4235},[3948,17236,3593],{"class":4445},[3948,17238,3592],{"class":4235},[3948,17240,10503],{"class":4445},[3948,17242,4454],{"class":4267},[3948,17244,4407],{"class":4445},[3948,17246,17247,17249,17251,17253,17255,17257,17259,17261,17263,17265,17267,17269,17271,17273,17275],{"class":3950,"line":14756},[3948,17248,4499],{"class":4412},[3948,17250,4245],{"class":4271},[3948,17252,5115],{"class":4421},[3948,17254,4425],{"class":4231},[3948,17256,4428],{"class":4267},[3948,17258,5122],{"class":4445},[3948,17260,5125],{"class":4235},[3948,17262,3555],{"class":4445},[3948,17264,11385],{"class":4235},[3948,17266,5133],{"class":4445},[3948,17268,5136],{"class":4235},[3948,17270,11158],{"class":4235},[3948,17272,5141],{"class":4445},[3948,17274,4515],{"class":4267},[3948,17276,4494],{"class":4412},[3948,17278,17279,17281,17283,17285,17287,17289,17291,17293,17295,17297,17299,17301,17303,17305],{"class":3950,"line":14807},[3948,17280,5431],{"class":4412},[3948,17282,4240],{"class":4271},[3948,17284,5115],{"class":4421},[3948,17286,4425],{"class":4231},[3948,17288,4428],{"class":4267},[3948,17290,5204],{"class":4445},[3948,17292,5172],{"class":4235},[3948,17294,6105],{"class":4235},[3948,17296,3593],{"class":4445},[3948,17298,5639],{"class":4235},[3948,17300,5642],{"class":4254},[3948,17302,5227],{"class":4445},[3948,17304,4515],{"class":4267},[3948,17306,4494],{"class":4412},[3948,17308,17309,17311,17313,17315,17317,17319,17321,17323,17325],{"class":3950,"line":14816},[3948,17310,14606],{"class":4267},[3948,17312,4289],{"class":4235},[3948,17314,4515],{"class":4267},[3948,17316,14613],{"class":4445},[3948,17318,4428],{"class":4267},[3948,17320,3592],{"class":4235},[3948,17322,3555],{"class":4445},[3948,17324,6321],{"class":4235},[3948,17326,4003],{"class":4267},[3948,17328,17329,17331,17333],{"class":3950,"line":14825},[3948,17330,6847],{"class":4412},[3948,17332,4240],{"class":4271},[3948,17334,4494],{"class":4412},[3948,17336,17337,17339,17341],{"class":3950,"line":14832},[3948,17338,5528],{"class":4412},[3948,17340,4245],{"class":4271},[3948,17342,4494],{"class":4412},[3948,17344,17345,17347],{"class":3950,"line":14869},[3948,17346,5538],{"class":4445},[3948,17348,4003],{"class":4267},[3948,17350,17351,17353,17355,17357,17359,17361,17363,17365],{"class":3950,"line":14874},[3948,17352,5344],{"class":4421},[3948,17354,4425],{"class":4231},[3948,17356,4428],{"class":4267},[3948,17358,4475],{"class":4445},[3948,17360,4449],{"class":4235},[3948,17362,4480],{"class":4445},[3948,17364,4454],{"class":4267},[3948,17366,4407],{"class":4445},[3948,17368,17369,17371,17373,17375,17377,17379,17381,17383,17385,17387,17389,17391,17393,17395,17397,17399,17401,17403],{"class":3950,"line":14883},[3948,17370,4499],{"class":4412},[3948,17372,4245],{"class":4271},[3948,17374,5115],{"class":4421},[3948,17376,4425],{"class":4231},[3948,17378,4428],{"class":4267},[3948,17380,5122],{"class":4445},[3948,17382,5125],{"class":4235},[3948,17384,3555],{"class":4445},[3948,17386,14687],{"class":4235},[3948,17388,5133],{"class":4445},[3948,17390,5136],{"class":4235},[3948,17392,5011],{"class":4235},[3948,17394,3593],{"class":4445},[3948,17396,5407],{"class":4235},[3948,17398,5080],{"class":4235},[3948,17400,5141],{"class":4445},[3948,17402,4515],{"class":4267},[3948,17404,4494],{"class":4412},[3948,17406,17407,17409,17411,17413,17415,17417,17419,17421,17423,17425,17427,17429,17431,17433,17435,17437,17439,17441,17443,17445,17447,17449],{"class":3950,"line":14888},[3948,17408,5431],{"class":4412},[3948,17410,4240],{"class":4271},[3948,17412,5115],{"class":4421},[3948,17414,4425],{"class":4231},[3948,17416,4428],{"class":4267},[3948,17418,5204],{"class":4445},[3948,17420,5172],{"class":4235},[3948,17422,5034],{"class":4235},[3948,17424,3593],{"class":4445},[3948,17426,5639],{"class":4235},[3948,17428,5730],{"class":4254},[3948,17430,5227],{"class":4445},[3948,17432,4515],{"class":4267},[3948,17434,4504],{"class":4412},[3948,17436,4428],{"class":4267},[3948,17438,4449],{"class":4235},[3948,17440,3555],{"class":4445},[3948,17442,4289],{"class":4235},[3948,17444,4515],{"class":4267},[3948,17446,4518],{"class":4412},[3948,17448,4240],{"class":4271},[3948,17450,4494],{"class":4412},[3948,17452,17453,17455,17457,17459,17461,17463,17465,17467,17469,17471,17473,17475,17477,17479,17481,17483,17485],{"class":3950,"line":14893},[3948,17454,5431],{"class":4412},[3948,17456,4240],{"class":4271},[3948,17458,5115],{"class":4421},[3948,17460,4425],{"class":4231},[3948,17462,4428],{"class":4267},[3948,17464,5204],{"class":4445},[3948,17466,5172],{"class":4235},[3948,17468,5057],{"class":4235},[3948,17470,3593],{"class":4445},[3948,17472,9776],{"class":4235},[3948,17474,5649],{"class":4836},[3948,17476,3593],{"class":4445},[3948,17478,5221],{"class":4235},[3948,17480,5224],{"class":4836},[3948,17482,5227],{"class":4445},[3948,17484,4515],{"class":4267},[3948,17486,4494],{"class":4412},[3948,17488,17489,17491,17493,17495,17497,17499,17501,17503,17505,17507,17509,17511,17513,17515,17517,17519,17521,17523,17525,17527,17529,17531],{"class":3950,"line":14898},[3948,17490,14606],{"class":4267},[3948,17492,4449],{"class":4235},[3948,17494,3555],{"class":4445},[3948,17496,10678],{"class":4235},[3948,17498,4515],{"class":4267},[3948,17500,14613],{"class":4445},[3948,17502,4428],{"class":4267},[3948,17504,4449],{"class":4235},[3948,17506,3555],{"class":4445},[3948,17508,14777],{"class":4235},[3948,17510,4515],{"class":4267},[3948,17512,14782],{"class":4445},[3948,17514,4428],{"class":4267},[3948,17516,4449],{"class":4235},[3948,17518,3555],{"class":4445},[3948,17520,14791],{"class":4235},[3948,17522,3555],{"class":4445},[3948,17524,14796],{"class":4395},[3948,17526,4446],{"class":4445},[3948,17528,4872],{"class":4836},[3948,17530,7357],{"class":4445},[3948,17532,4003],{"class":4267},[3948,17534,17535,17537,17539],{"class":3950,"line":14915},[3948,17536,6847],{"class":4412},[3948,17538,4240],{"class":4271},[3948,17540,4494],{"class":4412},[3948,17542,17543,17545,17547],{"class":3950,"line":14936},[3948,17544,5528],{"class":4412},[3948,17546,4245],{"class":4271},[3948,17548,4494],{"class":4412},[3948,17550,17551,17553],{"class":3950,"line":14970},[3948,17552,5538],{"class":4445},[3948,17554,4003],{"class":4267},[3948,17556,17557,17559,17561,17563,17565,17567,17569,17571,17573,17575,17577,17579,17581,17583,17585,17587,17589],{"class":3950,"line":14997},[3948,17558,11624],{"class":4421},[3948,17560,4425],{"class":4231},[3948,17562,4428],{"class":4267},[3948,17564,6256],{"class":4445},[3948,17566,4454],{"class":4267},[3948,17568,10462],{"class":4412},[3948,17570,4245],{"class":4271},[3948,17572,5115],{"class":4421},[3948,17574,4425],{"class":4231},[3948,17576,4428],{"class":4267},[3948,17578,5204],{"class":4445},[3948,17580,11647],{"class":4235},[3948,17582,5216],{"class":4836},[3948,17584,5227],{"class":4445},[3948,17586,4515],{"class":4267},[3948,17588,10479],{"class":4412},[3948,17590,4003],{"class":4267},[3948,17592,17593,17595,17597,17599,17601,17603,17605,17607,17609,17611,17613,17615,17617,17619,17621,17623,17625],{"class":3950,"line":15018},[3948,17594,11662],{"class":4421},[3948,17596,4425],{"class":4231},[3948,17598,4428],{"class":4267},[3948,17600,6256],{"class":4445},[3948,17602,4454],{"class":4267},[3948,17604,10462],{"class":4412},[3948,17606,4245],{"class":4271},[3948,17608,5115],{"class":4421},[3948,17610,4425],{"class":4231},[3948,17612,4428],{"class":4267},[3948,17614,5204],{"class":4445},[3948,17616,11647],{"class":4235},[3948,17618,7113],{"class":4836},[3948,17620,5227],{"class":4445},[3948,17622,4515],{"class":4267},[3948,17624,10479],{"class":4412},[3948,17626,4003],{"class":4267},[3948,17628,17629],{"class":3950,"line":15043},[3948,17630,5546],{"class":4412},[3948,17632,17633,17635,17637],{"class":3950,"line":15050},[3948,17634,5552],{"class":4412},[3948,17636,4245],{"class":4271},[3948,17638,4494],{"class":4412},[3948,17640,17641],{"class":3950,"line":15061},[3948,17642,4548],{"class":4231},[3948,17644,17645],{"class":3950,"line":15070},[3948,17646,4003],{"class":4231},[3948,17648,17649],{"class":3950,"line":15079},[3948,17650,3973],{"emptyLinePlaceholder":3972},[3948,17652,17653,17655,17657,17659,17661,17663,17665],{"class":3950,"line":15088},[3948,17654,4305],{"class":4267},[3948,17656,5579],{"class":4308},[3948,17658,4970],{"class":4231},[3948,17660,4744],{"class":4235},[3948,17662,3555],{"class":4231},[3948,17664,5588],{"class":4395},[3948,17666,5591],{"class":4231},[3948,17668,17669,17671,17673,17675,17677],{"class":3950,"line":15093},[3948,17670,14918],{"class":4235},[3948,17672,4232],{"class":4231},[3948,17674,5602],{"class":4235},[3948,17676,4894],{"class":4836},[3948,17678,4339],{"class":4231},[3948,17680,17681,17683,17685,17687,17689,17691,17693,17695,17697,17699,17701],{"class":3950,"line":15112},[3948,17682,7064],{"class":4235},[3948,17684,4232],{"class":4231},[3948,17686,5609],{"class":4235},[3948,17688,5327],{"class":4836},[3948,17690,3593],{"class":4231},[3948,17692,5332],{"class":4235},[3948,17694,14951],{"class":4836},[3948,17696,3593],{"class":4231},[3948,17698,14956],{"class":4235},[3948,17700,4894],{"class":4836},[3948,17702,4339],{"class":4231},[3948,17704,17705,17707,17709,17711,17713,17715,17717,17719],{"class":3950,"line":15138},[3948,17706,5627],{"class":4235},[3948,17708,4232],{"class":4231},[3948,17710,5221],{"class":4235},[3948,17712,5634],{"class":4836},[3948,17714,3593],{"class":4231},[3948,17716,5639],{"class":4235},[3948,17718,5642],{"class":4254},[3948,17720,4339],{"class":4231},[3948,17722,17723,17726,17728,17730,17732,17734,17736,17738,17740,17742,17744],{"class":3950,"line":15158},[3948,17724,17725],{"class":4235},"  rowBtns:",[3948,17727,4232],{"class":4231},[3948,17729,7069],{"class":4235},[3948,17731,7072],{"class":4254},[3948,17733,3593],{"class":4231},[3948,17735,5332],{"class":4235},[3948,17737,5216],{"class":4836},[3948,17739,3593],{"class":4231},[3948,17741,9776],{"class":4235},[3948,17743,5216],{"class":4836},[3948,17745,4339],{"class":4231},[3948,17747,17748,17750,17752,17754,17756,17758,17760,17762,17764,17766,17768],{"class":3950,"line":15184},[3948,17749,7092],{"class":4235},[3948,17751,4232],{"class":4231},[3948,17753,15171],{"class":4235},[3948,17755,5693],{"class":4836},[3948,17757,3593],{"class":4231},[3948,17759,10117],{"class":4235},[3948,17761,7113],{"class":4836},[3948,17763,3593],{"class":4231},[3948,17765,10097],{"class":4235},[3948,17767,7113],{"class":4836},[3948,17769,4339],{"class":4231},[3948,17771,17772,17774,17776,17778,17780,17782,17784,17786],{"class":3950,"line":15198},[3948,17773,7135],{"class":4235},[3948,17775,4232],{"class":4231},[3948,17777,5172],{"class":4235},[3948,17779,7142],{"class":4254},[3948,17781,3593],{"class":4231},[3948,17783,5639],{"class":4235},[3948,17785,5730],{"class":4254},[3948,17787,4339],{"class":4231},[3948,17789,17790,17792],{"class":3950,"line":15238},[3948,17791,7197],{"class":4235},[3948,17793,5674],{"class":4231},[3948,17795,17796,17798,17800],{"class":3950,"line":15263},[3948,17797,7205],{"class":4235},[3948,17799,4894],{"class":4836},[3948,17801,4902],{"class":4231},[3948,17803,17804,17806,17808],{"class":3950,"line":15270},[3948,17805,7215],{"class":4235},[3948,17807,7218],{"class":4836},[3948,17809,4902],{"class":4231},[3948,17811,17812,17814,17816],{"class":3950,"line":15279},[3948,17813,7226],{"class":4235},[3948,17815,6816],{"class":4254},[3948,17817,4902],{"class":4231},[3948,17819,17820,17822,17824],{"class":3950,"line":15288},[3948,17821,7236],{"class":4235},[3948,17823,6816],{"class":4254},[3948,17825,4902],{"class":4231},[3948,17827,17828,17830,17832],{"class":3950,"line":15297},[3948,17829,7246],{"class":4235},[3948,17831,5216],{"class":4836},[3948,17833,4902],{"class":4231},[3948,17835,17836],{"class":3950,"line":15306},[3948,17837,5712],{"class":4231},[3948,17839,17840,17842,17844,17846,17848,17850,17852,17854],{"class":3950,"line":15315},[3948,17841,7270],{"class":4235},[3948,17843,4232],{"class":4231},[3948,17845,5221],{"class":4235},[3948,17847,7162],{"class":4836},[3948,17849,3593],{"class":4231},[3948,17851,5639],{"class":4235},[3948,17853,5730],{"class":4254},[3948,17855,4339],{"class":4231},[3948,17857,17858,17860],{"class":3950,"line":15320},[3948,17859,11787],{"class":4235},[3948,17861,5674],{"class":4231},[3948,17863,17864,17866,17868],{"class":3950,"line":15340},[3948,17865,7110],{"class":4235},[3948,17867,5216],{"class":4836},[3948,17869,4902],{"class":4231},[3948,17871,17872,17874,17876],{"class":3950,"line":15348},[3948,17873,7100],{"class":4235},[3948,17875,7113],{"class":4836},[3948,17877,4902],{"class":4231},[3948,17879,17880,17882,17884],{"class":3950,"line":15357},[3948,17881,5690],{"class":4235},[3948,17883,5216],{"class":4836},[3948,17885,4902],{"class":4231},[3948,17887,17888,17890,17892],{"class":3950,"line":15366},[3948,17889,11818],{"class":4235},[3948,17891,5216],{"class":4836},[3948,17893,4902],{"class":4231},[3948,17895,17896],{"class":3950,"line":15375},[3948,17897,5712],{"class":4231},[3948,17899,17900,17902,17904,17906,17908,17910,17912,17914,17916,17918,17920],{"class":3950,"line":15385},[3948,17901,15343],{"class":4235},[3948,17903,4232],{"class":4231},[3948,17905,6473],{"class":4235},[3948,17907,4894],{"class":4836},[3948,17909,3593],{"class":4231},[3948,17911,10097],{"class":4235},[3948,17913,5693],{"class":4836},[3948,17915,3593],{"class":4231},[3948,17917,5609],{"class":4235},[3948,17919,5704],{"class":4836},[3948,17921,4339],{"class":4231},[3948,17923,17924],{"class":3950,"line":15394},[3948,17925,5744],{"class":4231},[3700,17927],{},[3507,17929,17931],{"id":17930},"nomad-віртуалізовані-поїздки-та-місця","Nomad: віртуалізовані поїздки та місця",[3846,17933,17935],{"id":17934},"навіщо-користувачу","Навіщо користувачу",[3512,17937,17938,17939,17942],{},"Стрічка росте. Потрібна віртуалізація, pull-to-refresh і горизонтальні «останні місця», ",[3516,17940,17941],{},"без"," втрати теми й sticky CTA з попередніх статей.",[3846,17944,17946],{"id":17945},"нитка-проєкту","Нитка проєкту",[3512,17948,17949,17952,17953,17956],{},[3516,17950,17951],{},"Уже є"," (з попередніх статей — ",[3516,17954,17955],{},"не викидаємо","):",[17958,17959,17960,17972,17978],"ul",{},[3574,17961,17962,4603,17965,17968,17969,3555],{},[3516,17963,17964],{},"Тема (08):",[3525,17966,17967],{},"ThemeProvider",", чіпи Система\u002FСвітла\u002FТемна в ",[3516,17970,17971],{},"sticky header",[3574,17973,17974,17977],{},[3516,17975,17976],{},"Shell (07):"," header + середня зона + sticky «Нова поїздка».",[3574,17979,17980,4603,17983,3579,17985,17988,17989,3579,17991,4141],{},[3516,17981,17982],{},"Картки (06):",[3525,17984,11884],{},[3525,17986,17987],{},"mockTrips"," (було 3; список через ",[3525,17990,3531],{},[3525,17992,3582],{},[3512,17994,17995],{},[3516,17996,17997],{},"Додаємо в цій статті:",[17958,17999,18000,18015,18024,18042,18054],{},[3574,18001,18002,18003,18005,18006,18010,18011,3579,18013,4141],{},"Залежність ",[3525,18004,12088],{},"; стрічка поїздок — ",[3516,18007,18008],{},[3525,18009,3643],{}," (не ",[3525,18012,3531],{},[3525,18014,3582],{},[3574,18016,18017,18018,18021,18022,3555],{},"Більше mock-поїздок; поле ",[3525,18019,18020],{},"region"," на ",[3525,18023,11995],{},[3574,18025,18026,18027,3593,18030,3593,18033,18036,18037,7386,18039,3555],{},"Фіча місць: ",[3525,18028,18029],{},"Place",[3525,18031,18032],{},"mockPlaces",[3525,18034,18035],{},"PlaceChip",", horizontal ",[3525,18038,3551],{},[3525,18040,18041],{},"ListHeaderComponent",[3574,18043,18044,3593,18046,4286,18048,3686,18050,7386,18052,3555],{},[3525,18045,3691],{},[3525,18047,3609],{},[3525,18049,11884],{},[3525,18051,18035],{},[3525,18053,11873],{},[3574,18055,18056,18059],{},[3516,18057,18058],{},"Не прибираємо"," чіпи теми з 08 — вони лишаються в sticky header.",[3512,18061,18062],{},[3929,18063],{"alt":18064,"className":18065,"src":18066},"Nomad home після статті 09: sticky тема, місця, FlashList, sticky CTA",[3933],"\u002Fimages\u002Freact-native\u002Flists-and-virtualization\u002F05.svg",[3846,18068,18070],{"id":18069},"повний-знімок-проєкту-після-цієї-статті","Повний знімок проєкту після цієї статті",[3674,18072,18073,3589,18076,18080,18081,18084,18085,18088],{},[3516,18074,18075],{},"Готовий код 1:1",[12326,18077,3652],{"href":18078,"rel":18079},"https:\u002F\u002Fgithub.com\u002Farakviel\u002Fnomad",[12330],". Найшвидший шлях: ",[3525,18082,18083],{},"git pull"," у клоні репо. Нижче — ",[3516,18086,18087],{},"весь"," проєкт на момент цієї статті (усі файли з кодом), не фрагмент «лише нові папки». Клік по файлу в дереві → повний вміст для копіпасту.",[3939,18090,18092],{"className":12123,"code":18091,"language":12125,"meta":3944,"style":3944},"cd \u002Fpath\u002Fto\u002Fnomad\ngit pull\nnpm install\nnpx expo start\n",[3525,18093,18094,18102,18110,18117],{"__ignoreMap":3944},[3948,18095,18096,18099],{"class":3950,"line":3951},[3948,18097,18098],{"class":4395},"cd",[3948,18100,18101],{"class":4254}," \u002Fpath\u002Fto\u002Fnomad\n",[3948,18103,18104,18107],{"class":3950,"line":3957},[3948,18105,18106],{"class":4395},"git",[3948,18108,18109],{"class":4254}," pull\n",[3948,18111,18112,18114],{"class":3950,"line":3963},[3948,18113,12151],{"class":4395},[3948,18115,18116],{"class":4254}," install\n",[3948,18118,18119,18121,18123],{"class":3950,"line":3969},[3948,18120,12132],{"class":4395},[3948,18122,12135],{"class":4254},[3948,18124,18125],{"class":4254}," start\n",[18127,18128,18129,18411,18691,18793,19070,22084,22182,22758,23579,23740,24494,25750,26681,27037,27177,27556,28154,28716,29013],"code-tree",{},[3939,18130,18134],{"className":18131,"code":18132,"filename":12324,"language":18133,"meta":3944,"style":3944},"language-json shiki shiki-themes light-plus dark-plus dark-plus","{\n  \"name\": \"nomad\",\n  \"version\": \"1.0.0\",\n  \"main\": \"expo-router\u002Fentry\",\n  \"scripts\": {\n    \"start\": \"expo start\",\n    \"android\": \"expo start --android\",\n    \"ios\": \"expo start --ios\",\n    \"web\": \"expo start --web\"\n  },\n  \"dependencies\": {\n    \"@shopify\u002Fflash-list\": \"^2.3.2\",\n    \"expo\": \"~54.0.35\",\n    \"expo-constants\": \"~18.0.13\",\n    \"expo-linking\": \"~8.0.12\",\n    \"expo-router\": \"~6.0.24\",\n    \"expo-status-bar\": \"~3.0.9\",\n    \"react\": \"19.1.0\",\n    \"react-native\": \"0.81.5\",\n    \"react-native-safe-area-context\": \"~5.6.0\",\n    \"react-native-screens\": \"~4.16.0\"\n  },\n  \"devDependencies\": {\n    \"@types\u002Freact\": \"~19.1.0\",\n    \"typescript\": \"~5.9.2\"\n  },\n  \"private\": true\n}\n","json",[3525,18135,18136,18140,18153,18165,18177,18185,18197,18209,18221,18231,18235,18242,18254,18266,18278,18290,18302,18314,18326,18338,18350,18360,18364,18371,18383,18393,18397,18407],{"__ignoreMap":3944},[3948,18137,18138],{"class":3950,"line":3951},[3948,18139,6611],{"class":4231},[3948,18141,18142,18146,18148,18151],{"class":3950,"line":3957},[3948,18143,18145],{"class":18144},"sLwNe","  \"name\"",[3948,18147,4280],{"class":4231},[3948,18149,18150],{"class":4254},"\"nomad\"",[3948,18152,4902],{"class":4231},[3948,18154,18155,18158,18160,18163],{"class":3950,"line":3963},[3948,18156,18157],{"class":18144},"  \"version\"",[3948,18159,4280],{"class":4231},[3948,18161,18162],{"class":4254},"\"1.0.0\"",[3948,18164,4902],{"class":4231},[3948,18166,18167,18170,18172,18175],{"class":3950,"line":3969},[3948,18168,18169],{"class":18144},"  \"main\"",[3948,18171,4280],{"class":4231},[3948,18173,18174],{"class":4254},"\"expo-router\u002Fentry\"",[3948,18176,4902],{"class":4231},[3948,18178,18179,18182],{"class":3950,"line":3976},[3948,18180,18181],{"class":18144},"  \"scripts\"",[3948,18183,18184],{"class":4231},": {\n",[3948,18186,18187,18190,18192,18195],{"class":3950,"line":3982},[3948,18188,18189],{"class":18144},"    \"start\"",[3948,18191,4280],{"class":4231},[3948,18193,18194],{"class":4254},"\"expo start\"",[3948,18196,4902],{"class":4231},[3948,18198,18199,18202,18204,18207],{"class":3950,"line":3988},[3948,18200,18201],{"class":18144},"    \"android\"",[3948,18203,4280],{"class":4231},[3948,18205,18206],{"class":4254},"\"expo start --android\"",[3948,18208,4902],{"class":4231},[3948,18210,18211,18214,18216,18219],{"class":3950,"line":3994},[3948,18212,18213],{"class":18144},"    \"ios\"",[3948,18215,4280],{"class":4231},[3948,18217,18218],{"class":4254},"\"expo start --ios\"",[3948,18220,4902],{"class":4231},[3948,18222,18223,18226,18228],{"class":3950,"line":4000},[3948,18224,18225],{"class":18144},"    \"web\"",[3948,18227,4280],{"class":4231},[3948,18229,18230],{"class":4254},"\"expo start --web\"\n",[3948,18232,18233],{"class":3950,"line":4006},[3948,18234,5712],{"class":4231},[3948,18236,18237,18240],{"class":3950,"line":4011},[3948,18238,18239],{"class":18144},"  \"dependencies\"",[3948,18241,18184],{"class":4231},[3948,18243,18244,18247,18249,18252],{"class":3950,"line":4017},[3948,18245,18246],{"class":18144},"    \"@shopify\u002Fflash-list\"",[3948,18248,4280],{"class":4231},[3948,18250,18251],{"class":4254},"\"^2.3.2\"",[3948,18253,4902],{"class":4231},[3948,18255,18256,18259,18261,18264],{"class":3950,"line":4023},[3948,18257,18258],{"class":18144},"    \"expo\"",[3948,18260,4280],{"class":4231},[3948,18262,18263],{"class":4254},"\"~54.0.35\"",[3948,18265,4902],{"class":4231},[3948,18267,18268,18271,18273,18276],{"class":3950,"line":4029},[3948,18269,18270],{"class":18144},"    \"expo-constants\"",[3948,18272,4280],{"class":4231},[3948,18274,18275],{"class":4254},"\"~18.0.13\"",[3948,18277,4902],{"class":4231},[3948,18279,18280,18283,18285,18288],{"class":3950,"line":4035},[3948,18281,18282],{"class":18144},"    \"expo-linking\"",[3948,18284,4280],{"class":4231},[3948,18286,18287],{"class":4254},"\"~8.0.12\"",[3948,18289,4902],{"class":4231},[3948,18291,18292,18295,18297,18300],{"class":3950,"line":4041},[3948,18293,18294],{"class":18144},"    \"expo-router\"",[3948,18296,4280],{"class":4231},[3948,18298,18299],{"class":4254},"\"~6.0.24\"",[3948,18301,4902],{"class":4231},[3948,18303,18304,18307,18309,18312],{"class":3950,"line":4046},[3948,18305,18306],{"class":18144},"    \"expo-status-bar\"",[3948,18308,4280],{"class":4231},[3948,18310,18311],{"class":4254},"\"~3.0.9\"",[3948,18313,4902],{"class":4231},[3948,18315,18316,18319,18321,18324],{"class":3950,"line":4051},[3948,18317,18318],{"class":18144},"    \"react\"",[3948,18320,4280],{"class":4231},[3948,18322,18323],{"class":4254},"\"19.1.0\"",[3948,18325,4902],{"class":4231},[3948,18327,18328,18331,18333,18336],{"class":3950,"line":4057},[3948,18329,18330],{"class":18144},"    \"react-native\"",[3948,18332,4280],{"class":4231},[3948,18334,18335],{"class":4254},"\"0.81.5\"",[3948,18337,4902],{"class":4231},[3948,18339,18340,18343,18345,18348],{"class":3950,"line":4063},[3948,18341,18342],{"class":18144},"    \"react-native-safe-area-context\"",[3948,18344,4280],{"class":4231},[3948,18346,18347],{"class":4254},"\"~5.6.0\"",[3948,18349,4902],{"class":4231},[3948,18351,18352,18355,18357],{"class":3950,"line":4069},[3948,18353,18354],{"class":18144},"    \"react-native-screens\"",[3948,18356,4280],{"class":4231},[3948,18358,18359],{"class":4254},"\"~4.16.0\"\n",[3948,18361,18362],{"class":3950,"line":4074},[3948,18363,5712],{"class":4231},[3948,18365,18366,18369],{"class":3950,"line":4080},[3948,18367,18368],{"class":18144},"  \"devDependencies\"",[3948,18370,18184],{"class":4231},[3948,18372,18373,18376,18378,18381],{"class":3950,"line":4086},[3948,18374,18375],{"class":18144},"    \"@types\u002Freact\"",[3948,18377,4280],{"class":4231},[3948,18379,18380],{"class":4254},"\"~19.1.0\"",[3948,18382,4902],{"class":4231},[3948,18384,18385,18388,18390],{"class":3950,"line":4091},[3948,18386,18387],{"class":18144},"    \"typescript\"",[3948,18389,4280],{"class":4231},[3948,18391,18392],{"class":4254},"\"~5.9.2\"\n",[3948,18394,18395],{"class":3950,"line":4096},[3948,18396,5712],{"class":4231},[3948,18398,18399,18402,18404],{"class":3950,"line":5272},[3948,18400,18401],{"class":18144},"  \"private\"",[3948,18403,4280],{"class":4231},[3948,18405,18406],{"class":4267},"true\n",[3948,18408,18409],{"class":3950,"line":5286},[3948,18410,4003],{"class":4231},[3939,18412,18415],{"className":18131,"code":18413,"filename":18414,"language":18133,"meta":3944,"style":3944},"{\n  \"expo\": {\n    \"name\": \"Nomad\",\n    \"slug\": \"nomad\",\n    \"version\": \"1.0.0\",\n    \"orientation\": \"portrait\",\n    \"icon\": \".\u002Fassets\u002Ficon.png\",\n    \"userInterfaceStyle\": \"light\",\n    \"scheme\": \"nomad\",\n    \"newArchEnabled\": true,\n    \"splash\": {\n      \"image\": \".\u002Fassets\u002Fsplash-icon.png\",\n      \"resizeMode\": \"contain\",\n      \"backgroundColor\": \"#ffffff\"\n    },\n    \"ios\": {\n      \"supportsTablet\": true\n    },\n    \"android\": {\n      \"adaptiveIcon\": {\n        \"foregroundImage\": \".\u002Fassets\u002Fadaptive-icon.png\",\n        \"backgroundColor\": \"#ffffff\"\n      },\n      \"edgeToEdgeEnabled\": true,\n      \"predictiveBackGestureEnabled\": false\n    },\n    \"web\": {\n      \"favicon\": \".\u002Fassets\u002Ffavicon.png\"\n    },\n    \"plugins\": [\"expo-router\"]\n  }\n}\n","app.json",[3525,18416,18417,18421,18428,18440,18451,18462,18474,18486,18498,18509,18520,18527,18539,18551,18561,18566,18572,18581,18585,18591,18598,18610,18619,18624,18635,18645,18649,18655,18665,18669,18683,18687],{"__ignoreMap":3944},[3948,18418,18419],{"class":3950,"line":3951},[3948,18420,6611],{"class":4231},[3948,18422,18423,18426],{"class":3950,"line":3957},[3948,18424,18425],{"class":18144},"  \"expo\"",[3948,18427,18184],{"class":4231},[3948,18429,18430,18433,18435,18438],{"class":3950,"line":3963},[3948,18431,18432],{"class":18144},"    \"name\"",[3948,18434,4280],{"class":4231},[3948,18436,18437],{"class":4254},"\"Nomad\"",[3948,18439,4902],{"class":4231},[3948,18441,18442,18445,18447,18449],{"class":3950,"line":3969},[3948,18443,18444],{"class":18144},"    \"slug\"",[3948,18446,4280],{"class":4231},[3948,18448,18150],{"class":4254},[3948,18450,4902],{"class":4231},[3948,18452,18453,18456,18458,18460],{"class":3950,"line":3976},[3948,18454,18455],{"class":18144},"    \"version\"",[3948,18457,4280],{"class":4231},[3948,18459,18162],{"class":4254},[3948,18461,4902],{"class":4231},[3948,18463,18464,18467,18469,18472],{"class":3950,"line":3982},[3948,18465,18466],{"class":18144},"    \"orientation\"",[3948,18468,4280],{"class":4231},[3948,18470,18471],{"class":4254},"\"portrait\"",[3948,18473,4902],{"class":4231},[3948,18475,18476,18479,18481,18484],{"class":3950,"line":3988},[3948,18477,18478],{"class":18144},"    \"icon\"",[3948,18480,4280],{"class":4231},[3948,18482,18483],{"class":4254},"\".\u002Fassets\u002Ficon.png\"",[3948,18485,4902],{"class":4231},[3948,18487,18488,18491,18493,18496],{"class":3950,"line":3994},[3948,18489,18490],{"class":18144},"    \"userInterfaceStyle\"",[3948,18492,4280],{"class":4231},[3948,18494,18495],{"class":4254},"\"light\"",[3948,18497,4902],{"class":4231},[3948,18499,18500,18503,18505,18507],{"class":3950,"line":4000},[3948,18501,18502],{"class":18144},"    \"scheme\"",[3948,18504,4280],{"class":4231},[3948,18506,18150],{"class":4254},[3948,18508,4902],{"class":4231},[3948,18510,18511,18514,18516,18518],{"class":3950,"line":4006},[3948,18512,18513],{"class":18144},"    \"newArchEnabled\"",[3948,18515,4280],{"class":4231},[3948,18517,7401],{"class":4267},[3948,18519,4902],{"class":4231},[3948,18521,18522,18525],{"class":3950,"line":4011},[3948,18523,18524],{"class":18144},"    \"splash\"",[3948,18526,18184],{"class":4231},[3948,18528,18529,18532,18534,18537],{"class":3950,"line":4017},[3948,18530,18531],{"class":18144},"      \"image\"",[3948,18533,4280],{"class":4231},[3948,18535,18536],{"class":4254},"\".\u002Fassets\u002Fsplash-icon.png\"",[3948,18538,4902],{"class":4231},[3948,18540,18541,18544,18546,18549],{"class":3950,"line":4023},[3948,18542,18543],{"class":18144},"      \"resizeMode\"",[3948,18545,4280],{"class":4231},[3948,18547,18548],{"class":4254},"\"contain\"",[3948,18550,4902],{"class":4231},[3948,18552,18553,18556,18558],{"class":3950,"line":4029},[3948,18554,18555],{"class":18144},"      \"backgroundColor\"",[3948,18557,4280],{"class":4231},[3948,18559,18560],{"class":4254},"\"#ffffff\"\n",[3948,18562,18563],{"class":3950,"line":4035},[3948,18564,18565],{"class":4231},"    },\n",[3948,18567,18568,18570],{"class":3950,"line":4041},[3948,18569,18213],{"class":18144},[3948,18571,18184],{"class":4231},[3948,18573,18574,18577,18579],{"class":3950,"line":4046},[3948,18575,18576],{"class":18144},"      \"supportsTablet\"",[3948,18578,4280],{"class":4231},[3948,18580,18406],{"class":4267},[3948,18582,18583],{"class":3950,"line":4051},[3948,18584,18565],{"class":4231},[3948,18586,18587,18589],{"class":3950,"line":4057},[3948,18588,18201],{"class":18144},[3948,18590,18184],{"class":4231},[3948,18592,18593,18596],{"class":3950,"line":4063},[3948,18594,18595],{"class":18144},"      \"adaptiveIcon\"",[3948,18597,18184],{"class":4231},[3948,18599,18600,18603,18605,18608],{"class":3950,"line":4069},[3948,18601,18602],{"class":18144},"        \"foregroundImage\"",[3948,18604,4280],{"class":4231},[3948,18606,18607],{"class":4254},"\".\u002Fassets\u002Fadaptive-icon.png\"",[3948,18609,4902],{"class":4231},[3948,18611,18612,18615,18617],{"class":3950,"line":4074},[3948,18613,18614],{"class":18144},"        \"backgroundColor\"",[3948,18616,4280],{"class":4231},[3948,18618,18560],{"class":4254},[3948,18620,18621],{"class":3950,"line":4080},[3948,18622,18623],{"class":4231},"      },\n",[3948,18625,18626,18629,18631,18633],{"class":3950,"line":4086},[3948,18627,18628],{"class":18144},"      \"edgeToEdgeEnabled\"",[3948,18630,4280],{"class":4231},[3948,18632,7401],{"class":4267},[3948,18634,4902],{"class":4231},[3948,18636,18637,18640,18642],{"class":3950,"line":4091},[3948,18638,18639],{"class":18144},"      \"predictiveBackGestureEnabled\"",[3948,18641,4280],{"class":4231},[3948,18643,18644],{"class":4267},"false\n",[3948,18646,18647],{"class":3950,"line":4096},[3948,18648,18565],{"class":4231},[3948,18650,18651,18653],{"class":3950,"line":5272},[3948,18652,18225],{"class":18144},[3948,18654,18184],{"class":4231},[3948,18656,18657,18660,18662],{"class":3950,"line":5286},[3948,18658,18659],{"class":18144},"      \"favicon\"",[3948,18661,4280],{"class":4231},[3948,18663,18664],{"class":4254},"\".\u002Fassets\u002Ffavicon.png\"\n",[3948,18666,18667],{"class":3950,"line":5312},[3948,18668,18565],{"class":4231},[3948,18670,18671,18674,18677,18680],{"class":3950,"line":5341},[3948,18672,18673],{"class":18144},"    \"plugins\"",[3948,18675,18676],{"class":4231},": [",[3948,18678,18679],{"class":4254},"\"expo-router\"",[3948,18681,18682],{"class":4231},"]\n",[3948,18684,18685],{"class":3950,"line":5361},[3948,18686,13548],{"class":4231},[3948,18688,18689],{"class":3950,"line":5369},[3948,18690,4003],{"class":4231},[3939,18692,18695],{"className":18131,"code":18693,"filename":18694,"language":18133,"meta":3944,"style":3944},"{\n  \"extends\": \"expo\u002Ftsconfig.base\",\n  \"compilerOptions\": {\n    \"strict\": true,\n    \"paths\": {\n      \"@\u002F*\": [\n        \".\u002Fsrc\u002F*\"\n      ]\n    }\n  },\n  \"include\": [\n    \"**\u002F*.ts\",\n    \"**\u002F*.tsx\"\n  ]\n}\n","tsconfig.json",[3525,18696,18697,18701,18713,18720,18731,18738,18746,18751,18756,18761,18765,18772,18779,18784,18789],{"__ignoreMap":3944},[3948,18698,18699],{"class":3950,"line":3951},[3948,18700,6611],{"class":4231},[3948,18702,18703,18706,18708,18711],{"class":3950,"line":3957},[3948,18704,18705],{"class":18144},"  \"extends\"",[3948,18707,4280],{"class":4231},[3948,18709,18710],{"class":4254},"\"expo\u002Ftsconfig.base\"",[3948,18712,4902],{"class":4231},[3948,18714,18715,18718],{"class":3950,"line":3963},[3948,18716,18717],{"class":18144},"  \"compilerOptions\"",[3948,18719,18184],{"class":4231},[3948,18721,18722,18725,18727,18729],{"class":3950,"line":3969},[3948,18723,18724],{"class":18144},"    \"strict\"",[3948,18726,4280],{"class":4231},[3948,18728,7401],{"class":4267},[3948,18730,4902],{"class":4231},[3948,18732,18733,18736],{"class":3950,"line":3976},[3948,18734,18735],{"class":18144},"    \"paths\"",[3948,18737,18184],{"class":4231},[3948,18739,18740,18743],{"class":3950,"line":3982},[3948,18741,18742],{"class":18144},"      \"@\u002F*\"",[3948,18744,18745],{"class":4231},": [\n",[3948,18747,18748],{"class":3950,"line":3988},[3948,18749,18750],{"class":4254},"        \".\u002Fsrc\u002F*\"\n",[3948,18752,18753],{"class":3950,"line":3994},[3948,18754,18755],{"class":4231},"      ]\n",[3948,18757,18758],{"class":3950,"line":4000},[3948,18759,18760],{"class":4231},"    }\n",[3948,18762,18763],{"class":3950,"line":4006},[3948,18764,5712],{"class":4231},[3948,18766,18767,18770],{"class":3950,"line":4011},[3948,18768,18769],{"class":18144},"  \"include\"",[3948,18771,18745],{"class":4231},[3948,18773,18774,18777],{"class":3950,"line":4017},[3948,18775,18776],{"class":4254},"    \"**\u002F*.ts\"",[3948,18778,4902],{"class":4231},[3948,18780,18781],{"class":3950,"line":4023},[3948,18782,18783],{"class":4254},"    \"**\u002F*.tsx\"\n",[3948,18785,18786],{"class":3950,"line":4029},[3948,18787,18788],{"class":4231},"  ]\n",[3948,18790,18791],{"class":3950,"line":4035},[3948,18792,4003],{"class":4231},[3939,18794,18797],{"className":4218,"code":18795,"filename":18796,"language":4220,"meta":3944,"style":3944},"import { Stack } from 'expo-router';\nimport { StatusBar } from 'expo-status-bar';\n\nimport { ThemeProvider, useTheme } from '@\u002Fshared\u002Ftheme';\n\nfunction RootNavigator() {\n  const { colors, scheme } = useTheme();\n\n  return (\n    \u003C>\n      \u003CStatusBar style={scheme === 'dark' ? 'light' : 'dark'} \u002F>\n      \u003CStack\n        screenOptions={{\n          headerShown: false,\n          contentStyle: { backgroundColor: colors.background },\n        }}\n      \u002F>\n    \u003C\u002F>\n  );\n}\n\nexport default function RootLayout() {\n  return (\n    \u003CThemeProvider>\n      \u003CRootNavigator \u002F>\n    \u003C\u002FThemeProvider>\n  );\n}\n","app\u002F_layout.tsx",[3525,18798,18799,18817,18835,18839,18861,18865,18874,18896,18900,18906,18911,18943,18950,18961,18971,18990,18997,19001,19006,19010,19014,19018,19031,19037,19045,19054,19062,19066],{"__ignoreMap":3944},[3948,18800,18801,18803,18805,18808,18810,18812,18815],{"class":3950,"line":3951},[3948,18802,4228],{"class":4227},[3948,18804,4232],{"class":4231},[3948,18806,18807],{"class":4235},"Stack",[3948,18809,4248],{"class":4231},[3948,18811,4251],{"class":4227},[3948,18813,18814],{"class":4254}," 'expo-router'",[3948,18816,4258],{"class":4231},[3948,18818,18819,18821,18823,18826,18828,18830,18833],{"class":3950,"line":3957},[3948,18820,4228],{"class":4227},[3948,18822,4232],{"class":4231},[3948,18824,18825],{"class":4235},"StatusBar",[3948,18827,4248],{"class":4231},[3948,18829,4251],{"class":4227},[3948,18831,18832],{"class":4254}," 'expo-status-bar'",[3948,18834,4258],{"class":4231},[3948,18836,18837],{"class":3950,"line":3963},[3948,18838,3973],{"emptyLinePlaceholder":3972},[3948,18840,18841,18843,18845,18847,18849,18852,18854,18856,18859],{"class":3950,"line":3969},[3948,18842,4228],{"class":4227},[3948,18844,4232],{"class":4231},[3948,18846,17967],{"class":4235},[3948,18848,3593],{"class":4231},[3948,18850,18851],{"class":4235},"useTheme",[3948,18853,4248],{"class":4231},[3948,18855,4251],{"class":4227},[3948,18857,18858],{"class":4254}," '@\u002Fshared\u002Ftheme'",[3948,18860,4258],{"class":4231},[3948,18862,18863],{"class":3950,"line":3976},[3948,18864,3973],{"emptyLinePlaceholder":3972},[3948,18866,18867,18869,18872],{"class":3950,"line":3982},[3948,18868,7558],{"class":4267},[3948,18870,18871],{"class":4395}," RootNavigator",[3948,18873,4399],{"class":4231},[3948,18875,18876,18878,18880,18883,18885,18888,18891,18893],{"class":3950,"line":3988},[3948,18877,4964],{"class":4267},[3948,18879,4232],{"class":4231},[3948,18881,18882],{"class":4308},"colors",[3948,18884,3593],{"class":4231},[3948,18886,18887],{"class":4308},"scheme",[3948,18889,18890],{"class":4231}," } = ",[3948,18892,18851],{"class":4395},[3948,18894,18895],{"class":4231},"();\n",[3948,18897,18898],{"class":3950,"line":3994},[3948,18899,3973],{"emptyLinePlaceholder":3972},[3948,18901,18902,18904],{"class":3950,"line":4000},[3948,18903,4404],{"class":4227},[3948,18905,4407],{"class":4231},[3948,18907,18908],{"class":3950,"line":4006},[3948,18909,18910],{"class":4412},"    \u003C>\n",[3948,18912,18913,18915,18917,18919,18921,18923,18925,18927,18930,18932,18935,18937,18939,18941],{"class":3950,"line":4011},[3948,18914,5150],{"class":4412},[3948,18916,18825],{"class":4271},[3948,18918,5115],{"class":4421},[3948,18920,4425],{"class":4231},[3948,18922,4428],{"class":4267},[3948,18924,18887],{"class":4235},[3948,18926,6623],{"class":4231},[3948,18928,18929],{"class":4254}," 'dark'",[3948,18931,6629],{"class":4231},[3948,18933,18934],{"class":4254}," 'light'",[3948,18936,6639],{"class":4231},[3948,18938,18929],{"class":4254},[3948,18940,4515],{"class":4267},[3948,18942,9753],{"class":4412},[3948,18944,18945,18947],{"class":3950,"line":4017},[3948,18946,5150],{"class":4412},[3948,18948,18949],{"class":4271},"Stack\n",[3948,18951,18952,18955,18957,18959],{"class":3950,"line":4023},[3948,18953,18954],{"class":4421},"        screenOptions",[3948,18956,4425],{"class":4231},[3948,18958,4428],{"class":4267},[3948,18960,6611],{"class":4445},[3948,18962,18963,18966,18969],{"class":3950,"line":4029},[3948,18964,18965],{"class":4235},"          headerShown:",[3948,18967,18968],{"class":4267}," false",[3948,18970,4902],{"class":4445},[3948,18972,18973,18976,18978,18980,18983,18985,18988],{"class":3950,"line":4035},[3948,18974,18975],{"class":4235},"          contentStyle:",[3948,18977,4232],{"class":4445},[3948,18979,5136],{"class":4235},[3948,18981,18982],{"class":4235}," colors",[3948,18984,3555],{"class":4445},[3948,18986,18987],{"class":4235},"background",[3948,18989,4339],{"class":4445},[3948,18991,18992,18995],{"class":3950,"line":4041},[3948,18993,18994],{"class":4445},"        }",[3948,18996,4003],{"class":4267},[3948,18998,18999],{"class":3950,"line":4046},[3948,19000,5546],{"class":4412},[3948,19002,19003],{"class":3950,"line":4051},[3948,19004,19005],{"class":4412},"    \u003C\u002F>\n",[3948,19007,19008],{"class":3950,"line":4057},[3948,19009,4548],{"class":4231},[3948,19011,19012],{"class":3950,"line":4063},[3948,19013,4003],{"class":4231},[3948,19015,19016],{"class":3950,"line":4069},[3948,19017,3973],{"emptyLinePlaceholder":3972},[3948,19019,19020,19022,19024,19026,19029],{"class":3950,"line":4074},[3948,19021,4389],{"class":4227},[3948,19023,4952],{"class":4227},[3948,19025,4392],{"class":4267},[3948,19027,19028],{"class":4395}," RootLayout",[3948,19030,4399],{"class":4231},[3948,19032,19033,19035],{"class":3950,"line":4080},[3948,19034,4404],{"class":4227},[3948,19036,4407],{"class":4231},[3948,19038,19039,19041,19043],{"class":3950,"line":4086},[3948,19040,4413],{"class":4412},[3948,19042,17967],{"class":4271},[3948,19044,4494],{"class":4412},[3948,19046,19047,19049,19052],{"class":3950,"line":4091},[3948,19048,5150],{"class":4412},[3948,19050,19051],{"class":4271},"RootNavigator",[3948,19053,9753],{"class":4412},[3948,19055,19056,19058,19060],{"class":3950,"line":4096},[3948,19057,5552],{"class":4412},[3948,19059,17967],{"class":4271},[3948,19061,4494],{"class":4412},[3948,19063,19064],{"class":3950,"line":5272},[3948,19065,4548],{"class":4231},[3948,19067,19068],{"class":3950,"line":5286},[3948,19069,4003],{"class":4231},[3939,19071,19074],{"className":4218,"code":19072,"filename":19073,"language":4220,"meta":3944,"style":3944},"import { useCallback, useState } from 'react';\nimport {\n  FlatList,\n  Pressable,\n  RefreshControl,\n  StyleSheet,\n  View,\n} from 'react-native';\nimport { FlashList } from '@shopify\u002Fflash-list';\n\nimport {\n  mockPlaces,\n  mockTrips,\n  PlaceChip,\n  TripCard,\n  type Place,\n  type Trip,\n} from '@\u002Ffeatures\u002Ftrips';\nimport { useTheme, type ThemePreference } from '@\u002Fshared\u002Ftheme';\nimport { AppText, Button, Screen } from '@\u002Fshared\u002Fui';\n\nconst PREFS: { id: ThemePreference; label: string }[] = [\n  { id: 'system', label: 'Система' },\n  { id: 'light', label: 'Світла' },\n  { id: 'dark', label: 'Темна' },\n];\n\nexport default function HomeScreen() {\n  const { colors, spacing, preference, setPreference, scheme } = useTheme();\n  const [trips, setTrips] = useState\u003CTrip[]>(mockTrips);\n  const [places] = useState\u003CPlace[]>(mockPlaces);\n  const [refreshing, setRefreshing] = useState(false);\n\n  const handleOpenTrip = useCallback((trip: Trip) => {\n    console.log('TODO: відкрити поїздку', trip.id, trip.title);\n  }, []);\n\n  const handleOpenPlace = useCallback((place: Place) => {\n    console.log('TODO: відкрити місце', place.id, place.name);\n  }, []);\n\n  const onRefresh = useCallback(() => {\n    setRefreshing(true);\n    \u002F\u002F Mock pull-to-refresh: «мережа» ще не підключена — імітуємо затримку.\n    setTimeout(() => {\n      setTrips([...mockTrips]);\n      setRefreshing(false);\n    }, 900);\n  }, []);\n\n  const renderTrip = useCallback(\n    ({ item }: { item: Trip }) => (\n      \u003CTripCard trip={item} onPress={handleOpenTrip} \u002F>\n    ),\n    [handleOpenTrip],\n  );\n\n  const keyExtractor = useCallback((item: Trip) => item.id, []);\n\n  \u002F\u002F Шапка списку: місця + підпис секції. Чіпи теми лишаються в sticky header (як у статті 08).\n  const listHeader = (\n    \u003CView style={{ gap: spacing.md, marginBottom: spacing.md }}>\n      {places.length > 0 ? (\n        \u003CView style={{ gap: spacing.sm }}>\n          \u003CAppText style={{ fontWeight: '600' }}>Останні місця\u003C\u002FAppText>\n          \u003CFlatList\n            horizontal\n            data={places}\n            keyExtractor={(item) => item.id}\n            renderItem={({ item }) => (\n              \u003CPlaceChip place={item} onPress={handleOpenPlace} \u002F>\n            )}\n            showsHorizontalScrollIndicator={false}\n            ItemSeparatorComponent={() => \u003CView style={{ width: spacing.sm }} \u002F>}\n            contentContainerStyle={{ paddingVertical: 2 }}\n          \u002F>\n        \u003C\u002FView>\n      ) : null}\n\n      \u003CAppText style={{ fontWeight: '600' }}>Ваші поїздки\u003C\u002FAppText>\n    \u003C\u002FView>\n  );\n\n  const listEmpty = (\n    \u003CView\n      style={[\n        styles.empty,\n        {\n          paddingHorizontal: spacing.sm,\n          paddingVertical: spacing.xl,\n          gap: spacing.sm,\n        },\n      ]}\n    >\n      \u003CAppText variant=\"subtitle\" style={styles.emptyTitle}>\n        Поки немає поїздок\n      \u003C\u002FAppText>\n      \u003CAppText\n        variant=\"caption\"\n        color={colors.textSecondary}\n        style={styles.emptyDesc}\n      >\n        Потягніть список униз, щоб «оновити», або натисніть «Нова поїздка».\n      \u003C\u002FAppText>\n    \u003C\u002FView>\n  );\n\n  return (\n    \u003CScreen style={styles.screen}>\n      {\u002F* Sticky header з 08: бренд + тема + чіпи — не скроляться зі списком *\u002F}\n      \u003CView\n        style={[\n          styles.header,\n          {\n            paddingHorizontal: spacing.md,\n            paddingTop: spacing.sm,\n            paddingBottom: spacing.md,\n            gap: spacing.xs,\n            borderBottomColor: colors.border,\n          },\n        ]}\n      >\n        \u003CAppText variant=\"title\">Мандрівник\u003C\u002FAppText>\n        \u003CAppText variant=\"caption\" style={{ marginTop: spacing.xs }}>\n          Щоденник подорожей · тема: {scheme === 'dark' ? 'темна' : 'світла'}\n        \u003C\u002FAppText>\n        \u003CAppText\n          variant=\"caption\"\n          style={{\n            marginTop: spacing.xs,\n            color: colors.primary,\n            fontWeight: '600',\n          }}\n        >\n          {trips.length > 0\n            ? `${trips.length} поїздок · ${places.length} місць`\n            : 'Список порожній'}\n        \u003C\u002FAppText>\n\n        \u003CView style={[styles.themeRow, { gap: spacing.sm, marginTop: spacing.sm }]}>\n          {PREFS.map((p) => {\n            const active = preference === p.id;\n            return (\n              \u003CPressable\n                key={p.id}\n                onPress={() => setPreference(p.id)}\n                style={[\n                  styles.themeChip,\n                  {\n                    backgroundColor: active ? colors.primary : colors.surface,\n                    borderColor: colors.border,\n                  },\n                ]}\n                accessibilityRole=\"button\"\n                accessibilityState={{ selected: active }}\n                accessibilityLabel={`Тема: ${p.label}`}\n              >\n                \u003CAppText\n                  variant=\"caption\"\n                  color={active ? colors.onPrimary : colors.text}\n                  style={styles.themeChipText}\n                >\n                  {p.label}\n                \u003C\u002FAppText>\n              \u003C\u002FPressable>\n            );\n          })}\n        \u003C\u002FView>\n      \u003C\u002FView>\n\n      \u003CView style={styles.listWrap}>\n        \u003CFlashList\n          data={trips}\n          renderItem={renderTrip}\n          keyExtractor={keyExtractor}\n          ListHeaderComponent={listHeader}\n          ListEmptyComponent={listEmpty}\n          contentContainerStyle={{\n            paddingHorizontal: spacing.md,\n            paddingTop: spacing.md,\n            paddingBottom: spacing.md,\n          }}\n          ItemSeparatorComponent={() => \u003CView style={{ height: spacing.md }} \u002F>}\n          refreshControl={\n            \u003CRefreshControl\n              refreshing={refreshing}\n              onRefresh={onRefresh}\n              tintColor={colors.primary}\n              colors={[colors.primary]}\n            \u002F>\n          }\n          showsVerticalScrollIndicator={false}\n        \u002F>\n      \u003C\u002FView>\n\n      \u003CView\n        style={[\n          styles.footer,\n          {\n            paddingHorizontal: spacing.md,\n            paddingTop: spacing.sm,\n            paddingBottom: spacing.md,\n            borderTopColor: colors.border,\n            backgroundColor: colors.background,\n          },\n        ]}\n      >\n        \u003CButton\n          label=\"Нова поїздка\"\n          onPress={() => {\n            console.log('TODO: відкрити створення поїздки');\n          }}\n        \u002F>\n      \u003C\u002FView>\n    \u003C\u002FScreen>\n  );\n}\n\nconst styles = StyleSheet.create({\n  screen: {\n    paddingHorizontal: 0,\n  },\n  header: {\n    borderBottomWidth: 1,\n  },\n  themeRow: {\n    flexDirection: 'row',\n    flexWrap: 'wrap',\n  },\n  themeChip: {\n    paddingHorizontal: 12,\n    paddingVertical: 8,\n    borderRadius: 8,\n    borderWidth: 1,\n  },\n  themeChipText: {\n    fontWeight: '600',\n  },\n  listWrap: {\n    flex: 1,\n  },\n  empty: {\n    alignItems: 'center',\n    justifyContent: 'center',\n  },\n  emptyTitle: {\n    textAlign: 'center',\n  },\n  emptyDesc: {\n    textAlign: 'center',\n  },\n  footer: {\n    borderTopWidth: 1,\n  },\n});\n","app\u002Findex.tsx",[3525,19075,19076,19096,19102,19108,19114,19120,19126,19132,19142,19158,19162,19168,19175,19182,19189,19196,19206,19215,19226,19249,19277,19281,19309,19328,19345,19362,19366,19370,19383,19416,19445,19468,19490,19494,19519,19552,19556,19560,19586,19618,19622,19626,19642,19652,19657,19667,19679,19689,19698,19702,19706,19719,19740,19768,19773,19782,19786,19790,19821,19825,19830,19840,19880,19900,19929,19962,19968,19973,19986,20011,20030,20060,20067,20077,20119,20139,20143,20151,20161,20165,20198,20206,20210,20214,20223,20229,20240,20251,20256,20269,20283,20296,20301,20308,20313,20343,20348,20356,20363,20373,20391,20408,20413,20418,20426,20434,20438,20442,20448,20470,20479,20485,20495,20507,20512,20525,20538,20551,20565,20579,20584,20591,20595,20619,20654,20679,20687,20693,20702,20712,20725,20738,20747,20754,20758,20772,20804,20813,20821,20825,20872,20893,20918,20925,20931,20948,20976,20987,20999,21004,21030,21043,21048,21055,21065,21085,21111,21116,21123,21132,21164,21182,21187,21200,21209,21218,21223,21230,21238,21246,21251,21275,21283,21296,21311,21325,21340,21355,21367,21380,21393,21406,21413,21455,21465,21472,21486,21500,21518,21540,21546,21551,21561,21567,21576,21581,21588,21599,21610,21615,21628,21641,21654,21668,21682,21687,21694,21699,21707,21718,21733,21750,21757,21762,21771,21780,21785,21790,21795,21812,21819,21828,21833,21841,21851,21856,21864,21873,21884,21889,21897,21906,21915,21924,21933,21938,21946,21956,21961,21969,21978,21983,21990,21999,22008,22013,22020,22030,22035,22043,22052,22057,22064,22074,22079],{"__ignoreMap":3944},[3948,19077,19078,19080,19082,19084,19086,19088,19090,19092,19094],{"class":3950,"line":3951},[3948,19079,4228],{"class":4227},[3948,19081,4232],{"class":4231},[3948,19083,4586],{"class":4235},[3948,19085,3593],{"class":4231},[3948,19087,5831],{"class":4235},[3948,19089,4248],{"class":4231},[3948,19091,4251],{"class":4227},[3948,19093,5897],{"class":4254},[3948,19095,4258],{"class":4231},[3948,19097,19098,19100],{"class":3950,"line":3957},[3948,19099,4228],{"class":4227},[3948,19101,5674],{"class":4231},[3948,19103,19104,19106],{"class":3950,"line":3963},[3948,19105,5910],{"class":4235},[3948,19107,4902],{"class":4231},[3948,19109,19110,19112],{"class":3950,"line":3969},[3948,19111,5917],{"class":4235},[3948,19113,4902],{"class":4231},[3948,19115,19116,19118],{"class":3950,"line":3976},[3948,19117,7475],{"class":4235},[3948,19119,4902],{"class":4231},[3948,19121,19122,19124],{"class":3950,"line":3982},[3948,19123,5924],{"class":4235},[3948,19125,4902],{"class":4231},[3948,19127,19128,19130],{"class":3950,"line":3988},[3948,19129,5938],{"class":4235},[3948,19131,4902],{"class":4231},[3948,19133,19134,19136,19138,19140],{"class":3950,"line":3994},[3948,19135,5952],{"class":4231},[3948,19137,4251],{"class":4227},[3948,19139,4255],{"class":4254},[3948,19141,4258],{"class":4231},[3948,19143,19144,19146,19148,19150,19152,19154,19156],{"class":3950,"line":4000},[3948,19145,4228],{"class":4227},[3948,19147,4232],{"class":4231},[3948,19149,3643],{"class":4235},[3948,19151,4248],{"class":4231},[3948,19153,4251],{"class":4227},[3948,19155,12253],{"class":4254},[3948,19157,4258],{"class":4231},[3948,19159,19160],{"class":3950,"line":4006},[3948,19161,3973],{"emptyLinePlaceholder":3972},[3948,19163,19164,19166],{"class":3950,"line":4011},[3948,19165,4228],{"class":4227},[3948,19167,5674],{"class":4231},[3948,19169,19170,19173],{"class":3950,"line":4017},[3948,19171,19172],{"class":4235},"  mockPlaces",[3948,19174,4902],{"class":4231},[3948,19176,19177,19180],{"class":3950,"line":4023},[3948,19178,19179],{"class":4235},"  mockTrips",[3948,19181,4902],{"class":4231},[3948,19183,19184,19187],{"class":3950,"line":4029},[3948,19185,19186],{"class":4235},"  PlaceChip",[3948,19188,4902],{"class":4231},[3948,19190,19191,19194],{"class":3950,"line":4035},[3948,19192,19193],{"class":4235},"  TripCard",[3948,19195,4902],{"class":4231},[3948,19197,19198,19201,19204],{"class":3950,"line":4041},[3948,19199,19200],{"class":4227},"  type",[3948,19202,19203],{"class":4235}," Place",[3948,19205,4902],{"class":4231},[3948,19207,19208,19210,19213],{"class":3950,"line":4046},[3948,19209,19200],{"class":4227},[3948,19211,19212],{"class":4235}," Trip",[3948,19214,4902],{"class":4231},[3948,19216,19217,19219,19221,19224],{"class":3950,"line":4051},[3948,19218,5952],{"class":4231},[3948,19220,4251],{"class":4227},[3948,19222,19223],{"class":4254}," '@\u002Ffeatures\u002Ftrips'",[3948,19225,4258],{"class":4231},[3948,19227,19228,19230,19232,19234,19236,19238,19241,19243,19245,19247],{"class":3950,"line":4057},[3948,19229,4228],{"class":4227},[3948,19231,4232],{"class":4231},[3948,19233,18851],{"class":4235},[3948,19235,3593],{"class":4231},[3948,19237,4268],{"class":4227},[3948,19239,19240],{"class":4235}," ThemePreference",[3948,19242,4248],{"class":4231},[3948,19244,4251],{"class":4227},[3948,19246,18858],{"class":4254},[3948,19248,4258],{"class":4231},[3948,19250,19251,19253,19255,19258,19260,19263,19265,19268,19270,19272,19275],{"class":3950,"line":4063},[3948,19252,4228],{"class":4227},[3948,19254,4232],{"class":4231},[3948,19256,19257],{"class":4235},"AppText",[3948,19259,3593],{"class":4231},[3948,19261,19262],{"class":4235},"Button",[3948,19264,3593],{"class":4231},[3948,19266,19267],{"class":4235},"Screen",[3948,19269,4248],{"class":4231},[3948,19271,4251],{"class":4227},[3948,19273,19274],{"class":4254}," '@\u002Fshared\u002Fui'",[3948,19276,4258],{"class":4231},[3948,19278,19279],{"class":3950,"line":4069},[3948,19280,3973],{"emptyLinePlaceholder":3972},[3948,19282,19283,19285,19288,19290,19292,19294,19297,19299,19302,19304,19306],{"class":3950,"line":4074},[3948,19284,4305],{"class":4267},[3948,19286,19287],{"class":4308}," PREFS",[3948,19289,10498],{"class":4231},[3948,19291,4184],{"class":4235},[3948,19293,4280],{"class":4231},[3948,19295,19296],{"class":4271},"ThemePreference",[3948,19298,4286],{"class":4231},[3948,19300,19301],{"class":4235},"label",[3948,19303,4280],{"class":4231},[3948,19305,4283],{"class":4271},[3948,19307,19308],{"class":4231}," }[] = [\n",[3948,19310,19311,19313,19315,19318,19320,19323,19326],{"class":3950,"line":4080},[3948,19312,4322],{"class":4231},[3948,19314,4325],{"class":4235},[3948,19316,19317],{"class":4254}," 'system'",[3948,19319,3593],{"class":4231},[3948,19321,19322],{"class":4235},"label:",[3948,19324,19325],{"class":4254}," 'Система'",[3948,19327,4339],{"class":4231},[3948,19329,19330,19332,19334,19336,19338,19340,19343],{"class":3950,"line":4086},[3948,19331,4322],{"class":4231},[3948,19333,4325],{"class":4235},[3948,19335,18934],{"class":4254},[3948,19337,3593],{"class":4231},[3948,19339,19322],{"class":4235},[3948,19341,19342],{"class":4254}," 'Світла'",[3948,19344,4339],{"class":4231},[3948,19346,19347,19349,19351,19353,19355,19357,19360],{"class":3950,"line":4091},[3948,19348,4322],{"class":4231},[3948,19350,4325],{"class":4235},[3948,19352,18929],{"class":4254},[3948,19354,3593],{"class":4231},[3948,19356,19322],{"class":4235},[3948,19358,19359],{"class":4254}," 'Темна'",[3948,19361,4339],{"class":4231},[3948,19363,19364],{"class":3950,"line":4096},[3948,19365,4380],{"class":4231},[3948,19367,19368],{"class":3950,"line":5272},[3948,19369,3973],{"emptyLinePlaceholder":3972},[3948,19371,19372,19374,19376,19378,19381],{"class":3950,"line":5286},[3948,19373,4389],{"class":4227},[3948,19375,4952],{"class":4227},[3948,19377,4392],{"class":4267},[3948,19379,19380],{"class":4395}," HomeScreen",[3948,19382,4399],{"class":4231},[3948,19384,19385,19387,19389,19391,19393,19396,19398,19401,19403,19406,19408,19410,19412,19414],{"class":3950,"line":5312},[3948,19386,4964],{"class":4267},[3948,19388,4232],{"class":4231},[3948,19390,18882],{"class":4308},[3948,19392,3593],{"class":4231},[3948,19394,19395],{"class":4308},"spacing",[3948,19397,3593],{"class":4231},[3948,19399,19400],{"class":4308},"preference",[3948,19402,3593],{"class":4231},[3948,19404,19405],{"class":4308},"setPreference",[3948,19407,3593],{"class":4231},[3948,19409,18887],{"class":4308},[3948,19411,18890],{"class":4231},[3948,19413,18851],{"class":4395},[3948,19415,18895],{"class":4231},[3948,19417,19418,19420,19422,19425,19427,19430,19432,19434,19436,19438,19441,19443],{"class":3950,"line":5341},[3948,19419,4964],{"class":4267},[3948,19421,6152],{"class":4231},[3948,19423,19424],{"class":4308},"trips",[3948,19426,3593],{"class":4231},[3948,19428,19429],{"class":4308},"setTrips",[3948,19431,6162],{"class":4231},[3948,19433,5831],{"class":4395},[3948,19435,6167],{"class":4231},[3948,19437,11995],{"class":4271},[3948,19439,19440],{"class":4231},"[]>(",[3948,19442,17987],{"class":4235},[3948,19444,7857],{"class":4231},[3948,19446,19447,19449,19451,19454,19456,19458,19460,19462,19464,19466],{"class":3950,"line":5361},[3948,19448,4964],{"class":4267},[3948,19450,6152],{"class":4231},[3948,19452,19453],{"class":4308},"places",[3948,19455,6162],{"class":4231},[3948,19457,5831],{"class":4395},[3948,19459,6167],{"class":4231},[3948,19461,18029],{"class":4271},[3948,19463,19440],{"class":4231},[3948,19465,18032],{"class":4235},[3948,19467,7857],{"class":4231},[3948,19469,19470,19472,19474,19476,19478,19480,19482,19484,19486,19488],{"class":3950,"line":5369},[3948,19471,4964],{"class":4267},[3948,19473,6152],{"class":4231},[3948,19475,4684],{"class":4308},[3948,19477,3593],{"class":4231},[3948,19479,7900],{"class":4308},[3948,19481,6162],{"class":4231},[3948,19483,5831],{"class":4395},[3948,19485,4446],{"class":4231},[3948,19487,7413],{"class":4267},[3948,19489,7857],{"class":4231},[3948,19491,19492],{"class":3950,"line":5382},[3948,19493,3973],{"emptyLinePlaceholder":3972},[3948,19495,19496,19498,19501,19503,19505,19507,19509,19511,19513,19515,19517],{"class":3950,"line":5395},[3948,19497,4964],{"class":4267},[3948,19499,19500],{"class":4308}," handleOpenTrip",[3948,19502,4970],{"class":4231},[3948,19504,4586],{"class":4395},[3948,19506,6267],{"class":4231},[3948,19508,11902],{"class":4235},[3948,19510,4280],{"class":4231},[3948,19512,11995],{"class":4271},[3948,19514,4168],{"class":4231},[3948,19516,4454],{"class":4267},[3948,19518,5674],{"class":4231},[3948,19520,19521,19524,19526,19529,19531,19534,19536,19538,19540,19542,19544,19546,19548,19550],{"class":3950,"line":5414},[3948,19522,19523],{"class":4235},"    console",[3948,19525,3555],{"class":4231},[3948,19527,19528],{"class":4395},"log",[3948,19530,4446],{"class":4231},[3948,19532,19533],{"class":4254},"'TODO: відкрити поїздку'",[3948,19535,3593],{"class":4231},[3948,19537,11902],{"class":4235},[3948,19539,3555],{"class":4231},[3948,19541,4184],{"class":4235},[3948,19543,3593],{"class":4231},[3948,19545,11902],{"class":4235},[3948,19547,3555],{"class":4231},[3948,19549,4289],{"class":4235},[3948,19551,7857],{"class":4231},[3948,19553,19554],{"class":3950,"line":5422},[3948,19555,13883],{"class":4231},[3948,19557,19558],{"class":3950,"line":5428},[3948,19559,3973],{"emptyLinePlaceholder":3972},[3948,19561,19562,19564,19567,19569,19571,19573,19576,19578,19580,19582,19584],{"class":3950,"line":5478},[3948,19563,4964],{"class":4267},[3948,19565,19566],{"class":4308}," handleOpenPlace",[3948,19568,4970],{"class":4231},[3948,19570,4586],{"class":4395},[3948,19572,6267],{"class":4231},[3948,19574,19575],{"class":4235},"place",[3948,19577,4280],{"class":4231},[3948,19579,18029],{"class":4271},[3948,19581,4168],{"class":4231},[3948,19583,4454],{"class":4267},[3948,19585,5674],{"class":4231},[3948,19587,19588,19590,19592,19594,19596,19599,19601,19603,19605,19607,19609,19611,19613,19616],{"class":3950,"line":5525},[3948,19589,19523],{"class":4235},[3948,19591,3555],{"class":4231},[3948,19593,19528],{"class":4395},[3948,19595,4446],{"class":4231},[3948,19597,19598],{"class":4254},"'TODO: відкрити місце'",[3948,19600,3593],{"class":4231},[3948,19602,19575],{"class":4235},[3948,19604,3555],{"class":4231},[3948,19606,4184],{"class":4235},[3948,19608,3593],{"class":4231},[3948,19610,19575],{"class":4235},[3948,19612,3555],{"class":4231},[3948,19614,19615],{"class":4235},"name",[3948,19617,7857],{"class":4231},[3948,19619,19620],{"class":3950,"line":5535},[3948,19621,13883],{"class":4231},[3948,19623,19624],{"class":3950,"line":5543},[3948,19625,3973],{"emptyLinePlaceholder":3972},[3948,19627,19628,19630,19632,19634,19636,19638,19640],{"class":3950,"line":5549},[3948,19629,4964],{"class":4267},[3948,19631,7921],{"class":4308},[3948,19633,4970],{"class":4231},[3948,19635,4586],{"class":4395},[3948,19637,7876],{"class":4231},[3948,19639,4454],{"class":4267},[3948,19641,5674],{"class":4231},[3948,19643,19644,19646,19648,19650],{"class":3950,"line":5559},[3948,19645,7936],{"class":4395},[3948,19647,4446],{"class":4231},[3948,19649,7401],{"class":4267},[3948,19651,7857],{"class":4231},[3948,19653,19654],{"class":3950,"line":5564},[3948,19655,19656],{"class":5778},"    \u002F\u002F Mock pull-to-refresh: «мережа» ще не підключена — імітуємо затримку.\n",[3948,19658,19659,19661,19663,19665],{"class":3950,"line":5569},[3948,19660,7947],{"class":4395},[3948,19662,7876],{"class":4231},[3948,19664,4454],{"class":4267},[3948,19666,5674],{"class":4231},[3948,19668,19669,19672,19675,19677],{"class":3950,"line":5574},[3948,19670,19671],{"class":4395},"      setTrips",[3948,19673,19674],{"class":4231},"([...",[3948,19676,17987],{"class":4235},[3948,19678,8030],{"class":4231},[3948,19680,19681,19683,19685,19687],{"class":3950,"line":5594},[3948,19682,8004],{"class":4395},[3948,19684,4446],{"class":4231},[3948,19686,7413],{"class":4267},[3948,19688,7857],{"class":4231},[3948,19690,19691,19693,19696],{"class":3950,"line":5624},[3948,19692,8015],{"class":4231},[3948,19694,19695],{"class":4836},"900",[3948,19697,7857],{"class":4231},[3948,19699,19700],{"class":3950,"line":5654},[3948,19701,13883],{"class":4231},[3948,19703,19704],{"class":3950,"line":5668},[3948,19705,3973],{"emptyLinePlaceholder":3972},[3948,19707,19708,19710,19713,19715,19717],{"class":3950,"line":5677},[3948,19709,4964],{"class":4267},[3948,19711,19712],{"class":4308}," renderTrip",[3948,19714,4970],{"class":4231},[3948,19716,4586],{"class":4395},[3948,19718,11978],{"class":4231},[3948,19720,19721,19724,19726,19728,19730,19732,19734,19736,19738],{"class":3950,"line":5687},[3948,19722,19723],{"class":4231},"    ({ ",[3948,19725,4449],{"class":4235},[3948,19727,11988],{"class":4231},[3948,19729,4449],{"class":4235},[3948,19731,4280],{"class":4231},[3948,19733,11995],{"class":4271},[3948,19735,4480],{"class":4231},[3948,19737,4454],{"class":4267},[3948,19739,4407],{"class":4231},[3948,19741,19742,19744,19746,19748,19750,19752,19754,19756,19758,19760,19762,19764,19766],{"class":3950,"line":5698},[3948,19743,5150],{"class":4412},[3948,19745,11884],{"class":4271},[3948,19747,12010],{"class":4421},[3948,19749,4425],{"class":4231},[3948,19751,4428],{"class":4267},[3948,19753,4449],{"class":4235},[3948,19755,4515],{"class":4267},[3948,19757,12021],{"class":4421},[3948,19759,4425],{"class":4231},[3948,19761,4428],{"class":4267},[3948,19763,12028],{"class":4235},[3948,19765,4515],{"class":4267},[3948,19767,9753],{"class":4412},[3948,19769,19770],{"class":3950,"line":5709},[3948,19771,19772],{"class":4231},"    ),\n",[3948,19774,19775,19778,19780],{"class":3950,"line":5715},[3948,19776,19777],{"class":4231},"    [",[3948,19779,12028],{"class":4235},[3948,19781,12047],{"class":4231},[3948,19783,19784],{"class":3950,"line":5741},[3948,19785,4548],{"class":4231},[3948,19787,19788],{"class":3950,"line":6725},[3948,19789,3973],{"emptyLinePlaceholder":3972},[3948,19791,19792,19794,19796,19798,19800,19802,19804,19806,19808,19810,19812,19814,19816,19818],{"class":3950,"line":6749},[3948,19793,4964],{"class":4267},[3948,19795,12219],{"class":4308},[3948,19797,4970],{"class":4231},[3948,19799,4586],{"class":4395},[3948,19801,6267],{"class":4231},[3948,19803,4449],{"class":4235},[3948,19805,4280],{"class":4231},[3948,19807,11995],{"class":4271},[3948,19809,4168],{"class":4231},[3948,19811,4454],{"class":4267},[3948,19813,4457],{"class":4235},[3948,19815,3555],{"class":4231},[3948,19817,4184],{"class":4235},[3948,19819,19820],{"class":4231},", []);\n",[3948,19822,19823],{"class":3950,"line":6792},[3948,19824,3973],{"emptyLinePlaceholder":3972},[3948,19826,19827],{"class":3950,"line":6832},[3948,19828,19829],{"class":5778},"  \u002F\u002F Шапка списку: місця + підпис секції. Чіпи теми лишаються в sticky header (як у статті 08).\n",[3948,19831,19832,19834,19837],{"class":3950,"line":6838},[3948,19833,4964],{"class":4267},[3948,19835,19836],{"class":4395}," listHeader",[3948,19838,19839],{"class":4231}," = (\n",[3948,19841,19842,19844,19846,19848,19850,19852,19854,19856,19859,19861,19864,19866,19868,19870,19872,19874,19876,19878],{"class":3950,"line":6844},[3948,19843,4413],{"class":4412},[3948,19845,4245],{"class":4271},[3948,19847,5115],{"class":4421},[3948,19849,4425],{"class":4231},[3948,19851,4428],{"class":4267},[3948,19853,5204],{"class":4445},[3948,19855,5332],{"class":4235},[3948,19857,19858],{"class":4235}," spacing",[3948,19860,3555],{"class":4445},[3948,19862,19863],{"class":4235},"md",[3948,19865,3593],{"class":4445},[3948,19867,5213],{"class":4235},[3948,19869,19858],{"class":4235},[3948,19871,3555],{"class":4445},[3948,19873,19863],{"class":4235},[3948,19875,5227],{"class":4445},[3948,19877,4515],{"class":4267},[3948,19879,4494],{"class":4412},[3948,19881,19882,19885,19887,19889,19891,19894,19896,19898],{"class":3950,"line":6854},[3948,19883,19884],{"class":4267},"      {",[3948,19886,19453],{"class":4235},[3948,19888,3555],{"class":4445},[3948,19890,6321],{"class":4235},[3948,19892,19893],{"class":4231}," >",[3948,19895,6626],{"class":4836},[3948,19897,6629],{"class":4231},[3948,19899,4407],{"class":4445},[3948,19901,19902,19904,19906,19908,19910,19912,19914,19916,19918,19920,19923,19925,19927],{"class":3950,"line":6863},[3948,19903,4489],{"class":4412},[3948,19905,4245],{"class":4271},[3948,19907,5115],{"class":4421},[3948,19909,4425],{"class":4231},[3948,19911,4428],{"class":4267},[3948,19913,5204],{"class":4445},[3948,19915,5332],{"class":4235},[3948,19917,19858],{"class":4235},[3948,19919,3555],{"class":4445},[3948,19921,19922],{"class":4235},"sm",[3948,19924,5227],{"class":4445},[3948,19926,4515],{"class":4267},[3948,19928,4494],{"class":4412},[3948,19930,19931,19933,19935,19937,19939,19941,19943,19945,19947,19949,19951,19953,19956,19958,19960],{"class":3950,"line":6868},[3948,19932,4499],{"class":4412},[3948,19934,19257],{"class":4271},[3948,19936,5115],{"class":4421},[3948,19938,4425],{"class":4231},[3948,19940,4428],{"class":4267},[3948,19942,5204],{"class":4445},[3948,19944,5639],{"class":4235},[3948,19946,6949],{"class":4254},[3948,19948,5227],{"class":4445},[3948,19950,4515],{"class":4267},[3948,19952,4504],{"class":4412},[3948,19954,19955],{"class":4445},"Останні місця",[3948,19957,4518],{"class":4412},[3948,19959,19257],{"class":4271},[3948,19961,4494],{"class":4412},[3948,19963,19964,19966],{"class":3950,"line":6887},[3948,19965,4499],{"class":4412},[3948,19967,4416],{"class":4271},[3948,19969,19970],{"class":3950,"line":6926},[3948,19971,19972],{"class":4421},"            horizontal\n",[3948,19974,19975,19978,19980,19982,19984],{"class":3950,"line":6974},[3948,19976,19977],{"class":4421},"            data",[3948,19979,4425],{"class":4231},[3948,19981,4428],{"class":4267},[3948,19983,19453],{"class":4235},[3948,19985,4003],{"class":4267},[3948,19987,19988,19991,19993,19995,19997,19999,20001,20003,20005,20007,20009],{"class":3950,"line":6983},[3948,19989,19990],{"class":4421},"            keyExtractor",[3948,19992,4425],{"class":4231},[3948,19994,4428],{"class":4267},[3948,19996,4446],{"class":4445},[3948,19998,4449],{"class":4235},[3948,20000,4168],{"class":4445},[3948,20002,4454],{"class":4267},[3948,20004,4457],{"class":4235},[3948,20006,3555],{"class":4445},[3948,20008,4184],{"class":4235},[3948,20010,4003],{"class":4267},[3948,20012,20013,20016,20018,20020,20022,20024,20026,20028],{"class":3950,"line":6990},[3948,20014,20015],{"class":4421},"            renderItem",[3948,20017,4425],{"class":4231},[3948,20019,4428],{"class":4267},[3948,20021,4475],{"class":4445},[3948,20023,4449],{"class":4235},[3948,20025,4480],{"class":4445},[3948,20027,4454],{"class":4267},[3948,20029,4407],{"class":4445},[3948,20031,20032,20034,20036,20039,20041,20043,20045,20047,20049,20051,20053,20056,20058],{"class":3950,"line":6995},[3948,20033,9736],{"class":4412},[3948,20035,18035],{"class":4271},[3948,20037,20038],{"class":4421}," place",[3948,20040,4425],{"class":4231},[3948,20042,4428],{"class":4267},[3948,20044,4449],{"class":4235},[3948,20046,4515],{"class":4267},[3948,20048,12021],{"class":4421},[3948,20050,4425],{"class":4231},[3948,20052,4428],{"class":4267},[3948,20054,20055],{"class":4235},"handleOpenPlace",[3948,20057,4515],{"class":4267},[3948,20059,9753],{"class":4412},[3948,20061,20062,20065],{"class":3950,"line":7004},[3948,20063,20064],{"class":4445},"            )",[3948,20066,4003],{"class":4267},[3948,20068,20069,20072,20074],{"class":3950,"line":7009},[3948,20070,20071],{"class":4421},"            showsHorizontalScrollIndicator",[3948,20073,4425],{"class":4231},[3948,20075,20076],{"class":4267},"{false}\n",[3948,20078,20079,20082,20084,20086,20088,20090,20092,20094,20096,20098,20100,20102,20105,20107,20109,20111,20113,20115,20117],{"class":3950,"line":7014},[3948,20080,20081],{"class":4421},"            ItemSeparatorComponent",[3948,20083,4425],{"class":4231},[3948,20085,4428],{"class":4267},[3948,20087,6256],{"class":4445},[3948,20089,4454],{"class":4267},[3948,20091,10462],{"class":4412},[3948,20093,4245],{"class":4271},[3948,20095,5115],{"class":4421},[3948,20097,4425],{"class":4231},[3948,20099,4428],{"class":4267},[3948,20101,5204],{"class":4445},[3948,20103,20104],{"class":4235},"width:",[3948,20106,19858],{"class":4235},[3948,20108,3555],{"class":4445},[3948,20110,19922],{"class":4235},[3948,20112,5227],{"class":4445},[3948,20114,4515],{"class":4267},[3948,20116,10479],{"class":4412},[3948,20118,4003],{"class":4267},[3948,20120,20121,20124,20126,20128,20130,20132,20135,20137],{"class":3950,"line":7019},[3948,20122,20123],{"class":4421},"            contentContainerStyle",[3948,20125,4425],{"class":4231},[3948,20127,4428],{"class":4267},[3948,20129,5204],{"class":4445},[3948,20131,10117],{"class":4235},[3948,20133,20134],{"class":4836}," 2",[3948,20136,5227],{"class":4445},[3948,20138,4003],{"class":4267},[3948,20140,20141],{"class":3950,"line":7036},[3948,20142,8334],{"class":4412},[3948,20144,20145,20147,20149],{"class":3950,"line":7061},[3948,20146,4527],{"class":4412},[3948,20148,4245],{"class":4271},[3948,20150,4494],{"class":4412},[3948,20152,20153,20156,20158],{"class":3950,"line":7089},[3948,20154,20155],{"class":4445},"      ) ",[3948,20157,9809],{"class":4231},[3948,20159,20160],{"class":4267}," null}\n",[3948,20162,20163],{"class":3950,"line":7097},[3948,20164,3973],{"emptyLinePlaceholder":3972},[3948,20166,20167,20169,20171,20173,20175,20177,20179,20181,20183,20185,20187,20189,20192,20194,20196],{"class":3950,"line":7107},[3948,20168,5150],{"class":4412},[3948,20170,19257],{"class":4271},[3948,20172,5115],{"class":4421},[3948,20174,4425],{"class":4231},[3948,20176,4428],{"class":4267},[3948,20178,5204],{"class":4445},[3948,20180,5639],{"class":4235},[3948,20182,6949],{"class":4254},[3948,20184,5227],{"class":4445},[3948,20186,4515],{"class":4267},[3948,20188,4504],{"class":4412},[3948,20190,20191],{"class":4231},"Ваші поїздки",[3948,20193,4518],{"class":4412},[3948,20195,19257],{"class":4271},[3948,20197,4494],{"class":4412},[3948,20199,20200,20202,20204],{"class":3950,"line":7118},[3948,20201,5552],{"class":4412},[3948,20203,4245],{"class":4271},[3948,20205,4494],{"class":4412},[3948,20207,20208],{"class":3950,"line":7127},[3948,20209,4548],{"class":4231},[3948,20211,20212],{"class":3950,"line":7132},[3948,20213,3973],{"emptyLinePlaceholder":3972},[3948,20215,20216,20218,20221],{"class":3950,"line":7153},[3948,20217,4964],{"class":4267},[3948,20219,20220],{"class":4395}," listEmpty",[3948,20222,19839],{"class":4231},[3948,20224,20225,20227],{"class":3950,"line":7179},[3948,20226,4413],{"class":4412},[3948,20228,5366],{"class":4271},[3948,20230,20231,20234,20236,20238],{"class":3950,"line":7194},[3948,20232,20233],{"class":4421},"      style",[3948,20235,4425],{"class":4231},[3948,20237,4428],{"class":4267},[3948,20239,5379],{"class":4445},[3948,20241,20242,20245,20247,20249],{"class":3950,"line":7202},[3948,20243,20244],{"class":4235},"        styles",[3948,20246,3555],{"class":4445},[3948,20248,6742],{"class":4235},[3948,20250,4902],{"class":4445},[3948,20252,20253],{"class":3950,"line":7212},[3948,20254,20255],{"class":4445},"        {\n",[3948,20257,20258,20261,20263,20265,20267],{"class":3950,"line":7223},[3948,20259,20260],{"class":4235},"          paddingHorizontal:",[3948,20262,19858],{"class":4235},[3948,20264,3555],{"class":4445},[3948,20266,19922],{"class":4235},[3948,20268,4902],{"class":4445},[3948,20270,20271,20274,20276,20278,20281],{"class":3950,"line":7233},[3948,20272,20273],{"class":4235},"          paddingVertical:",[3948,20275,19858],{"class":4235},[3948,20277,3555],{"class":4445},[3948,20279,20280],{"class":4235},"xl",[3948,20282,4902],{"class":4445},[3948,20284,20285,20288,20290,20292,20294],{"class":3950,"line":7243},[3948,20286,20287],{"class":4235},"          gap:",[3948,20289,19858],{"class":4235},[3948,20291,3555],{"class":4445},[3948,20293,19922],{"class":4235},[3948,20295,4902],{"class":4445},[3948,20297,20298],{"class":3950,"line":7253},[3948,20299,20300],{"class":4445},"        },\n",[3948,20302,20303,20306],{"class":3950,"line":7262},[3948,20304,20305],{"class":4445},"      ]",[3948,20307,4003],{"class":4267},[3948,20309,20310],{"class":3950,"line":7267},[3948,20311,20312],{"class":4412},"    >\n",[3948,20314,20315,20317,20319,20322,20324,20327,20329,20331,20333,20335,20337,20339,20341],{"class":3950,"line":7287},[3948,20316,5150],{"class":4412},[3948,20318,19257],{"class":4271},[3948,20320,20321],{"class":4421}," variant",[3948,20323,4425],{"class":4231},[3948,20325,20326],{"class":4254},"\"subtitle\"",[3948,20328,5115],{"class":4421},[3948,20330,4425],{"class":4231},[3948,20332,4428],{"class":4267},[3948,20334,5125],{"class":4235},[3948,20336,3555],{"class":4445},[3948,20338,6768],{"class":4235},[3948,20340,4515],{"class":4267},[3948,20342,4494],{"class":4412},[3948,20344,20345],{"class":3950,"line":7294},[3948,20346,20347],{"class":4231},"        Поки немає поїздок\n",[3948,20349,20350,20352,20354],{"class":3950,"line":7303},[3948,20351,5241],{"class":4412},[3948,20353,19257],{"class":4271},[3948,20355,4494],{"class":4412},[3948,20357,20358,20360],{"class":3950,"line":7312},[3948,20359,5150],{"class":4412},[3948,20361,20362],{"class":4271},"AppText\n",[3948,20364,20365,20368,20370],{"class":3950,"line":7321},[3948,20366,20367],{"class":4421},"        variant",[3948,20369,4425],{"class":4231},[3948,20371,20372],{"class":4254},"\"caption\"\n",[3948,20374,20375,20378,20380,20382,20384,20386,20389],{"class":3950,"line":7326},[3948,20376,20377],{"class":4421},"        color",[3948,20379,4425],{"class":4231},[3948,20381,4428],{"class":4267},[3948,20383,18882],{"class":4235},[3948,20385,3555],{"class":4445},[3948,20387,20388],{"class":4235},"textSecondary",[3948,20390,4003],{"class":4267},[3948,20392,20393,20395,20397,20399,20401,20403,20406],{"class":3950,"line":14328},[3948,20394,5256],{"class":4421},[3948,20396,4425],{"class":4231},[3948,20398,4428],{"class":4267},[3948,20400,5125],{"class":4235},[3948,20402,3555],{"class":4445},[3948,20404,20405],{"class":4235},"emptyDesc",[3948,20407,4003],{"class":4267},[3948,20409,20410],{"class":3950,"line":14337},[3948,20411,20412],{"class":4412},"      >\n",[3948,20414,20415],{"class":3950,"line":14367},[3948,20416,20417],{"class":4231},"        Потягніть список униз, щоб «оновити», або натисніть «Нова поїздка».\n",[3948,20419,20420,20422,20424],{"class":3950,"line":14372},[3948,20421,5241],{"class":4412},[3948,20423,19257],{"class":4271},[3948,20425,4494],{"class":4412},[3948,20427,20428,20430,20432],{"class":3950,"line":14381},[3948,20429,5552],{"class":4412},[3948,20431,4245],{"class":4271},[3948,20433,4494],{"class":4412},[3948,20435,20436],{"class":3950,"line":14414},[3948,20437,4548],{"class":4231},[3948,20439,20440],{"class":3950,"line":14419},[3948,20441,3973],{"emptyLinePlaceholder":3972},[3948,20443,20444,20446],{"class":3950,"line":14428},[3948,20445,4404],{"class":4227},[3948,20447,4407],{"class":4231},[3948,20449,20450,20452,20454,20456,20458,20460,20462,20464,20466,20468],{"class":3950,"line":14451},[3948,20451,4413],{"class":4412},[3948,20453,19267],{"class":4271},[3948,20455,5115],{"class":4421},[3948,20457,4425],{"class":4231},[3948,20459,4428],{"class":4267},[3948,20461,5125],{"class":4235},[3948,20463,3555],{"class":4445},[3948,20465,5130],{"class":4235},[3948,20467,4515],{"class":4267},[3948,20469,4494],{"class":4412},[3948,20471,20472,20474,20477],{"class":3950,"line":14483},[3948,20473,19884],{"class":4267},[3948,20475,20476],{"class":5778},"\u002F* Sticky header з 08: бренд + тема + чіпи — не скроляться зі списком *\u002F",[3948,20478,4003],{"class":4267},[3948,20480,20481,20483],{"class":3950,"line":14515},[3948,20482,5150],{"class":4412},[3948,20484,5366],{"class":4271},[3948,20486,20487,20489,20491,20493],{"class":3950,"line":14524},[3948,20488,5256],{"class":4421},[3948,20490,4425],{"class":4231},[3948,20492,4428],{"class":4267},[3948,20494,5379],{"class":4445},[3948,20496,20497,20500,20502,20505],{"class":3950,"line":14529},[3948,20498,20499],{"class":4235},"          styles",[3948,20501,3555],{"class":4445},[3948,20503,20504],{"class":4235},"header",[3948,20506,4902],{"class":4445},[3948,20508,20509],{"class":3950,"line":14556},[3948,20510,20511],{"class":4445},"          {\n",[3948,20513,20514,20517,20519,20521,20523],{"class":3950,"line":14579},[3948,20515,20516],{"class":4235},"            paddingHorizontal:",[3948,20518,19858],{"class":4235},[3948,20520,3555],{"class":4445},[3948,20522,19863],{"class":4235},[3948,20524,4902],{"class":4445},[3948,20526,20527,20530,20532,20534,20536],{"class":3950,"line":14603},[3948,20528,20529],{"class":4235},"            paddingTop:",[3948,20531,19858],{"class":4235},[3948,20533,3555],{"class":4445},[3948,20535,19922],{"class":4235},[3948,20537,4902],{"class":4445},[3948,20539,20540,20543,20545,20547,20549],{"class":3950,"line":14626},[3948,20541,20542],{"class":4235},"            paddingBottom:",[3948,20544,19858],{"class":4235},[3948,20546,3555],{"class":4445},[3948,20548,19863],{"class":4235},[3948,20550,4902],{"class":4445},[3948,20552,20553,20556,20558,20560,20563],{"class":3950,"line":14635},[3948,20554,20555],{"class":4235},"            gap:",[3948,20557,19858],{"class":4235},[3948,20559,3555],{"class":4445},[3948,20561,20562],{"class":4235},"xs",[3948,20564,4902],{"class":4445},[3948,20566,20567,20570,20572,20574,20577],{"class":3950,"line":14644},[3948,20568,20569],{"class":4235},"            borderBottomColor:",[3948,20571,18982],{"class":4235},[3948,20573,3555],{"class":4445},[3948,20575,20576],{"class":4235},"border",[3948,20578,4902],{"class":4445},[3948,20580,20581],{"class":3950,"line":14651},[3948,20582,20583],{"class":4445},"          },\n",[3948,20585,20586,20589],{"class":3950,"line":14670},[3948,20587,20588],{"class":4445},"        ]",[3948,20590,4003],{"class":4267},[3948,20592,20593],{"class":3950,"line":14694},[3948,20594,20412],{"class":4412},[3948,20596,20597,20599,20601,20603,20605,20608,20610,20613,20615,20617],{"class":3950,"line":14733},[3948,20598,4489],{"class":4412},[3948,20600,19257],{"class":4271},[3948,20602,20321],{"class":4421},[3948,20604,4425],{"class":4231},[3948,20606,20607],{"class":4254},"\"title\"",[3948,20609,4504],{"class":4412},[3948,20611,20612],{"class":4231},"Мандрівник",[3948,20614,4518],{"class":4412},[3948,20616,19257],{"class":4271},[3948,20618,4494],{"class":4412},[3948,20620,20621,20623,20625,20627,20629,20632,20634,20636,20638,20640,20642,20644,20646,20648,20650,20652],{"class":3950,"line":14756},[3948,20622,4489],{"class":4412},[3948,20624,19257],{"class":4271},[3948,20626,20321],{"class":4421},[3948,20628,4425],{"class":4231},[3948,20630,20631],{"class":4254},"\"caption\"",[3948,20633,5115],{"class":4421},[3948,20635,4425],{"class":4231},[3948,20637,4428],{"class":4267},[3948,20639,5204],{"class":4445},[3948,20641,9776],{"class":4235},[3948,20643,19858],{"class":4235},[3948,20645,3555],{"class":4445},[3948,20647,20562],{"class":4235},[3948,20649,5227],{"class":4445},[3948,20651,4515],{"class":4267},[3948,20653,4494],{"class":4412},[3948,20655,20656,20659,20661,20663,20665,20667,20669,20672,20674,20677],{"class":3950,"line":14807},[3948,20657,20658],{"class":4231},"          Щоденник подорожей · тема: ",[3948,20660,4428],{"class":4267},[3948,20662,18887],{"class":4235},[3948,20664,6623],{"class":4231},[3948,20666,18929],{"class":4254},[3948,20668,6629],{"class":4231},[3948,20670,20671],{"class":4254}," 'темна'",[3948,20673,6639],{"class":4231},[3948,20675,20676],{"class":4254}," 'світла'",[3948,20678,4003],{"class":4267},[3948,20680,20681,20683,20685],{"class":3950,"line":14816},[3948,20682,4527],{"class":4412},[3948,20684,19257],{"class":4271},[3948,20686,4494],{"class":4412},[3948,20688,20689,20691],{"class":3950,"line":14825},[3948,20690,4489],{"class":4412},[3948,20692,20362],{"class":4271},[3948,20694,20695,20698,20700],{"class":3950,"line":14832},[3948,20696,20697],{"class":4421},"          variant",[3948,20699,4425],{"class":4231},[3948,20701,20372],{"class":4254},[3948,20703,20704,20706,20708,20710],{"class":3950,"line":14869},[3948,20705,6346],{"class":4421},[3948,20707,4425],{"class":4231},[3948,20709,4428],{"class":4267},[3948,20711,6611],{"class":4445},[3948,20713,20714,20717,20719,20721,20723],{"class":3950,"line":14874},[3948,20715,20716],{"class":4235},"            marginTop:",[3948,20718,19858],{"class":4235},[3948,20720,3555],{"class":4445},[3948,20722,20562],{"class":4235},[3948,20724,4902],{"class":4445},[3948,20726,20727,20730,20732,20734,20736],{"class":3950,"line":14883},[3948,20728,20729],{"class":4235},"            color:",[3948,20731,18982],{"class":4235},[3948,20733,3555],{"class":4445},[3948,20735,8309],{"class":4235},[3948,20737,4902],{"class":4445},[3948,20739,20740,20743,20745],{"class":3950,"line":14888},[3948,20741,20742],{"class":4235},"            fontWeight:",[3948,20744,6949],{"class":4254},[3948,20746,4902],{"class":4445},[3948,20748,20749,20752],{"class":3950,"line":14893},[3948,20750,20751],{"class":4445},"          }",[3948,20753,4003],{"class":4267},[3948,20755,20756],{"class":3950,"line":14898},[3948,20757,6374],{"class":4412},[3948,20759,20760,20762,20764,20766,20768,20770],{"class":3950,"line":14915},[3948,20761,13997],{"class":4267},[3948,20763,19424],{"class":4235},[3948,20765,3555],{"class":4445},[3948,20767,6321],{"class":4235},[3948,20769,19893],{"class":4231},[3948,20771,17051],{"class":4836},[3948,20773,20774,20776,20778,20780,20782,20784,20786,20788,20791,20793,20795,20797,20799,20801],{"class":3950,"line":14936},[3948,20775,17056],{"class":4231},[3948,20777,7617],{"class":4254},[3948,20779,4886],{"class":4267},[3948,20781,19424],{"class":4235},[3948,20783,3555],{"class":4445},[3948,20785,6321],{"class":4235},[3948,20787,4515],{"class":4267},[3948,20789,20790],{"class":4254}," поїздок · ",[3948,20792,4886],{"class":4267},[3948,20794,19453],{"class":4235},[3948,20796,3555],{"class":4445},[3948,20798,6321],{"class":4235},[3948,20800,4515],{"class":4267},[3948,20802,20803],{"class":4254}," місць`\n",[3948,20805,20806,20808,20811],{"class":3950,"line":14970},[3948,20807,17075],{"class":4231},[3948,20809,20810],{"class":4254}," 'Список порожній'",[3948,20812,4003],{"class":4267},[3948,20814,20815,20817,20819],{"class":3950,"line":14997},[3948,20816,4527],{"class":4412},[3948,20818,19257],{"class":4271},[3948,20820,4494],{"class":4412},[3948,20822,20823],{"class":3950,"line":15018},[3948,20824,3973],{"emptyLinePlaceholder":3972},[3948,20826,20827,20829,20831,20833,20835,20837,20839,20841,20843,20846,20848,20850,20852,20854,20856,20858,20860,20862,20864,20866,20868,20870],{"class":3950,"line":15043},[3948,20828,4489],{"class":4412},[3948,20830,4245],{"class":4271},[3948,20832,5115],{"class":4421},[3948,20834,4425],{"class":4231},[3948,20836,4428],{"class":4267},[3948,20838,5122],{"class":4445},[3948,20840,5125],{"class":4235},[3948,20842,3555],{"class":4445},[3948,20844,20845],{"class":4235},"themeRow",[3948,20847,5133],{"class":4445},[3948,20849,5332],{"class":4235},[3948,20851,19858],{"class":4235},[3948,20853,3555],{"class":4445},[3948,20855,19922],{"class":4235},[3948,20857,3593],{"class":4445},[3948,20859,9776],{"class":4235},[3948,20861,19858],{"class":4235},[3948,20863,3555],{"class":4445},[3948,20865,19922],{"class":4235},[3948,20867,5141],{"class":4445},[3948,20869,4515],{"class":4267},[3948,20871,4494],{"class":4412},[3948,20873,20874,20876,20879,20881,20883,20885,20887,20889,20891],{"class":3950,"line":15050},[3948,20875,13997],{"class":4267},[3948,20877,20878],{"class":4308},"PREFS",[3948,20880,3555],{"class":4445},[3948,20882,3582],{"class":4395},[3948,20884,6267],{"class":4445},[3948,20886,3512],{"class":4235},[3948,20888,4168],{"class":4445},[3948,20890,4454],{"class":4267},[3948,20892,5674],{"class":4445},[3948,20894,20895,20898,20901,20904,20907,20909,20912,20914,20916],{"class":3950,"line":15061},[3948,20896,20897],{"class":4267},"            const",[3948,20899,20900],{"class":4308}," active",[3948,20902,20903],{"class":4231}," =",[3948,20905,20906],{"class":4235}," preference",[3948,20908,6623],{"class":4231},[3948,20910,20911],{"class":4235}," p",[3948,20913,3555],{"class":4445},[3948,20915,4184],{"class":4235},[3948,20917,4258],{"class":4445},[3948,20919,20920,20923],{"class":3950,"line":15070},[3948,20921,20922],{"class":4227},"            return",[3948,20924,4407],{"class":4445},[3948,20926,20927,20929],{"class":3950,"line":15079},[3948,20928,9736],{"class":4412},[3948,20930,6244],{"class":4271},[3948,20932,20933,20936,20938,20940,20942,20944,20946],{"class":3950,"line":15088},[3948,20934,20935],{"class":4421},"                key",[3948,20937,4425],{"class":4231},[3948,20939,4428],{"class":4267},[3948,20941,3512],{"class":4235},[3948,20943,3555],{"class":4445},[3948,20945,4184],{"class":4235},[3948,20947,4003],{"class":4267},[3948,20949,20950,20953,20955,20957,20959,20961,20964,20966,20968,20970,20972,20974],{"class":3950,"line":15093},[3948,20951,20952],{"class":4421},"                onPress",[3948,20954,4425],{"class":4231},[3948,20956,4428],{"class":4267},[3948,20958,6256],{"class":4445},[3948,20960,4454],{"class":4267},[3948,20962,20963],{"class":4395}," setPreference",[3948,20965,4446],{"class":4445},[3948,20967,3512],{"class":4235},[3948,20969,3555],{"class":4445},[3948,20971,4184],{"class":4235},[3948,20973,7357],{"class":4445},[3948,20975,4003],{"class":4267},[3948,20977,20978,20981,20983,20985],{"class":3950,"line":15112},[3948,20979,20980],{"class":4421},"                style",[3948,20982,4425],{"class":4231},[3948,20984,4428],{"class":4267},[3948,20986,5379],{"class":4445},[3948,20988,20989,20992,20994,20997],{"class":3950,"line":15138},[3948,20990,20991],{"class":4235},"                  styles",[3948,20993,3555],{"class":4445},[3948,20995,20996],{"class":4235},"themeChip",[3948,20998,4902],{"class":4445},[3948,21000,21001],{"class":3950,"line":15158},[3948,21002,21003],{"class":4445},"                  {\n",[3948,21005,21006,21009,21011,21013,21015,21017,21019,21021,21023,21025,21028],{"class":3950,"line":15184},[3948,21007,21008],{"class":4235},"                    backgroundColor:",[3948,21010,20900],{"class":4235},[3948,21012,6629],{"class":4231},[3948,21014,18982],{"class":4235},[3948,21016,3555],{"class":4445},[3948,21018,8309],{"class":4235},[3948,21020,6639],{"class":4231},[3948,21022,18982],{"class":4235},[3948,21024,3555],{"class":4445},[3948,21026,21027],{"class":4235},"surface",[3948,21029,4902],{"class":4445},[3948,21031,21032,21035,21037,21039,21041],{"class":3950,"line":15198},[3948,21033,21034],{"class":4235},"                    borderColor:",[3948,21036,18982],{"class":4235},[3948,21038,3555],{"class":4445},[3948,21040,20576],{"class":4235},[3948,21042,4902],{"class":4445},[3948,21044,21045],{"class":3950,"line":15238},[3948,21046,21047],{"class":4445},"                  },\n",[3948,21049,21050,21053],{"class":3950,"line":15263},[3948,21051,21052],{"class":4445},"                ]",[3948,21054,4003],{"class":4267},[3948,21056,21057,21060,21062],{"class":3950,"line":15270},[3948,21058,21059],{"class":4421},"                accessibilityRole",[3948,21061,4425],{"class":4231},[3948,21063,21064],{"class":4254},"\"button\"\n",[3948,21066,21067,21070,21072,21074,21076,21079,21081,21083],{"class":3950,"line":15279},[3948,21068,21069],{"class":4421},"                accessibilityState",[3948,21071,4425],{"class":4231},[3948,21073,4428],{"class":4267},[3948,21075,5204],{"class":4445},[3948,21077,21078],{"class":4235},"selected:",[3948,21080,20900],{"class":4235},[3948,21082,5227],{"class":4445},[3948,21084,4003],{"class":4267},[3948,21086,21087,21090,21092,21094,21097,21099,21101,21103,21105,21107,21109],{"class":3950,"line":15288},[3948,21088,21089],{"class":4421},"                accessibilityLabel",[3948,21091,4425],{"class":4231},[3948,21093,4428],{"class":4267},[3948,21095,21096],{"class":4254},"`Тема: ",[3948,21098,4886],{"class":4267},[3948,21100,3512],{"class":4235},[3948,21102,3555],{"class":4445},[3948,21104,19301],{"class":4235},[3948,21106,4515],{"class":4267},[3948,21108,4899],{"class":4254},[3948,21110,4003],{"class":4267},[3948,21112,21113],{"class":3950,"line":15297},[3948,21114,21115],{"class":4412},"              >\n",[3948,21117,21118,21121],{"class":3950,"line":15306},[3948,21119,21120],{"class":4412},"                \u003C",[3948,21122,20362],{"class":4271},[3948,21124,21125,21128,21130],{"class":3950,"line":15315},[3948,21126,21127],{"class":4421},"                  variant",[3948,21129,4425],{"class":4231},[3948,21131,20372],{"class":4254},[3948,21133,21134,21137,21139,21141,21144,21146,21148,21150,21153,21155,21157,21159,21162],{"class":3950,"line":15320},[3948,21135,21136],{"class":4421},"                  color",[3948,21138,4425],{"class":4231},[3948,21140,4428],{"class":4267},[3948,21142,21143],{"class":4235},"active",[3948,21145,6629],{"class":4231},[3948,21147,18982],{"class":4235},[3948,21149,3555],{"class":4445},[3948,21151,21152],{"class":4235},"onPrimary",[3948,21154,6639],{"class":4231},[3948,21156,18982],{"class":4235},[3948,21158,3555],{"class":4445},[3948,21160,21161],{"class":4235},"text",[3948,21163,4003],{"class":4267},[3948,21165,21166,21169,21171,21173,21175,21177,21180],{"class":3950,"line":15340},[3948,21167,21168],{"class":4421},"                  style",[3948,21170,4425],{"class":4231},[3948,21172,4428],{"class":4267},[3948,21174,5125],{"class":4235},[3948,21176,3555],{"class":4445},[3948,21178,21179],{"class":4235},"themeChipText",[3948,21181,4003],{"class":4267},[3948,21183,21184],{"class":3950,"line":15348},[3948,21185,21186],{"class":4412},"                >\n",[3948,21188,21189,21192,21194,21196,21198],{"class":3950,"line":15357},[3948,21190,21191],{"class":4267},"                  {",[3948,21193,3512],{"class":4235},[3948,21195,3555],{"class":4445},[3948,21197,19301],{"class":4235},[3948,21199,4003],{"class":4267},[3948,21201,21202,21205,21207],{"class":3950,"line":15366},[3948,21203,21204],{"class":4412},"                \u003C\u002F",[3948,21206,19257],{"class":4271},[3948,21208,4494],{"class":4412},[3948,21210,21211,21214,21216],{"class":3950,"line":15375},[3948,21212,21213],{"class":4412},"              \u003C\u002F",[3948,21215,3897],{"class":4271},[3948,21217,4494],{"class":4412},[3948,21219,21220],{"class":3950,"line":15385},[3948,21221,21222],{"class":4445},"            );\n",[3948,21224,21225,21228],{"class":3950,"line":15394},[3948,21226,21227],{"class":4445},"          })",[3948,21229,4003],{"class":4267},[3948,21231,21232,21234,21236],{"class":3950,"line":15399},[3948,21233,4527],{"class":4412},[3948,21235,4245],{"class":4271},[3948,21237,4494],{"class":4412},[3948,21239,21240,21242,21244],{"class":3950,"line":15424},[3948,21241,5241],{"class":4412},[3948,21243,4245],{"class":4271},[3948,21245,4494],{"class":4412},[3948,21247,21249],{"class":3950,"line":21248},170,[3948,21250,3973],{"emptyLinePlaceholder":3972},[3948,21252,21254,21256,21258,21260,21262,21264,21266,21268,21271,21273],{"class":3950,"line":21253},171,[3948,21255,5150],{"class":4412},[3948,21257,4245],{"class":4271},[3948,21259,5115],{"class":4421},[3948,21261,4425],{"class":4231},[3948,21263,4428],{"class":4267},[3948,21265,5125],{"class":4235},[3948,21267,3555],{"class":4445},[3948,21269,21270],{"class":4235},"listWrap",[3948,21272,4515],{"class":4267},[3948,21274,4494],{"class":4412},[3948,21276,21278,21280],{"class":3950,"line":21277},172,[3948,21279,4489],{"class":4412},[3948,21281,21282],{"class":4271},"FlashList\n",[3948,21284,21286,21288,21290,21292,21294],{"class":3950,"line":21285},173,[3948,21287,6616],{"class":4421},[3948,21289,4425],{"class":4231},[3948,21291,4428],{"class":4267},[3948,21293,19424],{"class":4235},[3948,21295,4003],{"class":4267},[3948,21297,21299,21302,21304,21306,21309],{"class":3950,"line":21298},174,[3948,21300,21301],{"class":4421},"          renderItem",[3948,21303,4425],{"class":4231},[3948,21305,4428],{"class":4267},[3948,21307,21308],{"class":4235},"renderTrip",[3948,21310,4003],{"class":4267},[3948,21312,21314,21317,21319,21321,21323],{"class":3950,"line":21313},175,[3948,21315,21316],{"class":4421},"          keyExtractor",[3948,21318,4425],{"class":4231},[3948,21320,4428],{"class":4267},[3948,21322,3599],{"class":4235},[3948,21324,4003],{"class":4267},[3948,21326,21328,21331,21333,21335,21338],{"class":3950,"line":21327},176,[3948,21329,21330],{"class":4421},"          ListHeaderComponent",[3948,21332,4425],{"class":4231},[3948,21334,4428],{"class":4267},[3948,21336,21337],{"class":4235},"listHeader",[3948,21339,4003],{"class":4267},[3948,21341,21343,21346,21348,21350,21353],{"class":3950,"line":21342},177,[3948,21344,21345],{"class":4421},"          ListEmptyComponent",[3948,21347,4425],{"class":4231},[3948,21349,4428],{"class":4267},[3948,21351,21352],{"class":4235},"listEmpty",[3948,21354,4003],{"class":4267},[3948,21356,21358,21361,21363,21365],{"class":3950,"line":21357},178,[3948,21359,21360],{"class":4421},"          contentContainerStyle",[3948,21362,4425],{"class":4231},[3948,21364,4428],{"class":4267},[3948,21366,6611],{"class":4445},[3948,21368,21370,21372,21374,21376,21378],{"class":3950,"line":21369},179,[3948,21371,20516],{"class":4235},[3948,21373,19858],{"class":4235},[3948,21375,3555],{"class":4445},[3948,21377,19863],{"class":4235},[3948,21379,4902],{"class":4445},[3948,21381,21383,21385,21387,21389,21391],{"class":3950,"line":21382},180,[3948,21384,20529],{"class":4235},[3948,21386,19858],{"class":4235},[3948,21388,3555],{"class":4445},[3948,21390,19863],{"class":4235},[3948,21392,4902],{"class":4445},[3948,21394,21396,21398,21400,21402,21404],{"class":3950,"line":21395},181,[3948,21397,20542],{"class":4235},[3948,21399,19858],{"class":4235},[3948,21401,3555],{"class":4445},[3948,21403,19863],{"class":4235},[3948,21405,4902],{"class":4445},[3948,21407,21409,21411],{"class":3950,"line":21408},182,[3948,21410,20751],{"class":4445},[3948,21412,4003],{"class":4267},[3948,21414,21416,21419,21421,21423,21425,21427,21429,21431,21433,21435,21437,21439,21441,21443,21445,21447,21449,21451,21453],{"class":3950,"line":21415},183,[3948,21417,21418],{"class":4421},"          ItemSeparatorComponent",[3948,21420,4425],{"class":4231},[3948,21422,4428],{"class":4267},[3948,21424,6256],{"class":4445},[3948,21426,4454],{"class":4267},[3948,21428,10462],{"class":4412},[3948,21430,4245],{"class":4271},[3948,21432,5115],{"class":4421},[3948,21434,4425],{"class":4231},[3948,21436,4428],{"class":4267},[3948,21438,5204],{"class":4445},[3948,21440,11647],{"class":4235},[3948,21442,19858],{"class":4235},[3948,21444,3555],{"class":4445},[3948,21446,19863],{"class":4235},[3948,21448,5227],{"class":4445},[3948,21450,4515],{"class":4267},[3948,21452,10479],{"class":4412},[3948,21454,4003],{"class":4267},[3948,21456,21458,21461,21463],{"class":3950,"line":21457},184,[3948,21459,21460],{"class":4421},"          refreshControl",[3948,21462,4425],{"class":4231},[3948,21464,6611],{"class":4267},[3948,21466,21468,21470],{"class":3950,"line":21467},185,[3948,21469,5431],{"class":4412},[3948,21471,8271],{"class":4271},[3948,21473,21475,21478,21480,21482,21484],{"class":3950,"line":21474},186,[3948,21476,21477],{"class":4421},"              refreshing",[3948,21479,4425],{"class":4231},[3948,21481,4428],{"class":4267},[3948,21483,4684],{"class":4235},[3948,21485,4003],{"class":4267},[3948,21487,21489,21492,21494,21496,21498],{"class":3950,"line":21488},187,[3948,21490,21491],{"class":4421},"              onRefresh",[3948,21493,4425],{"class":4231},[3948,21495,4428],{"class":4267},[3948,21497,4687],{"class":4235},[3948,21499,4003],{"class":4267},[3948,21501,21503,21506,21508,21510,21512,21514,21516],{"class":3950,"line":21502},188,[3948,21504,21505],{"class":4421},"              tintColor",[3948,21507,4425],{"class":4231},[3948,21509,4428],{"class":4267},[3948,21511,18882],{"class":4235},[3948,21513,3555],{"class":4445},[3948,21515,8309],{"class":4235},[3948,21517,4003],{"class":4267},[3948,21519,21521,21524,21526,21528,21530,21532,21534,21536,21538],{"class":3950,"line":21520},189,[3948,21522,21523],{"class":4421},"              colors",[3948,21525,4425],{"class":4231},[3948,21527,4428],{"class":4267},[3948,21529,5122],{"class":4445},[3948,21531,18882],{"class":4235},[3948,21533,3555],{"class":4445},[3948,21535,8309],{"class":4235},[3948,21537,8327],{"class":4445},[3948,21539,4003],{"class":4267},[3948,21541,21543],{"class":3950,"line":21542},190,[3948,21544,21545],{"class":4412},"            \u002F>\n",[3948,21547,21549],{"class":3950,"line":21548},191,[3948,21550,6341],{"class":4267},[3948,21552,21554,21557,21559],{"class":3950,"line":21553},192,[3948,21555,21556],{"class":4421},"          showsVerticalScrollIndicator",[3948,21558,4425],{"class":4231},[3948,21560,20076],{"class":4267},[3948,21562,21564],{"class":3950,"line":21563},193,[3948,21565,21566],{"class":4412},"        \u002F>\n",[3948,21568,21570,21572,21574],{"class":3950,"line":21569},194,[3948,21571,5241],{"class":4412},[3948,21573,4245],{"class":4271},[3948,21575,4494],{"class":4412},[3948,21577,21579],{"class":3950,"line":21578},195,[3948,21580,3973],{"emptyLinePlaceholder":3972},[3948,21582,21584,21586],{"class":3950,"line":21583},196,[3948,21585,5150],{"class":4412},[3948,21587,5366],{"class":4271},[3948,21589,21591,21593,21595,21597],{"class":3950,"line":21590},197,[3948,21592,5256],{"class":4421},[3948,21594,4425],{"class":4231},[3948,21596,4428],{"class":4267},[3948,21598,5379],{"class":4445},[3948,21600,21602,21604,21606,21608],{"class":3950,"line":21601},198,[3948,21603,20499],{"class":4235},[3948,21605,3555],{"class":4445},[3948,21607,9727],{"class":4235},[3948,21609,4902],{"class":4445},[3948,21611,21613],{"class":3950,"line":21612},199,[3948,21614,20511],{"class":4445},[3948,21616,21618,21620,21622,21624,21626],{"class":3950,"line":21617},200,[3948,21619,20516],{"class":4235},[3948,21621,19858],{"class":4235},[3948,21623,3555],{"class":4445},[3948,21625,19863],{"class":4235},[3948,21627,4902],{"class":4445},[3948,21629,21631,21633,21635,21637,21639],{"class":3950,"line":21630},201,[3948,21632,20529],{"class":4235},[3948,21634,19858],{"class":4235},[3948,21636,3555],{"class":4445},[3948,21638,19922],{"class":4235},[3948,21640,4902],{"class":4445},[3948,21642,21644,21646,21648,21650,21652],{"class":3950,"line":21643},202,[3948,21645,20542],{"class":4235},[3948,21647,19858],{"class":4235},[3948,21649,3555],{"class":4445},[3948,21651,19863],{"class":4235},[3948,21653,4902],{"class":4445},[3948,21655,21657,21660,21662,21664,21666],{"class":3950,"line":21656},203,[3948,21658,21659],{"class":4235},"            borderTopColor:",[3948,21661,18982],{"class":4235},[3948,21663,3555],{"class":4445},[3948,21665,20576],{"class":4235},[3948,21667,4902],{"class":4445},[3948,21669,21671,21674,21676,21678,21680],{"class":3950,"line":21670},204,[3948,21672,21673],{"class":4235},"            backgroundColor:",[3948,21675,18982],{"class":4235},[3948,21677,3555],{"class":4445},[3948,21679,18987],{"class":4235},[3948,21681,4902],{"class":4445},[3948,21683,21685],{"class":3950,"line":21684},205,[3948,21686,20583],{"class":4445},[3948,21688,21690,21692],{"class":3950,"line":21689},206,[3948,21691,20588],{"class":4445},[3948,21693,4003],{"class":4267},[3948,21695,21697],{"class":3950,"line":21696},207,[3948,21698,20412],{"class":4412},[3948,21700,21702,21704],{"class":3950,"line":21701},208,[3948,21703,4489],{"class":4412},[3948,21705,21706],{"class":4271},"Button\n",[3948,21708,21710,21713,21715],{"class":3950,"line":21709},209,[3948,21711,21712],{"class":4421},"          label",[3948,21714,4425],{"class":4231},[3948,21716,21717],{"class":4254},"\"Нова поїздка\"\n",[3948,21719,21721,21723,21725,21727,21729,21731],{"class":3950,"line":21720},210,[3948,21722,6249],{"class":4421},[3948,21724,4425],{"class":4231},[3948,21726,4428],{"class":4267},[3948,21728,6256],{"class":4445},[3948,21730,4454],{"class":4267},[3948,21732,5674],{"class":4445},[3948,21734,21736,21739,21741,21743,21745,21748],{"class":3950,"line":21735},211,[3948,21737,21738],{"class":4235},"            console",[3948,21740,3555],{"class":4445},[3948,21742,19528],{"class":4395},[3948,21744,4446],{"class":4445},[3948,21746,21747],{"class":4254},"'TODO: відкрити створення поїздки'",[3948,21749,7857],{"class":4445},[3948,21751,21753,21755],{"class":3950,"line":21752},212,[3948,21754,20751],{"class":4445},[3948,21756,4003],{"class":4267},[3948,21758,21760],{"class":3950,"line":21759},213,[3948,21761,21566],{"class":4412},[3948,21763,21765,21767,21769],{"class":3950,"line":21764},214,[3948,21766,5241],{"class":4412},[3948,21768,4245],{"class":4271},[3948,21770,4494],{"class":4412},[3948,21772,21774,21776,21778],{"class":3950,"line":21773},215,[3948,21775,5552],{"class":4412},[3948,21777,19267],{"class":4271},[3948,21779,4494],{"class":4412},[3948,21781,21783],{"class":3950,"line":21782},216,[3948,21784,4548],{"class":4231},[3948,21786,21788],{"class":3950,"line":21787},217,[3948,21789,4003],{"class":4231},[3948,21791,21793],{"class":3950,"line":21792},218,[3948,21794,3973],{"emptyLinePlaceholder":3972},[3948,21796,21798,21800,21802,21804,21806,21808,21810],{"class":3950,"line":21797},219,[3948,21799,4305],{"class":4267},[3948,21801,5579],{"class":4308},[3948,21803,4970],{"class":4231},[3948,21805,4744],{"class":4235},[3948,21807,3555],{"class":4231},[3948,21809,5588],{"class":4395},[3948,21811,5591],{"class":4231},[3948,21813,21815,21817],{"class":3950,"line":21814},220,[3948,21816,5597],{"class":4235},[3948,21818,5674],{"class":4231},[3948,21820,21822,21824,21826],{"class":3950,"line":21821},221,[3948,21823,7100],{"class":4235},[3948,21825,6626],{"class":4836},[3948,21827,4902],{"class":4231},[3948,21829,21831],{"class":3950,"line":21830},222,[3948,21832,5712],{"class":4231},[3948,21834,21836,21839],{"class":3950,"line":21835},223,[3948,21837,21838],{"class":4235},"  header:",[3948,21840,5674],{"class":4231},[3948,21842,21844,21847,21849],{"class":3950,"line":21843},224,[3948,21845,21846],{"class":4235},"    borderBottomWidth:",[3948,21848,4894],{"class":4836},[3948,21850,4902],{"class":4231},[3948,21852,21854],{"class":3950,"line":21853},225,[3948,21855,5712],{"class":4231},[3948,21857,21859,21862],{"class":3950,"line":21858},226,[3948,21860,21861],{"class":4235},"  themeRow:",[3948,21863,5674],{"class":4231},[3948,21865,21867,21869,21871],{"class":3950,"line":21866},227,[3948,21868,8624],{"class":4235},[3948,21870,7072],{"class":4254},[3948,21872,4902],{"class":4231},[3948,21874,21876,21879,21882],{"class":3950,"line":21875},228,[3948,21877,21878],{"class":4235},"    flexWrap:",[3948,21880,21881],{"class":4254}," 'wrap'",[3948,21883,4902],{"class":4231},[3948,21885,21887],{"class":3950,"line":21886},229,[3948,21888,5712],{"class":4231},[3948,21890,21892,21895],{"class":3950,"line":21891},230,[3948,21893,21894],{"class":4235},"  themeChip:",[3948,21896,5674],{"class":4231},[3948,21898,21900,21902,21904],{"class":3950,"line":21899},231,[3948,21901,7100],{"class":4235},[3948,21903,5693],{"class":4836},[3948,21905,4902],{"class":4231},[3948,21907,21909,21911,21913],{"class":3950,"line":21908},232,[3948,21910,7110],{"class":4235},[3948,21912,5216],{"class":4836},[3948,21914,4902],{"class":4231},[3948,21916,21918,21920,21922],{"class":3950,"line":21917},233,[3948,21919,5690],{"class":4235},[3948,21921,5216],{"class":4836},[3948,21923,4902],{"class":4231},[3948,21925,21927,21929,21931],{"class":3950,"line":21926},234,[3948,21928,5680],{"class":4235},[3948,21930,4894],{"class":4836},[3948,21932,4902],{"class":4231},[3948,21934,21936],{"class":3950,"line":21935},235,[3948,21937,5712],{"class":4231},[3948,21939,21941,21944],{"class":3950,"line":21940},236,[3948,21942,21943],{"class":4235},"  themeChipText:",[3948,21945,5674],{"class":4231},[3948,21947,21949,21952,21954],{"class":3950,"line":21948},237,[3948,21950,21951],{"class":4235},"    fontWeight:",[3948,21953,6949],{"class":4254},[3948,21955,4902],{"class":4231},[3948,21957,21959],{"class":3950,"line":21958},238,[3948,21960,5712],{"class":4231},[3948,21962,21964,21967],{"class":3950,"line":21963},239,[3948,21965,21966],{"class":4235},"  listWrap:",[3948,21968,5674],{"class":4231},[3948,21970,21972,21974,21976],{"class":3950,"line":21971},240,[3948,21973,7205],{"class":4235},[3948,21975,4894],{"class":4836},[3948,21977,4902],{"class":4231},[3948,21979,21981],{"class":3950,"line":21980},241,[3948,21982,5712],{"class":4231},[3948,21984,21986,21988],{"class":3950,"line":21985},242,[3948,21987,7197],{"class":4235},[3948,21989,5674],{"class":4231},[3948,21991,21993,21995,21997],{"class":3950,"line":21992},243,[3948,21994,7226],{"class":4235},[3948,21996,6816],{"class":4254},[3948,21998,4902],{"class":4231},[3948,22000,22002,22004,22006],{"class":3950,"line":22001},244,[3948,22003,7236],{"class":4235},[3948,22005,6816],{"class":4254},[3948,22007,4902],{"class":4231},[3948,22009,22011],{"class":3950,"line":22010},245,[3948,22012,5712],{"class":4231},[3948,22014,22016,22018],{"class":3950,"line":22015},246,[3948,22017,7270],{"class":4235},[3948,22019,5674],{"class":4231},[3948,22021,22023,22026,22028],{"class":3950,"line":22022},247,[3948,22024,22025],{"class":4235},"    textAlign:",[3948,22027,6816],{"class":4254},[3948,22029,4902],{"class":4231},[3948,22031,22033],{"class":3950,"line":22032},248,[3948,22034,5712],{"class":4231},[3948,22036,22038,22041],{"class":3950,"line":22037},249,[3948,22039,22040],{"class":4235},"  emptyDesc:",[3948,22042,5674],{"class":4231},[3948,22044,22046,22048,22050],{"class":3950,"line":22045},250,[3948,22047,22025],{"class":4235},[3948,22049,6816],{"class":4254},[3948,22051,4902],{"class":4231},[3948,22053,22055],{"class":3950,"line":22054},251,[3948,22056,5712],{"class":4231},[3948,22058,22060,22062],{"class":3950,"line":22059},252,[3948,22061,10112],{"class":4235},[3948,22063,5674],{"class":4231},[3948,22065,22067,22070,22072],{"class":3950,"line":22066},253,[3948,22068,22069],{"class":4235},"    borderTopWidth:",[3948,22071,4894],{"class":4836},[3948,22073,4902],{"class":4231},[3948,22075,22077],{"class":3950,"line":22076},254,[3948,22078,5712],{"class":4231},[3948,22080,22082],{"class":3950,"line":22081},255,[3948,22083,5744],{"class":4231},[3939,22085,22088],{"className":12639,"code":22086,"filename":22087,"language":12641,"meta":3944,"style":3944},"export { mockTrips } from '.\u002Fmodel\u002FmockTrips';\nexport { mockPlaces } from '.\u002Fmodel\u002FmockPlaces';\nexport type { Trip, Place } from '.\u002Fmodel\u002Ftypes';\nexport { TripCard } from '.\u002Fui\u002FTripCard';\nexport { PlaceChip } from '.\u002Fui\u002FPlaceChip';\n","src\u002Ffeatures\u002Ftrips\u002Findex.ts",[3525,22089,22090,22107,22124,22148,22165],{"__ignoreMap":3944},[3948,22091,22092,22094,22096,22098,22100,22102,22105],{"class":3950,"line":3951},[3948,22093,4389],{"class":4227},[3948,22095,4232],{"class":4231},[3948,22097,17987],{"class":4235},[3948,22099,4248],{"class":4231},[3948,22101,4251],{"class":4227},[3948,22103,22104],{"class":4254}," '.\u002Fmodel\u002FmockTrips'",[3948,22106,4258],{"class":4231},[3948,22108,22109,22111,22113,22115,22117,22119,22122],{"class":3950,"line":3957},[3948,22110,4389],{"class":4227},[3948,22112,4232],{"class":4231},[3948,22114,18032],{"class":4235},[3948,22116,4248],{"class":4231},[3948,22118,4251],{"class":4227},[3948,22120,22121],{"class":4254}," '.\u002Fmodel\u002FmockPlaces'",[3948,22123,4258],{"class":4231},[3948,22125,22126,22128,22131,22133,22135,22137,22139,22141,22143,22146],{"class":3950,"line":3963},[3948,22127,4389],{"class":4227},[3948,22129,22130],{"class":4227}," type",[3948,22132,4232],{"class":4231},[3948,22134,11995],{"class":4235},[3948,22136,3593],{"class":4231},[3948,22138,18029],{"class":4235},[3948,22140,4248],{"class":4231},[3948,22142,4251],{"class":4227},[3948,22144,22145],{"class":4254}," '.\u002Fmodel\u002Ftypes'",[3948,22147,4258],{"class":4231},[3948,22149,22150,22152,22154,22156,22158,22160,22163],{"class":3950,"line":3969},[3948,22151,4389],{"class":4227},[3948,22153,4232],{"class":4231},[3948,22155,11884],{"class":4235},[3948,22157,4248],{"class":4231},[3948,22159,4251],{"class":4227},[3948,22161,22162],{"class":4254}," '.\u002Fui\u002FTripCard'",[3948,22164,4258],{"class":4231},[3948,22166,22167,22169,22171,22173,22175,22177,22180],{"class":3950,"line":3976},[3948,22168,4389],{"class":4227},[3948,22170,4232],{"class":4231},[3948,22172,18035],{"class":4235},[3948,22174,4248],{"class":4231},[3948,22176,4251],{"class":4227},[3948,22178,22179],{"class":4254}," '.\u002Fui\u002FPlaceChip'",[3948,22181,4258],{"class":4231},[3939,22183,22186],{"className":12639,"code":22184,"filename":22185,"language":12641,"meta":3944,"style":3944},"import type { Place } from '.\u002Ftypes';\n\n\u002F** Місця всередині поїздок — для горизонтальної стрічки на home. *\u002F\nexport const mockPlaces: Place[] = [\n  {\n    id: 'p1',\n    tripId: '1',\n    name: 'Говерла',\n    city: 'Карпати',\n    note: 'Схід сонця з вершини',\n  },\n  {\n    id: 'p2',\n    tripId: '1',\n    name: 'Котедж біля полонини',\n    city: 'Карпати',\n    note: 'Вечірній чай і камін',\n  },\n  {\n    id: 'p3',\n    tripId: '2',\n    name: 'Площа Ринок',\n    city: 'Львів',\n    note: 'Ратуша й кав’ярні',\n  },\n  {\n    id: 'p4',\n    tripId: '2',\n    name: 'Високий Замок',\n    city: 'Львів',\n    note: 'Панорама міста',\n  },\n  {\n    id: 'p5',\n    tripId: '3',\n    name: 'Дерибасівська',\n    city: 'Одеса',\n    note: 'Прогулянка ввечері',\n  },\n  {\n    id: 'p6',\n    tripId: '3',\n    name: 'Ланжерон',\n    city: 'Одеса',\n    note: 'Пляж і набережна',\n  },\n  {\n    id: 'p7',\n    tripId: '4',\n    name: 'Андріївський узвіз',\n    city: 'Київ',\n    note: 'Галереї й бруківка',\n  },\n  {\n    id: 'p8',\n    tripId: '6',\n    name: 'Стара фортеця',\n    city: 'Кам’янець',\n    note: 'Фото з мосту',\n  },\n  {\n    id: 'p9',\n    tripId: '9',\n    name: 'Ужгородський замок',\n    city: 'Ужгород',\n    note: 'Музей і сад',\n  },\n  {\n    id: 'p10',\n    tripId: '12',\n    name: 'Водоспад Пробій',\n    city: 'Яремче',\n    note: 'Шум води й місток',\n  },\n];\n","src\u002Ffeatures\u002Ftrips\u002Fmodel\u002FmockPlaces.ts",[3525,22187,22188,22207,22211,22216,22231,22235,22244,22253,22263,22273,22283,22287,22291,22300,22308,22317,22325,22334,22338,22342,22351,22359,22368,22377,22386,22390,22394,22403,22411,22420,22428,22437,22441,22445,22454,22462,22471,22480,22489,22493,22497,22506,22514,22523,22531,22540,22544,22548,22557,22565,22574,22583,22592,22596,22600,22609,22617,22626,22635,22644,22648,22652,22661,22670,22679,22688,22697,22701,22705,22714,22723,22732,22741,22750,22754],{"__ignoreMap":3944},[3948,22189,22190,22192,22194,22196,22198,22200,22202,22205],{"class":3950,"line":3951},[3948,22191,4228],{"class":4227},[3948,22193,22130],{"class":4227},[3948,22195,4232],{"class":4231},[3948,22197,18029],{"class":4235},[3948,22199,4248],{"class":4231},[3948,22201,4251],{"class":4227},[3948,22203,22204],{"class":4254}," '.\u002Ftypes'",[3948,22206,4258],{"class":4231},[3948,22208,22209],{"class":3950,"line":3957},[3948,22210,3973],{"emptyLinePlaceholder":3972},[3948,22212,22213],{"class":3950,"line":3963},[3948,22214,22215],{"class":5778},"\u002F** Місця всередині поїздок — для горизонтальної стрічки на home. *\u002F\n",[3948,22217,22218,22220,22222,22225,22227,22229],{"class":3950,"line":3969},[3948,22219,4389],{"class":4227},[3948,22221,13127],{"class":4267},[3948,22223,22224],{"class":4308}," mockPlaces",[3948,22226,4280],{"class":4231},[3948,22228,18029],{"class":4271},[3948,22230,4317],{"class":4231},[3948,22232,22233],{"class":3950,"line":3976},[3948,22234,10719],{"class":4231},[3948,22236,22237,22239,22242],{"class":3950,"line":3982},[3948,22238,7614],{"class":4235},[3948,22240,22241],{"class":4254}," 'p1'",[3948,22243,4902],{"class":4231},[3948,22245,22246,22249,22251],{"class":3950,"line":3988},[3948,22247,22248],{"class":4235},"    tripId:",[3948,22250,4328],{"class":4254},[3948,22252,4902],{"class":4231},[3948,22254,22255,22258,22261],{"class":3950,"line":3994},[3948,22256,22257],{"class":4235},"    name:",[3948,22259,22260],{"class":4254}," 'Говерла'",[3948,22262,4902],{"class":4231},[3948,22264,22265,22268,22271],{"class":3950,"line":4000},[3948,22266,22267],{"class":4235},"    city:",[3948,22269,22270],{"class":4254}," 'Карпати'",[3948,22272,4902],{"class":4231},[3948,22274,22275,22278,22281],{"class":3950,"line":4006},[3948,22276,22277],{"class":4235},"    note:",[3948,22279,22280],{"class":4254}," 'Схід сонця з вершини'",[3948,22282,4902],{"class":4231},[3948,22284,22285],{"class":3950,"line":4011},[3948,22286,5712],{"class":4231},[3948,22288,22289],{"class":3950,"line":4017},[3948,22290,10719],{"class":4231},[3948,22292,22293,22295,22298],{"class":3950,"line":4023},[3948,22294,7614],{"class":4235},[3948,22296,22297],{"class":4254}," 'p2'",[3948,22299,4902],{"class":4231},[3948,22301,22302,22304,22306],{"class":3950,"line":4029},[3948,22303,22248],{"class":4235},[3948,22305,4328],{"class":4254},[3948,22307,4902],{"class":4231},[3948,22309,22310,22312,22315],{"class":3950,"line":4035},[3948,22311,22257],{"class":4235},[3948,22313,22314],{"class":4254}," 'Котедж біля полонини'",[3948,22316,4902],{"class":4231},[3948,22318,22319,22321,22323],{"class":3950,"line":4041},[3948,22320,22267],{"class":4235},[3948,22322,22270],{"class":4254},[3948,22324,4902],{"class":4231},[3948,22326,22327,22329,22332],{"class":3950,"line":4046},[3948,22328,22277],{"class":4235},[3948,22330,22331],{"class":4254}," 'Вечірній чай і камін'",[3948,22333,4902],{"class":4231},[3948,22335,22336],{"class":3950,"line":4051},[3948,22337,5712],{"class":4231},[3948,22339,22340],{"class":3950,"line":4057},[3948,22341,10719],{"class":4231},[3948,22343,22344,22346,22349],{"class":3950,"line":4063},[3948,22345,7614],{"class":4235},[3948,22347,22348],{"class":4254}," 'p3'",[3948,22350,4902],{"class":4231},[3948,22352,22353,22355,22357],{"class":3950,"line":4069},[3948,22354,22248],{"class":4235},[3948,22356,4348],{"class":4254},[3948,22358,4902],{"class":4231},[3948,22360,22361,22363,22366],{"class":3950,"line":4074},[3948,22362,22257],{"class":4235},[3948,22364,22365],{"class":4254}," 'Площа Ринок'",[3948,22367,4902],{"class":4231},[3948,22369,22370,22372,22375],{"class":3950,"line":4080},[3948,22371,22267],{"class":4235},[3948,22373,22374],{"class":4254}," 'Львів'",[3948,22376,4902],{"class":4231},[3948,22378,22379,22381,22384],{"class":3950,"line":4086},[3948,22380,22277],{"class":4235},[3948,22382,22383],{"class":4254}," 'Ратуша й кав’ярні'",[3948,22385,4902],{"class":4231},[3948,22387,22388],{"class":3950,"line":4091},[3948,22389,5712],{"class":4231},[3948,22391,22392],{"class":3950,"line":4096},[3948,22393,10719],{"class":4231},[3948,22395,22396,22398,22401],{"class":3950,"line":5272},[3948,22397,7614],{"class":4235},[3948,22399,22400],{"class":4254}," 'p4'",[3948,22402,4902],{"class":4231},[3948,22404,22405,22407,22409],{"class":3950,"line":5286},[3948,22406,22248],{"class":4235},[3948,22408,4348],{"class":4254},[3948,22410,4902],{"class":4231},[3948,22412,22413,22415,22418],{"class":3950,"line":5312},[3948,22414,22257],{"class":4235},[3948,22416,22417],{"class":4254}," 'Високий Замок'",[3948,22419,4902],{"class":4231},[3948,22421,22422,22424,22426],{"class":3950,"line":5341},[3948,22423,22267],{"class":4235},[3948,22425,22374],{"class":4254},[3948,22427,4902],{"class":4231},[3948,22429,22430,22432,22435],{"class":3950,"line":5361},[3948,22431,22277],{"class":4235},[3948,22433,22434],{"class":4254}," 'Панорама міста'",[3948,22436,4902],{"class":4231},[3948,22438,22439],{"class":3950,"line":5369},[3948,22440,5712],{"class":4231},[3948,22442,22443],{"class":3950,"line":5382},[3948,22444,10719],{"class":4231},[3948,22446,22447,22449,22452],{"class":3950,"line":5395},[3948,22448,7614],{"class":4235},[3948,22450,22451],{"class":4254}," 'p5'",[3948,22453,4902],{"class":4231},[3948,22455,22456,22458,22460],{"class":3950,"line":5414},[3948,22457,22248],{"class":4235},[3948,22459,4366],{"class":4254},[3948,22461,4902],{"class":4231},[3948,22463,22464,22466,22469],{"class":3950,"line":5422},[3948,22465,22257],{"class":4235},[3948,22467,22468],{"class":4254}," 'Дерибасівська'",[3948,22470,4902],{"class":4231},[3948,22472,22473,22475,22478],{"class":3950,"line":5428},[3948,22474,22267],{"class":4235},[3948,22476,22477],{"class":4254}," 'Одеса'",[3948,22479,4902],{"class":4231},[3948,22481,22482,22484,22487],{"class":3950,"line":5478},[3948,22483,22277],{"class":4235},[3948,22485,22486],{"class":4254}," 'Прогулянка ввечері'",[3948,22488,4902],{"class":4231},[3948,22490,22491],{"class":3950,"line":5525},[3948,22492,5712],{"class":4231},[3948,22494,22495],{"class":3950,"line":5535},[3948,22496,10719],{"class":4231},[3948,22498,22499,22501,22504],{"class":3950,"line":5543},[3948,22500,7614],{"class":4235},[3948,22502,22503],{"class":4254}," 'p6'",[3948,22505,4902],{"class":4231},[3948,22507,22508,22510,22512],{"class":3950,"line":5549},[3948,22509,22248],{"class":4235},[3948,22511,4366],{"class":4254},[3948,22513,4902],{"class":4231},[3948,22515,22516,22518,22521],{"class":3950,"line":5559},[3948,22517,22257],{"class":4235},[3948,22519,22520],{"class":4254}," 'Ланжерон'",[3948,22522,4902],{"class":4231},[3948,22524,22525,22527,22529],{"class":3950,"line":5564},[3948,22526,22267],{"class":4235},[3948,22528,22477],{"class":4254},[3948,22530,4902],{"class":4231},[3948,22532,22533,22535,22538],{"class":3950,"line":5569},[3948,22534,22277],{"class":4235},[3948,22536,22537],{"class":4254}," 'Пляж і набережна'",[3948,22539,4902],{"class":4231},[3948,22541,22542],{"class":3950,"line":5574},[3948,22543,5712],{"class":4231},[3948,22545,22546],{"class":3950,"line":5594},[3948,22547,10719],{"class":4231},[3948,22549,22550,22552,22555],{"class":3950,"line":5624},[3948,22551,7614],{"class":4235},[3948,22553,22554],{"class":4254}," 'p7'",[3948,22556,4902],{"class":4231},[3948,22558,22559,22561,22563],{"class":3950,"line":5654},[3948,22560,22248],{"class":4235},[3948,22562,10844],{"class":4254},[3948,22564,4902],{"class":4231},[3948,22566,22567,22569,22572],{"class":3950,"line":5668},[3948,22568,22257],{"class":4235},[3948,22570,22571],{"class":4254}," 'Андріївський узвіз'",[3948,22573,4902],{"class":4231},[3948,22575,22576,22578,22581],{"class":3950,"line":5677},[3948,22577,22267],{"class":4235},[3948,22579,22580],{"class":4254}," 'Київ'",[3948,22582,4902],{"class":4231},[3948,22584,22585,22587,22590],{"class":3950,"line":5687},[3948,22586,22277],{"class":4235},[3948,22588,22589],{"class":4254}," 'Галереї й бруківка'",[3948,22591,4902],{"class":4231},[3948,22593,22594],{"class":3950,"line":5698},[3948,22595,5712],{"class":4231},[3948,22597,22598],{"class":3950,"line":5709},[3948,22599,10719],{"class":4231},[3948,22601,22602,22604,22607],{"class":3950,"line":5715},[3948,22603,7614],{"class":4235},[3948,22605,22606],{"class":4254}," 'p8'",[3948,22608,4902],{"class":4231},[3948,22610,22611,22613,22615],{"class":3950,"line":5741},[3948,22612,22248],{"class":4235},[3948,22614,10921],{"class":4254},[3948,22616,4902],{"class":4231},[3948,22618,22619,22621,22624],{"class":3950,"line":6725},[3948,22620,22257],{"class":4235},[3948,22622,22623],{"class":4254}," 'Стара фортеця'",[3948,22625,4902],{"class":4231},[3948,22627,22628,22630,22633],{"class":3950,"line":6749},[3948,22629,22267],{"class":4235},[3948,22631,22632],{"class":4254}," 'Кам’янець'",[3948,22634,4902],{"class":4231},[3948,22636,22637,22639,22642],{"class":3950,"line":6792},[3948,22638,22277],{"class":4235},[3948,22640,22641],{"class":4254}," 'Фото з мосту'",[3948,22643,4902],{"class":4231},[3948,22645,22646],{"class":3950,"line":6832},[3948,22647,5712],{"class":4231},[3948,22649,22650],{"class":3950,"line":6838},[3948,22651,10719],{"class":4231},[3948,22653,22654,22656,22659],{"class":3950,"line":6844},[3948,22655,7614],{"class":4235},[3948,22657,22658],{"class":4254}," 'p9'",[3948,22660,4902],{"class":4231},[3948,22662,22663,22665,22668],{"class":3950,"line":6854},[3948,22664,22248],{"class":4235},[3948,22666,22667],{"class":4254}," '9'",[3948,22669,4902],{"class":4231},[3948,22671,22672,22674,22677],{"class":3950,"line":6863},[3948,22673,22257],{"class":4235},[3948,22675,22676],{"class":4254}," 'Ужгородський замок'",[3948,22678,4902],{"class":4231},[3948,22680,22681,22683,22686],{"class":3950,"line":6868},[3948,22682,22267],{"class":4235},[3948,22684,22685],{"class":4254}," 'Ужгород'",[3948,22687,4902],{"class":4231},[3948,22689,22690,22692,22695],{"class":3950,"line":6887},[3948,22691,22277],{"class":4235},[3948,22693,22694],{"class":4254}," 'Музей і сад'",[3948,22696,4902],{"class":4231},[3948,22698,22699],{"class":3950,"line":6926},[3948,22700,5712],{"class":4231},[3948,22702,22703],{"class":3950,"line":6974},[3948,22704,10719],{"class":4231},[3948,22706,22707,22709,22712],{"class":3950,"line":6983},[3948,22708,7614],{"class":4235},[3948,22710,22711],{"class":4254}," 'p10'",[3948,22713,4902],{"class":4231},[3948,22715,22716,22718,22721],{"class":3950,"line":6990},[3948,22717,22248],{"class":4235},[3948,22719,22720],{"class":4254}," '12'",[3948,22722,4902],{"class":4231},[3948,22724,22725,22727,22730],{"class":3950,"line":6995},[3948,22726,22257],{"class":4235},[3948,22728,22729],{"class":4254}," 'Водоспад Пробій'",[3948,22731,4902],{"class":4231},[3948,22733,22734,22736,22739],{"class":3950,"line":7004},[3948,22735,22267],{"class":4235},[3948,22737,22738],{"class":4254}," 'Яремче'",[3948,22740,4902],{"class":4231},[3948,22742,22743,22745,22748],{"class":3950,"line":7009},[3948,22744,22277],{"class":4235},[3948,22746,22747],{"class":4254}," 'Шум води й місток'",[3948,22749,4902],{"class":4231},[3948,22751,22752],{"class":3950,"line":7014},[3948,22753,5712],{"class":4231},[3948,22755,22756],{"class":3950,"line":7019},[3948,22757,4380],{"class":4231},[3939,22759,22762],{"className":12639,"code":22760,"filename":22761,"language":12641,"meta":3944,"style":3944},"import type { Trip } from '.\u002Ftypes';\n\n\u002F**\n * Mock-стрічка поїздок. Більше за 3–5 елементів — щоб віртуалізація\n * (FlashList \u002F FlatList) мала сенс на домашньому екрані.\n *\u002F\nexport const mockTrips: Trip[] = [\n  {\n    id: '1',\n    title: 'Карпати на вихідні',\n    dateLabel: '12–14 бер. 2026',\n    description: 'Говерла, полонини й вечірній чай біля каміну в котеджі.',\n    coverUri:\n      'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1464822759023-fed622ff2c3b?w=800&q=80',\n    region: 'Карпати',\n  },\n  {\n    id: '2',\n    title: 'Львівський вікенд',\n    dateLabel: '2–4 трав. 2026',\n    description: 'Кава, площа Ринок, закапелки й нічний трамвай.',\n    coverUri:\n      'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1555881400-74d7acaacd8b?w=800&q=80',\n    region: 'Захід',\n  },\n  {\n    id: '3',\n    title: 'Одеса біля моря',\n    dateLabel: '18–22 лип. 2026',\n    description: 'Схід сонця на набережній, рибний ринок і вечірній Привоз.',\n    coverUri:\n      'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1507525428034-b723cf961d3e?w=800&q=80',\n    region: 'Південь',\n  },\n  {\n    id: '4',\n    title: 'Київ на три дні',\n    dateLabel: '5–7 черв. 2026',\n    description: 'Поділ, Андріївський узвіз, вечірня прогулянка Хрещатиком.',\n    coverUri:\n      'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1565008576549-57569a49371d?w=800&q=80',\n    region: 'Центр',\n  },\n  {\n    id: '5',\n    title: 'Чернівці: університет і дворики',\n    dateLabel: '20–22 вер. 2026',\n    description: 'Резиденція митрополитів, кава на Кобилянській, нічний двір.',\n    coverUri:\n      'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1519681393784-d120267933ba?w=800&q=80',\n    region: 'Захід',\n  },\n  {\n    id: '6',\n    title: 'Кам’янець-Подільський',\n    dateLabel: '11–13 квіт. 2026',\n    description: 'Фортеця, каньйон Смотрича, захід сонця з оглядового майданчика.',\n    coverUri:\n      'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1506905925346-21bda4d32df4?w=800&q=80',\n    region: 'Захід',\n  },\n  {\n    id: '7',\n    title: 'Харків: місто й парки',\n    dateLabel: '8–10 серп. 2026',\n    description: 'Саржин яр, набережна, вечірні вогні Сумської.',\n    coverUri:\n      'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1449824913935-59a10b8d2000?w=800&q=80',\n    region: 'Схід',\n  },\n  {\n    id: '8',\n    title: 'Дніпро: мости й пагорби',\n    dateLabel: '15–17 трав. 2026',\n    description: 'Мереживо мостів, прогулянка набережною, кава з видом на річку.',\n    coverUri:\n      'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1476514525535-07fb3b4ae5f1?w=800&q=80',\n    region: 'Центр',\n  },\n  {\n    id: '9',\n    title: 'Ужгород і виноград',\n    dateLabel: '25–27 жовт. 2026',\n    description: 'Замок, липова алея, дегустація біля місцевих виноробів.',\n    coverUri:\n      'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1500530855697-b586d89ba3ee?w=800&q=80',\n    region: 'Карпати',\n  },\n  {\n    id: '10',\n    title: 'Полтава: смаки й історія',\n    dateLabel: '3–5 лип. 2026',\n    description: 'Котлета по-київськи — ні, галушки; музей і тихі двори.',\n    coverUri:\n      'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1469474968028-56623f02e42e?w=800&q=80',\n    region: 'Центр',\n  },\n  {\n    id: '11',\n    title: 'Затока: пісок і шторм',\n    dateLabel: '1–7 серп. 2026',\n    description: 'Ранкові купання, вечірній вітер, книжка під парасолькою.',\n    coverUri:\n      'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1507525428034-b723cf961d3e?w=600&q=80',\n    region: 'Південь',\n  },\n  {\n    id: '12',\n    title: 'Яремче: водоспад і ліс',\n    dateLabel: '19–21 черв. 2026',\n    description: 'Прогулянка до водоспаду, гуцульська кухня, туман над смереками.',\n    coverUri:\n      'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1441974231531-c6227db76b6e?w=800&q=80',\n    region: 'Карпати',\n  },\n];\n","src\u002Ffeatures\u002Ftrips\u002Fmodel\u002FmockTrips.ts",[3525,22763,22764,22782,22786,22791,22796,22801,22806,22821,22825,22833,22842,22852,22862,22867,22874,22883,22887,22891,22899,22908,22917,22926,22930,22937,22946,22950,22954,22962,22971,22980,22989,22993,23000,23009,23013,23017,23025,23034,23043,23052,23056,23063,23072,23076,23080,23088,23097,23106,23115,23119,23126,23134,23138,23142,23150,23159,23168,23177,23181,23188,23196,23200,23204,23212,23221,23230,23239,23243,23250,23259,23263,23267,23275,23284,23293,23302,23306,23313,23321,23325,23329,23337,23346,23355,23364,23368,23375,23383,23387,23391,23400,23409,23418,23427,23431,23438,23446,23450,23454,23463,23472,23481,23490,23494,23501,23509,23513,23517,23525,23534,23543,23552,23556,23563,23571,23575],{"__ignoreMap":3944},[3948,22765,22766,22768,22770,22772,22774,22776,22778,22780],{"class":3950,"line":3951},[3948,22767,4228],{"class":4227},[3948,22769,22130],{"class":4227},[3948,22771,4232],{"class":4231},[3948,22773,11995],{"class":4235},[3948,22775,4248],{"class":4231},[3948,22777,4251],{"class":4227},[3948,22779,22204],{"class":4254},[3948,22781,4258],{"class":4231},[3948,22783,22784],{"class":3950,"line":3957},[3948,22785,3973],{"emptyLinePlaceholder":3972},[3948,22787,22788],{"class":3950,"line":3963},[3948,22789,22790],{"class":5778},"\u002F**\n",[3948,22792,22793],{"class":3950,"line":3969},[3948,22794,22795],{"class":5778}," * Mock-стрічка поїздок. Більше за 3–5 елементів — щоб віртуалізація\n",[3948,22797,22798],{"class":3950,"line":3976},[3948,22799,22800],{"class":5778}," * (FlashList \u002F FlatList) мала сенс на домашньому екрані.\n",[3948,22802,22803],{"class":3950,"line":3982},[3948,22804,22805],{"class":5778}," *\u002F\n",[3948,22807,22808,22810,22812,22815,22817,22819],{"class":3950,"line":3988},[3948,22809,4389],{"class":4227},[3948,22811,13127],{"class":4267},[3948,22813,22814],{"class":4308}," mockTrips",[3948,22816,4280],{"class":4231},[3948,22818,11995],{"class":4271},[3948,22820,4317],{"class":4231},[3948,22822,22823],{"class":3950,"line":3994},[3948,22824,10719],{"class":4231},[3948,22826,22827,22829,22831],{"class":3950,"line":4000},[3948,22828,7614],{"class":4235},[3948,22830,4328],{"class":4254},[3948,22832,4902],{"class":4231},[3948,22834,22835,22837,22840],{"class":3950,"line":4006},[3948,22836,7641],{"class":4235},[3948,22838,22839],{"class":4254}," 'Карпати на вихідні'",[3948,22841,4902],{"class":4231},[3948,22843,22844,22847,22850],{"class":3950,"line":4011},[3948,22845,22846],{"class":4235},"    dateLabel:",[3948,22848,22849],{"class":4254}," '12–14 бер. 2026'",[3948,22851,4902],{"class":4231},[3948,22853,22854,22857,22860],{"class":3950,"line":4017},[3948,22855,22856],{"class":4235},"    description:",[3948,22858,22859],{"class":4254}," 'Говерла, полонини й вечірній чай біля каміну в котеджі.'",[3948,22861,4902],{"class":4231},[3948,22863,22864],{"class":3950,"line":4023},[3948,22865,22866],{"class":4235},"    coverUri:\n",[3948,22868,22869,22872],{"class":3950,"line":4029},[3948,22870,22871],{"class":4254},"      'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1464822759023-fed622ff2c3b?w=800&q=80'",[3948,22873,4902],{"class":4231},[3948,22875,22876,22879,22881],{"class":3950,"line":4035},[3948,22877,22878],{"class":4235},"    region:",[3948,22880,22270],{"class":4254},[3948,22882,4902],{"class":4231},[3948,22884,22885],{"class":3950,"line":4041},[3948,22886,5712],{"class":4231},[3948,22888,22889],{"class":3950,"line":4046},[3948,22890,10719],{"class":4231},[3948,22892,22893,22895,22897],{"class":3950,"line":4051},[3948,22894,7614],{"class":4235},[3948,22896,4348],{"class":4254},[3948,22898,4902],{"class":4231},[3948,22900,22901,22903,22906],{"class":3950,"line":4057},[3948,22902,7641],{"class":4235},[3948,22904,22905],{"class":4254}," 'Львівський вікенд'",[3948,22907,4902],{"class":4231},[3948,22909,22910,22912,22915],{"class":3950,"line":4063},[3948,22911,22846],{"class":4235},[3948,22913,22914],{"class":4254}," '2–4 трав. 2026'",[3948,22916,4902],{"class":4231},[3948,22918,22919,22921,22924],{"class":3950,"line":4069},[3948,22920,22856],{"class":4235},[3948,22922,22923],{"class":4254}," 'Кава, площа Ринок, закапелки й нічний трамвай.'",[3948,22925,4902],{"class":4231},[3948,22927,22928],{"class":3950,"line":4074},[3948,22929,22866],{"class":4235},[3948,22931,22932,22935],{"class":3950,"line":4080},[3948,22933,22934],{"class":4254},"      'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1555881400-74d7acaacd8b?w=800&q=80'",[3948,22936,4902],{"class":4231},[3948,22938,22939,22941,22944],{"class":3950,"line":4086},[3948,22940,22878],{"class":4235},[3948,22942,22943],{"class":4254}," 'Захід'",[3948,22945,4902],{"class":4231},[3948,22947,22948],{"class":3950,"line":4091},[3948,22949,5712],{"class":4231},[3948,22951,22952],{"class":3950,"line":4096},[3948,22953,10719],{"class":4231},[3948,22955,22956,22958,22960],{"class":3950,"line":5272},[3948,22957,7614],{"class":4235},[3948,22959,4366],{"class":4254},[3948,22961,4902],{"class":4231},[3948,22963,22964,22966,22969],{"class":3950,"line":5286},[3948,22965,7641],{"class":4235},[3948,22967,22968],{"class":4254}," 'Одеса біля моря'",[3948,22970,4902],{"class":4231},[3948,22972,22973,22975,22978],{"class":3950,"line":5312},[3948,22974,22846],{"class":4235},[3948,22976,22977],{"class":4254}," '18–22 лип. 2026'",[3948,22979,4902],{"class":4231},[3948,22981,22982,22984,22987],{"class":3950,"line":5341},[3948,22983,22856],{"class":4235},[3948,22985,22986],{"class":4254}," 'Схід сонця на набережній, рибний ринок і вечірній Привоз.'",[3948,22988,4902],{"class":4231},[3948,22990,22991],{"class":3950,"line":5361},[3948,22992,22866],{"class":4235},[3948,22994,22995,22998],{"class":3950,"line":5369},[3948,22996,22997],{"class":4254},"      'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1507525428034-b723cf961d3e?w=800&q=80'",[3948,22999,4902],{"class":4231},[3948,23001,23002,23004,23007],{"class":3950,"line":5382},[3948,23003,22878],{"class":4235},[3948,23005,23006],{"class":4254}," 'Південь'",[3948,23008,4902],{"class":4231},[3948,23010,23011],{"class":3950,"line":5395},[3948,23012,5712],{"class":4231},[3948,23014,23015],{"class":3950,"line":5414},[3948,23016,10719],{"class":4231},[3948,23018,23019,23021,23023],{"class":3950,"line":5422},[3948,23020,7614],{"class":4235},[3948,23022,10844],{"class":4254},[3948,23024,4902],{"class":4231},[3948,23026,23027,23029,23032],{"class":3950,"line":5428},[3948,23028,7641],{"class":4235},[3948,23030,23031],{"class":4254}," 'Київ на три дні'",[3948,23033,4902],{"class":4231},[3948,23035,23036,23038,23041],{"class":3950,"line":5478},[3948,23037,22846],{"class":4235},[3948,23039,23040],{"class":4254}," '5–7 черв. 2026'",[3948,23042,4902],{"class":4231},[3948,23044,23045,23047,23050],{"class":3950,"line":5525},[3948,23046,22856],{"class":4235},[3948,23048,23049],{"class":4254}," 'Поділ, Андріївський узвіз, вечірня прогулянка Хрещатиком.'",[3948,23051,4902],{"class":4231},[3948,23053,23054],{"class":3950,"line":5535},[3948,23055,22866],{"class":4235},[3948,23057,23058,23061],{"class":3950,"line":5543},[3948,23059,23060],{"class":4254},"      'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1565008576549-57569a49371d?w=800&q=80'",[3948,23062,4902],{"class":4231},[3948,23064,23065,23067,23070],{"class":3950,"line":5549},[3948,23066,22878],{"class":4235},[3948,23068,23069],{"class":4254}," 'Центр'",[3948,23071,4902],{"class":4231},[3948,23073,23074],{"class":3950,"line":5559},[3948,23075,5712],{"class":4231},[3948,23077,23078],{"class":3950,"line":5564},[3948,23079,10719],{"class":4231},[3948,23081,23082,23084,23086],{"class":3950,"line":5569},[3948,23083,7614],{"class":4235},[3948,23085,10869],{"class":4254},[3948,23087,4902],{"class":4231},[3948,23089,23090,23092,23095],{"class":3950,"line":5574},[3948,23091,7641],{"class":4235},[3948,23093,23094],{"class":4254}," 'Чернівці: університет і дворики'",[3948,23096,4902],{"class":4231},[3948,23098,23099,23101,23104],{"class":3950,"line":5594},[3948,23100,22846],{"class":4235},[3948,23102,23103],{"class":4254}," '20–22 вер. 2026'",[3948,23105,4902],{"class":4231},[3948,23107,23108,23110,23113],{"class":3950,"line":5624},[3948,23109,22856],{"class":4235},[3948,23111,23112],{"class":4254}," 'Резиденція митрополитів, кава на Кобилянській, нічний двір.'",[3948,23114,4902],{"class":4231},[3948,23116,23117],{"class":3950,"line":5654},[3948,23118,22866],{"class":4235},[3948,23120,23121,23124],{"class":3950,"line":5668},[3948,23122,23123],{"class":4254},"      'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1519681393784-d120267933ba?w=800&q=80'",[3948,23125,4902],{"class":4231},[3948,23127,23128,23130,23132],{"class":3950,"line":5677},[3948,23129,22878],{"class":4235},[3948,23131,22943],{"class":4254},[3948,23133,4902],{"class":4231},[3948,23135,23136],{"class":3950,"line":5687},[3948,23137,5712],{"class":4231},[3948,23139,23140],{"class":3950,"line":5698},[3948,23141,10719],{"class":4231},[3948,23143,23144,23146,23148],{"class":3950,"line":5709},[3948,23145,7614],{"class":4235},[3948,23147,10921],{"class":4254},[3948,23149,4902],{"class":4231},[3948,23151,23152,23154,23157],{"class":3950,"line":5715},[3948,23153,7641],{"class":4235},[3948,23155,23156],{"class":4254}," 'Кам’янець-Подільський'",[3948,23158,4902],{"class":4231},[3948,23160,23161,23163,23166],{"class":3950,"line":5741},[3948,23162,22846],{"class":4235},[3948,23164,23165],{"class":4254}," '11–13 квіт. 2026'",[3948,23167,4902],{"class":4231},[3948,23169,23170,23172,23175],{"class":3950,"line":6725},[3948,23171,22856],{"class":4235},[3948,23173,23174],{"class":4254}," 'Фортеця, каньйон Смотрича, захід сонця з оглядового майданчика.'",[3948,23176,4902],{"class":4231},[3948,23178,23179],{"class":3950,"line":6749},[3948,23180,22866],{"class":4235},[3948,23182,23183,23186],{"class":3950,"line":6792},[3948,23184,23185],{"class":4254},"      'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1506905925346-21bda4d32df4?w=800&q=80'",[3948,23187,4902],{"class":4231},[3948,23189,23190,23192,23194],{"class":3950,"line":6832},[3948,23191,22878],{"class":4235},[3948,23193,22943],{"class":4254},[3948,23195,4902],{"class":4231},[3948,23197,23198],{"class":3950,"line":6838},[3948,23199,5712],{"class":4231},[3948,23201,23202],{"class":3950,"line":6844},[3948,23203,10719],{"class":4231},[3948,23205,23206,23208,23210],{"class":3950,"line":6854},[3948,23207,7614],{"class":4235},[3948,23209,10946],{"class":4254},[3948,23211,4902],{"class":4231},[3948,23213,23214,23216,23219],{"class":3950,"line":6863},[3948,23215,7641],{"class":4235},[3948,23217,23218],{"class":4254}," 'Харків: місто й парки'",[3948,23220,4902],{"class":4231},[3948,23222,23223,23225,23228],{"class":3950,"line":6868},[3948,23224,22846],{"class":4235},[3948,23226,23227],{"class":4254}," '8–10 серп. 2026'",[3948,23229,4902],{"class":4231},[3948,23231,23232,23234,23237],{"class":3950,"line":6887},[3948,23233,22856],{"class":4235},[3948,23235,23236],{"class":4254}," 'Саржин яр, набережна, вечірні вогні Сумської.'",[3948,23238,4902],{"class":4231},[3948,23240,23241],{"class":3950,"line":6926},[3948,23242,22866],{"class":4235},[3948,23244,23245,23248],{"class":3950,"line":6974},[3948,23246,23247],{"class":4254},"      'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1449824913935-59a10b8d2000?w=800&q=80'",[3948,23249,4902],{"class":4231},[3948,23251,23252,23254,23257],{"class":3950,"line":6983},[3948,23253,22878],{"class":4235},[3948,23255,23256],{"class":4254}," 'Схід'",[3948,23258,4902],{"class":4231},[3948,23260,23261],{"class":3950,"line":6990},[3948,23262,5712],{"class":4231},[3948,23264,23265],{"class":3950,"line":6995},[3948,23266,10719],{"class":4231},[3948,23268,23269,23271,23273],{"class":3950,"line":7004},[3948,23270,7614],{"class":4235},[3948,23272,10971],{"class":4254},[3948,23274,4902],{"class":4231},[3948,23276,23277,23279,23282],{"class":3950,"line":7009},[3948,23278,7641],{"class":4235},[3948,23280,23281],{"class":4254}," 'Дніпро: мости й пагорби'",[3948,23283,4902],{"class":4231},[3948,23285,23286,23288,23291],{"class":3950,"line":7014},[3948,23287,22846],{"class":4235},[3948,23289,23290],{"class":4254}," '15–17 трав. 2026'",[3948,23292,4902],{"class":4231},[3948,23294,23295,23297,23300],{"class":3950,"line":7019},[3948,23296,22856],{"class":4235},[3948,23298,23299],{"class":4254}," 'Мереживо мостів, прогулянка набережною, кава з видом на річку.'",[3948,23301,4902],{"class":4231},[3948,23303,23304],{"class":3950,"line":7036},[3948,23305,22866],{"class":4235},[3948,23307,23308,23311],{"class":3950,"line":7061},[3948,23309,23310],{"class":4254},"      'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1476514525535-07fb3b4ae5f1?w=800&q=80'",[3948,23312,4902],{"class":4231},[3948,23314,23315,23317,23319],{"class":3950,"line":7089},[3948,23316,22878],{"class":4235},[3948,23318,23069],{"class":4254},[3948,23320,4902],{"class":4231},[3948,23322,23323],{"class":3950,"line":7097},[3948,23324,5712],{"class":4231},[3948,23326,23327],{"class":3950,"line":7107},[3948,23328,10719],{"class":4231},[3948,23330,23331,23333,23335],{"class":3950,"line":7118},[3948,23332,7614],{"class":4235},[3948,23334,22667],{"class":4254},[3948,23336,4902],{"class":4231},[3948,23338,23339,23341,23344],{"class":3950,"line":7127},[3948,23340,7641],{"class":4235},[3948,23342,23343],{"class":4254}," 'Ужгород і виноград'",[3948,23345,4902],{"class":4231},[3948,23347,23348,23350,23353],{"class":3950,"line":7132},[3948,23349,22846],{"class":4235},[3948,23351,23352],{"class":4254}," '25–27 жовт. 2026'",[3948,23354,4902],{"class":4231},[3948,23356,23357,23359,23362],{"class":3950,"line":7153},[3948,23358,22856],{"class":4235},[3948,23360,23361],{"class":4254}," 'Замок, липова алея, дегустація біля місцевих виноробів.'",[3948,23363,4902],{"class":4231},[3948,23365,23366],{"class":3950,"line":7179},[3948,23367,22866],{"class":4235},[3948,23369,23370,23373],{"class":3950,"line":7194},[3948,23371,23372],{"class":4254},"      'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1500530855697-b586d89ba3ee?w=800&q=80'",[3948,23374,4902],{"class":4231},[3948,23376,23377,23379,23381],{"class":3950,"line":7202},[3948,23378,22878],{"class":4235},[3948,23380,22270],{"class":4254},[3948,23382,4902],{"class":4231},[3948,23384,23385],{"class":3950,"line":7212},[3948,23386,5712],{"class":4231},[3948,23388,23389],{"class":3950,"line":7223},[3948,23390,10719],{"class":4231},[3948,23392,23393,23395,23398],{"class":3950,"line":7233},[3948,23394,7614],{"class":4235},[3948,23396,23397],{"class":4254}," '10'",[3948,23399,4902],{"class":4231},[3948,23401,23402,23404,23407],{"class":3950,"line":7243},[3948,23403,7641],{"class":4235},[3948,23405,23406],{"class":4254}," 'Полтава: смаки й історія'",[3948,23408,4902],{"class":4231},[3948,23410,23411,23413,23416],{"class":3950,"line":7253},[3948,23412,22846],{"class":4235},[3948,23414,23415],{"class":4254}," '3–5 лип. 2026'",[3948,23417,4902],{"class":4231},[3948,23419,23420,23422,23425],{"class":3950,"line":7262},[3948,23421,22856],{"class":4235},[3948,23423,23424],{"class":4254}," 'Котлета по-київськи — ні, галушки; музей і тихі двори.'",[3948,23426,4902],{"class":4231},[3948,23428,23429],{"class":3950,"line":7267},[3948,23430,22866],{"class":4235},[3948,23432,23433,23436],{"class":3950,"line":7287},[3948,23434,23435],{"class":4254},"      'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1469474968028-56623f02e42e?w=800&q=80'",[3948,23437,4902],{"class":4231},[3948,23439,23440,23442,23444],{"class":3950,"line":7294},[3948,23441,22878],{"class":4235},[3948,23443,23069],{"class":4254},[3948,23445,4902],{"class":4231},[3948,23447,23448],{"class":3950,"line":7303},[3948,23449,5712],{"class":4231},[3948,23451,23452],{"class":3950,"line":7312},[3948,23453,10719],{"class":4231},[3948,23455,23456,23458,23461],{"class":3950,"line":7321},[3948,23457,7614],{"class":4235},[3948,23459,23460],{"class":4254}," '11'",[3948,23462,4902],{"class":4231},[3948,23464,23465,23467,23470],{"class":3950,"line":7326},[3948,23466,7641],{"class":4235},[3948,23468,23469],{"class":4254}," 'Затока: пісок і шторм'",[3948,23471,4902],{"class":4231},[3948,23473,23474,23476,23479],{"class":3950,"line":14328},[3948,23475,22846],{"class":4235},[3948,23477,23478],{"class":4254}," '1–7 серп. 2026'",[3948,23480,4902],{"class":4231},[3948,23482,23483,23485,23488],{"class":3950,"line":14337},[3948,23484,22856],{"class":4235},[3948,23486,23487],{"class":4254}," 'Ранкові купання, вечірній вітер, книжка під парасолькою.'",[3948,23489,4902],{"class":4231},[3948,23491,23492],{"class":3950,"line":14367},[3948,23493,22866],{"class":4235},[3948,23495,23496,23499],{"class":3950,"line":14372},[3948,23497,23498],{"class":4254},"      'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1507525428034-b723cf961d3e?w=600&q=80'",[3948,23500,4902],{"class":4231},[3948,23502,23503,23505,23507],{"class":3950,"line":14381},[3948,23504,22878],{"class":4235},[3948,23506,23006],{"class":4254},[3948,23508,4902],{"class":4231},[3948,23510,23511],{"class":3950,"line":14414},[3948,23512,5712],{"class":4231},[3948,23514,23515],{"class":3950,"line":14419},[3948,23516,10719],{"class":4231},[3948,23518,23519,23521,23523],{"class":3950,"line":14428},[3948,23520,7614],{"class":4235},[3948,23522,22720],{"class":4254},[3948,23524,4902],{"class":4231},[3948,23526,23527,23529,23532],{"class":3950,"line":14451},[3948,23528,7641],{"class":4235},[3948,23530,23531],{"class":4254}," 'Яремче: водоспад і ліс'",[3948,23533,4902],{"class":4231},[3948,23535,23536,23538,23541],{"class":3950,"line":14483},[3948,23537,22846],{"class":4235},[3948,23539,23540],{"class":4254}," '19–21 черв. 2026'",[3948,23542,4902],{"class":4231},[3948,23544,23545,23547,23550],{"class":3950,"line":14515},[3948,23546,22856],{"class":4235},[3948,23548,23549],{"class":4254}," 'Прогулянка до водоспаду, гуцульська кухня, туман над смереками.'",[3948,23551,4902],{"class":4231},[3948,23553,23554],{"class":3950,"line":14524},[3948,23555,22866],{"class":4235},[3948,23557,23558,23561],{"class":3950,"line":14529},[3948,23559,23560],{"class":4254},"      'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1441974231531-c6227db76b6e?w=800&q=80'",[3948,23562,4902],{"class":4231},[3948,23564,23565,23567,23569],{"class":3950,"line":14556},[3948,23566,22878],{"class":4235},[3948,23568,22270],{"class":4254},[3948,23570,4902],{"class":4231},[3948,23572,23573],{"class":3950,"line":14579},[3948,23574,5712],{"class":4231},[3948,23576,23577],{"class":3950,"line":14603},[3948,23578,4380],{"class":4231},[3939,23580,23583],{"className":12639,"code":23581,"filename":23582,"language":12641,"meta":3944,"style":3944},"export type Trip = {\n  id: string;\n  title: string;\n  dateLabel: string;\n  description: string;\n  coverUri: string;\n  \u002F** Рік \u002F період для групування (навчальні секції пізніше). *\u002F\n  region: string;\n};\n\nexport type Place = {\n  id: string;\n  tripId: string;\n  name: string;\n  city: string;\n  note: string;\n};\n","src\u002Ffeatures\u002Ftrips\u002Fmodel\u002Ftypes.ts",[3525,23584,23585,23595,23605,23615,23626,23637,23648,23653,23664,23668,23672,23682,23692,23703,23714,23725,23736],{"__ignoreMap":3944},[3948,23586,23587,23589,23591,23593],{"class":3950,"line":3951},[3948,23588,4389],{"class":4227},[3948,23590,22130],{"class":4267},[3948,23592,19212],{"class":4271},[3948,23594,10299],{"class":4231},[3948,23596,23597,23599,23601,23603],{"class":3950,"line":3957},[3948,23598,12656],{"class":4235},[3948,23600,4280],{"class":4231},[3948,23602,4283],{"class":4271},[3948,23604,4258],{"class":4231},[3948,23606,23607,23609,23611,23613],{"class":3950,"line":3963},[3948,23608,10304],{"class":4235},[3948,23610,4280],{"class":4231},[3948,23612,4283],{"class":4271},[3948,23614,4258],{"class":4231},[3948,23616,23617,23620,23622,23624],{"class":3950,"line":3969},[3948,23618,23619],{"class":4235},"  dateLabel",[3948,23621,4280],{"class":4231},[3948,23623,4283],{"class":4271},[3948,23625,4258],{"class":4231},[3948,23627,23628,23631,23633,23635],{"class":3950,"line":3976},[3948,23629,23630],{"class":4235},"  description",[3948,23632,4280],{"class":4231},[3948,23634,4283],{"class":4271},[3948,23636,4258],{"class":4231},[3948,23638,23639,23642,23644,23646],{"class":3950,"line":3982},[3948,23640,23641],{"class":4235},"  coverUri",[3948,23643,4280],{"class":4231},[3948,23645,4283],{"class":4271},[3948,23647,4258],{"class":4231},[3948,23649,23650],{"class":3950,"line":3988},[3948,23651,23652],{"class":5778},"  \u002F** Рік \u002F період для групування (навчальні секції пізніше). *\u002F\n",[3948,23654,23655,23658,23660,23662],{"class":3950,"line":3994},[3948,23656,23657],{"class":4235},"  region",[3948,23659,4280],{"class":4231},[3948,23661,4283],{"class":4271},[3948,23663,4258],{"class":4231},[3948,23665,23666],{"class":3950,"line":4000},[3948,23667,10328],{"class":4231},[3948,23669,23670],{"class":3950,"line":4006},[3948,23671,3973],{"emptyLinePlaceholder":3972},[3948,23673,23674,23676,23678,23680],{"class":3950,"line":4011},[3948,23675,4389],{"class":4227},[3948,23677,22130],{"class":4267},[3948,23679,19203],{"class":4271},[3948,23681,10299],{"class":4231},[3948,23683,23684,23686,23688,23690],{"class":3950,"line":4017},[3948,23685,12656],{"class":4235},[3948,23687,4280],{"class":4231},[3948,23689,4283],{"class":4271},[3948,23691,4258],{"class":4231},[3948,23693,23694,23697,23699,23701],{"class":3950,"line":4023},[3948,23695,23696],{"class":4235},"  tripId",[3948,23698,4280],{"class":4231},[3948,23700,4283],{"class":4271},[3948,23702,4258],{"class":4231},[3948,23704,23705,23708,23710,23712],{"class":3950,"line":4029},[3948,23706,23707],{"class":4235},"  name",[3948,23709,4280],{"class":4231},[3948,23711,4283],{"class":4271},[3948,23713,4258],{"class":4231},[3948,23715,23716,23719,23721,23723],{"class":3950,"line":4035},[3948,23717,23718],{"class":4235},"  city",[3948,23720,4280],{"class":4231},[3948,23722,4283],{"class":4271},[3948,23724,4258],{"class":4231},[3948,23726,23727,23730,23732,23734],{"class":3950,"line":4041},[3948,23728,23729],{"class":4235},"  note",[3948,23731,4280],{"class":4231},[3948,23733,4283],{"class":4271},[3948,23735,4258],{"class":4231},[3948,23737,23738],{"class":3950,"line":4046},[3948,23739,10328],{"class":4231},[3939,23741,23744],{"className":4218,"code":23742,"filename":23743,"language":4220,"meta":3944,"style":3944},"import { memo } from 'react';\nimport { Pressable, StyleSheet } from 'react-native';\n\nimport type { Place } from '@\u002Ffeatures\u002Ftrips\u002Fmodel\u002Ftypes';\nimport { useTheme } from '@\u002Fshared\u002Ftheme';\nimport { AppText } from '@\u002Fshared\u002Fui';\n\ntype PlaceChipProps = {\n  place: Place;\n  onPress?: (place: Place) => void;\n};\n\nfunction PlaceChipComponent({ place, onPress }: PlaceChipProps) {\n  const { colors, spacing, radius } = useTheme();\n\n  return (\n    \u003CPressable\n      accessibilityRole=\"button\"\n      accessibilityLabel={`Місце ${place.name}, ${place.city}`}\n      onPress={() => onPress?.(place)}\n      style={({ pressed }) => [\n        styles.chip,\n        {\n          backgroundColor: colors.surface,\n          borderColor: colors.border,\n          borderRadius: radius.md,\n          padding: spacing.sm,\n          opacity: pressed ? 0.9 : 1,\n        },\n      ]}\n    >\n      \u003CAppText variant=\"subtitle\" numberOfLines={1} style={styles.name}>\n        {place.name}\n      \u003C\u002FAppText>\n      \u003CAppText variant=\"caption\" color={colors.primary} style={styles.city}>\n        {place.city}\n      \u003C\u002FAppText>\n      \u003CAppText variant=\"caption\" numberOfLines={2} style={styles.note}>\n        {place.note}\n      \u003C\u002FAppText>\n    \u003C\u002FPressable>\n  );\n}\n\nexport const PlaceChip = memo(PlaceChipComponent);\n\nconst styles = StyleSheet.create({\n  chip: {\n    width: 160,\n    borderWidth: 1,\n    minHeight: 96,\n  },\n  name: {\n    fontSize: 16,\n  },\n  city: {\n    marginTop: 4,\n    fontWeight: '600',\n  },\n  note: {\n    marginTop: 6,\n  },\n});\n","src\u002Ffeatures\u002Ftrips\u002Fui\u002FPlaceChip.tsx",[3525,23745,23746,23762,23782,23786,23805,23821,23837,23841,23850,23861,23884,23888,23892,23915,23938,23942,23948,23954,23963,24002,24026,24045,24056,24060,24073,24086,24100,24113,24132,24136,24142,24146,24185,24197,24205,24247,24259,24267,24305,24317,24325,24333,24337,24341,24345,24365,24369,24385,24392,24402,24410,24419,24423,24430,24439,24443,24450,24459,24467,24471,24478,24486,24490],{"__ignoreMap":3944},[3948,23747,23748,23750,23752,23754,23756,23758,23760],{"class":3950,"line":3951},[3948,23749,4228],{"class":4227},[3948,23751,4232],{"class":4231},[3948,23753,11873],{"class":4235},[3948,23755,4248],{"class":4231},[3948,23757,4251],{"class":4227},[3948,23759,5897],{"class":4254},[3948,23761,4258],{"class":4231},[3948,23763,23764,23766,23768,23770,23772,23774,23776,23778,23780],{"class":3950,"line":3957},[3948,23765,4228],{"class":4227},[3948,23767,4232],{"class":4231},[3948,23769,3897],{"class":4235},[3948,23771,3593],{"class":4231},[3948,23773,4744],{"class":4235},[3948,23775,4248],{"class":4231},[3948,23777,4251],{"class":4227},[3948,23779,4255],{"class":4254},[3948,23781,4258],{"class":4231},[3948,23783,23784],{"class":3950,"line":3963},[3948,23785,3973],{"emptyLinePlaceholder":3972},[3948,23787,23788,23790,23792,23794,23796,23798,23800,23803],{"class":3950,"line":3969},[3948,23789,4228],{"class":4227},[3948,23791,22130],{"class":4227},[3948,23793,4232],{"class":4231},[3948,23795,18029],{"class":4235},[3948,23797,4248],{"class":4231},[3948,23799,4251],{"class":4227},[3948,23801,23802],{"class":4254}," '@\u002Ffeatures\u002Ftrips\u002Fmodel\u002Ftypes'",[3948,23804,4258],{"class":4231},[3948,23806,23807,23809,23811,23813,23815,23817,23819],{"class":3950,"line":3976},[3948,23808,4228],{"class":4227},[3948,23810,4232],{"class":4231},[3948,23812,18851],{"class":4235},[3948,23814,4248],{"class":4231},[3948,23816,4251],{"class":4227},[3948,23818,18858],{"class":4254},[3948,23820,4258],{"class":4231},[3948,23822,23823,23825,23827,23829,23831,23833,23835],{"class":3950,"line":3982},[3948,23824,4228],{"class":4227},[3948,23826,4232],{"class":4231},[3948,23828,19257],{"class":4235},[3948,23830,4248],{"class":4231},[3948,23832,4251],{"class":4227},[3948,23834,19274],{"class":4254},[3948,23836,4258],{"class":4231},[3948,23838,23839],{"class":3950,"line":3988},[3948,23840,3973],{"emptyLinePlaceholder":3972},[3948,23842,23843,23845,23848],{"class":3950,"line":3994},[3948,23844,4268],{"class":4267},[3948,23846,23847],{"class":4271}," PlaceChipProps",[3948,23849,10299],{"class":4231},[3948,23851,23852,23855,23857,23859],{"class":3950,"line":4000},[3948,23853,23854],{"class":4235},"  place",[3948,23856,4280],{"class":4231},[3948,23858,18029],{"class":4271},[3948,23860,4258],{"class":4231},[3948,23862,23863,23866,23869,23871,23873,23875,23877,23879,23882],{"class":3950,"line":4006},[3948,23864,23865],{"class":4395},"  onPress",[3948,23867,23868],{"class":4231},"?: (",[3948,23870,19575],{"class":4235},[3948,23872,4280],{"class":4231},[3948,23874,18029],{"class":4271},[3948,23876,4168],{"class":4231},[3948,23878,4454],{"class":4267},[3948,23880,23881],{"class":4271}," void",[3948,23883,4258],{"class":4231},[3948,23885,23886],{"class":3950,"line":4011},[3948,23887,10328],{"class":4231},[3948,23889,23890],{"class":3950,"line":4017},[3948,23891,3973],{"emptyLinePlaceholder":3972},[3948,23893,23894,23896,23899,23901,23903,23905,23907,23910,23913],{"class":3950,"line":4023},[3948,23895,7558],{"class":4267},[3948,23897,23898],{"class":4395}," PlaceChipComponent",[3948,23900,4475],{"class":4231},[3948,23902,19575],{"class":4235},[3948,23904,3593],{"class":4231},[3948,23906,11906],{"class":4235},[3948,23908,23909],{"class":4231}," }: ",[3948,23911,23912],{"class":4271},"PlaceChipProps",[3948,23914,13475],{"class":4231},[3948,23916,23917,23919,23921,23923,23925,23927,23929,23932,23934,23936],{"class":3950,"line":4029},[3948,23918,4964],{"class":4267},[3948,23920,4232],{"class":4231},[3948,23922,18882],{"class":4308},[3948,23924,3593],{"class":4231},[3948,23926,19395],{"class":4308},[3948,23928,3593],{"class":4231},[3948,23930,23931],{"class":4308},"radius",[3948,23933,18890],{"class":4231},[3948,23935,18851],{"class":4395},[3948,23937,18895],{"class":4231},[3948,23939,23940],{"class":3950,"line":4035},[3948,23941,3973],{"emptyLinePlaceholder":3972},[3948,23943,23944,23946],{"class":3950,"line":4041},[3948,23945,4404],{"class":4227},[3948,23947,4407],{"class":4231},[3948,23949,23950,23952],{"class":3950,"line":4046},[3948,23951,4413],{"class":4412},[3948,23953,6244],{"class":4271},[3948,23955,23956,23959,23961],{"class":3950,"line":4051},[3948,23957,23958],{"class":4421},"      accessibilityRole",[3948,23960,4425],{"class":4231},[3948,23962,21064],{"class":4254},[3948,23964,23965,23968,23970,23972,23975,23977,23979,23981,23983,23985,23987,23989,23991,23993,23996,23998,24000],{"class":3950,"line":4057},[3948,23966,23967],{"class":4421},"      accessibilityLabel",[3948,23969,4425],{"class":4231},[3948,23971,4428],{"class":4267},[3948,23973,23974],{"class":4254},"`Місце ",[3948,23976,4886],{"class":4267},[3948,23978,19575],{"class":4235},[3948,23980,3555],{"class":4445},[3948,23982,19615],{"class":4235},[3948,23984,4515],{"class":4267},[3948,23986,3593],{"class":4254},[3948,23988,4886],{"class":4267},[3948,23990,19575],{"class":4235},[3948,23992,3555],{"class":4445},[3948,23994,23995],{"class":4235},"city",[3948,23997,4515],{"class":4267},[3948,23999,4899],{"class":4254},[3948,24001,4003],{"class":4267},[3948,24003,24004,24007,24009,24011,24013,24015,24017,24020,24022,24024],{"class":3950,"line":4063},[3948,24005,24006],{"class":4421},"      onPress",[3948,24008,4425],{"class":4231},[3948,24010,4428],{"class":4267},[3948,24012,6256],{"class":4445},[3948,24014,4454],{"class":4267},[3948,24016,12021],{"class":4395},[3948,24018,24019],{"class":4445},"?.(",[3948,24021,19575],{"class":4235},[3948,24023,7357],{"class":4445},[3948,24025,4003],{"class":4267},[3948,24027,24028,24030,24032,24034,24036,24039,24041,24043],{"class":3950,"line":4069},[3948,24029,20233],{"class":4421},[3948,24031,4425],{"class":4231},[3948,24033,4428],{"class":4267},[3948,24035,4475],{"class":4445},[3948,24037,24038],{"class":4235},"pressed",[3948,24040,4480],{"class":4445},[3948,24042,4454],{"class":4267},[3948,24044,6277],{"class":4445},[3948,24046,24047,24049,24051,24054],{"class":3950,"line":4074},[3948,24048,20244],{"class":4235},[3948,24050,3555],{"class":4445},[3948,24052,24053],{"class":4235},"chip",[3948,24055,4902],{"class":4445},[3948,24057,24058],{"class":3950,"line":4080},[3948,24059,20255],{"class":4445},[3948,24061,24062,24065,24067,24069,24071],{"class":3950,"line":4086},[3948,24063,24064],{"class":4235},"          backgroundColor:",[3948,24066,18982],{"class":4235},[3948,24068,3555],{"class":4445},[3948,24070,21027],{"class":4235},[3948,24072,4902],{"class":4445},[3948,24074,24075,24078,24080,24082,24084],{"class":3950,"line":4091},[3948,24076,24077],{"class":4235},"          borderColor:",[3948,24079,18982],{"class":4235},[3948,24081,3555],{"class":4445},[3948,24083,20576],{"class":4235},[3948,24085,4902],{"class":4445},[3948,24087,24088,24091,24094,24096,24098],{"class":3950,"line":4096},[3948,24089,24090],{"class":4235},"          borderRadius:",[3948,24092,24093],{"class":4235}," radius",[3948,24095,3555],{"class":4445},[3948,24097,19863],{"class":4235},[3948,24099,4902],{"class":4445},[3948,24101,24102,24105,24107,24109,24111],{"class":3950,"line":5272},[3948,24103,24104],{"class":4235},"          padding:",[3948,24106,19858],{"class":4235},[3948,24108,3555],{"class":4445},[3948,24110,19922],{"class":4235},[3948,24112,4902],{"class":4445},[3948,24114,24115,24118,24121,24123,24126,24128,24130],{"class":3950,"line":5286},[3948,24116,24117],{"class":4235},"          opacity:",[3948,24119,24120],{"class":4235}," pressed",[3948,24122,6629],{"class":4231},[3948,24124,24125],{"class":4836}," 0.9",[3948,24127,6639],{"class":4231},[3948,24129,4894],{"class":4836},[3948,24131,4902],{"class":4445},[3948,24133,24134],{"class":3950,"line":5312},[3948,24135,20300],{"class":4445},[3948,24137,24138,24140],{"class":3950,"line":5341},[3948,24139,20305],{"class":4445},[3948,24141,4003],{"class":4267},[3948,24143,24144],{"class":3950,"line":5361},[3948,24145,20312],{"class":4412},[3948,24147,24148,24150,24152,24154,24156,24158,24161,24163,24165,24167,24169,24171,24173,24175,24177,24179,24181,24183],{"class":3950,"line":5369},[3948,24149,5150],{"class":4412},[3948,24151,19257],{"class":4271},[3948,24153,20321],{"class":4421},[3948,24155,4425],{"class":4231},[3948,24157,20326],{"class":4254},[3948,24159,24160],{"class":4421}," numberOfLines",[3948,24162,4425],{"class":4231},[3948,24164,4428],{"class":4267},[3948,24166,4872],{"class":4836},[3948,24168,4515],{"class":4267},[3948,24170,5115],{"class":4421},[3948,24172,4425],{"class":4231},[3948,24174,4428],{"class":4267},[3948,24176,5125],{"class":4235},[3948,24178,3555],{"class":4445},[3948,24180,19615],{"class":4235},[3948,24182,4515],{"class":4267},[3948,24184,4494],{"class":4412},[3948,24186,24187,24189,24191,24193,24195],{"class":3950,"line":5382},[3948,24188,9552],{"class":4267},[3948,24190,19575],{"class":4235},[3948,24192,3555],{"class":4445},[3948,24194,19615],{"class":4235},[3948,24196,4003],{"class":4267},[3948,24198,24199,24201,24203],{"class":3950,"line":5395},[3948,24200,5241],{"class":4412},[3948,24202,19257],{"class":4271},[3948,24204,4494],{"class":4412},[3948,24206,24207,24209,24211,24213,24215,24217,24219,24221,24223,24225,24227,24229,24231,24233,24235,24237,24239,24241,24243,24245],{"class":3950,"line":5414},[3948,24208,5150],{"class":4412},[3948,24210,19257],{"class":4271},[3948,24212,20321],{"class":4421},[3948,24214,4425],{"class":4231},[3948,24216,20631],{"class":4254},[3948,24218,9742],{"class":4421},[3948,24220,4425],{"class":4231},[3948,24222,4428],{"class":4267},[3948,24224,18882],{"class":4235},[3948,24226,3555],{"class":4445},[3948,24228,8309],{"class":4235},[3948,24230,4515],{"class":4267},[3948,24232,5115],{"class":4421},[3948,24234,4425],{"class":4231},[3948,24236,4428],{"class":4267},[3948,24238,5125],{"class":4235},[3948,24240,3555],{"class":4445},[3948,24242,23995],{"class":4235},[3948,24244,4515],{"class":4267},[3948,24246,4494],{"class":4412},[3948,24248,24249,24251,24253,24255,24257],{"class":3950,"line":5422},[3948,24250,9552],{"class":4267},[3948,24252,19575],{"class":4235},[3948,24254,3555],{"class":4445},[3948,24256,23995],{"class":4235},[3948,24258,4003],{"class":4267},[3948,24260,24261,24263,24265],{"class":3950,"line":5428},[3948,24262,5241],{"class":4412},[3948,24264,19257],{"class":4271},[3948,24266,4494],{"class":4412},[3948,24268,24269,24271,24273,24275,24277,24279,24281,24283,24285,24287,24289,24291,24293,24295,24297,24299,24301,24303],{"class":3950,"line":5478},[3948,24270,5150],{"class":4412},[3948,24272,19257],{"class":4271},[3948,24274,20321],{"class":4421},[3948,24276,4425],{"class":4231},[3948,24278,20631],{"class":4254},[3948,24280,24160],{"class":4421},[3948,24282,4425],{"class":4231},[3948,24284,4428],{"class":4267},[3948,24286,4916],{"class":4836},[3948,24288,4515],{"class":4267},[3948,24290,5115],{"class":4421},[3948,24292,4425],{"class":4231},[3948,24294,4428],{"class":4267},[3948,24296,5125],{"class":4235},[3948,24298,3555],{"class":4445},[3948,24300,3655],{"class":4235},[3948,24302,4515],{"class":4267},[3948,24304,4494],{"class":4412},[3948,24306,24307,24309,24311,24313,24315],{"class":3950,"line":5525},[3948,24308,9552],{"class":4267},[3948,24310,19575],{"class":4235},[3948,24312,3555],{"class":4445},[3948,24314,3655],{"class":4235},[3948,24316,4003],{"class":4267},[3948,24318,24319,24321,24323],{"class":3950,"line":5535},[3948,24320,5241],{"class":4412},[3948,24322,19257],{"class":4271},[3948,24324,4494],{"class":4412},[3948,24326,24327,24329,24331],{"class":3950,"line":5543},[3948,24328,5552],{"class":4412},[3948,24330,3897],{"class":4271},[3948,24332,4494],{"class":4412},[3948,24334,24335],{"class":3950,"line":5549},[3948,24336,4548],{"class":4231},[3948,24338,24339],{"class":3950,"line":5559},[3948,24340,4003],{"class":4231},[3948,24342,24343],{"class":3950,"line":5564},[3948,24344,3973],{"emptyLinePlaceholder":3972},[3948,24346,24347,24349,24351,24354,24356,24358,24360,24363],{"class":3950,"line":5569},[3948,24348,4389],{"class":4227},[3948,24350,13127],{"class":4267},[3948,24352,24353],{"class":4308}," PlaceChip",[3948,24355,4970],{"class":4231},[3948,24357,11873],{"class":4395},[3948,24359,4446],{"class":4231},[3948,24361,24362],{"class":4235},"PlaceChipComponent",[3948,24364,7857],{"class":4231},[3948,24366,24367],{"class":3950,"line":5574},[3948,24368,3973],{"emptyLinePlaceholder":3972},[3948,24370,24371,24373,24375,24377,24379,24381,24383],{"class":3950,"line":5594},[3948,24372,4305],{"class":4267},[3948,24374,5579],{"class":4308},[3948,24376,4970],{"class":4231},[3948,24378,4744],{"class":4235},[3948,24380,3555],{"class":4231},[3948,24382,5588],{"class":4395},[3948,24384,5591],{"class":4231},[3948,24386,24387,24390],{"class":3950,"line":5624},[3948,24388,24389],{"class":4235},"  chip:",[3948,24391,5674],{"class":4231},[3948,24393,24394,24397,24400],{"class":3950,"line":5654},[3948,24395,24396],{"class":4235},"    width:",[3948,24398,24399],{"class":4836}," 160",[3948,24401,4902],{"class":4231},[3948,24403,24404,24406,24408],{"class":3950,"line":5668},[3948,24405,5680],{"class":4235},[3948,24407,4894],{"class":4836},[3948,24409,4902],{"class":4231},[3948,24411,24412,24414,24417],{"class":3950,"line":5677},[3948,24413,7215],{"class":4235},[3948,24415,24416],{"class":4836}," 96",[3948,24418,4902],{"class":4231},[3948,24420,24421],{"class":3950,"line":5687},[3948,24422,5712],{"class":4231},[3948,24424,24425,24428],{"class":3950,"line":5698},[3948,24426,24427],{"class":4235},"  name:",[3948,24429,5674],{"class":4231},[3948,24431,24432,24435,24437],{"class":3950,"line":5709},[3948,24433,24434],{"class":4235},"    fontSize:",[3948,24436,5327],{"class":4836},[3948,24438,4902],{"class":4231},[3948,24440,24441],{"class":3950,"line":5715},[3948,24442,5712],{"class":4231},[3948,24444,24445,24448],{"class":3950,"line":5741},[3948,24446,24447],{"class":4235},"  city:",[3948,24449,5674],{"class":4231},[3948,24451,24452,24455,24457],{"class":3950,"line":6725},[3948,24453,24454],{"class":4235},"    marginTop:",[3948,24456,5649],{"class":4836},[3948,24458,4902],{"class":4231},[3948,24460,24461,24463,24465],{"class":3950,"line":6749},[3948,24462,21951],{"class":4235},[3948,24464,6949],{"class":4254},[3948,24466,4902],{"class":4231},[3948,24468,24469],{"class":3950,"line":6792},[3948,24470,5712],{"class":4231},[3948,24472,24473,24476],{"class":3950,"line":6832},[3948,24474,24475],{"class":4235},"  note:",[3948,24477,5674],{"class":4231},[3948,24479,24480,24482,24484],{"class":3950,"line":6838},[3948,24481,24454],{"class":4235},[3948,24483,14951],{"class":4836},[3948,24485,4902],{"class":4231},[3948,24487,24488],{"class":3950,"line":6844},[3948,24489,5712],{"class":4231},[3948,24491,24492],{"class":3950,"line":6854},[3948,24493,5744],{"class":4231},[3939,24495,24498],{"className":4218,"code":24496,"filename":24497,"language":4220,"meta":3944,"style":3944},"import { memo } from 'react';\nimport { Image, Platform, Pressable, StyleSheet, View } from 'react-native';\n\nimport type { Trip } from '@\u002Ffeatures\u002Ftrips\u002Fmodel\u002Ftypes';\nimport { useTheme } from '@\u002Fshared\u002Ftheme';\nimport { AppText } from '@\u002Fshared\u002Fui';\n\ntype TripCardProps = {\n  trip: Trip;\n  onPress?: (trip: Trip) => void;\n};\n\nfunction TripCardComponent({ trip, onPress }: TripCardProps) {\n  const { colors, spacing, radius } = useTheme();\n\n  return (\n    \u003CPressable\n      accessibilityRole=\"button\"\n      accessibilityLabel={`Поїздка ${trip.title}`}\n      onPress={() => onPress?.(trip)}\n      style={({ pressed }) => [\n        styles.card,\n        {\n          backgroundColor: colors.surface,\n          borderColor: colors.border,\n          borderRadius: radius.lg,\n        },\n        pressed && styles.cardPressed,\n      ]}\n    >\n      \u003CImage\n        source={{ uri: trip.coverUri }}\n        style={[styles.cover, { backgroundColor: colors.border }]}\n        resizeMode=\"cover\"\n        accessibilityIgnoresInvertColors\n      \u002F>\n      \u003CView style={[styles.body, { padding: spacing.md, gap: spacing.xs }]}>\n        \u003CView style={[styles.titleRow, { gap: spacing.sm }]}>\n          \u003CAppText variant=\"subtitle\" numberOfLines={1} style={styles.titleFlex}>\n            {trip.title}\n          \u003C\u002FAppText>\n          \u003CAppText variant=\"caption\" style={styles.dates}>\n            {trip.dateLabel}\n          \u003C\u002FAppText>\n        \u003C\u002FView>\n        \u003CAppText variant=\"caption\" color={colors.primary} style={styles.region}>\n          {trip.region}\n        \u003C\u002FAppText>\n        \u003CAppText\n          numberOfLines={2}\n          style={{ marginTop: spacing.xs, color: colors.textSecondary }}\n        >\n          {trip.description}\n        \u003C\u002FAppText>\n        \u003CView style={[styles.footer, { marginTop: spacing.sm }]}>\n          \u003CAppText variant=\"caption\" color={colors.primary}>\n            Відкрити\n          \u003C\u002FAppText>\n        \u003C\u002FView>\n      \u003C\u002FView>\n    \u003C\u002FPressable>\n  );\n}\n\n\u002F** memo: рядок списку не перемальовується, якщо props ті самі. *\u002F\nexport const TripCard = memo(TripCardComponent);\n\nconst styles = StyleSheet.create({\n  card: {\n    borderWidth: 1,\n    overflow: 'hidden',\n    ...Platform.select({\n      ios: {\n        shadowColor: '#000',\n        shadowOpacity: 0.08,\n        shadowRadius: 10,\n        shadowOffset: { width: 0, height: 4 },\n      },\n      android: {\n        elevation: 3,\n      },\n      default: {},\n    }),\n  },\n  cardPressed: {\n    opacity: 0.92,\n  },\n  cover: {\n    width: '100%',\n    height: 160,\n  },\n  body: {},\n  titleRow: {\n    flexDirection: 'row',\n    alignItems: 'center',\n  },\n  titleFlex: {\n    flex: 1,\n  },\n  dates: {\n    flexShrink: 0,\n  },\n  region: {\n    fontWeight: '600',\n  },\n  footer: {\n    alignItems: 'flex-start',\n  },\n});\n","src\u002Ffeatures\u002Ftrips\u002Fui\u002FTripCard.tsx",[3525,24499,24500,24516,24549,24553,24571,24587,24603,24607,24616,24627,24647,24651,24655,24677,24699,24703,24709,24715,24723,24748,24770,24788,24798,24802,24814,24826,24839,24843,24860,24866,24870,24877,24902,24933,24943,24948,24952,24999,25036,25075,25088,25096,25125,25138,25146,25154,25196,25208,25216,25222,25235,25267,25271,25284,25292,25328,25356,25361,25369,25377,25385,25393,25397,25401,25405,25410,25430,25434,25450,25456,25464,25474,25488,25495,25505,25515,25524,25543,25547,25554,25564,25568,25576,25581,25585,25592,25602,25606,25613,25622,25631,25635,25642,25649,25657,25665,25669,25676,25684,25688,25695,25704,25708,25715,25723,25727,25733,25742,25746],{"__ignoreMap":3944},[3948,24501,24502,24504,24506,24508,24510,24512,24514],{"class":3950,"line":3951},[3948,24503,4228],{"class":4227},[3948,24505,4232],{"class":4231},[3948,24507,11873],{"class":4235},[3948,24509,4248],{"class":4231},[3948,24511,4251],{"class":4227},[3948,24513,5897],{"class":4254},[3948,24515,4258],{"class":4231},[3948,24517,24518,24520,24522,24524,24526,24529,24531,24533,24535,24537,24539,24541,24543,24545,24547],{"class":3950,"line":3957},[3948,24519,4228],{"class":4227},[3948,24521,4232],{"class":4231},[3948,24523,3863],{"class":4235},[3948,24525,3593],{"class":4231},[3948,24527,24528],{"class":4235},"Platform",[3948,24530,3593],{"class":4231},[3948,24532,3897],{"class":4235},[3948,24534,3593],{"class":4231},[3948,24536,4744],{"class":4235},[3948,24538,3593],{"class":4231},[3948,24540,4245],{"class":4235},[3948,24542,4248],{"class":4231},[3948,24544,4251],{"class":4227},[3948,24546,4255],{"class":4254},[3948,24548,4258],{"class":4231},[3948,24550,24551],{"class":3950,"line":3963},[3948,24552,3973],{"emptyLinePlaceholder":3972},[3948,24554,24555,24557,24559,24561,24563,24565,24567,24569],{"class":3950,"line":3969},[3948,24556,4228],{"class":4227},[3948,24558,22130],{"class":4227},[3948,24560,4232],{"class":4231},[3948,24562,11995],{"class":4235},[3948,24564,4248],{"class":4231},[3948,24566,4251],{"class":4227},[3948,24568,23802],{"class":4254},[3948,24570,4258],{"class":4231},[3948,24572,24573,24575,24577,24579,24581,24583,24585],{"class":3950,"line":3976},[3948,24574,4228],{"class":4227},[3948,24576,4232],{"class":4231},[3948,24578,18851],{"class":4235},[3948,24580,4248],{"class":4231},[3948,24582,4251],{"class":4227},[3948,24584,18858],{"class":4254},[3948,24586,4258],{"class":4231},[3948,24588,24589,24591,24593,24595,24597,24599,24601],{"class":3950,"line":3982},[3948,24590,4228],{"class":4227},[3948,24592,4232],{"class":4231},[3948,24594,19257],{"class":4235},[3948,24596,4248],{"class":4231},[3948,24598,4251],{"class":4227},[3948,24600,19274],{"class":4254},[3948,24602,4258],{"class":4231},[3948,24604,24605],{"class":3950,"line":3988},[3948,24606,3973],{"emptyLinePlaceholder":3972},[3948,24608,24609,24611,24614],{"class":3950,"line":3994},[3948,24610,4268],{"class":4267},[3948,24612,24613],{"class":4271}," TripCardProps",[3948,24615,10299],{"class":4231},[3948,24617,24618,24621,24623,24625],{"class":3950,"line":4000},[3948,24619,24620],{"class":4235},"  trip",[3948,24622,4280],{"class":4231},[3948,24624,11995],{"class":4271},[3948,24626,4258],{"class":4231},[3948,24628,24629,24631,24633,24635,24637,24639,24641,24643,24645],{"class":3950,"line":4006},[3948,24630,23865],{"class":4395},[3948,24632,23868],{"class":4231},[3948,24634,11902],{"class":4235},[3948,24636,4280],{"class":4231},[3948,24638,11995],{"class":4271},[3948,24640,4168],{"class":4231},[3948,24642,4454],{"class":4267},[3948,24644,23881],{"class":4271},[3948,24646,4258],{"class":4231},[3948,24648,24649],{"class":3950,"line":4011},[3948,24650,10328],{"class":4231},[3948,24652,24653],{"class":3950,"line":4017},[3948,24654,3973],{"emptyLinePlaceholder":3972},[3948,24656,24657,24659,24662,24664,24666,24668,24670,24672,24675],{"class":3950,"line":4023},[3948,24658,7558],{"class":4267},[3948,24660,24661],{"class":4395}," TripCardComponent",[3948,24663,4475],{"class":4231},[3948,24665,11902],{"class":4235},[3948,24667,3593],{"class":4231},[3948,24669,11906],{"class":4235},[3948,24671,23909],{"class":4231},[3948,24673,24674],{"class":4271},"TripCardProps",[3948,24676,13475],{"class":4231},[3948,24678,24679,24681,24683,24685,24687,24689,24691,24693,24695,24697],{"class":3950,"line":4029},[3948,24680,4964],{"class":4267},[3948,24682,4232],{"class":4231},[3948,24684,18882],{"class":4308},[3948,24686,3593],{"class":4231},[3948,24688,19395],{"class":4308},[3948,24690,3593],{"class":4231},[3948,24692,23931],{"class":4308},[3948,24694,18890],{"class":4231},[3948,24696,18851],{"class":4395},[3948,24698,18895],{"class":4231},[3948,24700,24701],{"class":3950,"line":4035},[3948,24702,3973],{"emptyLinePlaceholder":3972},[3948,24704,24705,24707],{"class":3950,"line":4041},[3948,24706,4404],{"class":4227},[3948,24708,4407],{"class":4231},[3948,24710,24711,24713],{"class":3950,"line":4046},[3948,24712,4413],{"class":4412},[3948,24714,6244],{"class":4271},[3948,24716,24717,24719,24721],{"class":3950,"line":4051},[3948,24718,23958],{"class":4421},[3948,24720,4425],{"class":4231},[3948,24722,21064],{"class":4254},[3948,24724,24725,24727,24729,24731,24734,24736,24738,24740,24742,24744,24746],{"class":3950,"line":4057},[3948,24726,23967],{"class":4421},[3948,24728,4425],{"class":4231},[3948,24730,4428],{"class":4267},[3948,24732,24733],{"class":4254},"`Поїздка ",[3948,24735,4886],{"class":4267},[3948,24737,11902],{"class":4235},[3948,24739,3555],{"class":4445},[3948,24741,4289],{"class":4235},[3948,24743,4515],{"class":4267},[3948,24745,4899],{"class":4254},[3948,24747,4003],{"class":4267},[3948,24749,24750,24752,24754,24756,24758,24760,24762,24764,24766,24768],{"class":3950,"line":4063},[3948,24751,24006],{"class":4421},[3948,24753,4425],{"class":4231},[3948,24755,4428],{"class":4267},[3948,24757,6256],{"class":4445},[3948,24759,4454],{"class":4267},[3948,24761,12021],{"class":4395},[3948,24763,24019],{"class":4445},[3948,24765,11902],{"class":4235},[3948,24767,7357],{"class":4445},[3948,24769,4003],{"class":4267},[3948,24771,24772,24774,24776,24778,24780,24782,24784,24786],{"class":3950,"line":4069},[3948,24773,20233],{"class":4421},[3948,24775,4425],{"class":4231},[3948,24777,4428],{"class":4267},[3948,24779,4475],{"class":4445},[3948,24781,24038],{"class":4235},[3948,24783,4480],{"class":4445},[3948,24785,4454],{"class":4267},[3948,24787,6277],{"class":4445},[3948,24789,24790,24792,24794,24796],{"class":3950,"line":4074},[3948,24791,20244],{"class":4235},[3948,24793,3555],{"class":4445},[3948,24795,14687],{"class":4235},[3948,24797,4902],{"class":4445},[3948,24799,24800],{"class":3950,"line":4080},[3948,24801,20255],{"class":4445},[3948,24803,24804,24806,24808,24810,24812],{"class":3950,"line":4086},[3948,24805,24064],{"class":4235},[3948,24807,18982],{"class":4235},[3948,24809,3555],{"class":4445},[3948,24811,21027],{"class":4235},[3948,24813,4902],{"class":4445},[3948,24815,24816,24818,24820,24822,24824],{"class":3950,"line":4091},[3948,24817,24077],{"class":4235},[3948,24819,18982],{"class":4235},[3948,24821,3555],{"class":4445},[3948,24823,20576],{"class":4235},[3948,24825,4902],{"class":4445},[3948,24827,24828,24830,24832,24834,24837],{"class":3950,"line":4096},[3948,24829,24090],{"class":4235},[3948,24831,24093],{"class":4235},[3948,24833,3555],{"class":4445},[3948,24835,24836],{"class":4235},"lg",[3948,24838,4902],{"class":4445},[3948,24840,24841],{"class":3950,"line":5272},[3948,24842,20300],{"class":4445},[3948,24844,24845,24848,24851,24853,24855,24858],{"class":3950,"line":5286},[3948,24846,24847],{"class":4235},"        pressed",[3948,24849,24850],{"class":4231}," &&",[3948,24852,5579],{"class":4235},[3948,24854,3555],{"class":4445},[3948,24856,24857],{"class":4235},"cardPressed",[3948,24859,4902],{"class":4445},[3948,24861,24862,24864],{"class":3950,"line":5312},[3948,24863,20305],{"class":4445},[3948,24865,4003],{"class":4267},[3948,24867,24868],{"class":3950,"line":5341},[3948,24869,20312],{"class":4412},[3948,24871,24872,24874],{"class":3950,"line":5361},[3948,24873,5150],{"class":4412},[3948,24875,24876],{"class":4271},"Image\n",[3948,24878,24879,24882,24884,24886,24888,24891,24893,24895,24898,24900],{"class":3950,"line":5369},[3948,24880,24881],{"class":4421},"        source",[3948,24883,4425],{"class":4231},[3948,24885,4428],{"class":4267},[3948,24887,5204],{"class":4445},[3948,24889,24890],{"class":4235},"uri:",[3948,24892,12010],{"class":4235},[3948,24894,3555],{"class":4445},[3948,24896,24897],{"class":4235},"coverUri",[3948,24899,5227],{"class":4445},[3948,24901,4003],{"class":4267},[3948,24903,24904,24906,24908,24910,24912,24914,24916,24919,24921,24923,24925,24927,24929,24931],{"class":3950,"line":5382},[3948,24905,5256],{"class":4421},[3948,24907,4425],{"class":4231},[3948,24909,4428],{"class":4267},[3948,24911,5122],{"class":4445},[3948,24913,5125],{"class":4235},[3948,24915,3555],{"class":4445},[3948,24917,24918],{"class":4235},"cover",[3948,24920,5133],{"class":4445},[3948,24922,5136],{"class":4235},[3948,24924,18982],{"class":4235},[3948,24926,3555],{"class":4445},[3948,24928,20576],{"class":4235},[3948,24930,5141],{"class":4445},[3948,24932,4003],{"class":4267},[3948,24934,24935,24938,24940],{"class":3950,"line":5395},[3948,24936,24937],{"class":4421},"        resizeMode",[3948,24939,4425],{"class":4231},[3948,24941,24942],{"class":4254},"\"cover\"\n",[3948,24944,24945],{"class":3950,"line":5414},[3948,24946,24947],{"class":4421},"        accessibilityIgnoresInvertColors\n",[3948,24949,24950],{"class":3950,"line":5422},[3948,24951,5546],{"class":4412},[3948,24953,24954,24956,24958,24960,24962,24964,24966,24968,24970,24973,24975,24977,24979,24981,24983,24985,24987,24989,24991,24993,24995,24997],{"class":3950,"line":5428},[3948,24955,5150],{"class":4412},[3948,24957,4245],{"class":4271},[3948,24959,5115],{"class":4421},[3948,24961,4425],{"class":4231},[3948,24963,4428],{"class":4267},[3948,24965,5122],{"class":4445},[3948,24967,5125],{"class":4235},[3948,24969,3555],{"class":4445},[3948,24971,24972],{"class":4235},"body",[3948,24974,5133],{"class":4445},[3948,24976,5609],{"class":4235},[3948,24978,19858],{"class":4235},[3948,24980,3555],{"class":4445},[3948,24982,19863],{"class":4235},[3948,24984,3593],{"class":4445},[3948,24986,5332],{"class":4235},[3948,24988,19858],{"class":4235},[3948,24990,3555],{"class":4445},[3948,24992,20562],{"class":4235},[3948,24994,5141],{"class":4445},[3948,24996,4515],{"class":4267},[3948,24998,4494],{"class":4412},[3948,25000,25001,25003,25005,25007,25009,25011,25013,25015,25017,25020,25022,25024,25026,25028,25030,25032,25034],{"class":3950,"line":5478},[3948,25002,4489],{"class":4412},[3948,25004,4245],{"class":4271},[3948,25006,5115],{"class":4421},[3948,25008,4425],{"class":4231},[3948,25010,4428],{"class":4267},[3948,25012,5122],{"class":4445},[3948,25014,5125],{"class":4235},[3948,25016,3555],{"class":4445},[3948,25018,25019],{"class":4235},"titleRow",[3948,25021,5133],{"class":4445},[3948,25023,5332],{"class":4235},[3948,25025,19858],{"class":4235},[3948,25027,3555],{"class":4445},[3948,25029,19922],{"class":4235},[3948,25031,5141],{"class":4445},[3948,25033,4515],{"class":4267},[3948,25035,4494],{"class":4412},[3948,25037,25038,25040,25042,25044,25046,25048,25050,25052,25054,25056,25058,25060,25062,25064,25066,25068,25071,25073],{"class":3950,"line":5525},[3948,25039,4499],{"class":4412},[3948,25041,19257],{"class":4271},[3948,25043,20321],{"class":4421},[3948,25045,4425],{"class":4231},[3948,25047,20326],{"class":4254},[3948,25049,24160],{"class":4421},[3948,25051,4425],{"class":4231},[3948,25053,4428],{"class":4267},[3948,25055,4872],{"class":4836},[3948,25057,4515],{"class":4267},[3948,25059,5115],{"class":4421},[3948,25061,4425],{"class":4231},[3948,25063,4428],{"class":4267},[3948,25065,5125],{"class":4235},[3948,25067,3555],{"class":4445},[3948,25069,25070],{"class":4235},"titleFlex",[3948,25072,4515],{"class":4267},[3948,25074,4494],{"class":4412},[3948,25076,25077,25080,25082,25084,25086],{"class":3950,"line":5535},[3948,25078,25079],{"class":4267},"            {",[3948,25081,11902],{"class":4235},[3948,25083,3555],{"class":4445},[3948,25085,4289],{"class":4235},[3948,25087,4003],{"class":4267},[3948,25089,25090,25092,25094],{"class":3950,"line":5543},[3948,25091,5528],{"class":4412},[3948,25093,19257],{"class":4271},[3948,25095,4494],{"class":4412},[3948,25097,25098,25100,25102,25104,25106,25108,25110,25112,25114,25116,25118,25121,25123],{"class":3950,"line":5549},[3948,25099,4499],{"class":4412},[3948,25101,19257],{"class":4271},[3948,25103,20321],{"class":4421},[3948,25105,4425],{"class":4231},[3948,25107,20631],{"class":4254},[3948,25109,5115],{"class":4421},[3948,25111,4425],{"class":4231},[3948,25113,4428],{"class":4267},[3948,25115,5125],{"class":4235},[3948,25117,3555],{"class":4445},[3948,25119,25120],{"class":4235},"dates",[3948,25122,4515],{"class":4267},[3948,25124,4494],{"class":4412},[3948,25126,25127,25129,25131,25133,25136],{"class":3950,"line":5559},[3948,25128,25079],{"class":4267},[3948,25130,11902],{"class":4235},[3948,25132,3555],{"class":4445},[3948,25134,25135],{"class":4235},"dateLabel",[3948,25137,4003],{"class":4267},[3948,25139,25140,25142,25144],{"class":3950,"line":5564},[3948,25141,5528],{"class":4412},[3948,25143,19257],{"class":4271},[3948,25145,4494],{"class":4412},[3948,25147,25148,25150,25152],{"class":3950,"line":5569},[3948,25149,4527],{"class":4412},[3948,25151,4245],{"class":4271},[3948,25153,4494],{"class":4412},[3948,25155,25156,25158,25160,25162,25164,25166,25168,25170,25172,25174,25176,25178,25180,25182,25184,25186,25188,25190,25192,25194],{"class":3950,"line":5574},[3948,25157,4489],{"class":4412},[3948,25159,19257],{"class":4271},[3948,25161,20321],{"class":4421},[3948,25163,4425],{"class":4231},[3948,25165,20631],{"class":4254},[3948,25167,9742],{"class":4421},[3948,25169,4425],{"class":4231},[3948,25171,4428],{"class":4267},[3948,25173,18882],{"class":4235},[3948,25175,3555],{"class":4445},[3948,25177,8309],{"class":4235},[3948,25179,4515],{"class":4267},[3948,25181,5115],{"class":4421},[3948,25183,4425],{"class":4231},[3948,25185,4428],{"class":4267},[3948,25187,5125],{"class":4235},[3948,25189,3555],{"class":4445},[3948,25191,18020],{"class":4235},[3948,25193,4515],{"class":4267},[3948,25195,4494],{"class":4412},[3948,25197,25198,25200,25202,25204,25206],{"class":3950,"line":5594},[3948,25199,13997],{"class":4267},[3948,25201,11902],{"class":4235},[3948,25203,3555],{"class":4445},[3948,25205,18020],{"class":4235},[3948,25207,4003],{"class":4267},[3948,25209,25210,25212,25214],{"class":3950,"line":5624},[3948,25211,4527],{"class":4412},[3948,25213,19257],{"class":4271},[3948,25215,4494],{"class":4412},[3948,25217,25218,25220],{"class":3950,"line":5654},[3948,25219,4489],{"class":4412},[3948,25221,20362],{"class":4271},[3948,25223,25224,25227,25229,25231,25233],{"class":3950,"line":5668},[3948,25225,25226],{"class":4421},"          numberOfLines",[3948,25228,4425],{"class":4231},[3948,25230,4428],{"class":4267},[3948,25232,4916],{"class":4836},[3948,25234,4003],{"class":4267},[3948,25236,25237,25239,25241,25243,25245,25247,25249,25251,25253,25255,25257,25259,25261,25263,25265],{"class":3950,"line":5677},[3948,25238,6346],{"class":4421},[3948,25240,4425],{"class":4231},[3948,25242,4428],{"class":4267},[3948,25244,5204],{"class":4445},[3948,25246,9776],{"class":4235},[3948,25248,19858],{"class":4235},[3948,25250,3555],{"class":4445},[3948,25252,20562],{"class":4235},[3948,25254,3593],{"class":4445},[3948,25256,5172],{"class":4235},[3948,25258,18982],{"class":4235},[3948,25260,3555],{"class":4445},[3948,25262,20388],{"class":4235},[3948,25264,5227],{"class":4445},[3948,25266,4003],{"class":4267},[3948,25268,25269],{"class":3950,"line":5687},[3948,25270,6374],{"class":4412},[3948,25272,25273,25275,25277,25279,25282],{"class":3950,"line":5698},[3948,25274,13997],{"class":4267},[3948,25276,11902],{"class":4235},[3948,25278,3555],{"class":4445},[3948,25280,25281],{"class":4235},"description",[3948,25283,4003],{"class":4267},[3948,25285,25286,25288,25290],{"class":3950,"line":5709},[3948,25287,4527],{"class":4412},[3948,25289,19257],{"class":4271},[3948,25291,4494],{"class":4412},[3948,25293,25294,25296,25298,25300,25302,25304,25306,25308,25310,25312,25314,25316,25318,25320,25322,25324,25326],{"class":3950,"line":5715},[3948,25295,4489],{"class":4412},[3948,25297,4245],{"class":4271},[3948,25299,5115],{"class":4421},[3948,25301,4425],{"class":4231},[3948,25303,4428],{"class":4267},[3948,25305,5122],{"class":4445},[3948,25307,5125],{"class":4235},[3948,25309,3555],{"class":4445},[3948,25311,9727],{"class":4235},[3948,25313,5133],{"class":4445},[3948,25315,9776],{"class":4235},[3948,25317,19858],{"class":4235},[3948,25319,3555],{"class":4445},[3948,25321,19922],{"class":4235},[3948,25323,5141],{"class":4445},[3948,25325,4515],{"class":4267},[3948,25327,4494],{"class":4412},[3948,25329,25330,25332,25334,25336,25338,25340,25342,25344,25346,25348,25350,25352,25354],{"class":3950,"line":5741},[3948,25331,4499],{"class":4412},[3948,25333,19257],{"class":4271},[3948,25335,20321],{"class":4421},[3948,25337,4425],{"class":4231},[3948,25339,20631],{"class":4254},[3948,25341,9742],{"class":4421},[3948,25343,4425],{"class":4231},[3948,25345,4428],{"class":4267},[3948,25347,18882],{"class":4235},[3948,25349,3555],{"class":4445},[3948,25351,8309],{"class":4235},[3948,25353,4515],{"class":4267},[3948,25355,4494],{"class":4412},[3948,25357,25358],{"class":3950,"line":6725},[3948,25359,25360],{"class":4231},"            Відкрити\n",[3948,25362,25363,25365,25367],{"class":3950,"line":6749},[3948,25364,5528],{"class":4412},[3948,25366,19257],{"class":4271},[3948,25368,4494],{"class":4412},[3948,25370,25371,25373,25375],{"class":3950,"line":6792},[3948,25372,4527],{"class":4412},[3948,25374,4245],{"class":4271},[3948,25376,4494],{"class":4412},[3948,25378,25379,25381,25383],{"class":3950,"line":6832},[3948,25380,5241],{"class":4412},[3948,25382,4245],{"class":4271},[3948,25384,4494],{"class":4412},[3948,25386,25387,25389,25391],{"class":3950,"line":6838},[3948,25388,5552],{"class":4412},[3948,25390,3897],{"class":4271},[3948,25392,4494],{"class":4412},[3948,25394,25395],{"class":3950,"line":6844},[3948,25396,4548],{"class":4231},[3948,25398,25399],{"class":3950,"line":6854},[3948,25400,4003],{"class":4231},[3948,25402,25403],{"class":3950,"line":6863},[3948,25404,3973],{"emptyLinePlaceholder":3972},[3948,25406,25407],{"class":3950,"line":6868},[3948,25408,25409],{"class":5778},"\u002F** memo: рядок списку не перемальовується, якщо props ті самі. *\u002F\n",[3948,25411,25412,25414,25416,25419,25421,25423,25425,25428],{"class":3950,"line":6887},[3948,25413,4389],{"class":4227},[3948,25415,13127],{"class":4267},[3948,25417,25418],{"class":4308}," TripCard",[3948,25420,4970],{"class":4231},[3948,25422,11873],{"class":4395},[3948,25424,4446],{"class":4231},[3948,25426,25427],{"class":4235},"TripCardComponent",[3948,25429,7857],{"class":4231},[3948,25431,25432],{"class":3950,"line":6926},[3948,25433,3973],{"emptyLinePlaceholder":3972},[3948,25435,25436,25438,25440,25442,25444,25446,25448],{"class":3950,"line":6974},[3948,25437,4305],{"class":4267},[3948,25439,5579],{"class":4308},[3948,25441,4970],{"class":4231},[3948,25443,4744],{"class":4235},[3948,25445,3555],{"class":4231},[3948,25447,5588],{"class":4395},[3948,25449,5591],{"class":4231},[3948,25451,25452,25454],{"class":3950,"line":6983},[3948,25453,15343],{"class":4235},[3948,25455,5674],{"class":4231},[3948,25457,25458,25460,25462],{"class":3950,"line":6990},[3948,25459,5680],{"class":4235},[3948,25461,4894],{"class":4836},[3948,25463,4902],{"class":4231},[3948,25465,25466,25469,25472],{"class":3950,"line":6995},[3948,25467,25468],{"class":4235},"    overflow:",[3948,25470,25471],{"class":4254}," 'hidden'",[3948,25473,4902],{"class":4231},[3948,25475,25476,25479,25481,25483,25486],{"class":3950,"line":7004},[3948,25477,25478],{"class":4231},"    ...",[3948,25480,24528],{"class":4235},[3948,25482,3555],{"class":4231},[3948,25484,25485],{"class":4395},"select",[3948,25487,5591],{"class":4231},[3948,25489,25490,25493],{"class":3950,"line":7009},[3948,25491,25492],{"class":4235},"      ios:",[3948,25494,5674],{"class":4231},[3948,25496,25497,25500,25503],{"class":3950,"line":7014},[3948,25498,25499],{"class":4235},"        shadowColor:",[3948,25501,25502],{"class":4254}," '#000'",[3948,25504,4902],{"class":4231},[3948,25506,25507,25510,25513],{"class":3950,"line":7019},[3948,25508,25509],{"class":4235},"        shadowOpacity:",[3948,25511,25512],{"class":4836}," 0.08",[3948,25514,4902],{"class":4231},[3948,25516,25517,25520,25522],{"class":3950,"line":7036},[3948,25518,25519],{"class":4235},"        shadowRadius:",[3948,25521,7113],{"class":4836},[3948,25523,4902],{"class":4231},[3948,25525,25526,25529,25531,25533,25535,25537,25539,25541],{"class":3950,"line":7061},[3948,25527,25528],{"class":4235},"        shadowOffset:",[3948,25530,4232],{"class":4231},[3948,25532,20104],{"class":4235},[3948,25534,6626],{"class":4836},[3948,25536,3593],{"class":4231},[3948,25538,11647],{"class":4235},[3948,25540,5649],{"class":4836},[3948,25542,4339],{"class":4231},[3948,25544,25545],{"class":3950,"line":7089},[3948,25546,18623],{"class":4231},[3948,25548,25549,25552],{"class":3950,"line":7097},[3948,25550,25551],{"class":4235},"      android:",[3948,25553,5674],{"class":4231},[3948,25555,25556,25559,25562],{"class":3950,"line":7107},[3948,25557,25558],{"class":4235},"        elevation:",[3948,25560,25561],{"class":4836}," 3",[3948,25563,4902],{"class":4231},[3948,25565,25566],{"class":3950,"line":7118},[3948,25567,18623],{"class":4231},[3948,25569,25570,25573],{"class":3950,"line":7127},[3948,25571,25572],{"class":4235},"      default:",[3948,25574,25575],{"class":4231}," {},\n",[3948,25577,25578],{"class":3950,"line":7132},[3948,25579,25580],{"class":4231},"    }),\n",[3948,25582,25583],{"class":3950,"line":7153},[3948,25584,5712],{"class":4231},[3948,25586,25587,25590],{"class":3950,"line":7179},[3948,25588,25589],{"class":4235},"  cardPressed:",[3948,25591,5674],{"class":4231},[3948,25593,25594,25597,25600],{"class":3950,"line":7194},[3948,25595,25596],{"class":4235},"    opacity:",[3948,25598,25599],{"class":4836}," 0.92",[3948,25601,4902],{"class":4231},[3948,25603,25604],{"class":3950,"line":7202},[3948,25605,5712],{"class":4231},[3948,25607,25608,25611],{"class":3950,"line":7212},[3948,25609,25610],{"class":4235},"  cover:",[3948,25612,5674],{"class":4231},[3948,25614,25615,25617,25620],{"class":3950,"line":7223},[3948,25616,24396],{"class":4235},[3948,25618,25619],{"class":4254}," '100%'",[3948,25621,4902],{"class":4231},[3948,25623,25624,25627,25629],{"class":3950,"line":7233},[3948,25625,25626],{"class":4235},"    height:",[3948,25628,24399],{"class":4836},[3948,25630,4902],{"class":4231},[3948,25632,25633],{"class":3950,"line":7243},[3948,25634,5712],{"class":4231},[3948,25636,25637,25640],{"class":3950,"line":7253},[3948,25638,25639],{"class":4235},"  body:",[3948,25641,25575],{"class":4231},[3948,25643,25644,25647],{"class":3950,"line":7262},[3948,25645,25646],{"class":4235},"  titleRow:",[3948,25648,5674],{"class":4231},[3948,25650,25651,25653,25655],{"class":3950,"line":7267},[3948,25652,8624],{"class":4235},[3948,25654,7072],{"class":4254},[3948,25656,4902],{"class":4231},[3948,25658,25659,25661,25663],{"class":3950,"line":7287},[3948,25660,7226],{"class":4235},[3948,25662,6816],{"class":4254},[3948,25664,4902],{"class":4231},[3948,25666,25667],{"class":3950,"line":7294},[3948,25668,5712],{"class":4231},[3948,25670,25671,25674],{"class":3950,"line":7303},[3948,25672,25673],{"class":4235},"  titleFlex:",[3948,25675,5674],{"class":4231},[3948,25677,25678,25680,25682],{"class":3950,"line":7312},[3948,25679,7205],{"class":4235},[3948,25681,4894],{"class":4836},[3948,25683,4902],{"class":4231},[3948,25685,25686],{"class":3950,"line":7321},[3948,25687,5712],{"class":4231},[3948,25689,25690,25693],{"class":3950,"line":7326},[3948,25691,25692],{"class":4235},"  dates:",[3948,25694,5674],{"class":4231},[3948,25696,25697,25700,25702],{"class":3950,"line":14328},[3948,25698,25699],{"class":4235},"    flexShrink:",[3948,25701,6626],{"class":4836},[3948,25703,4902],{"class":4231},[3948,25705,25706],{"class":3950,"line":14337},[3948,25707,5712],{"class":4231},[3948,25709,25710,25713],{"class":3950,"line":14367},[3948,25711,25712],{"class":4235},"  region:",[3948,25714,5674],{"class":4231},[3948,25716,25717,25719,25721],{"class":3950,"line":14372},[3948,25718,21951],{"class":4235},[3948,25720,6949],{"class":4254},[3948,25722,4902],{"class":4231},[3948,25724,25725],{"class":3950,"line":14381},[3948,25726,5712],{"class":4231},[3948,25728,25729,25731],{"class":3950,"line":14414},[3948,25730,10112],{"class":4235},[3948,25732,5674],{"class":4231},[3948,25734,25735,25737,25740],{"class":3950,"line":14419},[3948,25736,7226],{"class":4235},[3948,25738,25739],{"class":4254}," 'flex-start'",[3948,25741,4902],{"class":4231},[3948,25743,25744],{"class":3950,"line":14428},[3948,25745,5712],{"class":4231},[3948,25747,25748],{"class":3950,"line":14451},[3948,25749,5744],{"class":4231},[3939,25751,25754],{"className":4218,"code":25752,"filename":25753,"language":4220,"meta":3944,"style":3944},"import {\n  createContext,\n  ReactNode,\n  useCallback,\n  useContext,\n  useMemo,\n  useState,\n} from 'react';\nimport { useColorScheme as useSystemColorScheme } from 'react-native';\n\nimport {\n  colorsForScheme,\n  type ColorSchemeName,\n  type ColorTokens,\n} from '.\u002Fcolors';\nimport { fontSize, radius, space } from '.\u002Ftokens';\n\n\u002F** Що обрав користувач: слідувати системі або примусово light\u002Fdark. *\u002F\nexport type ThemePreference = 'system' | ColorSchemeName;\n\ntype ThemeContextValue = {\n  \u002F** Фактична схема, якою малюємо UI. *\u002F\n  scheme: ColorSchemeName;\n  preference: ThemePreference;\n  setPreference: (value: ThemePreference) => void;\n  colors: ColorTokens;\n  spacing: typeof space;\n  radius: typeof radius;\n  fontSize: typeof fontSize;\n};\n\nconst ThemeContext = createContext\u003CThemeContextValue | null>(null);\n\nfunction resolveScheme(\n  preference: ThemePreference,\n  system: string | null | undefined,\n): ColorSchemeName {\n  if (preference === 'light' || preference === 'dark') {\n    return preference;\n  }\n  return system === 'dark' ? 'dark' : 'light';\n}\n\ntype ThemeProviderProps = {\n  children: ReactNode;\n  \u002F** Початкова перевага (за замовчуванням — як у системі). *\u002F\n  initialPreference?: ThemePreference;\n};\n\nexport function ThemeProvider({\n  children,\n  initialPreference = 'system',\n}: ThemeProviderProps) {\n  const systemScheme = useSystemColorScheme();\n  const [preference, setPreferenceState] =\n    useState\u003CThemePreference>(initialPreference);\n\n  const setPreference = useCallback((value: ThemePreference) => {\n    setPreferenceState(value);\n  }, []);\n\n  const scheme = resolveScheme(preference, systemScheme);\n  const colors = useMemo(() => colorsForScheme(scheme), [scheme]);\n\n  const value = useMemo\u003CThemeContextValue>(\n    () => ({\n      scheme,\n      preference,\n      setPreference,\n      colors,\n      spacing: space,\n      radius,\n      fontSize,\n    }),\n    [scheme, preference, setPreference, colors],\n  );\n\n  return (\n    \u003CThemeContext.Provider value={value}>{children}\u003C\u002FThemeContext.Provider>\n  );\n}\n\nexport function useTheme(): ThemeContextValue {\n  const ctx = useContext(ThemeContext);\n  if (!ctx) {\n    throw new Error('useTheme() потрібно викликати всередині \u003CThemeProvider>.');\n  }\n  return ctx;\n}\n","src\u002Fshared\u002Ftheme\u002FThemeProvider.tsx",[3525,25755,25756,25762,25769,25776,25783,25790,25797,25804,25814,25836,25840,25846,25853,25862,25871,25882,25909,25913,25918,25939,25943,25952,25957,25968,25979,26002,26014,26029,26042,26056,26060,26064,26093,26097,26106,26116,26136,26144,26169,26177,26181,26202,26206,26210,26219,26231,26236,26248,26252,26256,26267,26273,26283,26293,26307,26323,26339,26343,26367,26378,26382,26386,26409,26436,26440,26458,26467,26474,26481,26488,26495,26504,26511,26518,26522,26542,26546,26550,26556,26588,26592,26596,26600,26616,26635,26647,26665,26669,26677],{"__ignoreMap":3944},[3948,25757,25758,25760],{"class":3950,"line":3951},[3948,25759,4228],{"class":4227},[3948,25761,5674],{"class":4231},[3948,25763,25764,25767],{"class":3950,"line":3957},[3948,25765,25766],{"class":4235},"  createContext",[3948,25768,4902],{"class":4231},[3948,25770,25771,25774],{"class":3950,"line":3963},[3948,25772,25773],{"class":4235},"  ReactNode",[3948,25775,4902],{"class":4231},[3948,25777,25778,25781],{"class":3950,"line":3969},[3948,25779,25780],{"class":4235},"  useCallback",[3948,25782,4902],{"class":4231},[3948,25784,25785,25788],{"class":3950,"line":3976},[3948,25786,25787],{"class":4235},"  useContext",[3948,25789,4902],{"class":4231},[3948,25791,25792,25795],{"class":3950,"line":3982},[3948,25793,25794],{"class":4235},"  useMemo",[3948,25796,4902],{"class":4231},[3948,25798,25799,25802],{"class":3950,"line":3988},[3948,25800,25801],{"class":4235},"  useState",[3948,25803,4902],{"class":4231},[3948,25805,25806,25808,25810,25812],{"class":3950,"line":3994},[3948,25807,5952],{"class":4231},[3948,25809,4251],{"class":4227},[3948,25811,5897],{"class":4254},[3948,25813,4258],{"class":4231},[3948,25815,25816,25818,25820,25822,25825,25828,25830,25832,25834],{"class":3950,"line":4000},[3948,25817,4228],{"class":4227},[3948,25819,4232],{"class":4231},[3948,25821,4757],{"class":4235},[3948,25823,25824],{"class":4227}," as",[3948,25826,25827],{"class":4235}," useSystemColorScheme",[3948,25829,4248],{"class":4231},[3948,25831,4251],{"class":4227},[3948,25833,4255],{"class":4254},[3948,25835,4258],{"class":4231},[3948,25837,25838],{"class":3950,"line":4006},[3948,25839,3973],{"emptyLinePlaceholder":3972},[3948,25841,25842,25844],{"class":3950,"line":4011},[3948,25843,4228],{"class":4227},[3948,25845,5674],{"class":4231},[3948,25847,25848,25851],{"class":3950,"line":4017},[3948,25849,25850],{"class":4235},"  colorsForScheme",[3948,25852,4902],{"class":4231},[3948,25854,25855,25857,25860],{"class":3950,"line":4023},[3948,25856,19200],{"class":4227},[3948,25858,25859],{"class":4235}," ColorSchemeName",[3948,25861,4902],{"class":4231},[3948,25863,25864,25866,25869],{"class":3950,"line":4029},[3948,25865,19200],{"class":4227},[3948,25867,25868],{"class":4235}," ColorTokens",[3948,25870,4902],{"class":4231},[3948,25872,25873,25875,25877,25880],{"class":3950,"line":4035},[3948,25874,5952],{"class":4231},[3948,25876,4251],{"class":4227},[3948,25878,25879],{"class":4254}," '.\u002Fcolors'",[3948,25881,4258],{"class":4231},[3948,25883,25884,25886,25888,25891,25893,25895,25897,25900,25902,25904,25907],{"class":3950,"line":4041},[3948,25885,4228],{"class":4227},[3948,25887,4232],{"class":4231},[3948,25889,25890],{"class":4235},"fontSize",[3948,25892,3593],{"class":4231},[3948,25894,23931],{"class":4235},[3948,25896,3593],{"class":4231},[3948,25898,25899],{"class":4235},"space",[3948,25901,4248],{"class":4231},[3948,25903,4251],{"class":4227},[3948,25905,25906],{"class":4254}," '.\u002Ftokens'",[3948,25908,4258],{"class":4231},[3948,25910,25911],{"class":3950,"line":4046},[3948,25912,3973],{"emptyLinePlaceholder":3972},[3948,25914,25915],{"class":3950,"line":4051},[3948,25916,25917],{"class":5778},"\u002F** Що обрав користувач: слідувати системі або примусово light\u002Fdark. *\u002F\n",[3948,25919,25920,25922,25924,25926,25928,25931,25934,25937],{"class":3950,"line":4057},[3948,25921,4389],{"class":4227},[3948,25923,22130],{"class":4267},[3948,25925,19240],{"class":4271},[3948,25927,4970],{"class":4231},[3948,25929,25930],{"class":4254},"'system'",[3948,25932,25933],{"class":4231}," | ",[3948,25935,25936],{"class":4271},"ColorSchemeName",[3948,25938,4258],{"class":4231},[3948,25940,25941],{"class":3950,"line":4063},[3948,25942,3973],{"emptyLinePlaceholder":3972},[3948,25944,25945,25947,25950],{"class":3950,"line":4069},[3948,25946,4268],{"class":4267},[3948,25948,25949],{"class":4271}," ThemeContextValue",[3948,25951,10299],{"class":4231},[3948,25953,25954],{"class":3950,"line":4074},[3948,25955,25956],{"class":5778},"  \u002F** Фактична схема, якою малюємо UI. *\u002F\n",[3948,25958,25959,25962,25964,25966],{"class":3950,"line":4080},[3948,25960,25961],{"class":4235},"  scheme",[3948,25963,4280],{"class":4231},[3948,25965,25936],{"class":4271},[3948,25967,4258],{"class":4231},[3948,25969,25970,25973,25975,25977],{"class":3950,"line":4086},[3948,25971,25972],{"class":4235},"  preference",[3948,25974,4280],{"class":4231},[3948,25976,19296],{"class":4271},[3948,25978,4258],{"class":4231},[3948,25980,25981,25984,25987,25990,25992,25994,25996,25998,26000],{"class":3950,"line":4091},[3948,25982,25983],{"class":4395},"  setPreference",[3948,25985,25986],{"class":4231},": (",[3948,25988,25989],{"class":4235},"value",[3948,25991,4280],{"class":4231},[3948,25993,19296],{"class":4271},[3948,25995,4168],{"class":4231},[3948,25997,4454],{"class":4267},[3948,25999,23881],{"class":4271},[3948,26001,4258],{"class":4231},[3948,26003,26004,26007,26009,26012],{"class":3950,"line":4096},[3948,26005,26006],{"class":4235},"  colors",[3948,26008,4280],{"class":4231},[3948,26010,26011],{"class":4271},"ColorTokens",[3948,26013,4258],{"class":4231},[3948,26015,26016,26019,26021,26024,26027],{"class":3950,"line":5272},[3948,26017,26018],{"class":4235},"  spacing",[3948,26020,4280],{"class":4231},[3948,26022,26023],{"class":4267},"typeof",[3948,26025,26026],{"class":4235}," space",[3948,26028,4258],{"class":4231},[3948,26030,26031,26034,26036,26038,26040],{"class":3950,"line":5286},[3948,26032,26033],{"class":4235},"  radius",[3948,26035,4280],{"class":4231},[3948,26037,26023],{"class":4267},[3948,26039,24093],{"class":4235},[3948,26041,4258],{"class":4231},[3948,26043,26044,26047,26049,26051,26054],{"class":3950,"line":5312},[3948,26045,26046],{"class":4235},"  fontSize",[3948,26048,4280],{"class":4231},[3948,26050,26023],{"class":4267},[3948,26052,26053],{"class":4235}," fontSize",[3948,26055,4258],{"class":4231},[3948,26057,26058],{"class":3950,"line":5341},[3948,26059,10328],{"class":4231},[3948,26061,26062],{"class":3950,"line":5361},[3948,26063,3973],{"emptyLinePlaceholder":3972},[3948,26065,26066,26068,26071,26073,26076,26078,26081,26083,26086,26089,26091],{"class":3950,"line":5369},[3948,26067,4305],{"class":4267},[3948,26069,26070],{"class":4308}," ThemeContext",[3948,26072,4970],{"class":4231},[3948,26074,26075],{"class":4395},"createContext",[3948,26077,6167],{"class":4231},[3948,26079,26080],{"class":4271},"ThemeContextValue",[3948,26082,25933],{"class":4231},[3948,26084,26085],{"class":4271},"null",[3948,26087,26088],{"class":4231},">(",[3948,26090,26085],{"class":4267},[3948,26092,7857],{"class":4231},[3948,26094,26095],{"class":3950,"line":5382},[3948,26096,3973],{"emptyLinePlaceholder":3972},[3948,26098,26099,26101,26104],{"class":3950,"line":5395},[3948,26100,7558],{"class":4267},[3948,26102,26103],{"class":4395}," resolveScheme",[3948,26105,11978],{"class":4231},[3948,26107,26108,26110,26112,26114],{"class":3950,"line":5414},[3948,26109,25972],{"class":4235},[3948,26111,4280],{"class":4231},[3948,26113,19296],{"class":4271},[3948,26115,4902],{"class":4231},[3948,26117,26118,26121,26123,26125,26127,26129,26131,26134],{"class":3950,"line":5422},[3948,26119,26120],{"class":4235},"  system",[3948,26122,4280],{"class":4231},[3948,26124,4283],{"class":4271},[3948,26126,25933],{"class":4231},[3948,26128,26085],{"class":4271},[3948,26130,25933],{"class":4231},[3948,26132,26133],{"class":4271},"undefined",[3948,26135,4902],{"class":4231},[3948,26137,26138,26140,26142],{"class":3950,"line":5428},[3948,26139,7573],{"class":4231},[3948,26141,25936],{"class":4271},[3948,26143,5674],{"class":4231},[3948,26145,26146,26149,26151,26153,26155,26158,26161,26163,26165,26167],{"class":3950,"line":5478},[3948,26147,26148],{"class":4227},"  if",[3948,26150,3624],{"class":4231},[3948,26152,19400],{"class":4235},[3948,26154,4919],{"class":4231},[3948,26156,26157],{"class":4254},"'light'",[3948,26159,26160],{"class":4231}," || ",[3948,26162,19400],{"class":4235},[3948,26164,4919],{"class":4231},[3948,26166,4978],{"class":4254},[3948,26168,13475],{"class":4231},[3948,26170,26171,26173,26175],{"class":3950,"line":5525},[3948,26172,8976],{"class":4227},[3948,26174,20906],{"class":4235},[3948,26176,4258],{"class":4231},[3948,26178,26179],{"class":3950,"line":5535},[3948,26180,13548],{"class":4231},[3948,26182,26183,26185,26188,26190,26192,26194,26196,26198,26200],{"class":3950,"line":5543},[3948,26184,4404],{"class":4227},[3948,26186,26187],{"class":4235}," system",[3948,26189,4919],{"class":4231},[3948,26191,4978],{"class":4254},[3948,26193,4925],{"class":4231},[3948,26195,4978],{"class":4254},[3948,26197,4931],{"class":4231},[3948,26199,26157],{"class":4254},[3948,26201,4258],{"class":4231},[3948,26203,26204],{"class":3950,"line":5549},[3948,26205,4003],{"class":4231},[3948,26207,26208],{"class":3950,"line":5559},[3948,26209,3973],{"emptyLinePlaceholder":3972},[3948,26211,26212,26214,26217],{"class":3950,"line":5564},[3948,26213,4268],{"class":4267},[3948,26215,26216],{"class":4271}," ThemeProviderProps",[3948,26218,10299],{"class":4231},[3948,26220,26221,26224,26226,26229],{"class":3950,"line":5569},[3948,26222,26223],{"class":4235},"  children",[3948,26225,4280],{"class":4231},[3948,26227,26228],{"class":4271},"ReactNode",[3948,26230,4258],{"class":4231},[3948,26232,26233],{"class":3950,"line":5574},[3948,26234,26235],{"class":5778},"  \u002F** Початкова перевага (за замовчуванням — як у системі). *\u002F\n",[3948,26237,26238,26241,26244,26246],{"class":3950,"line":5594},[3948,26239,26240],{"class":4235},"  initialPreference",[3948,26242,26243],{"class":4231},"?: ",[3948,26245,19296],{"class":4271},[3948,26247,4258],{"class":4231},[3948,26249,26250],{"class":3950,"line":5624},[3948,26251,10328],{"class":4231},[3948,26253,26254],{"class":3950,"line":5654},[3948,26255,3973],{"emptyLinePlaceholder":3972},[3948,26257,26258,26260,26262,26265],{"class":3950,"line":5668},[3948,26259,4389],{"class":4227},[3948,26261,4392],{"class":4267},[3948,26263,26264],{"class":4395}," ThemeProvider",[3948,26266,5591],{"class":4231},[3948,26268,26269,26271],{"class":3950,"line":5677},[3948,26270,26223],{"class":4235},[3948,26272,4902],{"class":4231},[3948,26274,26275,26277,26279,26281],{"class":3950,"line":5687},[3948,26276,26240],{"class":4235},[3948,26278,4970],{"class":4231},[3948,26280,25930],{"class":4254},[3948,26282,4902],{"class":4231},[3948,26284,26285,26288,26291],{"class":3950,"line":5698},[3948,26286,26287],{"class":4231},"}: ",[3948,26289,26290],{"class":4271},"ThemeProviderProps",[3948,26292,13475],{"class":4231},[3948,26294,26295,26297,26300,26302,26305],{"class":3950,"line":5709},[3948,26296,4964],{"class":4267},[3948,26298,26299],{"class":4308}," systemScheme",[3948,26301,4970],{"class":4231},[3948,26303,26304],{"class":4395},"useSystemColorScheme",[3948,26306,18895],{"class":4231},[3948,26308,26309,26311,26313,26315,26317,26320],{"class":3950,"line":5715},[3948,26310,4964],{"class":4267},[3948,26312,6152],{"class":4231},[3948,26314,19400],{"class":4308},[3948,26316,3593],{"class":4231},[3948,26318,26319],{"class":4308},"setPreferenceState",[3948,26321,26322],{"class":4231},"] =\n",[3948,26324,26325,26328,26330,26332,26334,26337],{"class":3950,"line":5741},[3948,26326,26327],{"class":4395},"    useState",[3948,26329,6167],{"class":4231},[3948,26331,19296],{"class":4271},[3948,26333,26088],{"class":4231},[3948,26335,26336],{"class":4235},"initialPreference",[3948,26338,7857],{"class":4231},[3948,26340,26341],{"class":3950,"line":6725},[3948,26342,3973],{"emptyLinePlaceholder":3972},[3948,26344,26345,26347,26349,26351,26353,26355,26357,26359,26361,26363,26365],{"class":3950,"line":6749},[3948,26346,4964],{"class":4267},[3948,26348,20963],{"class":4308},[3948,26350,4970],{"class":4231},[3948,26352,4586],{"class":4395},[3948,26354,6267],{"class":4231},[3948,26356,25989],{"class":4235},[3948,26358,4280],{"class":4231},[3948,26360,19296],{"class":4271},[3948,26362,4168],{"class":4231},[3948,26364,4454],{"class":4267},[3948,26366,5674],{"class":4231},[3948,26368,26369,26372,26374,26376],{"class":3950,"line":6792},[3948,26370,26371],{"class":4395},"    setPreferenceState",[3948,26373,4446],{"class":4231},[3948,26375,25989],{"class":4235},[3948,26377,7857],{"class":4231},[3948,26379,26380],{"class":3950,"line":6832},[3948,26381,13883],{"class":4231},[3948,26383,26384],{"class":3950,"line":6838},[3948,26385,3973],{"emptyLinePlaceholder":3972},[3948,26387,26388,26390,26393,26395,26398,26400,26402,26404,26407],{"class":3950,"line":6844},[3948,26389,4964],{"class":4267},[3948,26391,26392],{"class":4308}," scheme",[3948,26394,4970],{"class":4231},[3948,26396,26397],{"class":4395},"resolveScheme",[3948,26399,4446],{"class":4231},[3948,26401,19400],{"class":4235},[3948,26403,3593],{"class":4231},[3948,26405,26406],{"class":4235},"systemScheme",[3948,26408,7857],{"class":4231},[3948,26410,26411,26413,26415,26417,26419,26421,26423,26426,26428,26430,26432,26434],{"class":3950,"line":6854},[3948,26412,4964],{"class":4267},[3948,26414,18982],{"class":4308},[3948,26416,4970],{"class":4231},[3948,26418,12893],{"class":4395},[3948,26420,7876],{"class":4231},[3948,26422,4454],{"class":4267},[3948,26424,26425],{"class":4395}," colorsForScheme",[3948,26427,4446],{"class":4231},[3948,26429,18887],{"class":4235},[3948,26431,13757],{"class":4231},[3948,26433,18887],{"class":4235},[3948,26435,8030],{"class":4231},[3948,26437,26438],{"class":3950,"line":6863},[3948,26439,3973],{"emptyLinePlaceholder":3972},[3948,26441,26442,26444,26447,26449,26451,26453,26455],{"class":3950,"line":6868},[3948,26443,4964],{"class":4267},[3948,26445,26446],{"class":4308}," value",[3948,26448,4970],{"class":4231},[3948,26450,12893],{"class":4395},[3948,26452,6167],{"class":4231},[3948,26454,26080],{"class":4271},[3948,26456,26457],{"class":4231},">(\n",[3948,26459,26460,26463,26465],{"class":3950,"line":6887},[3948,26461,26462],{"class":4231},"    () ",[3948,26464,4454],{"class":4267},[3948,26466,4855],{"class":4231},[3948,26468,26469,26472],{"class":3950,"line":6926},[3948,26470,26471],{"class":4235},"      scheme",[3948,26473,4902],{"class":4231},[3948,26475,26476,26479],{"class":3950,"line":6974},[3948,26477,26478],{"class":4235},"      preference",[3948,26480,4902],{"class":4231},[3948,26482,26483,26486],{"class":3950,"line":6983},[3948,26484,26485],{"class":4235},"      setPreference",[3948,26487,4902],{"class":4231},[3948,26489,26490,26493],{"class":3950,"line":6990},[3948,26491,26492],{"class":4235},"      colors",[3948,26494,4902],{"class":4231},[3948,26496,26497,26500,26502],{"class":3950,"line":6995},[3948,26498,26499],{"class":4235},"      spacing:",[3948,26501,26026],{"class":4235},[3948,26503,4902],{"class":4231},[3948,26505,26506,26509],{"class":3950,"line":7004},[3948,26507,26508],{"class":4235},"      radius",[3948,26510,4902],{"class":4231},[3948,26512,26513,26516],{"class":3950,"line":7009},[3948,26514,26515],{"class":4235},"      fontSize",[3948,26517,4902],{"class":4231},[3948,26519,26520],{"class":3950,"line":7014},[3948,26521,25580],{"class":4231},[3948,26523,26524,26526,26528,26530,26532,26534,26536,26538,26540],{"class":3950,"line":7019},[3948,26525,19777],{"class":4231},[3948,26527,18887],{"class":4235},[3948,26529,3593],{"class":4231},[3948,26531,19400],{"class":4235},[3948,26533,3593],{"class":4231},[3948,26535,19405],{"class":4235},[3948,26537,3593],{"class":4231},[3948,26539,18882],{"class":4235},[3948,26541,12047],{"class":4231},[3948,26543,26544],{"class":3950,"line":7036},[3948,26545,4548],{"class":4231},[3948,26547,26548],{"class":3950,"line":7061},[3948,26549,3973],{"emptyLinePlaceholder":3972},[3948,26551,26552,26554],{"class":3950,"line":7089},[3948,26553,4404],{"class":4227},[3948,26555,4407],{"class":4231},[3948,26557,26558,26560,26563,26565,26567,26569,26571,26573,26575,26577,26580,26582,26584,26586],{"class":3950,"line":7097},[3948,26559,4413],{"class":4412},[3948,26561,26562],{"class":4271},"ThemeContext.Provider",[3948,26564,26446],{"class":4421},[3948,26566,4425],{"class":4231},[3948,26568,4428],{"class":4267},[3948,26570,25989],{"class":4235},[3948,26572,4515],{"class":4267},[3948,26574,4504],{"class":4412},[3948,26576,4428],{"class":4267},[3948,26578,26579],{"class":4235},"children",[3948,26581,4515],{"class":4267},[3948,26583,4518],{"class":4412},[3948,26585,26562],{"class":4271},[3948,26587,4494],{"class":4412},[3948,26589,26590],{"class":3950,"line":7107},[3948,26591,4548],{"class":4231},[3948,26593,26594],{"class":3950,"line":7118},[3948,26595,4003],{"class":4231},[3948,26597,26598],{"class":3950,"line":7127},[3948,26599,3973],{"emptyLinePlaceholder":3972},[3948,26601,26602,26604,26606,26609,26612,26614],{"class":3950,"line":7132},[3948,26603,4389],{"class":4227},[3948,26605,4392],{"class":4267},[3948,26607,26608],{"class":4395}," useTheme",[3948,26610,26611],{"class":4231},"(): ",[3948,26613,26080],{"class":4271},[3948,26615,5674],{"class":4231},[3948,26617,26618,26620,26623,26625,26628,26630,26633],{"class":3950,"line":7153},[3948,26619,4964],{"class":4267},[3948,26621,26622],{"class":4308}," ctx",[3948,26624,4970],{"class":4231},[3948,26626,26627],{"class":4395},"useContext",[3948,26629,4446],{"class":4231},[3948,26631,26632],{"class":4235},"ThemeContext",[3948,26634,7857],{"class":4231},[3948,26636,26637,26639,26642,26645],{"class":3950,"line":7179},[3948,26638,26148],{"class":4227},[3948,26640,26641],{"class":4231}," (!",[3948,26643,26644],{"class":4235},"ctx",[3948,26646,13475],{"class":4231},[3948,26648,26649,26652,26655,26658,26660,26663],{"class":3950,"line":7194},[3948,26650,26651],{"class":4227},"    throw",[3948,26653,26654],{"class":4267}," new",[3948,26656,26657],{"class":4395}," Error",[3948,26659,4446],{"class":4231},[3948,26661,26662],{"class":4254},"'useTheme() потрібно викликати всередині \u003CThemeProvider>.'",[3948,26664,7857],{"class":4231},[3948,26666,26667],{"class":3950,"line":7202},[3948,26668,13548],{"class":4231},[3948,26670,26671,26673,26675],{"class":3950,"line":7212},[3948,26672,4404],{"class":4227},[3948,26674,26622],{"class":4235},[3948,26676,4258],{"class":4231},[3948,26678,26679],{"class":3950,"line":7223},[3948,26680,4003],{"class":4231},[3939,26682,26685],{"className":12639,"code":26683,"filename":26684,"language":12641,"meta":3944,"style":3944},"\u002F**\n * Семантичні кольори: назва = роль на екрані, не «синій-500».\n * light \u002F dark — дві палітри з однаковими ключами.\n *\u002F\n\nexport const lightColors = {\n  background: '#F8FAFC',\n  surface: '#FFFFFF',\n  text: '#0F172A',\n  textSecondary: '#64748B',\n  primary: '#2563EB',\n  primaryPressed: '#1D4ED8',\n  border: '#E2E8F0',\n  danger: '#DC2626',\n  onPrimary: '#FFFFFF',\n} as const;\n\nexport const darkColors = {\n  background: '#000000',\n  surface: '#1C1C1E',\n  text: '#F5F5F7',\n  textSecondary: '#A1A1AA',\n  primary: '#3B82F6',\n  primaryPressed: '#2563EB',\n  border: '#3A3A3C',\n  danger: '#F87171',\n  onPrimary: '#FFFFFF',\n} as const;\n\nexport type ColorTokens = {\n  [K in keyof typeof lightColors]: string;\n};\n\nexport type ColorSchemeName = 'light' | 'dark';\n\nexport function colorsForScheme(scheme: ColorSchemeName): ColorTokens {\n  return scheme === 'dark' ? { ...darkColors } : { ...lightColors };\n}\n","src\u002Fshared\u002Ftheme\u002Fcolors.ts",[3525,26686,26687,26691,26696,26701,26705,26709,26720,26729,26739,26748,26757,26766,26776,26785,26795,26804,26814,26818,26829,26838,26847,26856,26865,26874,26882,26891,26900,26908,26918,26922,26932,26957,26961,26965,26983,26987,27009,27033],{"__ignoreMap":3944},[3948,26688,26689],{"class":3950,"line":3951},[3948,26690,22790],{"class":5778},[3948,26692,26693],{"class":3950,"line":3957},[3948,26694,26695],{"class":5778}," * Семантичні кольори: назва = роль на екрані, не «синій-500».\n",[3948,26697,26698],{"class":3950,"line":3963},[3948,26699,26700],{"class":5778}," * light \u002F dark — дві палітри з однаковими ключами.\n",[3948,26702,26703],{"class":3950,"line":3969},[3948,26704,22805],{"class":5778},[3948,26706,26707],{"class":3950,"line":3976},[3948,26708,3973],{"emptyLinePlaceholder":3972},[3948,26710,26711,26713,26715,26718],{"class":3950,"line":3982},[3948,26712,4389],{"class":4227},[3948,26714,13127],{"class":4267},[3948,26716,26717],{"class":4308}," lightColors",[3948,26719,10299],{"class":4231},[3948,26721,26722,26725,26727],{"class":3950,"line":3988},[3948,26723,26724],{"class":4235},"  background:",[3948,26726,14931],{"class":4254},[3948,26728,4902],{"class":4231},[3948,26730,26731,26734,26737],{"class":3950,"line":3994},[3948,26732,26733],{"class":4235},"  surface:",[3948,26735,26736],{"class":4254}," '#FFFFFF'",[3948,26738,4902],{"class":4231},[3948,26740,26741,26744,26746],{"class":3950,"line":4000},[3948,26742,26743],{"class":4235},"  text:",[3948,26745,14992],{"class":4254},[3948,26747,4902],{"class":4231},[3948,26749,26750,26753,26755],{"class":3950,"line":4006},[3948,26751,26752],{"class":4235},"  textSecondary:",[3948,26754,15007],{"class":4254},[3948,26756,4902],{"class":4231},[3948,26758,26759,26762,26764],{"class":3950,"line":4011},[3948,26760,26761],{"class":4235},"  primary:",[3948,26763,15056],{"class":4254},[3948,26765,4902],{"class":4231},[3948,26767,26768,26771,26774],{"class":3950,"line":4017},[3948,26769,26770],{"class":4235},"  primaryPressed:",[3948,26772,26773],{"class":4254}," '#1D4ED8'",[3948,26775,4902],{"class":4231},[3948,26777,26778,26781,26783],{"class":3950,"line":4023},[3948,26779,26780],{"class":4235},"  border:",[3948,26782,14965],{"class":4254},[3948,26784,4902],{"class":4231},[3948,26786,26787,26790,26793],{"class":3950,"line":4029},[3948,26788,26789],{"class":4235},"  danger:",[3948,26791,26792],{"class":4254}," '#DC2626'",[3948,26794,4902],{"class":4231},[3948,26796,26797,26800,26802],{"class":3950,"line":4035},[3948,26798,26799],{"class":4235},"  onPrimary:",[3948,26801,26736],{"class":4254},[3948,26803,4902],{"class":4231},[3948,26805,26806,26808,26810,26812],{"class":3950,"line":4041},[3948,26807,5952],{"class":4231},[3948,26809,13124],{"class":4227},[3948,26811,13127],{"class":4267},[3948,26813,4258],{"class":4231},[3948,26815,26816],{"class":3950,"line":4046},[3948,26817,3973],{"emptyLinePlaceholder":3972},[3948,26819,26820,26822,26824,26827],{"class":3950,"line":4051},[3948,26821,4389],{"class":4227},[3948,26823,13127],{"class":4267},[3948,26825,26826],{"class":4308}," darkColors",[3948,26828,10299],{"class":4231},[3948,26830,26831,26833,26836],{"class":3950,"line":4057},[3948,26832,26724],{"class":4235},[3948,26834,26835],{"class":4254}," '#000000'",[3948,26837,4902],{"class":4231},[3948,26839,26840,26842,26845],{"class":3950,"line":4063},[3948,26841,26733],{"class":4235},[3948,26843,26844],{"class":4254}," '#1C1C1E'",[3948,26846,4902],{"class":4231},[3948,26848,26849,26851,26854],{"class":3950,"line":4069},[3948,26850,26743],{"class":4235},[3948,26852,26853],{"class":4254}," '#F5F5F7'",[3948,26855,4902],{"class":4231},[3948,26857,26858,26860,26863],{"class":3950,"line":4074},[3948,26859,26752],{"class":4235},[3948,26861,26862],{"class":4254}," '#A1A1AA'",[3948,26864,4902],{"class":4231},[3948,26866,26867,26869,26872],{"class":3950,"line":4080},[3948,26868,26761],{"class":4235},[3948,26870,26871],{"class":4254}," '#3B82F6'",[3948,26873,4902],{"class":4231},[3948,26875,26876,26878,26880],{"class":3950,"line":4086},[3948,26877,26770],{"class":4235},[3948,26879,15056],{"class":4254},[3948,26881,4902],{"class":4231},[3948,26883,26884,26886,26889],{"class":3950,"line":4091},[3948,26885,26780],{"class":4235},[3948,26887,26888],{"class":4254}," '#3A3A3C'",[3948,26890,4902],{"class":4231},[3948,26892,26893,26895,26898],{"class":3950,"line":4096},[3948,26894,26789],{"class":4235},[3948,26896,26897],{"class":4254}," '#F87171'",[3948,26899,4902],{"class":4231},[3948,26901,26902,26904,26906],{"class":3950,"line":5272},[3948,26903,26799],{"class":4235},[3948,26905,26736],{"class":4254},[3948,26907,4902],{"class":4231},[3948,26909,26910,26912,26914,26916],{"class":3950,"line":5286},[3948,26911,5952],{"class":4231},[3948,26913,13124],{"class":4227},[3948,26915,13127],{"class":4267},[3948,26917,4258],{"class":4231},[3948,26919,26920],{"class":3950,"line":5312},[3948,26921,3973],{"emptyLinePlaceholder":3972},[3948,26923,26924,26926,26928,26930],{"class":3950,"line":5341},[3948,26925,4389],{"class":4227},[3948,26927,22130],{"class":4267},[3948,26929,25868],{"class":4271},[3948,26931,10299],{"class":4231},[3948,26933,26934,26936,26939,26942,26945,26948,26950,26953,26955],{"class":3950,"line":5361},[3948,26935,12042],{"class":4231},[3948,26937,26938],{"class":4271},"K",[3948,26940,26941],{"class":4267}," in",[3948,26943,26944],{"class":4267}," keyof",[3948,26946,26947],{"class":4267}," typeof",[3948,26949,26717],{"class":4235},[3948,26951,26952],{"class":4231},"]: ",[3948,26954,4283],{"class":4271},[3948,26956,4258],{"class":4231},[3948,26958,26959],{"class":3950,"line":5369},[3948,26960,10328],{"class":4231},[3948,26962,26963],{"class":3950,"line":5382},[3948,26964,3973],{"emptyLinePlaceholder":3972},[3948,26966,26967,26969,26971,26973,26975,26977,26979,26981],{"class":3950,"line":5395},[3948,26968,4389],{"class":4227},[3948,26970,22130],{"class":4267},[3948,26972,25859],{"class":4271},[3948,26974,4970],{"class":4231},[3948,26976,26157],{"class":4254},[3948,26978,25933],{"class":4231},[3948,26980,4978],{"class":4254},[3948,26982,4258],{"class":4231},[3948,26984,26985],{"class":3950,"line":5414},[3948,26986,3973],{"emptyLinePlaceholder":3972},[3948,26988,26989,26991,26993,26995,26997,26999,27001,27003,27005,27007],{"class":3950,"line":5422},[3948,26990,4389],{"class":4227},[3948,26992,4392],{"class":4267},[3948,26994,26425],{"class":4395},[3948,26996,4446],{"class":4231},[3948,26998,18887],{"class":4235},[3948,27000,4280],{"class":4231},[3948,27002,25936],{"class":4271},[3948,27004,7573],{"class":4231},[3948,27006,26011],{"class":4271},[3948,27008,5674],{"class":4231},[3948,27010,27011,27013,27015,27017,27019,27022,27025,27028,27031],{"class":3950,"line":5428},[3948,27012,4404],{"class":4227},[3948,27014,26392],{"class":4235},[3948,27016,4919],{"class":4231},[3948,27018,4978],{"class":4254},[3948,27020,27021],{"class":4231}," ? { ...",[3948,27023,27024],{"class":4235},"darkColors",[3948,27026,27027],{"class":4231}," } : { ...",[3948,27029,27030],{"class":4235},"lightColors",[3948,27032,4296],{"class":4231},[3948,27034,27035],{"class":3950,"line":5478},[3948,27036,4003],{"class":4231},[3939,27038,27041],{"className":12639,"code":27039,"filename":27040,"language":12641,"meta":3944,"style":3944},"export { lightColors, darkColors, colorsForScheme } from '.\u002Fcolors';\nexport type { ColorTokens, ColorSchemeName } from '.\u002Fcolors';\nexport { tokens, space, radius, fontSize } from '.\u002Ftokens';\nexport type { Tokens } from '.\u002Ftokens';\nexport { ThemeProvider, useTheme } from '.\u002FThemeProvider';\nexport type { ThemePreference } from '.\u002FThemeProvider';\n","src\u002Fshared\u002Ftheme\u002Findex.ts",[3525,27042,27043,27068,27090,27119,27138,27159],{"__ignoreMap":3944},[3948,27044,27045,27047,27049,27051,27053,27055,27057,27060,27062,27064,27066],{"class":3950,"line":3951},[3948,27046,4389],{"class":4227},[3948,27048,4232],{"class":4231},[3948,27050,27030],{"class":4235},[3948,27052,3593],{"class":4231},[3948,27054,27024],{"class":4235},[3948,27056,3593],{"class":4231},[3948,27058,27059],{"class":4235},"colorsForScheme",[3948,27061,4248],{"class":4231},[3948,27063,4251],{"class":4227},[3948,27065,25879],{"class":4254},[3948,27067,4258],{"class":4231},[3948,27069,27070,27072,27074,27076,27078,27080,27082,27084,27086,27088],{"class":3950,"line":3957},[3948,27071,4389],{"class":4227},[3948,27073,22130],{"class":4227},[3948,27075,4232],{"class":4231},[3948,27077,26011],{"class":4235},[3948,27079,3593],{"class":4231},[3948,27081,25936],{"class":4235},[3948,27083,4248],{"class":4231},[3948,27085,4251],{"class":4227},[3948,27087,25879],{"class":4254},[3948,27089,4258],{"class":4231},[3948,27091,27092,27094,27096,27099,27101,27103,27105,27107,27109,27111,27113,27115,27117],{"class":3950,"line":3963},[3948,27093,4389],{"class":4227},[3948,27095,4232],{"class":4231},[3948,27097,27098],{"class":4235},"tokens",[3948,27100,3593],{"class":4231},[3948,27102,25899],{"class":4235},[3948,27104,3593],{"class":4231},[3948,27106,23931],{"class":4235},[3948,27108,3593],{"class":4231},[3948,27110,25890],{"class":4235},[3948,27112,4248],{"class":4231},[3948,27114,4251],{"class":4227},[3948,27116,25906],{"class":4254},[3948,27118,4258],{"class":4231},[3948,27120,27121,27123,27125,27127,27130,27132,27134,27136],{"class":3950,"line":3969},[3948,27122,4389],{"class":4227},[3948,27124,22130],{"class":4227},[3948,27126,4232],{"class":4231},[3948,27128,27129],{"class":4235},"Tokens",[3948,27131,4248],{"class":4231},[3948,27133,4251],{"class":4227},[3948,27135,25906],{"class":4254},[3948,27137,4258],{"class":4231},[3948,27139,27140,27142,27144,27146,27148,27150,27152,27154,27157],{"class":3950,"line":3976},[3948,27141,4389],{"class":4227},[3948,27143,4232],{"class":4231},[3948,27145,17967],{"class":4235},[3948,27147,3593],{"class":4231},[3948,27149,18851],{"class":4235},[3948,27151,4248],{"class":4231},[3948,27153,4251],{"class":4227},[3948,27155,27156],{"class":4254}," '.\u002FThemeProvider'",[3948,27158,4258],{"class":4231},[3948,27160,27161,27163,27165,27167,27169,27171,27173,27175],{"class":3950,"line":3982},[3948,27162,4389],{"class":4227},[3948,27164,22130],{"class":4227},[3948,27166,4232],{"class":4231},[3948,27168,19296],{"class":4235},[3948,27170,4248],{"class":4231},[3948,27172,4251],{"class":4227},[3948,27174,27156],{"class":4254},[3948,27176,4258],{"class":4231},[3939,27178,27181],{"className":12639,"code":27179,"filename":27180,"language":12641,"meta":3944,"style":3944},"\u002F**\n * Токени, що **не** залежать від light\u002Fdark:\n * відступи, радіуси, розміри шрифтів.\n * Кольори — у colors.ts + ThemeProvider.\n *\u002F\n\nexport const space = {\n  xs: 4,\n  sm: 8,\n  md: 16,\n  lg: 24,\n  xl: 32,\n} as const;\n\nexport const radius = {\n  sm: 8,\n  md: 12,\n  lg: 16,\n} as const;\n\nexport const fontSize = {\n  sm: 14,\n  md: 16,\n  lg: 20,\n  xl: 28,\n} as const;\n\n\u002F** @deprecated Використовуйте useTheme() для кольорів; space\u002Fradius\u002FfontSize — нижче. *\u002F\nexport const tokens = {\n  \u002F** Світла палітра (fallback, якщо хтось імпортує tokens.colors без теми). *\u002F\n  colors: {\n    background: '#F8FAFC',\n    surface: '#FFFFFF',\n    text: '#0F172A',\n    textSecondary: '#64748B',\n    primary: '#2563EB',\n    primaryPressed: '#1D4ED8',\n    border: '#E2E8F0',\n    danger: '#DC2626',\n    onPrimary: '#FFFFFF',\n  },\n  spacing: space,\n  radius,\n  fontSize,\n} as const;\n\nexport type Tokens = typeof tokens;\n","src\u002Fshared\u002Ftheme\u002Ftokens.ts",[3525,27182,27183,27187,27192,27197,27202,27206,27210,27220,27229,27238,27247,27256,27266,27276,27280,27290,27298,27306,27314,27324,27328,27338,27346,27354,27362,27371,27381,27385,27396,27407,27412,27419,27428,27437,27446,27455,27464,27473,27482,27491,27500,27504,27513,27519,27525,27535,27539],{"__ignoreMap":3944},[3948,27184,27185],{"class":3950,"line":3951},[3948,27186,22790],{"class":5778},[3948,27188,27189],{"class":3950,"line":3957},[3948,27190,27191],{"class":5778}," * Токени, що **не** залежать від light\u002Fdark:\n",[3948,27193,27194],{"class":3950,"line":3963},[3948,27195,27196],{"class":5778}," * відступи, радіуси, розміри шрифтів.\n",[3948,27198,27199],{"class":3950,"line":3969},[3948,27200,27201],{"class":5778}," * Кольори — у colors.ts + ThemeProvider.\n",[3948,27203,27204],{"class":3950,"line":3976},[3948,27205,22805],{"class":5778},[3948,27207,27208],{"class":3950,"line":3982},[3948,27209,3973],{"emptyLinePlaceholder":3972},[3948,27211,27212,27214,27216,27218],{"class":3950,"line":3988},[3948,27213,4389],{"class":4227},[3948,27215,13127],{"class":4267},[3948,27217,26026],{"class":4308},[3948,27219,10299],{"class":4231},[3948,27221,27222,27225,27227],{"class":3950,"line":3994},[3948,27223,27224],{"class":4235},"  xs:",[3948,27226,5649],{"class":4836},[3948,27228,4902],{"class":4231},[3948,27230,27231,27234,27236],{"class":3950,"line":4000},[3948,27232,27233],{"class":4235},"  sm:",[3948,27235,5216],{"class":4836},[3948,27237,4902],{"class":4231},[3948,27239,27240,27243,27245],{"class":3950,"line":4006},[3948,27241,27242],{"class":4235},"  md:",[3948,27244,5327],{"class":4836},[3948,27246,4902],{"class":4231},[3948,27248,27249,27252,27254],{"class":3950,"line":4011},[3948,27250,27251],{"class":4235},"  lg:",[3948,27253,5619],{"class":4836},[3948,27255,4902],{"class":4231},[3948,27257,27258,27261,27264],{"class":3950,"line":4017},[3948,27259,27260],{"class":4235},"  xl:",[3948,27262,27263],{"class":4836}," 32",[3948,27265,4902],{"class":4231},[3948,27267,27268,27270,27272,27274],{"class":3950,"line":4023},[3948,27269,5952],{"class":4231},[3948,27271,13124],{"class":4227},[3948,27273,13127],{"class":4267},[3948,27275,4258],{"class":4231},[3948,27277,27278],{"class":3950,"line":4029},[3948,27279,3973],{"emptyLinePlaceholder":3972},[3948,27281,27282,27284,27286,27288],{"class":3950,"line":4035},[3948,27283,4389],{"class":4227},[3948,27285,13127],{"class":4267},[3948,27287,24093],{"class":4308},[3948,27289,10299],{"class":4231},[3948,27291,27292,27294,27296],{"class":3950,"line":4041},[3948,27293,27233],{"class":4235},[3948,27295,5216],{"class":4836},[3948,27297,4902],{"class":4231},[3948,27299,27300,27302,27304],{"class":3950,"line":4046},[3948,27301,27242],{"class":4235},[3948,27303,5693],{"class":4836},[3948,27305,4902],{"class":4231},[3948,27307,27308,27310,27312],{"class":3950,"line":4051},[3948,27309,27251],{"class":4235},[3948,27311,5327],{"class":4836},[3948,27313,4902],{"class":4231},[3948,27315,27316,27318,27320,27322],{"class":3950,"line":4057},[3948,27317,5952],{"class":4231},[3948,27319,13124],{"class":4227},[3948,27321,13127],{"class":4267},[3948,27323,4258],{"class":4231},[3948,27325,27326],{"class":3950,"line":4063},[3948,27327,3973],{"emptyLinePlaceholder":3972},[3948,27329,27330,27332,27334,27336],{"class":3950,"line":4069},[3948,27331,4389],{"class":4227},[3948,27333,13127],{"class":4267},[3948,27335,26053],{"class":4308},[3948,27337,10299],{"class":4231},[3948,27339,27340,27342,27344],{"class":3950,"line":4074},[3948,27341,27233],{"class":4235},[3948,27343,5704],{"class":4836},[3948,27345,4902],{"class":4231},[3948,27347,27348,27350,27352],{"class":3950,"line":4080},[3948,27349,27242],{"class":4235},[3948,27351,5327],{"class":4836},[3948,27353,4902],{"class":4231},[3948,27355,27356,27358,27360],{"class":3950,"line":4086},[3948,27357,27251],{"class":4235},[3948,27359,5634],{"class":4836},[3948,27361,4902],{"class":4231},[3948,27363,27364,27366,27369],{"class":3950,"line":4091},[3948,27365,27260],{"class":4235},[3948,27367,27368],{"class":4836}," 28",[3948,27370,4902],{"class":4231},[3948,27372,27373,27375,27377,27379],{"class":3950,"line":4096},[3948,27374,5952],{"class":4231},[3948,27376,13124],{"class":4227},[3948,27378,13127],{"class":4267},[3948,27380,4258],{"class":4231},[3948,27382,27383],{"class":3950,"line":5272},[3948,27384,3973],{"emptyLinePlaceholder":3972},[3948,27386,27387,27390,27393],{"class":3950,"line":5286},[3948,27388,27389],{"class":5778},"\u002F** ",[3948,27391,27392],{"class":4267},"@deprecated",[3948,27394,27395],{"class":5778}," Використовуйте useTheme() для кольорів; space\u002Fradius\u002FfontSize — нижче. *\u002F\n",[3948,27397,27398,27400,27402,27405],{"class":3950,"line":5312},[3948,27399,4389],{"class":4227},[3948,27401,13127],{"class":4267},[3948,27403,27404],{"class":4308}," tokens",[3948,27406,10299],{"class":4231},[3948,27408,27409],{"class":3950,"line":5341},[3948,27410,27411],{"class":5778},"  \u002F** Світла палітра (fallback, якщо хтось імпортує tokens.colors без теми). *\u002F\n",[3948,27413,27414,27417],{"class":3950,"line":5361},[3948,27415,27416],{"class":4235},"  colors:",[3948,27418,5674],{"class":4231},[3948,27420,27421,27424,27426],{"class":3950,"line":5369},[3948,27422,27423],{"class":4235},"    background:",[3948,27425,14931],{"class":4254},[3948,27427,4902],{"class":4231},[3948,27429,27430,27433,27435],{"class":3950,"line":5382},[3948,27431,27432],{"class":4235},"    surface:",[3948,27434,26736],{"class":4254},[3948,27436,4902],{"class":4231},[3948,27438,27439,27442,27444],{"class":3950,"line":5395},[3948,27440,27441],{"class":4235},"    text:",[3948,27443,14992],{"class":4254},[3948,27445,4902],{"class":4231},[3948,27447,27448,27451,27453],{"class":3950,"line":5414},[3948,27449,27450],{"class":4235},"    textSecondary:",[3948,27452,15007],{"class":4254},[3948,27454,4902],{"class":4231},[3948,27456,27457,27460,27462],{"class":3950,"line":5422},[3948,27458,27459],{"class":4235},"    primary:",[3948,27461,15056],{"class":4254},[3948,27463,4902],{"class":4231},[3948,27465,27466,27469,27471],{"class":3950,"line":5428},[3948,27467,27468],{"class":4235},"    primaryPressed:",[3948,27470,26773],{"class":4254},[3948,27472,4902],{"class":4231},[3948,27474,27475,27478,27480],{"class":3950,"line":5478},[3948,27476,27477],{"class":4235},"    border:",[3948,27479,14965],{"class":4254},[3948,27481,4902],{"class":4231},[3948,27483,27484,27487,27489],{"class":3950,"line":5525},[3948,27485,27486],{"class":4235},"    danger:",[3948,27488,26792],{"class":4254},[3948,27490,4902],{"class":4231},[3948,27492,27493,27496,27498],{"class":3950,"line":5535},[3948,27494,27495],{"class":4235},"    onPrimary:",[3948,27497,26736],{"class":4254},[3948,27499,4902],{"class":4231},[3948,27501,27502],{"class":3950,"line":5543},[3948,27503,5712],{"class":4231},[3948,27505,27506,27509,27511],{"class":3950,"line":5549},[3948,27507,27508],{"class":4235},"  spacing:",[3948,27510,26026],{"class":4235},[3948,27512,4902],{"class":4231},[3948,27514,27515,27517],{"class":3950,"line":5559},[3948,27516,26033],{"class":4235},[3948,27518,4902],{"class":4231},[3948,27520,27521,27523],{"class":3950,"line":5564},[3948,27522,26046],{"class":4235},[3948,27524,4902],{"class":4231},[3948,27526,27527,27529,27531,27533],{"class":3950,"line":5569},[3948,27528,5952],{"class":4231},[3948,27530,13124],{"class":4227},[3948,27532,13127],{"class":4267},[3948,27534,4258],{"class":4231},[3948,27536,27537],{"class":3950,"line":5574},[3948,27538,3973],{"emptyLinePlaceholder":3972},[3948,27540,27541,27543,27545,27548,27550,27552,27554],{"class":3950,"line":5594},[3948,27542,4389],{"class":4227},[3948,27544,22130],{"class":4267},[3948,27546,27547],{"class":4271}," Tokens",[3948,27549,4970],{"class":4231},[3948,27551,26023],{"class":4267},[3948,27553,27404],{"class":4235},[3948,27555,4258],{"class":4231},[3939,27557,27560],{"className":4218,"code":27558,"filename":27559,"language":4220,"meta":3944,"style":3944},"import { ReactNode } from 'react';\nimport { StyleSheet, Text, TextProps, TextStyle } from 'react-native';\n\nimport { useTheme } from '@\u002Fshared\u002Ftheme';\n\ntype AppTextVariant = 'body' | 'title' | 'subtitle' | 'caption';\n\ntype AppTextProps = TextProps & {\n  children: ReactNode;\n  variant?: AppTextVariant;\n  \u002F** Якщо не передано — body\u002Ftitle\u002Fsubtitle → text, caption → textSecondary. *\u002F\n  color?: string;\n  style?: TextStyle | TextStyle[];\n};\n\nexport function AppText({\n  children,\n  variant = 'body',\n  color,\n  style,\n  ...rest\n}: AppTextProps) {\n  const { colors, fontSize } = useTheme();\n  const resolvedColor =\n    color ??\n    (variant === 'caption' ? colors.textSecondary : colors.text);\n\n  return (\n    \u003CText\n      style={[\n        styles.base,\n        variant === 'body' && { fontSize: fontSize.md, lineHeight: 24 },\n        variant === 'title' && {\n          fontSize: fontSize.xl,\n          fontWeight: '700',\n          lineHeight: 34,\n        },\n        variant === 'subtitle' && {\n          fontSize: fontSize.lg,\n          fontWeight: '600',\n          lineHeight: 28,\n        },\n        variant === 'caption' && {\n          fontSize: fontSize.sm,\n          lineHeight: 20,\n        },\n        { color: resolvedColor },\n        style,\n      ]}\n      {...rest}\n    >\n      {children}\n    \u003C\u002FText>\n  );\n}\n\nconst styles = StyleSheet.create({\n  base: {},\n});\n","src\u002Fshared\u002Fui\u002FAppText.tsx",[3525,27561,27562,27578,27608,27612,27628,27632,27661,27665,27679,27689,27701,27706,27717,27732,27736,27740,27751,27757,27767,27773,27779,27787,27796,27814,27824,27832,27862,27866,27872,27879,27889,27900,27929,27942,27955,27964,27974,27978,27991,28003,28011,28019,28023,28036,28048,28056,28060,28071,28077,28083,28095,28099,28107,28115,28119,28123,28127,28143,28150],{"__ignoreMap":3944},[3948,27563,27564,27566,27568,27570,27572,27574,27576],{"class":3950,"line":3951},[3948,27565,4228],{"class":4227},[3948,27567,4232],{"class":4231},[3948,27569,26228],{"class":4235},[3948,27571,4248],{"class":4231},[3948,27573,4251],{"class":4227},[3948,27575,5897],{"class":4254},[3948,27577,4258],{"class":4231},[3948,27579,27580,27582,27584,27586,27588,27590,27592,27595,27597,27600,27602,27604,27606],{"class":3950,"line":3957},[3948,27581,4228],{"class":4227},[3948,27583,4232],{"class":4231},[3948,27585,4744],{"class":4235},[3948,27587,3593],{"class":4231},[3948,27589,4240],{"class":4235},[3948,27591,3593],{"class":4231},[3948,27593,27594],{"class":4235},"TextProps",[3948,27596,3593],{"class":4231},[3948,27598,27599],{"class":4235},"TextStyle",[3948,27601,4248],{"class":4231},[3948,27603,4251],{"class":4227},[3948,27605,4255],{"class":4254},[3948,27607,4258],{"class":4231},[3948,27609,27610],{"class":3950,"line":3963},[3948,27611,3973],{"emptyLinePlaceholder":3972},[3948,27613,27614,27616,27618,27620,27622,27624,27626],{"class":3950,"line":3969},[3948,27615,4228],{"class":4227},[3948,27617,4232],{"class":4231},[3948,27619,18851],{"class":4235},[3948,27621,4248],{"class":4231},[3948,27623,4251],{"class":4227},[3948,27625,18858],{"class":4254},[3948,27627,4258],{"class":4231},[3948,27629,27630],{"class":3950,"line":3976},[3948,27631,3973],{"emptyLinePlaceholder":3972},[3948,27633,27634,27636,27639,27641,27644,27646,27649,27651,27654,27656,27659],{"class":3950,"line":3982},[3948,27635,4268],{"class":4267},[3948,27637,27638],{"class":4271}," AppTextVariant",[3948,27640,4970],{"class":4231},[3948,27642,27643],{"class":4254},"'body'",[3948,27645,25933],{"class":4231},[3948,27647,27648],{"class":4254},"'title'",[3948,27650,25933],{"class":4231},[3948,27652,27653],{"class":4254},"'subtitle'",[3948,27655,25933],{"class":4231},[3948,27657,27658],{"class":4254},"'caption'",[3948,27660,4258],{"class":4231},[3948,27662,27663],{"class":3950,"line":3988},[3948,27664,3973],{"emptyLinePlaceholder":3972},[3948,27666,27667,27669,27672,27674,27676],{"class":3950,"line":3994},[3948,27668,4268],{"class":4267},[3948,27670,27671],{"class":4271}," AppTextProps",[3948,27673,4970],{"class":4231},[3948,27675,27594],{"class":4271},[3948,27677,27678],{"class":4231}," & {\n",[3948,27680,27681,27683,27685,27687],{"class":3950,"line":4000},[3948,27682,26223],{"class":4235},[3948,27684,4280],{"class":4231},[3948,27686,26228],{"class":4271},[3948,27688,4258],{"class":4231},[3948,27690,27691,27694,27696,27699],{"class":3950,"line":4006},[3948,27692,27693],{"class":4235},"  variant",[3948,27695,26243],{"class":4231},[3948,27697,27698],{"class":4271},"AppTextVariant",[3948,27700,4258],{"class":4231},[3948,27702,27703],{"class":3950,"line":4011},[3948,27704,27705],{"class":5778},"  \u002F** Якщо не передано — body\u002Ftitle\u002Fsubtitle → text, caption → textSecondary. *\u002F\n",[3948,27707,27708,27711,27713,27715],{"class":3950,"line":4017},[3948,27709,27710],{"class":4235},"  color",[3948,27712,26243],{"class":4231},[3948,27714,4283],{"class":4271},[3948,27716,4258],{"class":4231},[3948,27718,27719,27722,27724,27726,27728,27730],{"class":3950,"line":4023},[3948,27720,27721],{"class":4235},"  style",[3948,27723,26243],{"class":4231},[3948,27725,27599],{"class":4271},[3948,27727,25933],{"class":4231},[3948,27729,27599],{"class":4271},[3948,27731,10323],{"class":4231},[3948,27733,27734],{"class":3950,"line":4029},[3948,27735,10328],{"class":4231},[3948,27737,27738],{"class":3950,"line":4035},[3948,27739,3973],{"emptyLinePlaceholder":3972},[3948,27741,27742,27744,27746,27749],{"class":3950,"line":4041},[3948,27743,4389],{"class":4227},[3948,27745,4392],{"class":4267},[3948,27747,27748],{"class":4395}," AppText",[3948,27750,5591],{"class":4231},[3948,27752,27753,27755],{"class":3950,"line":4046},[3948,27754,26223],{"class":4235},[3948,27756,4902],{"class":4231},[3948,27758,27759,27761,27763,27765],{"class":3950,"line":4051},[3948,27760,27693],{"class":4235},[3948,27762,4970],{"class":4231},[3948,27764,27643],{"class":4254},[3948,27766,4902],{"class":4231},[3948,27768,27769,27771],{"class":3950,"line":4057},[3948,27770,27710],{"class":4235},[3948,27772,4902],{"class":4231},[3948,27774,27775,27777],{"class":3950,"line":4063},[3948,27776,27721],{"class":4235},[3948,27778,4902],{"class":4231},[3948,27780,27781,27784],{"class":3950,"line":4069},[3948,27782,27783],{"class":4231},"  ...",[3948,27785,27786],{"class":4235},"rest\n",[3948,27788,27789,27791,27794],{"class":3950,"line":4074},[3948,27790,26287],{"class":4231},[3948,27792,27793],{"class":4271},"AppTextProps",[3948,27795,13475],{"class":4231},[3948,27797,27798,27800,27802,27804,27806,27808,27810,27812],{"class":3950,"line":4080},[3948,27799,4964],{"class":4267},[3948,27801,4232],{"class":4231},[3948,27803,18882],{"class":4308},[3948,27805,3593],{"class":4231},[3948,27807,25890],{"class":4308},[3948,27809,18890],{"class":4231},[3948,27811,18851],{"class":4395},[3948,27813,18895],{"class":4231},[3948,27815,27816,27818,27821],{"class":3950,"line":4086},[3948,27817,4964],{"class":4267},[3948,27819,27820],{"class":4308}," resolvedColor",[3948,27822,27823],{"class":4231}," =\n",[3948,27825,27826,27829],{"class":3950,"line":4091},[3948,27827,27828],{"class":4235},"    color",[3948,27830,27831],{"class":4231}," ??\n",[3948,27833,27834,27837,27840,27842,27844,27846,27848,27850,27852,27854,27856,27858,27860],{"class":3950,"line":4096},[3948,27835,27836],{"class":4231},"    (",[3948,27838,27839],{"class":4235},"variant",[3948,27841,4919],{"class":4231},[3948,27843,27658],{"class":4254},[3948,27845,4925],{"class":4231},[3948,27847,18882],{"class":4235},[3948,27849,3555],{"class":4231},[3948,27851,20388],{"class":4235},[3948,27853,4931],{"class":4231},[3948,27855,18882],{"class":4235},[3948,27857,3555],{"class":4231},[3948,27859,21161],{"class":4235},[3948,27861,7857],{"class":4231},[3948,27863,27864],{"class":3950,"line":5272},[3948,27865,3973],{"emptyLinePlaceholder":3972},[3948,27867,27868,27870],{"class":3950,"line":5286},[3948,27869,4404],{"class":4227},[3948,27871,4407],{"class":4231},[3948,27873,27874,27876],{"class":3950,"line":5312},[3948,27875,4413],{"class":4412},[3948,27877,27878],{"class":4271},"Text\n",[3948,27880,27881,27883,27885,27887],{"class":3950,"line":5341},[3948,27882,20233],{"class":4421},[3948,27884,4425],{"class":4231},[3948,27886,4428],{"class":4267},[3948,27888,5379],{"class":4445},[3948,27890,27891,27893,27895,27898],{"class":3950,"line":5361},[3948,27892,20244],{"class":4235},[3948,27894,3555],{"class":4445},[3948,27896,27897],{"class":4235},"base",[3948,27899,4902],{"class":4445},[3948,27901,27902,27904,27906,27909,27911,27913,27915,27917,27919,27921,27923,27925,27927],{"class":3950,"line":5369},[3948,27903,20367],{"class":4235},[3948,27905,6623],{"class":4231},[3948,27907,27908],{"class":4254}," 'body'",[3948,27910,24850],{"class":4231},[3948,27912,4232],{"class":4445},[3948,27914,5221],{"class":4235},[3948,27916,26053],{"class":4235},[3948,27918,3555],{"class":4445},[3948,27920,19863],{"class":4235},[3948,27922,3593],{"class":4445},[3948,27924,6821],{"class":4235},[3948,27926,5619],{"class":4836},[3948,27928,4339],{"class":4445},[3948,27930,27931,27933,27935,27938,27940],{"class":3950,"line":5382},[3948,27932,20367],{"class":4235},[3948,27934,6623],{"class":4231},[3948,27936,27937],{"class":4254}," 'title'",[3948,27939,24850],{"class":4231},[3948,27941,5674],{"class":4445},[3948,27943,27944,27947,27949,27951,27953],{"class":3950,"line":5395},[3948,27945,27946],{"class":4235},"          fontSize:",[3948,27948,26053],{"class":4235},[3948,27950,3555],{"class":4445},[3948,27952,20280],{"class":4235},[3948,27954,4902],{"class":4445},[3948,27956,27957,27960,27962],{"class":3950,"line":5414},[3948,27958,27959],{"class":4235},"          fontWeight:",[3948,27961,5730],{"class":4254},[3948,27963,4902],{"class":4445},[3948,27965,27966,27969,27972],{"class":3950,"line":5422},[3948,27967,27968],{"class":4235},"          lineHeight:",[3948,27970,27971],{"class":4836}," 34",[3948,27973,4902],{"class":4445},[3948,27975,27976],{"class":3950,"line":5428},[3948,27977,20300],{"class":4445},[3948,27979,27980,27982,27984,27987,27989],{"class":3950,"line":5478},[3948,27981,20367],{"class":4235},[3948,27983,6623],{"class":4231},[3948,27985,27986],{"class":4254}," 'subtitle'",[3948,27988,24850],{"class":4231},[3948,27990,5674],{"class":4445},[3948,27992,27993,27995,27997,27999,28001],{"class":3950,"line":5525},[3948,27994,27946],{"class":4235},[3948,27996,26053],{"class":4235},[3948,27998,3555],{"class":4445},[3948,28000,24836],{"class":4235},[3948,28002,4902],{"class":4445},[3948,28004,28005,28007,28009],{"class":3950,"line":5535},[3948,28006,27959],{"class":4235},[3948,28008,6949],{"class":4254},[3948,28010,4902],{"class":4445},[3948,28012,28013,28015,28017],{"class":3950,"line":5543},[3948,28014,27968],{"class":4235},[3948,28016,27368],{"class":4836},[3948,28018,4902],{"class":4445},[3948,28020,28021],{"class":3950,"line":5549},[3948,28022,20300],{"class":4445},[3948,28024,28025,28027,28029,28032,28034],{"class":3950,"line":5559},[3948,28026,20367],{"class":4235},[3948,28028,6623],{"class":4231},[3948,28030,28031],{"class":4254}," 'caption'",[3948,28033,24850],{"class":4231},[3948,28035,5674],{"class":4445},[3948,28037,28038,28040,28042,28044,28046],{"class":3950,"line":5564},[3948,28039,27946],{"class":4235},[3948,28041,26053],{"class":4235},[3948,28043,3555],{"class":4445},[3948,28045,19922],{"class":4235},[3948,28047,4902],{"class":4445},[3948,28049,28050,28052,28054],{"class":3950,"line":5569},[3948,28051,27968],{"class":4235},[3948,28053,5634],{"class":4836},[3948,28055,4902],{"class":4445},[3948,28057,28058],{"class":3950,"line":5574},[3948,28059,20300],{"class":4445},[3948,28061,28062,28065,28067,28069],{"class":3950,"line":5594},[3948,28063,28064],{"class":4445},"        { ",[3948,28066,5172],{"class":4235},[3948,28068,27820],{"class":4235},[3948,28070,4339],{"class":4445},[3948,28072,28073,28075],{"class":3950,"line":5624},[3948,28074,5256],{"class":4235},[3948,28076,4902],{"class":4445},[3948,28078,28079,28081],{"class":3950,"line":5654},[3948,28080,20305],{"class":4445},[3948,28082,4003],{"class":4267},[3948,28084,28085,28087,28090,28093],{"class":3950,"line":5668},[3948,28086,19884],{"class":4267},[3948,28088,28089],{"class":4231},"...",[3948,28091,28092],{"class":4235},"rest",[3948,28094,4003],{"class":4267},[3948,28096,28097],{"class":3950,"line":5677},[3948,28098,20312],{"class":4412},[3948,28100,28101,28103,28105],{"class":3950,"line":5687},[3948,28102,19884],{"class":4267},[3948,28104,26579],{"class":4235},[3948,28106,4003],{"class":4267},[3948,28108,28109,28111,28113],{"class":3950,"line":5698},[3948,28110,5552],{"class":4412},[3948,28112,4240],{"class":4271},[3948,28114,4494],{"class":4412},[3948,28116,28117],{"class":3950,"line":5709},[3948,28118,4548],{"class":4231},[3948,28120,28121],{"class":3950,"line":5715},[3948,28122,4003],{"class":4231},[3948,28124,28125],{"class":3950,"line":5741},[3948,28126,3973],{"emptyLinePlaceholder":3972},[3948,28128,28129,28131,28133,28135,28137,28139,28141],{"class":3950,"line":6725},[3948,28130,4305],{"class":4267},[3948,28132,5579],{"class":4308},[3948,28134,4970],{"class":4231},[3948,28136,4744],{"class":4235},[3948,28138,3555],{"class":4231},[3948,28140,5588],{"class":4395},[3948,28142,5591],{"class":4231},[3948,28144,28145,28148],{"class":3950,"line":6749},[3948,28146,28147],{"class":4235},"  base:",[3948,28149,25575],{"class":4231},[3948,28151,28152],{"class":3950,"line":6792},[3948,28153,5744],{"class":4231},[3939,28155,28158],{"className":4218,"code":28156,"filename":28157,"language":4220,"meta":3944,"style":3944},"import { Pressable, StyleSheet, Text, ViewStyle } from 'react-native';\n\nimport { useTheme } from '@\u002Fshared\u002Ftheme';\n\ntype ButtonProps = {\n  label: string;\n  onPress: () => void;\n  disabled?: boolean;\n  style?: ViewStyle;\n};\n\nexport function Button({ label, onPress, disabled = false, style }: ButtonProps) {\n  const { colors, spacing, radius, fontSize } = useTheme();\n\n  return (\n    \u003CPressable\n      accessibilityRole=\"button\"\n      disabled={disabled}\n      onPress={onPress}\n      style={({ pressed }) => [\n        styles.base,\n        {\n          backgroundColor: colors.primary,\n          paddingVertical: spacing.sm + 4,\n          paddingHorizontal: spacing.md,\n          borderRadius: radius.md,\n        },\n        pressed && !disabled ? { backgroundColor: colors.primaryPressed } : null,\n        disabled ? styles.disabled : null,\n        style,\n      ]}\n    >\n      \u003CText\n        style={[\n          styles.label,\n          { color: colors.onPrimary, fontSize: fontSize.md },\n        ]}\n      >\n        {label}\n      \u003C\u002FText>\n    \u003C\u002FPressable>\n  );\n}\n\nconst styles = StyleSheet.create({\n  base: {\n    alignItems: 'center',\n  },\n  disabled: {\n    opacity: 0.5,\n  },\n  label: {\n    fontWeight: '600',\n  },\n});\n","src\u002Fshared\u002Fui\u002FButton.tsx",[3525,28159,28160,28189,28193,28209,28213,28222,28233,28246,28257,28267,28271,28275,28312,28338,28342,28348,28354,28362,28375,28387,28405,28415,28419,28431,28447,28459,28471,28475,28507,28526,28532,28538,28542,28548,28558,28568,28593,28599,28603,28611,28619,28627,28631,28635,28639,28655,28661,28669,28673,28680,28689,28693,28700,28708,28712],{"__ignoreMap":3944},[3948,28161,28162,28164,28166,28168,28170,28172,28174,28176,28178,28181,28183,28185,28187],{"class":3950,"line":3951},[3948,28163,4228],{"class":4227},[3948,28165,4232],{"class":4231},[3948,28167,3897],{"class":4235},[3948,28169,3593],{"class":4231},[3948,28171,4744],{"class":4235},[3948,28173,3593],{"class":4231},[3948,28175,4240],{"class":4235},[3948,28177,3593],{"class":4231},[3948,28179,28180],{"class":4235},"ViewStyle",[3948,28182,4248],{"class":4231},[3948,28184,4251],{"class":4227},[3948,28186,4255],{"class":4254},[3948,28188,4258],{"class":4231},[3948,28190,28191],{"class":3950,"line":3957},[3948,28192,3973],{"emptyLinePlaceholder":3972},[3948,28194,28195,28197,28199,28201,28203,28205,28207],{"class":3950,"line":3963},[3948,28196,4228],{"class":4227},[3948,28198,4232],{"class":4231},[3948,28200,18851],{"class":4235},[3948,28202,4248],{"class":4231},[3948,28204,4251],{"class":4227},[3948,28206,18858],{"class":4254},[3948,28208,4258],{"class":4231},[3948,28210,28211],{"class":3950,"line":3969},[3948,28212,3973],{"emptyLinePlaceholder":3972},[3948,28214,28215,28217,28220],{"class":3950,"line":3976},[3948,28216,4268],{"class":4267},[3948,28218,28219],{"class":4271}," ButtonProps",[3948,28221,10299],{"class":4231},[3948,28223,28224,28227,28229,28231],{"class":3950,"line":3982},[3948,28225,28226],{"class":4235},"  label",[3948,28228,4280],{"class":4231},[3948,28230,4283],{"class":4271},[3948,28232,4258],{"class":4231},[3948,28234,28235,28237,28240,28242,28244],{"class":3950,"line":3988},[3948,28236,23865],{"class":4395},[3948,28238,28239],{"class":4231},": () ",[3948,28241,4454],{"class":4267},[3948,28243,23881],{"class":4271},[3948,28245,4258],{"class":4231},[3948,28247,28248,28251,28253,28255],{"class":3950,"line":3994},[3948,28249,28250],{"class":4235},"  disabled",[3948,28252,26243],{"class":4231},[3948,28254,4712],{"class":4271},[3948,28256,4258],{"class":4231},[3948,28258,28259,28261,28263,28265],{"class":3950,"line":4000},[3948,28260,27721],{"class":4235},[3948,28262,26243],{"class":4231},[3948,28264,28180],{"class":4271},[3948,28266,4258],{"class":4231},[3948,28268,28269],{"class":3950,"line":4006},[3948,28270,10328],{"class":4231},[3948,28272,28273],{"class":3950,"line":4011},[3948,28274,3973],{"emptyLinePlaceholder":3972},[3948,28276,28277,28279,28281,28284,28286,28288,28290,28292,28294,28297,28299,28301,28303,28305,28307,28310],{"class":3950,"line":4017},[3948,28278,4389],{"class":4227},[3948,28280,4392],{"class":4267},[3948,28282,28283],{"class":4395}," Button",[3948,28285,4475],{"class":4231},[3948,28287,19301],{"class":4235},[3948,28289,3593],{"class":4231},[3948,28291,11906],{"class":4235},[3948,28293,3593],{"class":4231},[3948,28295,28296],{"class":4235},"disabled",[3948,28298,4970],{"class":4231},[3948,28300,7413],{"class":4267},[3948,28302,3593],{"class":4231},[3948,28304,4638],{"class":4235},[3948,28306,23909],{"class":4231},[3948,28308,28309],{"class":4271},"ButtonProps",[3948,28311,13475],{"class":4231},[3948,28313,28314,28316,28318,28320,28322,28324,28326,28328,28330,28332,28334,28336],{"class":3950,"line":4023},[3948,28315,4964],{"class":4267},[3948,28317,4232],{"class":4231},[3948,28319,18882],{"class":4308},[3948,28321,3593],{"class":4231},[3948,28323,19395],{"class":4308},[3948,28325,3593],{"class":4231},[3948,28327,23931],{"class":4308},[3948,28329,3593],{"class":4231},[3948,28331,25890],{"class":4308},[3948,28333,18890],{"class":4231},[3948,28335,18851],{"class":4395},[3948,28337,18895],{"class":4231},[3948,28339,28340],{"class":3950,"line":4029},[3948,28341,3973],{"emptyLinePlaceholder":3972},[3948,28343,28344,28346],{"class":3950,"line":4035},[3948,28345,4404],{"class":4227},[3948,28347,4407],{"class":4231},[3948,28349,28350,28352],{"class":3950,"line":4041},[3948,28351,4413],{"class":4412},[3948,28353,6244],{"class":4271},[3948,28355,28356,28358,28360],{"class":3950,"line":4046},[3948,28357,23958],{"class":4421},[3948,28359,4425],{"class":4231},[3948,28361,21064],{"class":4254},[3948,28363,28364,28367,28369,28371,28373],{"class":3950,"line":4051},[3948,28365,28366],{"class":4421},"      disabled",[3948,28368,4425],{"class":4231},[3948,28370,4428],{"class":4267},[3948,28372,28296],{"class":4235},[3948,28374,4003],{"class":4267},[3948,28376,28377,28379,28381,28383,28385],{"class":3950,"line":4057},[3948,28378,24006],{"class":4421},[3948,28380,4425],{"class":4231},[3948,28382,4428],{"class":4267},[3948,28384,11906],{"class":4235},[3948,28386,4003],{"class":4267},[3948,28388,28389,28391,28393,28395,28397,28399,28401,28403],{"class":3950,"line":4063},[3948,28390,20233],{"class":4421},[3948,28392,4425],{"class":4231},[3948,28394,4428],{"class":4267},[3948,28396,4475],{"class":4445},[3948,28398,24038],{"class":4235},[3948,28400,4480],{"class":4445},[3948,28402,4454],{"class":4267},[3948,28404,6277],{"class":4445},[3948,28406,28407,28409,28411,28413],{"class":3950,"line":4069},[3948,28408,20244],{"class":4235},[3948,28410,3555],{"class":4445},[3948,28412,27897],{"class":4235},[3948,28414,4902],{"class":4445},[3948,28416,28417],{"class":3950,"line":4074},[3948,28418,20255],{"class":4445},[3948,28420,28421,28423,28425,28427,28429],{"class":3950,"line":4080},[3948,28422,24064],{"class":4235},[3948,28424,18982],{"class":4235},[3948,28426,3555],{"class":4445},[3948,28428,8309],{"class":4235},[3948,28430,4902],{"class":4445},[3948,28432,28433,28435,28437,28439,28441,28443,28445],{"class":3950,"line":4086},[3948,28434,20273],{"class":4235},[3948,28436,19858],{"class":4235},[3948,28438,3555],{"class":4445},[3948,28440,19922],{"class":4235},[3948,28442,4891],{"class":4231},[3948,28444,5649],{"class":4836},[3948,28446,4902],{"class":4445},[3948,28448,28449,28451,28453,28455,28457],{"class":3950,"line":4091},[3948,28450,20260],{"class":4235},[3948,28452,19858],{"class":4235},[3948,28454,3555],{"class":4445},[3948,28456,19863],{"class":4235},[3948,28458,4902],{"class":4445},[3948,28460,28461,28463,28465,28467,28469],{"class":3950,"line":4096},[3948,28462,24090],{"class":4235},[3948,28464,24093],{"class":4235},[3948,28466,3555],{"class":4445},[3948,28468,19863],{"class":4235},[3948,28470,4902],{"class":4445},[3948,28472,28473],{"class":3950,"line":5272},[3948,28474,20300],{"class":4445},[3948,28476,28477,28479,28481,28483,28485,28487,28489,28491,28493,28495,28498,28500,28502,28505],{"class":3950,"line":5286},[3948,28478,24847],{"class":4235},[3948,28480,24850],{"class":4231},[3948,28482,9812],{"class":4231},[3948,28484,28296],{"class":4235},[3948,28486,6629],{"class":4231},[3948,28488,4232],{"class":4445},[3948,28490,5136],{"class":4235},[3948,28492,18982],{"class":4235},[3948,28494,3555],{"class":4445},[3948,28496,28497],{"class":4235},"primaryPressed",[3948,28499,4248],{"class":4445},[3948,28501,9809],{"class":4231},[3948,28503,28504],{"class":4267}," null",[3948,28506,4902],{"class":4445},[3948,28508,28509,28512,28514,28516,28518,28520,28522,28524],{"class":3950,"line":5312},[3948,28510,28511],{"class":4235},"        disabled",[3948,28513,6629],{"class":4231},[3948,28515,5579],{"class":4235},[3948,28517,3555],{"class":4445},[3948,28519,28296],{"class":4235},[3948,28521,6639],{"class":4231},[3948,28523,28504],{"class":4267},[3948,28525,4902],{"class":4445},[3948,28527,28528,28530],{"class":3950,"line":5341},[3948,28529,5256],{"class":4235},[3948,28531,4902],{"class":4445},[3948,28533,28534,28536],{"class":3950,"line":5361},[3948,28535,20305],{"class":4445},[3948,28537,4003],{"class":4267},[3948,28539,28540],{"class":3950,"line":5369},[3948,28541,20312],{"class":4412},[3948,28543,28544,28546],{"class":3950,"line":5382},[3948,28545,5150],{"class":4412},[3948,28547,27878],{"class":4271},[3948,28549,28550,28552,28554,28556],{"class":3950,"line":5395},[3948,28551,5256],{"class":4421},[3948,28553,4425],{"class":4231},[3948,28555,4428],{"class":4267},[3948,28557,5379],{"class":4445},[3948,28559,28560,28562,28564,28566],{"class":3950,"line":5414},[3948,28561,20499],{"class":4235},[3948,28563,3555],{"class":4445},[3948,28565,19301],{"class":4235},[3948,28567,4902],{"class":4445},[3948,28569,28570,28573,28575,28577,28579,28581,28583,28585,28587,28589,28591],{"class":3950,"line":5422},[3948,28571,28572],{"class":4445},"          { ",[3948,28574,5172],{"class":4235},[3948,28576,18982],{"class":4235},[3948,28578,3555],{"class":4445},[3948,28580,21152],{"class":4235},[3948,28582,3593],{"class":4445},[3948,28584,5221],{"class":4235},[3948,28586,26053],{"class":4235},[3948,28588,3555],{"class":4445},[3948,28590,19863],{"class":4235},[3948,28592,4339],{"class":4445},[3948,28594,28595,28597],{"class":3950,"line":5428},[3948,28596,20588],{"class":4445},[3948,28598,4003],{"class":4267},[3948,28600,28601],{"class":3950,"line":5478},[3948,28602,20412],{"class":4412},[3948,28604,28605,28607,28609],{"class":3950,"line":5525},[3948,28606,9552],{"class":4267},[3948,28608,19301],{"class":4235},[3948,28610,4003],{"class":4267},[3948,28612,28613,28615,28617],{"class":3950,"line":5535},[3948,28614,5241],{"class":4412},[3948,28616,4240],{"class":4271},[3948,28618,4494],{"class":4412},[3948,28620,28621,28623,28625],{"class":3950,"line":5543},[3948,28622,5552],{"class":4412},[3948,28624,3897],{"class":4271},[3948,28626,4494],{"class":4412},[3948,28628,28629],{"class":3950,"line":5549},[3948,28630,4548],{"class":4231},[3948,28632,28633],{"class":3950,"line":5559},[3948,28634,4003],{"class":4231},[3948,28636,28637],{"class":3950,"line":5564},[3948,28638,3973],{"emptyLinePlaceholder":3972},[3948,28640,28641,28643,28645,28647,28649,28651,28653],{"class":3950,"line":5569},[3948,28642,4305],{"class":4267},[3948,28644,5579],{"class":4308},[3948,28646,4970],{"class":4231},[3948,28648,4744],{"class":4235},[3948,28650,3555],{"class":4231},[3948,28652,5588],{"class":4395},[3948,28654,5591],{"class":4231},[3948,28656,28657,28659],{"class":3950,"line":5574},[3948,28658,28147],{"class":4235},[3948,28660,5674],{"class":4231},[3948,28662,28663,28665,28667],{"class":3950,"line":5594},[3948,28664,7226],{"class":4235},[3948,28666,6816],{"class":4254},[3948,28668,4902],{"class":4231},[3948,28670,28671],{"class":3950,"line":5624},[3948,28672,5712],{"class":4231},[3948,28674,28675,28678],{"class":3950,"line":5654},[3948,28676,28677],{"class":4235},"  disabled:",[3948,28679,5674],{"class":4231},[3948,28681,28682,28684,28687],{"class":3950,"line":5668},[3948,28683,25596],{"class":4235},[3948,28685,28686],{"class":4836}," 0.5",[3948,28688,4902],{"class":4231},[3948,28690,28691],{"class":3950,"line":5677},[3948,28692,5712],{"class":4231},[3948,28694,28695,28698],{"class":3950,"line":5687},[3948,28696,28697],{"class":4235},"  label:",[3948,28699,5674],{"class":4231},[3948,28701,28702,28704,28706],{"class":3950,"line":5698},[3948,28703,21951],{"class":4235},[3948,28705,6949],{"class":4254},[3948,28707,4902],{"class":4231},[3948,28709,28710],{"class":3950,"line":5709},[3948,28711,5712],{"class":4231},[3948,28713,28714],{"class":3950,"line":5715},[3948,28715,5744],{"class":4231},[3939,28717,28720],{"className":4218,"code":28718,"filename":28719,"language":4220,"meta":3944,"style":3944},"import { ReactNode } from 'react';\nimport { StyleSheet, ViewStyle } from 'react-native';\nimport { SafeAreaView } from 'react-native-safe-area-context';\n\nimport { space, useTheme } from '@\u002Fshared\u002Ftheme';\n\ntype ScreenProps = {\n  children: ReactNode;\n  style?: ViewStyle;\n};\n\nexport function Screen({ children, style }: ScreenProps) {\n  const { colors } = useTheme();\n\n  return (\n    \u003CSafeAreaView\n      style={[styles.root, { backgroundColor: colors.background }, style]}\n    >\n      {children}\n    \u003C\u002FSafeAreaView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  root: {\n    flex: 1,\n    paddingHorizontal: space.md,\n  },\n});\n","src\u002Fshared\u002Fui\u002FScreen.tsx",[3525,28721,28722,28738,28758,28774,28778,28798,28802,28811,28821,28831,28835,28839,28863,28877,28881,28887,28894,28930,28934,28942,28950,28954,28958,28962,28978,28985,28993,29005,29009],{"__ignoreMap":3944},[3948,28723,28724,28726,28728,28730,28732,28734,28736],{"class":3950,"line":3951},[3948,28725,4228],{"class":4227},[3948,28727,4232],{"class":4231},[3948,28729,26228],{"class":4235},[3948,28731,4248],{"class":4231},[3948,28733,4251],{"class":4227},[3948,28735,5897],{"class":4254},[3948,28737,4258],{"class":4231},[3948,28739,28740,28742,28744,28746,28748,28750,28752,28754,28756],{"class":3950,"line":3957},[3948,28741,4228],{"class":4227},[3948,28743,4232],{"class":4231},[3948,28745,4744],{"class":4235},[3948,28747,3593],{"class":4231},[3948,28749,28180],{"class":4235},[3948,28751,4248],{"class":4231},[3948,28753,4251],{"class":4227},[3948,28755,4255],{"class":4254},[3948,28757,4258],{"class":4231},[3948,28759,28760,28762,28764,28766,28768,28770,28772],{"class":3950,"line":3963},[3948,28761,4228],{"class":4227},[3948,28763,4232],{"class":4231},[3948,28765,12966],{"class":4235},[3948,28767,4248],{"class":4231},[3948,28769,4251],{"class":4227},[3948,28771,12973],{"class":4254},[3948,28773,4258],{"class":4231},[3948,28775,28776],{"class":3950,"line":3969},[3948,28777,3973],{"emptyLinePlaceholder":3972},[3948,28779,28780,28782,28784,28786,28788,28790,28792,28794,28796],{"class":3950,"line":3976},[3948,28781,4228],{"class":4227},[3948,28783,4232],{"class":4231},[3948,28785,25899],{"class":4235},[3948,28787,3593],{"class":4231},[3948,28789,18851],{"class":4235},[3948,28791,4248],{"class":4231},[3948,28793,4251],{"class":4227},[3948,28795,18858],{"class":4254},[3948,28797,4258],{"class":4231},[3948,28799,28800],{"class":3950,"line":3982},[3948,28801,3973],{"emptyLinePlaceholder":3972},[3948,28803,28804,28806,28809],{"class":3950,"line":3988},[3948,28805,4268],{"class":4267},[3948,28807,28808],{"class":4271}," ScreenProps",[3948,28810,10299],{"class":4231},[3948,28812,28813,28815,28817,28819],{"class":3950,"line":3994},[3948,28814,26223],{"class":4235},[3948,28816,4280],{"class":4231},[3948,28818,26228],{"class":4271},[3948,28820,4258],{"class":4231},[3948,28822,28823,28825,28827,28829],{"class":3950,"line":4000},[3948,28824,27721],{"class":4235},[3948,28826,26243],{"class":4231},[3948,28828,28180],{"class":4271},[3948,28830,4258],{"class":4231},[3948,28832,28833],{"class":3950,"line":4006},[3948,28834,10328],{"class":4231},[3948,28836,28837],{"class":3950,"line":4011},[3948,28838,3973],{"emptyLinePlaceholder":3972},[3948,28840,28841,28843,28845,28848,28850,28852,28854,28856,28858,28861],{"class":3950,"line":4017},[3948,28842,4389],{"class":4227},[3948,28844,4392],{"class":4267},[3948,28846,28847],{"class":4395}," Screen",[3948,28849,4475],{"class":4231},[3948,28851,26579],{"class":4235},[3948,28853,3593],{"class":4231},[3948,28855,4638],{"class":4235},[3948,28857,23909],{"class":4231},[3948,28859,28860],{"class":4271},"ScreenProps",[3948,28862,13475],{"class":4231},[3948,28864,28865,28867,28869,28871,28873,28875],{"class":3950,"line":4023},[3948,28866,4964],{"class":4267},[3948,28868,4232],{"class":4231},[3948,28870,18882],{"class":4308},[3948,28872,18890],{"class":4231},[3948,28874,18851],{"class":4395},[3948,28876,18895],{"class":4231},[3948,28878,28879],{"class":3950,"line":4029},[3948,28880,3973],{"emptyLinePlaceholder":3972},[3948,28882,28883,28885],{"class":3950,"line":4035},[3948,28884,4404],{"class":4227},[3948,28886,4407],{"class":4231},[3948,28888,28889,28891],{"class":3950,"line":4041},[3948,28890,4413],{"class":4412},[3948,28892,28893],{"class":4271},"SafeAreaView\n",[3948,28895,28896,28898,28900,28902,28904,28906,28908,28911,28913,28915,28917,28919,28921,28924,28926,28928],{"class":3950,"line":4046},[3948,28897,20233],{"class":4421},[3948,28899,4425],{"class":4231},[3948,28901,4428],{"class":4267},[3948,28903,5122],{"class":4445},[3948,28905,5125],{"class":4235},[3948,28907,3555],{"class":4445},[3948,28909,28910],{"class":4235},"root",[3948,28912,5133],{"class":4445},[3948,28914,5136],{"class":4235},[3948,28916,18982],{"class":4235},[3948,28918,3555],{"class":4445},[3948,28920,18987],{"class":4235},[3948,28922,28923],{"class":4445}," }, ",[3948,28925,4638],{"class":4235},[3948,28927,8327],{"class":4445},[3948,28929,4003],{"class":4267},[3948,28931,28932],{"class":3950,"line":4051},[3948,28933,20312],{"class":4412},[3948,28935,28936,28938,28940],{"class":3950,"line":4057},[3948,28937,19884],{"class":4267},[3948,28939,26579],{"class":4235},[3948,28941,4003],{"class":4267},[3948,28943,28944,28946,28948],{"class":3950,"line":4063},[3948,28945,5552],{"class":4412},[3948,28947,12966],{"class":4271},[3948,28949,4494],{"class":4412},[3948,28951,28952],{"class":3950,"line":4069},[3948,28953,4548],{"class":4231},[3948,28955,28956],{"class":3950,"line":4074},[3948,28957,4003],{"class":4231},[3948,28959,28960],{"class":3950,"line":4080},[3948,28961,3973],{"emptyLinePlaceholder":3972},[3948,28963,28964,28966,28968,28970,28972,28974,28976],{"class":3950,"line":4086},[3948,28965,4305],{"class":4267},[3948,28967,5579],{"class":4308},[3948,28969,4970],{"class":4231},[3948,28971,4744],{"class":4235},[3948,28973,3555],{"class":4231},[3948,28975,5588],{"class":4395},[3948,28977,5591],{"class":4231},[3948,28979,28980,28983],{"class":3950,"line":4091},[3948,28981,28982],{"class":4235},"  root:",[3948,28984,5674],{"class":4231},[3948,28986,28987,28989,28991],{"class":3950,"line":4096},[3948,28988,7205],{"class":4235},[3948,28990,4894],{"class":4836},[3948,28992,4902],{"class":4231},[3948,28994,28995,28997,28999,29001,29003],{"class":3950,"line":5272},[3948,28996,7100],{"class":4235},[3948,28998,26026],{"class":4235},[3948,29000,3555],{"class":4231},[3948,29002,19863],{"class":4235},[3948,29004,4902],{"class":4231},[3948,29006,29007],{"class":3950,"line":5286},[3948,29008,5712],{"class":4231},[3948,29010,29011],{"class":3950,"line":5312},[3948,29012,5744],{"class":4231},[3939,29014,29017],{"className":12639,"code":29015,"filename":29016,"language":12641,"meta":3944,"style":3944},"export { AppText } from '.\u002FAppText';\nexport { Button } from '.\u002FButton';\nexport { Screen } from '.\u002FScreen';\n","src\u002Fshared\u002Fui\u002Findex.ts",[3525,29018,29019,29036,29053],{"__ignoreMap":3944},[3948,29020,29021,29023,29025,29027,29029,29031,29034],{"class":3950,"line":3951},[3948,29022,4389],{"class":4227},[3948,29024,4232],{"class":4231},[3948,29026,19257],{"class":4235},[3948,29028,4248],{"class":4231},[3948,29030,4251],{"class":4227},[3948,29032,29033],{"class":4254}," '.\u002FAppText'",[3948,29035,4258],{"class":4231},[3948,29037,29038,29040,29042,29044,29046,29048,29051],{"class":3950,"line":3957},[3948,29039,4389],{"class":4227},[3948,29041,4232],{"class":4231},[3948,29043,19262],{"class":4235},[3948,29045,4248],{"class":4231},[3948,29047,4251],{"class":4227},[3948,29049,29050],{"class":4254}," '.\u002FButton'",[3948,29052,4258],{"class":4231},[3948,29054,29055,29057,29059,29061,29063,29065,29068],{"class":3950,"line":3963},[3948,29056,4389],{"class":4227},[3948,29058,4232],{"class":4231},[3948,29060,19267],{"class":4235},[3948,29062,4248],{"class":4231},[3948,29064,4251],{"class":4227},[3948,29066,29067],{"class":4254}," '.\u002FScreen'",[3948,29069,4258],{"class":4231},[3846,29071,29073],{"id":29072},"перевірка","Перевірка",[3571,29075,29076,29083,29086,29089],{},[3574,29077,29078,29079,29082],{},"Чіпи теми в шапці ",[3516,29080,29081],{},"залишились"," і працюють (light\u002Fdark\u002Fsystem).",[3574,29084,29085],{},"Стрічка поїздок скролиться (12 карток); місця — горизонтально під шапкою (у header списку).",[3574,29087,29088],{},"Pull-to-refresh — спінер ~0.9 с.",[3574,29090,29091],{},"Sticky «Нова поїздка» внизу на місці.",[3846,29093,29095],{"id":29094},"коміт","Коміт",[3512,29097,29098,29099,29101],{},"Якщо збирали вручну (не через ",[3525,29100,18083],{}," на вже запушений репо):",[3939,29103,29105],{"className":12123,"code":29104,"language":12125,"meta":3944,"style":3944},"cd \u002Fpath\u002Fto\u002Fnomad\ngit add -A\ngit commit -m \"$(cat \u003C\u003C'EOF'\nfeat: virtualized trips and places lists\n\nMaterial: content\u002F15.react-native\u002F09.lists-and-virtualization.md\nEOF\n)\"\ngit push\n",[3525,29106,29107,29113,29123,29145,29150,29154,29159,29164,29169],{"__ignoreMap":3944},[3948,29108,29109,29111],{"class":3950,"line":3951},[3948,29110,18098],{"class":4395},[3948,29112,18101],{"class":4254},[3948,29114,29115,29117,29120],{"class":3950,"line":3957},[3948,29116,18106],{"class":4395},[3948,29118,29119],{"class":4254}," add",[3948,29121,29122],{"class":4267}," -A\n",[3948,29124,29125,29127,29130,29133,29136,29139,29142],{"class":3950,"line":3963},[3948,29126,18106],{"class":4395},[3948,29128,29129],{"class":4254}," commit",[3948,29131,29132],{"class":4267}," -m",[3948,29134,29135],{"class":4254}," \"$(",[3948,29137,29138],{"class":4395},"cat",[3948,29140,29141],{"class":4231}," \u003C\u003C",[3948,29143,29144],{"class":4254},"'EOF'\n",[3948,29146,29147],{"class":3950,"line":3969},[3948,29148,29149],{"class":4254},"feat: virtualized trips and places lists\n",[3948,29151,29152],{"class":3950,"line":3976},[3948,29153,3973],{"emptyLinePlaceholder":3972},[3948,29155,29156],{"class":3950,"line":3982},[3948,29157,29158],{"class":4254},"Material: content\u002F15.react-native\u002F09.lists-and-virtualization.md\n",[3948,29160,29161],{"class":3950,"line":3988},[3948,29162,29163],{"class":4254},"EOF\n",[3948,29165,29166],{"class":3950,"line":3994},[3948,29167,29168],{"class":4254},")\"\n",[3948,29170,29171,29173],{"class":3950,"line":4000},[3948,29172,18106],{"class":4395},[3948,29174,29175],{"class":4254}," push\n",[3512,29177,29178,29179,29182,29183,29185],{},"У публічному репо цей коміт ",[3516,29180,29181],{},"уже є"," — після ",[3525,29184,18083],{}," повторно комітити не потрібно, якщо ви не змінювали код локально.",[3846,29187,29189],{"id":29188},"результат-превю","Результат (прев’ю)",[3512,29191,29192,29193,3579,29195,3579,29198,29200,29201,29204],{},"Самодостатнє демо для сайту (core RN). У репо — ",[3525,29194,3643],{},[3525,29196,29197],{},"@\u002F…",[3525,29199,17967],{}," (див. дерево вище). ",[3516,29202,29203],{},"Чіпи теми"," й sticky CTA — як у живому Nomad.",[4721,29206,29210],{"device":4723,"filename":29207,"height":29208,"title":29209},"NomadLists.tsx",720,"Nomad · theme + lists",[3939,29211,29213],{"className":4218,"code":29212,"language":4220,"meta":3944,"style":3944},"import { useCallback, useState } from 'react';\nimport {\n  FlatList,\n  Image,\n  Pressable,\n  RefreshControl,\n  StyleSheet,\n  Text,\n  View,\n  useColorScheme,\n} from 'react-native';\n\ntype Trip = {\n  id: string;\n  title: string;\n  dateLabel: string;\n  region: string;\n  coverUri: string;\n};\n\ntype Place = { id: string; name: string; city: string };\n\nconst light = {\n  bg: '#F8FAFC', surface: '#fff', text: '#0f172a', muted: '#64748b',\n  primary: '#2563eb', border: '#e2e8f0', onPrimary: '#fff',\n};\nconst dark = {\n  bg: '#000', surface: '#1c1c1e', text: '#f5f5f7', muted: '#a1a1aa',\n  primary: '#3b82f6', border: '#3a3a3c', onPrimary: '#fff',\n};\n\nconst TRIPS: Trip[] = Array.from({ length: 12 }, (_, i) => ({\n  id: String(i + 1),\n  title: ['Карпати', 'Львів', 'Одеса', 'Київ', 'Чернівці', 'Кам’янець',\n    'Харків', 'Дніпро', 'Ужгород', 'Полтава', 'Затока', 'Яремче'][i],\n  dateLabel: `${i + 1}–${i + 3} бер. 2026`,\n  region: i % 2 === 0 ? 'Карпати' : 'Місто',\n  coverUri: `https:\u002F\u002Fpicsum.photos\u002Fseed\u002Fnomad${i}\u002F800\u002F400`,\n}));\n\nconst PLACES: Place[] = [\n  { id: 'p1', name: 'Говерла', city: 'Карпати' },\n  { id: 'p2', name: 'Ринок', city: 'Львів' },\n  { id: 'p3', name: 'Ланжерон', city: 'Одеса' },\n  { id: 'p4', name: 'Поділ', city: 'Київ' },\n  { id: 'p5', name: 'Фортеця', city: 'Кам’янець' },\n];\n\nexport default function App() {\n  const systemDark = useColorScheme() === 'dark';\n  const [pref, setPref] = useState\u003C'system' | 'light' | 'dark'>('system');\n  const isDark = pref === 'dark' || (pref === 'system' && systemDark);\n  const c = isDark ? dark : light;\n\n  const [trips, setTrips] = useState(TRIPS);\n  const [refreshing, setRefreshing] = useState(false);\n\n  const onRefresh = useCallback(() => {\n    setRefreshing(true);\n    setTimeout(() => {\n      setTrips([...TRIPS]);\n      setRefreshing(false);\n    }, 700);\n  }, []);\n\n  const listHeader = (\n    \u003CView style={{ gap: 12, marginBottom: 12 }}>\n      \u003CText style={{ color: c.text, fontWeight: '700' }}>Останні місця\u003C\u002FText>\n      \u003CFlatList\n        horizontal\n        data={PLACES}\n        keyExtractor={(p) => p.id}\n        showsHorizontalScrollIndicator={false}\n        ItemSeparatorComponent={() => \u003CView style={{ width: 8 }} \u002F>}\n        renderItem={({ item }) => (\n          \u003CView style={[styles.place, { backgroundColor: c.surface, borderColor: c.border }]}>\n            \u003CText style={{ color: c.text, fontWeight: '700' }}>{item.name}\u003C\u002FText>\n            \u003CText style={{ color: c.primary, marginTop: 4, fontSize: 12 }}>{item.city}\u003C\u002FText>\n          \u003C\u002FView>\n        )}\n      \u002F>\n      \u003CText style={{ color: c.text, fontWeight: '700' }}>Ваші поїздки\u003C\u002FText>\n    \u003C\u002FView>\n  );\n\n  return (\n    \u003CView style={[styles.screen, { backgroundColor: c.bg }]}>\n      \u003CView style={[styles.top, { borderColor: c.border }]}>\n        \u003CText style={[styles.brand, { color: c.text }]}>Мандрівник\u003C\u002FText>\n        \u003CText style={{ color: c.muted, fontSize: 13, marginTop: 4 }}>\n          тема: {isDark ? 'темна' : 'світла'} · {trips.length} поїздок · {PLACES.length} місць\n        \u003C\u002FText>\n        \u003CView style={styles.chips}>\n          {([\n            ['system', 'Система'],\n            ['light', 'Світла'],\n            ['dark', 'Темна'],\n          ] as const).map(([id, label]) => {\n            const on = pref === id;\n            return (\n              \u003CPressable\n                key={id}\n                onPress={() => setPref(id)}\n                style={[\n                  styles.chip,\n                  {\n                    backgroundColor: on ? c.primary : c.surface,\n                    borderColor: c.border,\n                  },\n                ]}\n              >\n                \u003CText style={{ color: on ? c.onPrimary : c.text, fontWeight: '700', fontSize: 12 }}>\n                  {label}\n                \u003C\u002FText>\n              \u003C\u002FPressable>\n            );\n          })}\n        \u003C\u002FView>\n      \u003C\u002FView>\n\n      \u003CFlatList\n        style={{ flex: 1 }}\n        data={trips}\n        keyExtractor={(t) => t.id}\n        ListHeaderComponent={listHeader}\n        contentContainerStyle={{ padding: 16, paddingBottom: 12 }}\n        ItemSeparatorComponent={() => \u003CView style={{ height: 12 }} \u002F>}\n        refreshControl={\n          \u003CRefreshControl\n            refreshing={refreshing}\n            onRefresh={onRefresh}\n            tintColor={c.primary}\n            colors={[c.primary]}\n          \u002F>\n        }\n        renderItem={({ item }) => (\n          \u003CView style={[styles.card, { backgroundColor: c.surface, borderColor: c.border }]}>\n            \u003CImage source={{ uri: item.coverUri }} style={styles.cover} \u002F>\n            \u003CView style={{ padding: 12 }}>\n              \u003CText style={{ color: c.text, fontWeight: '700', fontSize: 16 }}>{item.title}\u003C\u002FText>\n              \u003CText style={{ color: c.muted, marginTop: 4, fontSize: 13 }}>\n                {item.dateLabel} · {item.region}\n              \u003C\u002FText>\n            \u003C\u002FView>\n          \u003C\u002FView>\n        )}\n      \u002F>\n\n      \u003CView style={[styles.footer, { borderColor: c.border, backgroundColor: c.bg }]}>\n        \u003CPressable style={[styles.cta, { backgroundColor: c.primary }]}>\n          \u003CText style={{ color: c.onPrimary, fontWeight: '800' }}>Нова поїздка\u003C\u002FText>\n        \u003C\u002FPressable>\n      \u003C\u002FView>\n    \u003C\u002FView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  screen: { flex: 1 },\n  top: { padding: 16, borderBottomWidth: 1 },\n  brand: { fontSize: 24, fontWeight: '800' },\n  chips: { flexDirection: 'row', flexWrap: 'wrap', gap: 8, marginTop: 10 },\n  chip: { paddingHorizontal: 12, paddingVertical: 8, borderRadius: 8, borderWidth: 1 },\n  place: { width: 140, borderWidth: 1, borderRadius: 12, padding: 10, minHeight: 72 },\n  card: { borderWidth: 1, borderRadius: 16, overflow: 'hidden' },\n  cover: { width: '100%', height: 120, backgroundColor: '#cbd5e1' },\n  footer: { borderTopWidth: 1, padding: 16 },\n  cta: { paddingVertical: 14, borderRadius: 12, alignItems: 'center' },\n});\n",[3525,29214,29215,29235,29241,29247,29254,29260,29266,29272,29278,29284,29290,29300,29304,29312,29322,29332,29342,29352,29362,29366,29370,29402,29406,29415,29447,29471,29475,29483,29512,29534,29538,29542,29581,29597,29633,29670,29705,29729,29748,29752,29756,29769,29793,29816,29838,29861,29884,29888,29892,29904,29921,29957,29989,30012,30016,30039,30061,30065,30081,30091,30101,30111,30121,30129,30133,30137,30145,30175,30217,30223,30228,30241,30265,30274,30310,30328,30374,30424,30480,30488,30494,30498,30540,30548,30552,30556,30562,30599,30636,30681,30721,30767,30775,30798,30805,30819,30832,30845,30872,30891,30897,30903,30915,30938,30948,30958,30962,30986,30998,31002,31008,31012,31064,31072,31080,31088,31092,31098,31106,31114,31118,31124,31142,31154,31180,31192,31216,31252,31260,31266,31278,31290,31307,31327,31331,31335,31353,31399,31442,31466,31522,31562,31587,31595,31603,31611,31617,31621,31625,31671,31708,31751,31759,31767,31775,31779,31783,31787,31803,31815,31834,31853,31885,31915,31954,31979,32005,32024,32049],{"__ignoreMap":3944},[3948,29216,29217,29219,29221,29223,29225,29227,29229,29231,29233],{"class":3950,"line":3951},[3948,29218,4228],{"class":4227},[3948,29220,4232],{"class":4231},[3948,29222,4586],{"class":4235},[3948,29224,3593],{"class":4231},[3948,29226,5831],{"class":4235},[3948,29228,4248],{"class":4231},[3948,29230,4251],{"class":4227},[3948,29232,5897],{"class":4254},[3948,29234,4258],{"class":4231},[3948,29236,29237,29239],{"class":3950,"line":3957},[3948,29238,4228],{"class":4227},[3948,29240,5674],{"class":4231},[3948,29242,29243,29245],{"class":3950,"line":3963},[3948,29244,5910],{"class":4235},[3948,29246,4902],{"class":4231},[3948,29248,29249,29252],{"class":3950,"line":3969},[3948,29250,29251],{"class":4235},"  Image",[3948,29253,4902],{"class":4231},[3948,29255,29256,29258],{"class":3950,"line":3976},[3948,29257,5917],{"class":4235},[3948,29259,4902],{"class":4231},[3948,29261,29262,29264],{"class":3950,"line":3982},[3948,29263,7475],{"class":4235},[3948,29265,4902],{"class":4231},[3948,29267,29268,29270],{"class":3950,"line":3988},[3948,29269,5924],{"class":4235},[3948,29271,4902],{"class":4231},[3948,29273,29274,29276],{"class":3950,"line":3994},[3948,29275,5931],{"class":4235},[3948,29277,4902],{"class":4231},[3948,29279,29280,29282],{"class":3950,"line":4000},[3948,29281,5938],{"class":4235},[3948,29283,4902],{"class":4231},[3948,29285,29286,29288],{"class":3950,"line":4006},[3948,29287,5945],{"class":4235},[3948,29289,4902],{"class":4231},[3948,29291,29292,29294,29296,29298],{"class":3950,"line":4011},[3948,29293,5952],{"class":4231},[3948,29295,4251],{"class":4227},[3948,29297,4255],{"class":4254},[3948,29299,4258],{"class":4231},[3948,29301,29302],{"class":3950,"line":4017},[3948,29303,3973],{"emptyLinePlaceholder":3972},[3948,29305,29306,29308,29310],{"class":3950,"line":4023},[3948,29307,4268],{"class":4267},[3948,29309,19212],{"class":4271},[3948,29311,10299],{"class":4231},[3948,29313,29314,29316,29318,29320],{"class":3950,"line":4029},[3948,29315,12656],{"class":4235},[3948,29317,4280],{"class":4231},[3948,29319,4283],{"class":4271},[3948,29321,4258],{"class":4231},[3948,29323,29324,29326,29328,29330],{"class":3950,"line":4035},[3948,29325,10304],{"class":4235},[3948,29327,4280],{"class":4231},[3948,29329,4283],{"class":4271},[3948,29331,4258],{"class":4231},[3948,29333,29334,29336,29338,29340],{"class":3950,"line":4041},[3948,29335,23619],{"class":4235},[3948,29337,4280],{"class":4231},[3948,29339,4283],{"class":4271},[3948,29341,4258],{"class":4231},[3948,29343,29344,29346,29348,29350],{"class":3950,"line":4046},[3948,29345,23657],{"class":4235},[3948,29347,4280],{"class":4231},[3948,29349,4283],{"class":4271},[3948,29351,4258],{"class":4231},[3948,29353,29354,29356,29358,29360],{"class":3950,"line":4051},[3948,29355,23641],{"class":4235},[3948,29357,4280],{"class":4231},[3948,29359,4283],{"class":4271},[3948,29361,4258],{"class":4231},[3948,29363,29364],{"class":3950,"line":4057},[3948,29365,10328],{"class":4231},[3948,29367,29368],{"class":3950,"line":4063},[3948,29369,3973],{"emptyLinePlaceholder":3972},[3948,29371,29372,29374,29376,29378,29380,29382,29384,29386,29388,29390,29392,29394,29396,29398,29400],{"class":3950,"line":4069},[3948,29373,4268],{"class":4267},[3948,29375,19203],{"class":4271},[3948,29377,4275],{"class":4231},[3948,29379,4184],{"class":4235},[3948,29381,4280],{"class":4231},[3948,29383,4283],{"class":4271},[3948,29385,4286],{"class":4231},[3948,29387,19615],{"class":4235},[3948,29389,4280],{"class":4231},[3948,29391,4283],{"class":4271},[3948,29393,4286],{"class":4231},[3948,29395,23995],{"class":4235},[3948,29397,4280],{"class":4231},[3948,29399,4283],{"class":4271},[3948,29401,4296],{"class":4231},[3948,29403,29404],{"class":3950,"line":4074},[3948,29405,3973],{"emptyLinePlaceholder":3972},[3948,29407,29408,29410,29413],{"class":3950,"line":4080},[3948,29409,4305],{"class":4267},[3948,29411,29412],{"class":4308}," light",[3948,29414,10299],{"class":4231},[3948,29416,29417,29420,29422,29424,29427,29429,29431,29434,29437,29439,29442,29445],{"class":3950,"line":4086},[3948,29418,29419],{"class":4235},"  bg:",[3948,29421,14931],{"class":4254},[3948,29423,3593],{"class":4231},[3948,29425,29426],{"class":4235},"surface:",[3948,29428,7142],{"class":4254},[3948,29430,3593],{"class":4231},[3948,29432,29433],{"class":4235},"text:",[3948,29435,29436],{"class":4254}," '#0f172a'",[3948,29438,3593],{"class":4231},[3948,29440,29441],{"class":4235},"muted:",[3948,29443,29444],{"class":4254}," '#64748b'",[3948,29446,4902],{"class":4231},[3948,29448,29449,29451,29454,29456,29459,29462,29464,29467,29469],{"class":3950,"line":4091},[3948,29450,26761],{"class":4235},[3948,29452,29453],{"class":4254}," '#2563eb'",[3948,29455,3593],{"class":4231},[3948,29457,29458],{"class":4235},"border:",[3948,29460,29461],{"class":4254}," '#e2e8f0'",[3948,29463,3593],{"class":4231},[3948,29465,29466],{"class":4235},"onPrimary:",[3948,29468,7142],{"class":4254},[3948,29470,4902],{"class":4231},[3948,29472,29473],{"class":3950,"line":4096},[3948,29474,10328],{"class":4231},[3948,29476,29477,29479,29481],{"class":3950,"line":5272},[3948,29478,4305],{"class":4267},[3948,29480,4967],{"class":4308},[3948,29482,10299],{"class":4231},[3948,29484,29485,29487,29489,29491,29493,29496,29498,29500,29503,29505,29507,29510],{"class":3950,"line":5286},[3948,29486,29419],{"class":4235},[3948,29488,25502],{"class":4254},[3948,29490,3593],{"class":4231},[3948,29492,29426],{"class":4235},[3948,29494,29495],{"class":4254}," '#1c1c1e'",[3948,29497,3593],{"class":4231},[3948,29499,29433],{"class":4235},[3948,29501,29502],{"class":4254}," '#f5f5f7'",[3948,29504,3593],{"class":4231},[3948,29506,29441],{"class":4235},[3948,29508,29509],{"class":4254}," '#a1a1aa'",[3948,29511,4902],{"class":4231},[3948,29513,29514,29516,29519,29521,29523,29526,29528,29530,29532],{"class":3950,"line":5312},[3948,29515,26761],{"class":4235},[3948,29517,29518],{"class":4254}," '#3b82f6'",[3948,29520,3593],{"class":4231},[3948,29522,29458],{"class":4235},[3948,29524,29525],{"class":4254}," '#3a3a3c'",[3948,29527,3593],{"class":4231},[3948,29529,29466],{"class":4235},[3948,29531,7142],{"class":4254},[3948,29533,4902],{"class":4231},[3948,29535,29536],{"class":3950,"line":5341},[3948,29537,10328],{"class":4231},[3948,29539,29540],{"class":3950,"line":5361},[3948,29541,3973],{"emptyLinePlaceholder":3972},[3948,29543,29544,29546,29549,29551,29553,29555,29557,29559,29561,29563,29565,29567,29569,29571,29573,29575,29577,29579],{"class":3950,"line":5369},[3948,29545,4305],{"class":4267},[3948,29547,29548],{"class":4308}," TRIPS",[3948,29550,4280],{"class":4231},[3948,29552,11995],{"class":4271},[3948,29554,4821],{"class":4231},[3948,29556,4824],{"class":4235},[3948,29558,3555],{"class":4231},[3948,29560,4251],{"class":4395},[3948,29562,4475],{"class":4231},[3948,29564,4833],{"class":4235},[3948,29566,5693],{"class":4836},[3948,29568,4840],{"class":4231},[3948,29570,4843],{"class":4235},[3948,29572,3593],{"class":4231},[3948,29574,4848],{"class":4235},[3948,29576,4168],{"class":4231},[3948,29578,4454],{"class":4267},[3948,29580,4855],{"class":4231},[3948,29582,29583,29585,29587,29589,29591,29593,29595],{"class":3950,"line":5382},[3948,29584,4860],{"class":4235},[3948,29586,4863],{"class":4395},[3948,29588,4446],{"class":4231},[3948,29590,4848],{"class":4235},[3948,29592,3579],{"class":4231},[3948,29594,4872],{"class":4836},[3948,29596,4875],{"class":4231},[3948,29598,29599,29601,29603,29606,29608,29611,29613,29616,29618,29621,29623,29626,29628,29631],{"class":3950,"line":5395},[3948,29600,4880],{"class":4235},[3948,29602,6152],{"class":4231},[3948,29604,29605],{"class":4254},"'Карпати'",[3948,29607,3593],{"class":4231},[3948,29609,29610],{"class":4254},"'Львів'",[3948,29612,3593],{"class":4231},[3948,29614,29615],{"class":4254},"'Одеса'",[3948,29617,3593],{"class":4231},[3948,29619,29620],{"class":4254},"'Київ'",[3948,29622,3593],{"class":4231},[3948,29624,29625],{"class":4254},"'Чернівці'",[3948,29627,3593],{"class":4231},[3948,29629,29630],{"class":4254},"'Кам’янець'",[3948,29632,4902],{"class":4231},[3948,29634,29635,29638,29640,29643,29645,29648,29650,29653,29655,29658,29660,29663,29666,29668],{"class":3950,"line":5414},[3948,29636,29637],{"class":4254},"    'Харків'",[3948,29639,3593],{"class":4231},[3948,29641,29642],{"class":4254},"'Дніпро'",[3948,29644,3593],{"class":4231},[3948,29646,29647],{"class":4254},"'Ужгород'",[3948,29649,3593],{"class":4231},[3948,29651,29652],{"class":4254},"'Полтава'",[3948,29654,3593],{"class":4231},[3948,29656,29657],{"class":4254},"'Затока'",[3948,29659,3593],{"class":4231},[3948,29661,29662],{"class":4254},"'Яремче'",[3948,29664,29665],{"class":4231},"][",[3948,29667,4848],{"class":4235},[3948,29669,12047],{"class":4231},[3948,29671,29672,29675,29677,29679,29681,29683,29685,29687,29690,29692,29694,29696,29698,29700,29703],{"class":3950,"line":5422},[3948,29673,29674],{"class":4235},"  dateLabel:",[3948,29676,7617],{"class":4254},[3948,29678,4886],{"class":4267},[3948,29680,4848],{"class":4235},[3948,29682,4891],{"class":4231},[3948,29684,4894],{"class":4836},[3948,29686,4515],{"class":4267},[3948,29688,29689],{"class":4254},"–",[3948,29691,4886],{"class":4267},[3948,29693,4848],{"class":4235},[3948,29695,4891],{"class":4231},[3948,29697,25561],{"class":4836},[3948,29699,4515],{"class":4267},[3948,29701,29702],{"class":4254}," бер. 2026`",[3948,29704,4902],{"class":4231},[3948,29706,29707,29709,29711,29713,29715,29717,29719,29721,29723,29725,29727],{"class":3950,"line":5428},[3948,29708,25712],{"class":4235},[3948,29710,4910],{"class":4235},[3948,29712,4913],{"class":4231},[3948,29714,4916],{"class":4836},[3948,29716,4919],{"class":4231},[3948,29718,4922],{"class":4836},[3948,29720,4925],{"class":4231},[3948,29722,29605],{"class":4254},[3948,29724,4931],{"class":4231},[3948,29726,4934],{"class":4254},[3948,29728,4902],{"class":4231},[3948,29730,29731,29734,29737,29739,29741,29743,29746],{"class":3950,"line":5478},[3948,29732,29733],{"class":4235},"  coverUri:",[3948,29735,29736],{"class":4254}," `https:\u002F\u002Fpicsum.photos\u002Fseed\u002Fnomad",[3948,29738,4886],{"class":4267},[3948,29740,4848],{"class":4235},[3948,29742,4515],{"class":4267},[3948,29744,29745],{"class":4254},"\u002F800\u002F400`",[3948,29747,4902],{"class":4231},[3948,29749,29750],{"class":3950,"line":5525},[3948,29751,4941],{"class":4231},[3948,29753,29754],{"class":3950,"line":5535},[3948,29755,3973],{"emptyLinePlaceholder":3972},[3948,29757,29758,29760,29763,29765,29767],{"class":3950,"line":5543},[3948,29759,4305],{"class":4267},[3948,29761,29762],{"class":4308}," PLACES",[3948,29764,4280],{"class":4231},[3948,29766,18029],{"class":4271},[3948,29768,4317],{"class":4231},[3948,29770,29771,29773,29775,29777,29779,29782,29784,29786,29789,29791],{"class":3950,"line":5549},[3948,29772,4322],{"class":4231},[3948,29774,4325],{"class":4235},[3948,29776,22241],{"class":4254},[3948,29778,3593],{"class":4231},[3948,29780,29781],{"class":4235},"name:",[3948,29783,22260],{"class":4254},[3948,29785,3593],{"class":4231},[3948,29787,29788],{"class":4235},"city:",[3948,29790,22270],{"class":4254},[3948,29792,4339],{"class":4231},[3948,29794,29795,29797,29799,29801,29803,29805,29808,29810,29812,29814],{"class":3950,"line":5559},[3948,29796,4322],{"class":4231},[3948,29798,4325],{"class":4235},[3948,29800,22297],{"class":4254},[3948,29802,3593],{"class":4231},[3948,29804,29781],{"class":4235},[3948,29806,29807],{"class":4254}," 'Ринок'",[3948,29809,3593],{"class":4231},[3948,29811,29788],{"class":4235},[3948,29813,22374],{"class":4254},[3948,29815,4339],{"class":4231},[3948,29817,29818,29820,29822,29824,29826,29828,29830,29832,29834,29836],{"class":3950,"line":5564},[3948,29819,4322],{"class":4231},[3948,29821,4325],{"class":4235},[3948,29823,22348],{"class":4254},[3948,29825,3593],{"class":4231},[3948,29827,29781],{"class":4235},[3948,29829,22520],{"class":4254},[3948,29831,3593],{"class":4231},[3948,29833,29788],{"class":4235},[3948,29835,22477],{"class":4254},[3948,29837,4339],{"class":4231},[3948,29839,29840,29842,29844,29846,29848,29850,29853,29855,29857,29859],{"class":3950,"line":5569},[3948,29841,4322],{"class":4231},[3948,29843,4325],{"class":4235},[3948,29845,22400],{"class":4254},[3948,29847,3593],{"class":4231},[3948,29849,29781],{"class":4235},[3948,29851,29852],{"class":4254}," 'Поділ'",[3948,29854,3593],{"class":4231},[3948,29856,29788],{"class":4235},[3948,29858,22580],{"class":4254},[3948,29860,4339],{"class":4231},[3948,29862,29863,29865,29867,29869,29871,29873,29876,29878,29880,29882],{"class":3950,"line":5574},[3948,29864,4322],{"class":4231},[3948,29866,4325],{"class":4235},[3948,29868,22451],{"class":4254},[3948,29870,3593],{"class":4231},[3948,29872,29781],{"class":4235},[3948,29874,29875],{"class":4254}," 'Фортеця'",[3948,29877,3593],{"class":4231},[3948,29879,29788],{"class":4235},[3948,29881,22632],{"class":4254},[3948,29883,4339],{"class":4231},[3948,29885,29886],{"class":3950,"line":5594},[3948,29887,4380],{"class":4231},[3948,29889,29890],{"class":3950,"line":5624},[3948,29891,3973],{"emptyLinePlaceholder":3972},[3948,29893,29894,29896,29898,29900,29902],{"class":3950,"line":5654},[3948,29895,4389],{"class":4227},[3948,29897,4952],{"class":4227},[3948,29899,4392],{"class":4267},[3948,29901,4957],{"class":4395},[3948,29903,4399],{"class":4231},[3948,29905,29906,29908,29911,29913,29915,29917,29919],{"class":3950,"line":5668},[3948,29907,4964],{"class":4267},[3948,29909,29910],{"class":4308}," systemDark",[3948,29912,4970],{"class":4231},[3948,29914,4757],{"class":4395},[3948,29916,4975],{"class":4231},[3948,29918,4978],{"class":4254},[3948,29920,4258],{"class":4231},[3948,29922,29923,29925,29927,29930,29932,29935,29937,29939,29941,29943,29945,29947,29949,29951,29953,29955],{"class":3950,"line":5677},[3948,29924,4964],{"class":4267},[3948,29926,6152],{"class":4231},[3948,29928,29929],{"class":4308},"pref",[3948,29931,3593],{"class":4231},[3948,29933,29934],{"class":4308},"setPref",[3948,29936,6162],{"class":4231},[3948,29938,5831],{"class":4395},[3948,29940,6167],{"class":4231},[3948,29942,25930],{"class":4254},[3948,29944,25933],{"class":4231},[3948,29946,26157],{"class":4254},[3948,29948,25933],{"class":4231},[3948,29950,4978],{"class":4254},[3948,29952,26088],{"class":4231},[3948,29954,25930],{"class":4254},[3948,29956,7857],{"class":4231},[3948,29958,29959,29961,29964,29966,29968,29970,29972,29975,29977,29979,29981,29984,29987],{"class":3950,"line":5687},[3948,29960,4964],{"class":4267},[3948,29962,29963],{"class":4308}," isDark",[3948,29965,4970],{"class":4231},[3948,29967,29929],{"class":4235},[3948,29969,4919],{"class":4231},[3948,29971,4978],{"class":4254},[3948,29973,29974],{"class":4231}," || (",[3948,29976,29929],{"class":4235},[3948,29978,4919],{"class":4231},[3948,29980,25930],{"class":4254},[3948,29982,29983],{"class":4231}," && ",[3948,29985,29986],{"class":4235},"systemDark",[3948,29988,7857],{"class":4231},[3948,29990,29991,29993,29996,29998,30001,30003,30005,30007,30010],{"class":3950,"line":5698},[3948,29992,4964],{"class":4267},[3948,29994,29995],{"class":4308}," c",[3948,29997,4970],{"class":4231},[3948,29999,30000],{"class":4235},"isDark",[3948,30002,4925],{"class":4231},[3948,30004,4992],{"class":4235},[3948,30006,4931],{"class":4231},[3948,30008,30009],{"class":4235},"light",[3948,30011,4258],{"class":4231},[3948,30013,30014],{"class":3950,"line":5709},[3948,30015,3973],{"emptyLinePlaceholder":3972},[3948,30017,30018,30020,30022,30024,30026,30028,30030,30032,30034,30037],{"class":3950,"line":5715},[3948,30019,4964],{"class":4267},[3948,30021,6152],{"class":4231},[3948,30023,19424],{"class":4308},[3948,30025,3593],{"class":4231},[3948,30027,19429],{"class":4308},[3948,30029,6162],{"class":4231},[3948,30031,5831],{"class":4395},[3948,30033,4446],{"class":4231},[3948,30035,30036],{"class":4308},"TRIPS",[3948,30038,7857],{"class":4231},[3948,30040,30041,30043,30045,30047,30049,30051,30053,30055,30057,30059],{"class":3950,"line":5741},[3948,30042,4964],{"class":4267},[3948,30044,6152],{"class":4231},[3948,30046,4684],{"class":4308},[3948,30048,3593],{"class":4231},[3948,30050,7900],{"class":4308},[3948,30052,6162],{"class":4231},[3948,30054,5831],{"class":4395},[3948,30056,4446],{"class":4231},[3948,30058,7413],{"class":4267},[3948,30060,7857],{"class":4231},[3948,30062,30063],{"class":3950,"line":6725},[3948,30064,3973],{"emptyLinePlaceholder":3972},[3948,30066,30067,30069,30071,30073,30075,30077,30079],{"class":3950,"line":6749},[3948,30068,4964],{"class":4267},[3948,30070,7921],{"class":4308},[3948,30072,4970],{"class":4231},[3948,30074,4586],{"class":4395},[3948,30076,7876],{"class":4231},[3948,30078,4454],{"class":4267},[3948,30080,5674],{"class":4231},[3948,30082,30083,30085,30087,30089],{"class":3950,"line":6792},[3948,30084,7936],{"class":4395},[3948,30086,4446],{"class":4231},[3948,30088,7401],{"class":4267},[3948,30090,7857],{"class":4231},[3948,30092,30093,30095,30097,30099],{"class":3950,"line":6832},[3948,30094,7947],{"class":4395},[3948,30096,7876],{"class":4231},[3948,30098,4454],{"class":4267},[3948,30100,5674],{"class":4231},[3948,30102,30103,30105,30107,30109],{"class":3950,"line":6838},[3948,30104,19671],{"class":4395},[3948,30106,19674],{"class":4231},[3948,30108,30036],{"class":4308},[3948,30110,8030],{"class":4231},[3948,30112,30113,30115,30117,30119],{"class":3950,"line":6844},[3948,30114,8004],{"class":4395},[3948,30116,4446],{"class":4231},[3948,30118,7413],{"class":4267},[3948,30120,7857],{"class":4231},[3948,30122,30123,30125,30127],{"class":3950,"line":6854},[3948,30124,8015],{"class":4231},[3948,30126,9414],{"class":4836},[3948,30128,7857],{"class":4231},[3948,30130,30131],{"class":3950,"line":6863},[3948,30132,13883],{"class":4231},[3948,30134,30135],{"class":3950,"line":6868},[3948,30136,3973],{"emptyLinePlaceholder":3972},[3948,30138,30139,30141,30143],{"class":3950,"line":6887},[3948,30140,4964],{"class":4267},[3948,30142,19836],{"class":4395},[3948,30144,19839],{"class":4231},[3948,30146,30147,30149,30151,30153,30155,30157,30159,30161,30163,30165,30167,30169,30171,30173],{"class":3950,"line":6926},[3948,30148,4413],{"class":4412},[3948,30150,4245],{"class":4271},[3948,30152,5115],{"class":4421},[3948,30154,4425],{"class":4231},[3948,30156,4428],{"class":4267},[3948,30158,5204],{"class":4445},[3948,30160,5332],{"class":4235},[3948,30162,5693],{"class":4836},[3948,30164,3593],{"class":4445},[3948,30166,5213],{"class":4235},[3948,30168,5693],{"class":4836},[3948,30170,5227],{"class":4445},[3948,30172,4515],{"class":4267},[3948,30174,4494],{"class":4412},[3948,30176,30177,30179,30181,30183,30185,30187,30189,30191,30193,30195,30197,30199,30201,30203,30205,30207,30209,30211,30213,30215],{"class":3950,"line":6974},[3948,30178,5150],{"class":4412},[3948,30180,4240],{"class":4271},[3948,30182,5115],{"class":4421},[3948,30184,4425],{"class":4231},[3948,30186,4428],{"class":4267},[3948,30188,5204],{"class":4445},[3948,30190,5172],{"class":4235},[3948,30192,29995],{"class":4235},[3948,30194,3555],{"class":4445},[3948,30196,21161],{"class":4235},[3948,30198,3593],{"class":4445},[3948,30200,5639],{"class":4235},[3948,30202,5730],{"class":4254},[3948,30204,5227],{"class":4445},[3948,30206,4515],{"class":4267},[3948,30208,4504],{"class":4412},[3948,30210,19955],{"class":4231},[3948,30212,4518],{"class":4412},[3948,30214,4240],{"class":4271},[3948,30216,4494],{"class":4412},[3948,30218,30219,30221],{"class":3950,"line":6983},[3948,30220,5150],{"class":4412},[3948,30222,4416],{"class":4271},[3948,30224,30225],{"class":3950,"line":6990},[3948,30226,30227],{"class":4421},"        horizontal\n",[3948,30229,30230,30232,30234,30236,30239],{"class":3950,"line":6995},[3948,30231,5275],{"class":4421},[3948,30233,4425],{"class":4231},[3948,30235,4428],{"class":4267},[3948,30237,30238],{"class":4308},"PLACES",[3948,30240,4003],{"class":4267},[3948,30242,30243,30245,30247,30249,30251,30253,30255,30257,30259,30261,30263],{"class":3950,"line":7004},[3948,30244,5289],{"class":4421},[3948,30246,4425],{"class":4231},[3948,30248,4428],{"class":4267},[3948,30250,4446],{"class":4445},[3948,30252,3512],{"class":4235},[3948,30254,4168],{"class":4445},[3948,30256,4454],{"class":4267},[3948,30258,20911],{"class":4235},[3948,30260,3555],{"class":4445},[3948,30262,4184],{"class":4235},[3948,30264,4003],{"class":4267},[3948,30266,30267,30270,30272],{"class":3950,"line":7009},[3948,30268,30269],{"class":4421},"        showsHorizontalScrollIndicator",[3948,30271,4425],{"class":4231},[3948,30273,20076],{"class":4267},[3948,30275,30276,30278,30280,30282,30284,30286,30288,30290,30292,30294,30296,30298,30300,30302,30304,30306,30308],{"class":3950,"line":7014},[3948,30277,11624],{"class":4421},[3948,30279,4425],{"class":4231},[3948,30281,4428],{"class":4267},[3948,30283,6256],{"class":4445},[3948,30285,4454],{"class":4267},[3948,30287,10462],{"class":4412},[3948,30289,4245],{"class":4271},[3948,30291,5115],{"class":4421},[3948,30293,4425],{"class":4231},[3948,30295,4428],{"class":4267},[3948,30297,5204],{"class":4445},[3948,30299,20104],{"class":4235},[3948,30301,5216],{"class":4836},[3948,30303,5227],{"class":4445},[3948,30305,4515],{"class":4267},[3948,30307,10479],{"class":4412},[3948,30309,4003],{"class":4267},[3948,30311,30312,30314,30316,30318,30320,30322,30324,30326],{"class":3950,"line":7019},[3948,30313,5344],{"class":4421},[3948,30315,4425],{"class":4231},[3948,30317,4428],{"class":4267},[3948,30319,4475],{"class":4445},[3948,30321,4449],{"class":4235},[3948,30323,4480],{"class":4445},[3948,30325,4454],{"class":4267},[3948,30327,4407],{"class":4445},[3948,30329,30330,30332,30334,30336,30338,30340,30342,30344,30346,30348,30350,30352,30354,30356,30358,30360,30362,30364,30366,30368,30370,30372],{"class":3950,"line":7036},[3948,30331,4499],{"class":4412},[3948,30333,4245],{"class":4271},[3948,30335,5115],{"class":4421},[3948,30337,4425],{"class":4231},[3948,30339,4428],{"class":4267},[3948,30341,5122],{"class":4445},[3948,30343,5125],{"class":4235},[3948,30345,3555],{"class":4445},[3948,30347,19575],{"class":4235},[3948,30349,5133],{"class":4445},[3948,30351,5136],{"class":4235},[3948,30353,29995],{"class":4235},[3948,30355,3555],{"class":4445},[3948,30357,21027],{"class":4235},[3948,30359,3593],{"class":4445},[3948,30361,5407],{"class":4235},[3948,30363,29995],{"class":4235},[3948,30365,3555],{"class":4445},[3948,30367,20576],{"class":4235},[3948,30369,5141],{"class":4445},[3948,30371,4515],{"class":4267},[3948,30373,4494],{"class":4412},[3948,30375,30376,30378,30380,30382,30384,30386,30388,30390,30392,30394,30396,30398,30400,30402,30404,30406,30408,30410,30412,30414,30416,30418,30420,30422],{"class":3950,"line":7061},[3948,30377,5431],{"class":4412},[3948,30379,4240],{"class":4271},[3948,30381,5115],{"class":4421},[3948,30383,4425],{"class":4231},[3948,30385,4428],{"class":4267},[3948,30387,5204],{"class":4445},[3948,30389,5172],{"class":4235},[3948,30391,29995],{"class":4235},[3948,30393,3555],{"class":4445},[3948,30395,21161],{"class":4235},[3948,30397,3593],{"class":4445},[3948,30399,5639],{"class":4235},[3948,30401,5730],{"class":4254},[3948,30403,5227],{"class":4445},[3948,30405,4515],{"class":4267},[3948,30407,4504],{"class":4412},[3948,30409,4428],{"class":4267},[3948,30411,4449],{"class":4235},[3948,30413,3555],{"class":4445},[3948,30415,19615],{"class":4235},[3948,30417,4515],{"class":4267},[3948,30419,4518],{"class":4412},[3948,30421,4240],{"class":4271},[3948,30423,4494],{"class":4412},[3948,30425,30426,30428,30430,30432,30434,30436,30438,30440,30442,30444,30446,30448,30450,30452,30454,30456,30458,30460,30462,30464,30466,30468,30470,30472,30474,30476,30478],{"class":3950,"line":7089},[3948,30427,5431],{"class":4412},[3948,30429,4240],{"class":4271},[3948,30431,5115],{"class":4421},[3948,30433,4425],{"class":4231},[3948,30435,4428],{"class":4267},[3948,30437,5204],{"class":4445},[3948,30439,5172],{"class":4235},[3948,30441,29995],{"class":4235},[3948,30443,3555],{"class":4445},[3948,30445,8309],{"class":4235},[3948,30447,3593],{"class":4445},[3948,30449,9776],{"class":4235},[3948,30451,5649],{"class":4836},[3948,30453,3593],{"class":4445},[3948,30455,5221],{"class":4235},[3948,30457,5693],{"class":4836},[3948,30459,5227],{"class":4445},[3948,30461,4515],{"class":4267},[3948,30463,4504],{"class":4412},[3948,30465,4428],{"class":4267},[3948,30467,4449],{"class":4235},[3948,30469,3555],{"class":4445},[3948,30471,23995],{"class":4235},[3948,30473,4515],{"class":4267},[3948,30475,4518],{"class":4412},[3948,30477,4240],{"class":4271},[3948,30479,4494],{"class":4412},[3948,30481,30482,30484,30486],{"class":3950,"line":7097},[3948,30483,5528],{"class":4412},[3948,30485,4245],{"class":4271},[3948,30487,4494],{"class":4412},[3948,30489,30490,30492],{"class":3950,"line":7107},[3948,30491,5538],{"class":4445},[3948,30493,4003],{"class":4267},[3948,30495,30496],{"class":3950,"line":7118},[3948,30497,5546],{"class":4412},[3948,30499,30500,30502,30504,30506,30508,30510,30512,30514,30516,30518,30520,30522,30524,30526,30528,30530,30532,30534,30536,30538],{"class":3950,"line":7127},[3948,30501,5150],{"class":4412},[3948,30503,4240],{"class":4271},[3948,30505,5115],{"class":4421},[3948,30507,4425],{"class":4231},[3948,30509,4428],{"class":4267},[3948,30511,5204],{"class":4445},[3948,30513,5172],{"class":4235},[3948,30515,29995],{"class":4235},[3948,30517,3555],{"class":4445},[3948,30519,21161],{"class":4235},[3948,30521,3593],{"class":4445},[3948,30523,5639],{"class":4235},[3948,30525,5730],{"class":4254},[3948,30527,5227],{"class":4445},[3948,30529,4515],{"class":4267},[3948,30531,4504],{"class":4412},[3948,30533,20191],{"class":4231},[3948,30535,4518],{"class":4412},[3948,30537,4240],{"class":4271},[3948,30539,4494],{"class":4412},[3948,30541,30542,30544,30546],{"class":3950,"line":7132},[3948,30543,5552],{"class":4412},[3948,30545,4245],{"class":4271},[3948,30547,4494],{"class":4412},[3948,30549,30550],{"class":3950,"line":7153},[3948,30551,4548],{"class":4231},[3948,30553,30554],{"class":3950,"line":7179},[3948,30555,3973],{"emptyLinePlaceholder":3972},[3948,30557,30558,30560],{"class":3950,"line":7194},[3948,30559,4404],{"class":4227},[3948,30561,4407],{"class":4231},[3948,30563,30564,30566,30568,30570,30572,30574,30576,30578,30580,30582,30584,30586,30588,30590,30593,30595,30597],{"class":3950,"line":7202},[3948,30565,4413],{"class":4412},[3948,30567,4245],{"class":4271},[3948,30569,5115],{"class":4421},[3948,30571,4425],{"class":4231},[3948,30573,4428],{"class":4267},[3948,30575,5122],{"class":4445},[3948,30577,5125],{"class":4235},[3948,30579,3555],{"class":4445},[3948,30581,5130],{"class":4235},[3948,30583,5133],{"class":4445},[3948,30585,5136],{"class":4235},[3948,30587,29995],{"class":4235},[3948,30589,3555],{"class":4445},[3948,30591,30592],{"class":4235},"bg",[3948,30594,5141],{"class":4445},[3948,30596,4515],{"class":4267},[3948,30598,4494],{"class":4412},[3948,30600,30601,30603,30605,30607,30609,30611,30613,30615,30617,30620,30622,30624,30626,30628,30630,30632,30634],{"class":3950,"line":7212},[3948,30602,5150],{"class":4412},[3948,30604,4245],{"class":4271},[3948,30606,5115],{"class":4421},[3948,30608,4425],{"class":4231},[3948,30610,4428],{"class":4267},[3948,30612,5122],{"class":4445},[3948,30614,5125],{"class":4235},[3948,30616,3555],{"class":4445},[3948,30618,30619],{"class":4235},"top",[3948,30621,5133],{"class":4445},[3948,30623,5407],{"class":4235},[3948,30625,29995],{"class":4235},[3948,30627,3555],{"class":4445},[3948,30629,20576],{"class":4235},[3948,30631,5141],{"class":4445},[3948,30633,4515],{"class":4267},[3948,30635,4494],{"class":4412},[3948,30637,30638,30640,30642,30644,30646,30648,30650,30652,30654,30657,30659,30661,30663,30665,30667,30669,30671,30673,30675,30677,30679],{"class":3950,"line":7223},[3948,30639,4489],{"class":4412},[3948,30641,4240],{"class":4271},[3948,30643,5115],{"class":4421},[3948,30645,4425],{"class":4231},[3948,30647,4428],{"class":4267},[3948,30649,5122],{"class":4445},[3948,30651,5125],{"class":4235},[3948,30653,3555],{"class":4445},[3948,30655,30656],{"class":4235},"brand",[3948,30658,5133],{"class":4445},[3948,30660,5172],{"class":4235},[3948,30662,29995],{"class":4235},[3948,30664,3555],{"class":4445},[3948,30666,21161],{"class":4235},[3948,30668,5141],{"class":4445},[3948,30670,4515],{"class":4267},[3948,30672,4504],{"class":4412},[3948,30674,20612],{"class":4231},[3948,30676,4518],{"class":4412},[3948,30678,4240],{"class":4271},[3948,30680,4494],{"class":4412},[3948,30682,30683,30685,30687,30689,30691,30693,30695,30697,30699,30701,30703,30705,30707,30709,30711,30713,30715,30717,30719],{"class":3950,"line":7233},[3948,30684,4489],{"class":4412},[3948,30686,4240],{"class":4271},[3948,30688,5115],{"class":4421},[3948,30690,4425],{"class":4231},[3948,30692,4428],{"class":4267},[3948,30694,5204],{"class":4445},[3948,30696,5172],{"class":4235},[3948,30698,29995],{"class":4235},[3948,30700,3555],{"class":4445},[3948,30702,13988],{"class":4235},[3948,30704,3593],{"class":4445},[3948,30706,5221],{"class":4235},[3948,30708,5224],{"class":4836},[3948,30710,3593],{"class":4445},[3948,30712,9776],{"class":4235},[3948,30714,5649],{"class":4836},[3948,30716,5227],{"class":4445},[3948,30718,4515],{"class":4267},[3948,30720,4494],{"class":4412},[3948,30722,30723,30726,30728,30730,30732,30734,30736,30738,30740,30742,30744,30746,30748,30750,30752,30754,30756,30758,30760,30762,30764],{"class":3950,"line":7243},[3948,30724,30725],{"class":4231},"          тема: ",[3948,30727,4428],{"class":4267},[3948,30729,30000],{"class":4235},[3948,30731,6629],{"class":4231},[3948,30733,20671],{"class":4254},[3948,30735,6639],{"class":4231},[3948,30737,20676],{"class":4254},[3948,30739,4515],{"class":4267},[3948,30741,14613],{"class":4231},[3948,30743,4428],{"class":4267},[3948,30745,19424],{"class":4235},[3948,30747,3555],{"class":4445},[3948,30749,6321],{"class":4235},[3948,30751,4515],{"class":4267},[3948,30753,20790],{"class":4231},[3948,30755,4428],{"class":4267},[3948,30757,30238],{"class":4308},[3948,30759,3555],{"class":4445},[3948,30761,6321],{"class":4235},[3948,30763,4515],{"class":4267},[3948,30765,30766],{"class":4231}," місць\n",[3948,30768,30769,30771,30773],{"class":3950,"line":7253},[3948,30770,4527],{"class":4412},[3948,30772,4240],{"class":4271},[3948,30774,4494],{"class":4412},[3948,30776,30777,30779,30781,30783,30785,30787,30789,30791,30794,30796],{"class":3950,"line":7262},[3948,30778,4489],{"class":4412},[3948,30780,4245],{"class":4271},[3948,30782,5115],{"class":4421},[3948,30784,4425],{"class":4231},[3948,30786,4428],{"class":4267},[3948,30788,5125],{"class":4235},[3948,30790,3555],{"class":4445},[3948,30792,30793],{"class":4235},"chips",[3948,30795,4515],{"class":4267},[3948,30797,4494],{"class":4412},[3948,30799,30800,30802],{"class":3950,"line":7267},[3948,30801,13997],{"class":4267},[3948,30803,30804],{"class":4445},"([\n",[3948,30806,30807,30810,30812,30814,30817],{"class":3950,"line":7287},[3948,30808,30809],{"class":4445},"            [",[3948,30811,25930],{"class":4254},[3948,30813,3593],{"class":4445},[3948,30815,30816],{"class":4254},"'Система'",[3948,30818,12047],{"class":4445},[3948,30820,30821,30823,30825,30827,30830],{"class":3950,"line":7294},[3948,30822,30809],{"class":4445},[3948,30824,26157],{"class":4254},[3948,30826,3593],{"class":4445},[3948,30828,30829],{"class":4254},"'Світла'",[3948,30831,12047],{"class":4445},[3948,30833,30834,30836,30838,30840,30843],{"class":3950,"line":7303},[3948,30835,30809],{"class":4445},[3948,30837,4978],{"class":4254},[3948,30839,3593],{"class":4445},[3948,30841,30842],{"class":4254},"'Темна'",[3948,30844,12047],{"class":4445},[3948,30846,30847,30850,30852,30854,30856,30858,30860,30862,30864,30866,30868,30870],{"class":3950,"line":7312},[3948,30848,30849],{"class":4445},"          ] ",[3948,30851,13124],{"class":4227},[3948,30853,13127],{"class":4267},[3948,30855,4141],{"class":4445},[3948,30857,3582],{"class":4395},[3948,30859,13575],{"class":4445},[3948,30861,4184],{"class":4235},[3948,30863,3593],{"class":4445},[3948,30865,19301],{"class":4235},[3948,30867,13585],{"class":4445},[3948,30869,4454],{"class":4267},[3948,30871,5674],{"class":4445},[3948,30873,30874,30876,30879,30881,30884,30886,30889],{"class":3950,"line":7321},[3948,30875,20897],{"class":4267},[3948,30877,30878],{"class":4308}," on",[3948,30880,20903],{"class":4231},[3948,30882,30883],{"class":4235}," pref",[3948,30885,6623],{"class":4231},[3948,30887,30888],{"class":4235}," id",[3948,30890,4258],{"class":4445},[3948,30892,30893,30895],{"class":3950,"line":7326},[3948,30894,20922],{"class":4227},[3948,30896,4407],{"class":4445},[3948,30898,30899,30901],{"class":3950,"line":14328},[3948,30900,9736],{"class":4412},[3948,30902,6244],{"class":4271},[3948,30904,30905,30907,30909,30911,30913],{"class":3950,"line":14337},[3948,30906,20935],{"class":4421},[3948,30908,4425],{"class":4231},[3948,30910,4428],{"class":4267},[3948,30912,4184],{"class":4235},[3948,30914,4003],{"class":4267},[3948,30916,30917,30919,30921,30923,30925,30927,30930,30932,30934,30936],{"class":3950,"line":14367},[3948,30918,20952],{"class":4421},[3948,30920,4425],{"class":4231},[3948,30922,4428],{"class":4267},[3948,30924,6256],{"class":4445},[3948,30926,4454],{"class":4267},[3948,30928,30929],{"class":4395}," setPref",[3948,30931,4446],{"class":4445},[3948,30933,4184],{"class":4235},[3948,30935,7357],{"class":4445},[3948,30937,4003],{"class":4267},[3948,30939,30940,30942,30944,30946],{"class":3950,"line":14372},[3948,30941,20980],{"class":4421},[3948,30943,4425],{"class":4231},[3948,30945,4428],{"class":4267},[3948,30947,5379],{"class":4445},[3948,30949,30950,30952,30954,30956],{"class":3950,"line":14381},[3948,30951,20991],{"class":4235},[3948,30953,3555],{"class":4445},[3948,30955,24053],{"class":4235},[3948,30957,4902],{"class":4445},[3948,30959,30960],{"class":3950,"line":14414},[3948,30961,21003],{"class":4445},[3948,30963,30964,30966,30968,30970,30972,30974,30976,30978,30980,30982,30984],{"class":3950,"line":14419},[3948,30965,21008],{"class":4235},[3948,30967,30878],{"class":4235},[3948,30969,6629],{"class":4231},[3948,30971,29995],{"class":4235},[3948,30973,3555],{"class":4445},[3948,30975,8309],{"class":4235},[3948,30977,6639],{"class":4231},[3948,30979,29995],{"class":4235},[3948,30981,3555],{"class":4445},[3948,30983,21027],{"class":4235},[3948,30985,4902],{"class":4445},[3948,30987,30988,30990,30992,30994,30996],{"class":3950,"line":14428},[3948,30989,21034],{"class":4235},[3948,30991,29995],{"class":4235},[3948,30993,3555],{"class":4445},[3948,30995,20576],{"class":4235},[3948,30997,4902],{"class":4445},[3948,30999,31000],{"class":3950,"line":14451},[3948,31001,21047],{"class":4445},[3948,31003,31004,31006],{"class":3950,"line":14483},[3948,31005,21052],{"class":4445},[3948,31007,4003],{"class":4267},[3948,31009,31010],{"class":3950,"line":14515},[3948,31011,21115],{"class":4412},[3948,31013,31014,31016,31018,31020,31022,31024,31026,31028,31030,31032,31034,31036,31038,31040,31042,31044,31046,31048,31050,31052,31054,31056,31058,31060,31062],{"class":3950,"line":14524},[3948,31015,21120],{"class":4412},[3948,31017,4240],{"class":4271},[3948,31019,5115],{"class":4421},[3948,31021,4425],{"class":4231},[3948,31023,4428],{"class":4267},[3948,31025,5204],{"class":4445},[3948,31027,5172],{"class":4235},[3948,31029,30878],{"class":4235},[3948,31031,6629],{"class":4231},[3948,31033,29995],{"class":4235},[3948,31035,3555],{"class":4445},[3948,31037,21152],{"class":4235},[3948,31039,6639],{"class":4231},[3948,31041,29995],{"class":4235},[3948,31043,3555],{"class":4445},[3948,31045,21161],{"class":4235},[3948,31047,3593],{"class":4445},[3948,31049,5639],{"class":4235},[3948,31051,5730],{"class":4254},[3948,31053,3593],{"class":4445},[3948,31055,5221],{"class":4235},[3948,31057,5693],{"class":4836},[3948,31059,5227],{"class":4445},[3948,31061,4515],{"class":4267},[3948,31063,4494],{"class":4412},[3948,31065,31066,31068,31070],{"class":3950,"line":14529},[3948,31067,21191],{"class":4267},[3948,31069,19301],{"class":4235},[3948,31071,4003],{"class":4267},[3948,31073,31074,31076,31078],{"class":3950,"line":14556},[3948,31075,21204],{"class":4412},[3948,31077,4240],{"class":4271},[3948,31079,4494],{"class":4412},[3948,31081,31082,31084,31086],{"class":3950,"line":14579},[3948,31083,21213],{"class":4412},[3948,31085,3897],{"class":4271},[3948,31087,4494],{"class":4412},[3948,31089,31090],{"class":3950,"line":14603},[3948,31091,21222],{"class":4445},[3948,31093,31094,31096],{"class":3950,"line":14626},[3948,31095,21227],{"class":4445},[3948,31097,4003],{"class":4267},[3948,31099,31100,31102,31104],{"class":3950,"line":14635},[3948,31101,4527],{"class":4412},[3948,31103,4245],{"class":4271},[3948,31105,4494],{"class":4412},[3948,31107,31108,31110,31112],{"class":3950,"line":14644},[3948,31109,5241],{"class":4412},[3948,31111,4245],{"class":4271},[3948,31113,4494],{"class":4412},[3948,31115,31116],{"class":3950,"line":14651},[3948,31117,3973],{"emptyLinePlaceholder":3972},[3948,31119,31120,31122],{"class":3950,"line":14670},[3948,31121,5150],{"class":4412},[3948,31123,4416],{"class":4271},[3948,31125,31126,31128,31130,31132,31134,31136,31138,31140],{"class":3950,"line":14694},[3948,31127,5256],{"class":4421},[3948,31129,4425],{"class":4231},[3948,31131,4428],{"class":4267},[3948,31133,5204],{"class":4445},[3948,31135,5602],{"class":4235},[3948,31137,4894],{"class":4836},[3948,31139,5227],{"class":4445},[3948,31141,4003],{"class":4267},[3948,31143,31144,31146,31148,31150,31152],{"class":3950,"line":14733},[3948,31145,5275],{"class":4421},[3948,31147,4425],{"class":4231},[3948,31149,4428],{"class":4267},[3948,31151,19424],{"class":4235},[3948,31153,4003],{"class":4267},[3948,31155,31156,31158,31160,31162,31164,31167,31169,31171,31174,31176,31178],{"class":3950,"line":14756},[3948,31157,5289],{"class":4421},[3948,31159,4425],{"class":4231},[3948,31161,4428],{"class":4267},[3948,31163,4446],{"class":4445},[3948,31165,31166],{"class":4235},"t",[3948,31168,4168],{"class":4445},[3948,31170,4454],{"class":4267},[3948,31172,31173],{"class":4235}," t",[3948,31175,3555],{"class":4445},[3948,31177,4184],{"class":4235},[3948,31179,4003],{"class":4267},[3948,31181,31182,31184,31186,31188,31190],{"class":3950,"line":14807},[3948,31183,6664],{"class":4421},[3948,31185,4425],{"class":4231},[3948,31187,4428],{"class":4267},[3948,31189,21337],{"class":4235},[3948,31191,4003],{"class":4267},[3948,31193,31194,31196,31198,31200,31202,31204,31206,31208,31210,31212,31214],{"class":3950,"line":14816},[3948,31195,5315],{"class":4421},[3948,31197,4425],{"class":4231},[3948,31199,4428],{"class":4267},[3948,31201,5204],{"class":4445},[3948,31203,5609],{"class":4235},[3948,31205,5327],{"class":4836},[3948,31207,3593],{"class":4445},[3948,31209,5324],{"class":4235},[3948,31211,5693],{"class":4836},[3948,31213,5227],{"class":4445},[3948,31215,4003],{"class":4267},[3948,31217,31218,31220,31222,31224,31226,31228,31230,31232,31234,31236,31238,31240,31242,31244,31246,31248,31250],{"class":3950,"line":14825},[3948,31219,11624],{"class":4421},[3948,31221,4425],{"class":4231},[3948,31223,4428],{"class":4267},[3948,31225,6256],{"class":4445},[3948,31227,4454],{"class":4267},[3948,31229,10462],{"class":4412},[3948,31231,4245],{"class":4271},[3948,31233,5115],{"class":4421},[3948,31235,4425],{"class":4231},[3948,31237,4428],{"class":4267},[3948,31239,5204],{"class":4445},[3948,31241,11647],{"class":4235},[3948,31243,5693],{"class":4836},[3948,31245,5227],{"class":4445},[3948,31247,4515],{"class":4267},[3948,31249,10479],{"class":4412},[3948,31251,4003],{"class":4267},[3948,31253,31254,31256,31258],{"class":3950,"line":14832},[3948,31255,8260],{"class":4421},[3948,31257,4425],{"class":4231},[3948,31259,6611],{"class":4267},[3948,31261,31262,31264],{"class":3950,"line":14869},[3948,31263,4499],{"class":4412},[3948,31265,8271],{"class":4271},[3948,31267,31268,31270,31272,31274,31276],{"class":3950,"line":14874},[3948,31269,8276],{"class":4421},[3948,31271,4425],{"class":4231},[3948,31273,4428],{"class":4267},[3948,31275,4684],{"class":4235},[3948,31277,4003],{"class":4267},[3948,31279,31280,31282,31284,31286,31288],{"class":3950,"line":14883},[3948,31281,8289],{"class":4421},[3948,31283,4425],{"class":4231},[3948,31285,4428],{"class":4267},[3948,31287,4687],{"class":4235},[3948,31289,4003],{"class":4267},[3948,31291,31292,31294,31296,31298,31301,31303,31305],{"class":3950,"line":14888},[3948,31293,8302],{"class":4421},[3948,31295,4425],{"class":4231},[3948,31297,4428],{"class":4267},[3948,31299,31300],{"class":4235},"c",[3948,31302,3555],{"class":4445},[3948,31304,8309],{"class":4235},[3948,31306,4003],{"class":4267},[3948,31308,31309,31311,31313,31315,31317,31319,31321,31323,31325],{"class":3950,"line":14893},[3948,31310,8316],{"class":4421},[3948,31312,4425],{"class":4231},[3948,31314,4428],{"class":4267},[3948,31316,5122],{"class":4445},[3948,31318,31300],{"class":4235},[3948,31320,3555],{"class":4445},[3948,31322,8309],{"class":4235},[3948,31324,8327],{"class":4445},[3948,31326,4003],{"class":4267},[3948,31328,31329],{"class":3950,"line":14898},[3948,31330,8334],{"class":4412},[3948,31332,31333],{"class":3950,"line":14915},[3948,31334,6659],{"class":4267},[3948,31336,31337,31339,31341,31343,31345,31347,31349,31351],{"class":3950,"line":14936},[3948,31338,5344],{"class":4421},[3948,31340,4425],{"class":4231},[3948,31342,4428],{"class":4267},[3948,31344,4475],{"class":4445},[3948,31346,4449],{"class":4235},[3948,31348,4480],{"class":4445},[3948,31350,4454],{"class":4267},[3948,31352,4407],{"class":4445},[3948,31354,31355,31357,31359,31361,31363,31365,31367,31369,31371,31373,31375,31377,31379,31381,31383,31385,31387,31389,31391,31393,31395,31397],{"class":3950,"line":14970},[3948,31356,4499],{"class":4412},[3948,31358,4245],{"class":4271},[3948,31360,5115],{"class":4421},[3948,31362,4425],{"class":4231},[3948,31364,4428],{"class":4267},[3948,31366,5122],{"class":4445},[3948,31368,5125],{"class":4235},[3948,31370,3555],{"class":4445},[3948,31372,14687],{"class":4235},[3948,31374,5133],{"class":4445},[3948,31376,5136],{"class":4235},[3948,31378,29995],{"class":4235},[3948,31380,3555],{"class":4445},[3948,31382,21027],{"class":4235},[3948,31384,3593],{"class":4445},[3948,31386,5407],{"class":4235},[3948,31388,29995],{"class":4235},[3948,31390,3555],{"class":4445},[3948,31392,20576],{"class":4235},[3948,31394,5141],{"class":4445},[3948,31396,4515],{"class":4267},[3948,31398,4494],{"class":4412},[3948,31400,31401,31403,31405,31408,31410,31412,31414,31416,31418,31420,31422,31424,31426,31428,31430,31432,31434,31436,31438,31440],{"class":3950,"line":14997},[3948,31402,5431],{"class":4412},[3948,31404,3863],{"class":4271},[3948,31406,31407],{"class":4421}," source",[3948,31409,4425],{"class":4231},[3948,31411,4428],{"class":4267},[3948,31413,5204],{"class":4445},[3948,31415,24890],{"class":4235},[3948,31417,4457],{"class":4235},[3948,31419,3555],{"class":4445},[3948,31421,24897],{"class":4235},[3948,31423,5227],{"class":4445},[3948,31425,4515],{"class":4267},[3948,31427,5115],{"class":4421},[3948,31429,4425],{"class":4231},[3948,31431,4428],{"class":4267},[3948,31433,5125],{"class":4235},[3948,31435,3555],{"class":4445},[3948,31437,24918],{"class":4235},[3948,31439,4515],{"class":4267},[3948,31441,9753],{"class":4412},[3948,31443,31444,31446,31448,31450,31452,31454,31456,31458,31460,31462,31464],{"class":3950,"line":15018},[3948,31445,5431],{"class":4412},[3948,31447,4245],{"class":4271},[3948,31449,5115],{"class":4421},[3948,31451,4425],{"class":4231},[3948,31453,4428],{"class":4267},[3948,31455,5204],{"class":4445},[3948,31457,5609],{"class":4235},[3948,31459,5693],{"class":4836},[3948,31461,5227],{"class":4445},[3948,31463,4515],{"class":4267},[3948,31465,4494],{"class":4412},[3948,31467,31468,31470,31472,31474,31476,31478,31480,31482,31484,31486,31488,31490,31492,31494,31496,31498,31500,31502,31504,31506,31508,31510,31512,31514,31516,31518,31520],{"class":3950,"line":15043},[3948,31469,9736],{"class":4412},[3948,31471,4240],{"class":4271},[3948,31473,5115],{"class":4421},[3948,31475,4425],{"class":4231},[3948,31477,4428],{"class":4267},[3948,31479,5204],{"class":4445},[3948,31481,5172],{"class":4235},[3948,31483,29995],{"class":4235},[3948,31485,3555],{"class":4445},[3948,31487,21161],{"class":4235},[3948,31489,3593],{"class":4445},[3948,31491,5639],{"class":4235},[3948,31493,5730],{"class":4254},[3948,31495,3593],{"class":4445},[3948,31497,5221],{"class":4235},[3948,31499,5327],{"class":4836},[3948,31501,5227],{"class":4445},[3948,31503,4515],{"class":4267},[3948,31505,4504],{"class":4412},[3948,31507,4428],{"class":4267},[3948,31509,4449],{"class":4235},[3948,31511,3555],{"class":4445},[3948,31513,4289],{"class":4235},[3948,31515,4515],{"class":4267},[3948,31517,4518],{"class":4412},[3948,31519,4240],{"class":4271},[3948,31521,4494],{"class":4412},[3948,31523,31524,31526,31528,31530,31532,31534,31536,31538,31540,31542,31544,31546,31548,31550,31552,31554,31556,31558,31560],{"class":3950,"line":15050},[3948,31525,9736],{"class":4412},[3948,31527,4240],{"class":4271},[3948,31529,5115],{"class":4421},[3948,31531,4425],{"class":4231},[3948,31533,4428],{"class":4267},[3948,31535,5204],{"class":4445},[3948,31537,5172],{"class":4235},[3948,31539,29995],{"class":4235},[3948,31541,3555],{"class":4445},[3948,31543,13988],{"class":4235},[3948,31545,3593],{"class":4445},[3948,31547,9776],{"class":4235},[3948,31549,5649],{"class":4836},[3948,31551,3593],{"class":4445},[3948,31553,5221],{"class":4235},[3948,31555,5224],{"class":4836},[3948,31557,5227],{"class":4445},[3948,31559,4515],{"class":4267},[3948,31561,4494],{"class":4412},[3948,31563,31564,31567,31569,31571,31573,31575,31577,31579,31581,31583,31585],{"class":3950,"line":15061},[3948,31565,31566],{"class":4267},"                {",[3948,31568,4449],{"class":4235},[3948,31570,3555],{"class":4445},[3948,31572,25135],{"class":4235},[3948,31574,4515],{"class":4267},[3948,31576,14613],{"class":4445},[3948,31578,4428],{"class":4267},[3948,31580,4449],{"class":4235},[3948,31582,3555],{"class":4445},[3948,31584,18020],{"class":4235},[3948,31586,4003],{"class":4267},[3948,31588,31589,31591,31593],{"class":3950,"line":15070},[3948,31590,21213],{"class":4412},[3948,31592,4240],{"class":4271},[3948,31594,4494],{"class":4412},[3948,31596,31597,31599,31601],{"class":3950,"line":15079},[3948,31598,6847],{"class":4412},[3948,31600,4245],{"class":4271},[3948,31602,4494],{"class":4412},[3948,31604,31605,31607,31609],{"class":3950,"line":15088},[3948,31606,5528],{"class":4412},[3948,31608,4245],{"class":4271},[3948,31610,4494],{"class":4412},[3948,31612,31613,31615],{"class":3950,"line":15093},[3948,31614,5538],{"class":4445},[3948,31616,4003],{"class":4267},[3948,31618,31619],{"class":3950,"line":15112},[3948,31620,5546],{"class":4412},[3948,31622,31623],{"class":3950,"line":15138},[3948,31624,3973],{"emptyLinePlaceholder":3972},[3948,31626,31627,31629,31631,31633,31635,31637,31639,31641,31643,31645,31647,31649,31651,31653,31655,31657,31659,31661,31663,31665,31667,31669],{"class":3950,"line":15158},[3948,31628,5150],{"class":4412},[3948,31630,4245],{"class":4271},[3948,31632,5115],{"class":4421},[3948,31634,4425],{"class":4231},[3948,31636,4428],{"class":4267},[3948,31638,5122],{"class":4445},[3948,31640,5125],{"class":4235},[3948,31642,3555],{"class":4445},[3948,31644,9727],{"class":4235},[3948,31646,5133],{"class":4445},[3948,31648,5407],{"class":4235},[3948,31650,29995],{"class":4235},[3948,31652,3555],{"class":4445},[3948,31654,20576],{"class":4235},[3948,31656,3593],{"class":4445},[3948,31658,5136],{"class":4235},[3948,31660,29995],{"class":4235},[3948,31662,3555],{"class":4445},[3948,31664,30592],{"class":4235},[3948,31666,5141],{"class":4445},[3948,31668,4515],{"class":4267},[3948,31670,4494],{"class":4412},[3948,31672,31673,31675,31677,31679,31681,31683,31685,31687,31689,31692,31694,31696,31698,31700,31702,31704,31706],{"class":3950,"line":15184},[3948,31674,4489],{"class":4412},[3948,31676,3897],{"class":4271},[3948,31678,5115],{"class":4421},[3948,31680,4425],{"class":4231},[3948,31682,4428],{"class":4267},[3948,31684,5122],{"class":4445},[3948,31686,5125],{"class":4235},[3948,31688,3555],{"class":4445},[3948,31690,31691],{"class":4235},"cta",[3948,31693,5133],{"class":4445},[3948,31695,5136],{"class":4235},[3948,31697,29995],{"class":4235},[3948,31699,3555],{"class":4445},[3948,31701,8309],{"class":4235},[3948,31703,5141],{"class":4445},[3948,31705,4515],{"class":4267},[3948,31707,4494],{"class":4412},[3948,31709,31710,31712,31714,31716,31718,31720,31722,31724,31726,31728,31730,31732,31734,31736,31738,31740,31742,31745,31747,31749],{"class":3950,"line":15198},[3948,31711,4499],{"class":4412},[3948,31713,4240],{"class":4271},[3948,31715,5115],{"class":4421},[3948,31717,4425],{"class":4231},[3948,31719,4428],{"class":4267},[3948,31721,5204],{"class":4445},[3948,31723,5172],{"class":4235},[3948,31725,29995],{"class":4235},[3948,31727,3555],{"class":4445},[3948,31729,21152],{"class":4235},[3948,31731,3593],{"class":4445},[3948,31733,5639],{"class":4235},[3948,31735,5642],{"class":4254},[3948,31737,5227],{"class":4445},[3948,31739,4515],{"class":4267},[3948,31741,4504],{"class":4412},[3948,31743,31744],{"class":4231},"Нова поїздка",[3948,31746,4518],{"class":4412},[3948,31748,4240],{"class":4271},[3948,31750,4494],{"class":4412},[3948,31752,31753,31755,31757],{"class":3950,"line":15238},[3948,31754,4527],{"class":4412},[3948,31756,3897],{"class":4271},[3948,31758,4494],{"class":4412},[3948,31760,31761,31763,31765],{"class":3950,"line":15263},[3948,31762,5241],{"class":4412},[3948,31764,4245],{"class":4271},[3948,31766,4494],{"class":4412},[3948,31768,31769,31771,31773],{"class":3950,"line":15270},[3948,31770,5552],{"class":4412},[3948,31772,4245],{"class":4271},[3948,31774,4494],{"class":4412},[3948,31776,31777],{"class":3950,"line":15279},[3948,31778,4548],{"class":4231},[3948,31780,31781],{"class":3950,"line":15288},[3948,31782,4003],{"class":4231},[3948,31784,31785],{"class":3950,"line":15297},[3948,31786,3973],{"emptyLinePlaceholder":3972},[3948,31788,31789,31791,31793,31795,31797,31799,31801],{"class":3950,"line":15306},[3948,31790,4305],{"class":4267},[3948,31792,5579],{"class":4308},[3948,31794,4970],{"class":4231},[3948,31796,4744],{"class":4235},[3948,31798,3555],{"class":4231},[3948,31800,5588],{"class":4395},[3948,31802,5591],{"class":4231},[3948,31804,31805,31807,31809,31811,31813],{"class":3950,"line":15315},[3948,31806,5597],{"class":4235},[3948,31808,4232],{"class":4231},[3948,31810,5602],{"class":4235},[3948,31812,4894],{"class":4836},[3948,31814,4339],{"class":4231},[3948,31816,31817,31820,31822,31824,31826,31828,31830,31832],{"class":3950,"line":15320},[3948,31818,31819],{"class":4235},"  top:",[3948,31821,4232],{"class":4231},[3948,31823,5609],{"class":4235},[3948,31825,5327],{"class":4836},[3948,31827,3593],{"class":4231},[3948,31829,14956],{"class":4235},[3948,31831,4894],{"class":4836},[3948,31833,4339],{"class":4231},[3948,31835,31836,31839,31841,31843,31845,31847,31849,31851],{"class":3950,"line":15340},[3948,31837,31838],{"class":4235},"  brand:",[3948,31840,4232],{"class":4231},[3948,31842,5221],{"class":4235},[3948,31844,5619],{"class":4836},[3948,31846,3593],{"class":4231},[3948,31848,5639],{"class":4235},[3948,31850,5642],{"class":4254},[3948,31852,4339],{"class":4231},[3948,31854,31855,31858,31860,31862,31864,31866,31869,31871,31873,31875,31877,31879,31881,31883],{"class":3950,"line":15348},[3948,31856,31857],{"class":4235},"  chips:",[3948,31859,4232],{"class":4231},[3948,31861,7069],{"class":4235},[3948,31863,7072],{"class":4254},[3948,31865,3593],{"class":4231},[3948,31867,31868],{"class":4235},"flexWrap:",[3948,31870,21881],{"class":4254},[3948,31872,3593],{"class":4231},[3948,31874,5332],{"class":4235},[3948,31876,5216],{"class":4836},[3948,31878,3593],{"class":4231},[3948,31880,9776],{"class":4235},[3948,31882,7113],{"class":4836},[3948,31884,4339],{"class":4231},[3948,31886,31887,31889,31891,31893,31895,31897,31899,31901,31903,31905,31907,31909,31911,31913],{"class":3950,"line":15357},[3948,31888,24389],{"class":4235},[3948,31890,4232],{"class":4231},[3948,31892,15171],{"class":4235},[3948,31894,5693],{"class":4836},[3948,31896,3593],{"class":4231},[3948,31898,10117],{"class":4235},[3948,31900,5216],{"class":4836},[3948,31902,3593],{"class":4231},[3948,31904,10097],{"class":4235},[3948,31906,5216],{"class":4836},[3948,31908,3593],{"class":4231},[3948,31910,6473],{"class":4235},[3948,31912,4894],{"class":4836},[3948,31914,4339],{"class":4231},[3948,31916,31917,31920,31922,31924,31927,31929,31931,31933,31935,31937,31939,31941,31943,31945,31947,31949,31952],{"class":3950,"line":15366},[3948,31918,31919],{"class":4235},"  place:",[3948,31921,4232],{"class":4231},[3948,31923,20104],{"class":4235},[3948,31925,31926],{"class":4836}," 140",[3948,31928,3593],{"class":4231},[3948,31930,6473],{"class":4235},[3948,31932,4894],{"class":4836},[3948,31934,3593],{"class":4231},[3948,31936,10097],{"class":4235},[3948,31938,5693],{"class":4836},[3948,31940,3593],{"class":4231},[3948,31942,5609],{"class":4235},[3948,31944,7113],{"class":4836},[3948,31946,3593],{"class":4231},[3948,31948,15211],{"class":4235},[3948,31950,31951],{"class":4836}," 72",[3948,31953,4339],{"class":4231},[3948,31955,31956,31958,31960,31962,31964,31966,31968,31970,31972,31975,31977],{"class":3950,"line":15375},[3948,31957,15343],{"class":4235},[3948,31959,4232],{"class":4231},[3948,31961,6473],{"class":4235},[3948,31963,4894],{"class":4836},[3948,31965,3593],{"class":4231},[3948,31967,10097],{"class":4235},[3948,31969,5327],{"class":4836},[3948,31971,3593],{"class":4231},[3948,31973,31974],{"class":4235},"overflow:",[3948,31976,25471],{"class":4254},[3948,31978,4339],{"class":4231},[3948,31980,31981,31983,31985,31987,31989,31991,31993,31996,31998,32000,32003],{"class":3950,"line":15385},[3948,31982,25610],{"class":4235},[3948,31984,4232],{"class":4231},[3948,31986,20104],{"class":4235},[3948,31988,25619],{"class":4254},[3948,31990,3593],{"class":4231},[3948,31992,11647],{"class":4235},[3948,31994,31995],{"class":4836}," 120",[3948,31997,3593],{"class":4231},[3948,31999,5136],{"class":4235},[3948,32001,32002],{"class":4254}," '#cbd5e1'",[3948,32004,4339],{"class":4231},[3948,32006,32007,32009,32011,32014,32016,32018,32020,32022],{"class":3950,"line":15394},[3948,32008,10112],{"class":4235},[3948,32010,4232],{"class":4231},[3948,32012,32013],{"class":4235},"borderTopWidth:",[3948,32015,4894],{"class":4836},[3948,32017,3593],{"class":4231},[3948,32019,5609],{"class":4235},[3948,32021,5327],{"class":4836},[3948,32023,4339],{"class":4231},[3948,32025,32026,32029,32031,32033,32035,32037,32039,32041,32043,32045,32047],{"class":3950,"line":15399},[3948,32027,32028],{"class":4235},"  cta:",[3948,32030,4232],{"class":4231},[3948,32032,10117],{"class":4235},[3948,32034,5704],{"class":4836},[3948,32036,3593],{"class":4231},[3948,32038,10097],{"class":4235},[3948,32040,5693],{"class":4836},[3948,32042,3593],{"class":4231},[3948,32044,10124],{"class":4235},[3948,32046,6816],{"class":4254},[3948,32048,4339],{"class":4231},[3948,32050,32051],{"class":3950,"line":15424},[3948,32052,5744],{"class":4231},[3700,32054],{},[3507,32056,32058],{"id":32057},"практичні-завдання","Практичні завдання",[3846,32060,32062],{"id":32061},"базовий-рівень","Базовий рівень",[3571,32064,32065,32075,32085],{},[3574,32066,32067,32068,3579,32070,32072,32073,3555],{},"Своїми словами пояснити, чим ",[3525,32069,3531],{},[3525,32071,3582],{}," відрізняється від ",[3525,32074,3551],{},[3574,32076,3586,32077,32079,32080,32082,32083,3555],{},[3525,32078,3551],{}," на 30 рядків з ",[3525,32081,3599],{}," по ",[3525,32084,4184],{},[3574,32086,32087,32088,32090,32091,3555],{},"Додати ",[3525,32089,3609],{}," і кнопку, що очищує ",[3525,32092,3592],{},[3846,32094,32096],{"id":32095},"середній-рівень","Середній рівень",[3571,32098,32099,32105,32113],{},[3574,32100,32101,32102,32104],{},"Міні-проєкт «Каталог книг»: 200+ items, ",[3525,32103,3634],{}," за жанром, pull-to-refresh.",[3574,32106,32107,32108,18021,32110,32112],{},"У Nomad тимчасово підмінити ",[3525,32109,3643],{},[3525,32111,3551],{}," і назад — порівняти код (майже drop-in).",[3574,32114,32115,32116,32118],{},"Додати mock ",[3525,32117,3627],{},": дописувати по 5 поїздок, поки не стане 30.",[3846,32120,32122],{"id":32121},"професійний-рівень","Професійний рівень",[3571,32124,32125,32128,32138],{},[3574,32126,32127],{},"Error-state: кнопка «Симулювати помилку» ховає список і показує «Спробувати знову».",[3574,32129,32130,32132,32133,7386,32136,4141],{},[3525,32131,11897],{}," + логіка «чому рядок ререндериться» (тимчасовий ",[3525,32134,32135],{},"console.log",[3525,32137,11884],{},[3574,32139,32140,32141,32143,32144,32146],{},"Горизонтальний ",[3525,32142,3643],{}," місць замість ",[3525,32145,3551],{}," (якщо версія API це зручно підтримує) і нотатка про nested scrolling.",[3700,32148],{},[3507,32150,32152],{"id":32151},"часті-запитання","Часті запитання",[32154,32155,32156,32170,32186,32196,32203,32217,32231],"accordion",{},[32157,32158,32161,32162,32165,32166,32169],"accordion-item",{"icon":32159,"label":32160},"i-lucide-circle-help","Коли ще можна ScrollView + map?","Коли елементів ",[3516,32163,32164],{},"мало"," і вони ",[3516,32167,32168],{},"різнотипні"," (екран налаштувань, коротка форма, 3 промо-картки). Як тільки з’являється «стрічка однотипних карток, яка ростиме» — одразу список з віртуалізацією.",[32157,32171,32173,32174,32176,32177,12841,32179,12841,32181,32183,32184,3555],{"icon":32159,"label":32172},"FlatList не скролиться \u002F висота 0","Немає bounded height: батьки без ",[3525,32175,4655],{},", або список у вкладеному контейнері без висоти. Перевірте ланцюг ",[3525,32178,19267],{},[3525,32180,21270],{},[3525,32182,3643],{},"\u002F",[3525,32185,3551],{},[32157,32187,32189,32190,32192,32193,32195],{"icon":32159,"label":32188},"Навіщо extraData?","Коли вигляд рядка залежить від стану ",[3516,32191,4663],{}," об’єктом ",[3525,32194,4449],{}," (виділення, multi-select). Інакше FlatList може пропустити оновлення рядків.",[32157,32197,32199,32200,32202],{"icon":32159,"label":32198},"FlashList обов’язковий?","Ні. Для навчання й багатьох екранів ",[3525,32201,3551],{}," достатній. FlashList — практичний default для «важких» стрічок у продакшені; у Nomad ставимо його рано, щоб звикнути до API.",[32157,32204,32206,32207,32209,32210,3579,32213,32216],{"icon":32159,"label":32205},"Чому в прев’ю сайту немає FlashList?","Host ",[3525,32208,4721],{}," підключає лише ",[3525,32211,32212],{},"react",[3525,32214,32215],{},"react-native",". Сторонні пакети туди не входять. FlashList перевіряйте в Expo Go \u002F симуляторі.",[32157,32218,32220,32221,32223,32224,32226,32227,32230],{"icon":32159,"label":32219},"SectionList vs «кілька FlatList»","Один ",[3525,32222,3634],{}," — одна віртуалізація на всі секції. Кілька незалежних ",[3525,32225,3551],{}," на одному екрані (вертикально) зазвичай гірший UX (вкладений скрол). Горизонтальний список ",[3516,32228,32229],{},"у header"," вертикального — нормальний патерн.",[32157,32232,32234,32235,32238,32239,32241,32242,3555],{"icon":32159,"label":32233},"pull-to-refresh не з’являється","Список має бути ",[3516,32236,32237],{},"вертикальним"," і реально скролитись (контент вищий за вікно, або iOS bounce). Перевірте, що ",[3525,32240,7385],{}," переданий саме в список, а не в сусідній ",[3525,32243,4245],{},[3700,32245],{},[3507,32247,32249],{"id":32248},"що-далі","Що далі",[3512,32251,32252,32253,4280,32256,32259,32260,32263],{},"Далі — ",[3516,32254,32255],{},"форми",[3525,32257,32258],{},"TextInput",", клавіатура, валідація (RHF + Zod), екран створення поїздки. Списки вже вміють показувати результат; форми навчать ",[3516,32261,32262],{},"додавати"," дані в ці списки.",[3512,32265,32266,14613,32270,14613,32274,14613,32278,14613,32282,14613,32285],{},[12326,32267,3551],{"href":32268,"rel":32269},"https:\u002F\u002Freactnative.dev\u002Fdocs\u002Fflatlist",[12330],[12326,32271,3634],{"href":32272,"rel":32273},"https:\u002F\u002Freactnative.dev\u002Fdocs\u002Fsectionlist",[12330],[12326,32275,4140],{"href":32276,"rel":32277},"https:\u002F\u002Freactnative.dev\u002Fdocs\u002Fvirtualizedlist",[12330],[12326,32279,3691],{"href":32280,"rel":32281},"https:\u002F\u002Freactnative.dev\u002Fdocs\u002Frefreshcontrol",[12330],[12326,32283,3643],{"href":12328,"rel":32284},[12330],[12326,32286,3652],{"href":18078,"rel":32287},[12330],[4638,32289,32290],{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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 .s8xlr, html code.shiki .s8xlr{--shiki-light:#AF00DB;--shiki-default:#C586C0;--shiki-dark:#C586C0}html pre.shiki code .sHH4Y, html code.shiki .sHH4Y{--shiki-light:#000000;--shiki-default:#D4D4D4;--shiki-dark:#D4D4D4}html pre.shiki code .siwwj, html code.shiki .siwwj{--shiki-light:#001080;--shiki-default:#9CDCFE;--shiki-dark:#9CDCFE}html pre.shiki code .sbdoH, html code.shiki .sbdoH{--shiki-light:#A31515;--shiki-default:#CE9178;--shiki-dark:#CE9178}html pre.shiki code .su1O8, html code.shiki .su1O8{--shiki-light:#0000FF;--shiki-default:#569CD6;--shiki-dark:#569CD6}html pre.shiki code .sN1BT, html code.shiki .sN1BT{--shiki-light:#267F99;--shiki-default:#4EC9B0;--shiki-dark:#4EC9B0}html pre.shiki code .s-QsJ, html code.shiki .s-QsJ{--shiki-light:#0070C1;--shiki-default:#4FC1FF;--shiki-dark:#4FC1FF}html pre.shiki code .s8Opu, html code.shiki .s8Opu{--shiki-light:#795E26;--shiki-default:#DCDCAA;--shiki-dark:#DCDCAA}html pre.shiki code .s0P7L, html code.shiki .s0P7L{--shiki-light:#800000;--shiki-default:#808080;--shiki-dark:#808080}html pre.shiki code .sa4r_, html code.shiki .sa4r_{--shiki-light:#E50000;--shiki-default:#9CDCFE;--shiki-dark:#9CDCFE}html pre.shiki code .sD7JJ, html code.shiki .sD7JJ{--shiki-light:#000000FF;--shiki-default:#D4D4D4;--shiki-dark:#D4D4D4}html pre.shiki code .sJj4R, html code.shiki .sJj4R{--shiki-light:#098658;--shiki-default:#B5CEA8;--shiki-dark:#B5CEA8}html pre.shiki code .spJ8K, html code.shiki .spJ8K{--shiki-light:#008000;--shiki-default:#6A9955;--shiki-dark:#6A9955}html pre.shiki code .sLwNe, html code.shiki .sLwNe{--shiki-light:#0451A5;--shiki-default:#9CDCFE;--shiki-dark:#9CDCFE}",{"title":3944,"searchDepth":3957,"depth":3957,"links":32292},[32293,32294,32295,32304,32305,32311,32313,32314,32318,32322,32323,32327,32329,32336,32337,32351,32359,32364,32365],{"id":3509,"depth":3957,"text":3510},{"id":3704,"depth":3957,"text":3705},{"id":3843,"depth":3957,"text":3844,"children":32296},[32297,32298,32300,32301,32302,32303],{"id":3848,"depth":3963,"text":3849},{"id":3876,"depth":3963,"text":32299},"ScrollView + map — що відбувається",{"id":3887,"depth":3963,"text":3888},{"id":3903,"depth":3963,"text":3904},{"id":3914,"depth":3963,"text":3915},{"id":3921,"depth":3963,"text":3922},{"id":4104,"depth":3957,"text":4105},{"id":4190,"depth":3957,"text":32306,"children":32307},"FlatList — базовий віртуалізований список",[32308,32309],{"id":4555,"depth":3963,"text":4556},{"id":4716,"depth":3963,"text":32310},"Демо: простий FlatList",{"id":5765,"depth":3957,"text":32312},"keyExtractor: чому не індекс",{"id":5868,"depth":3957,"text":5869},{"id":7353,"depth":3957,"text":32315,"children":32316},"Pull-to-refresh (RefreshControl)",[32317],{"id":7429,"depth":3963,"text":7430},{"id":8674,"depth":3957,"text":32319,"children":32320},"Пагінація UI: onEndReached",[32321],{"id":8740,"depth":3963,"text":8741},{"id":10137,"depth":3957,"text":10138},{"id":10246,"depth":3957,"text":32324,"children":32325},"SectionList — секції з заголовками",[32326],{"id":10588,"depth":3963,"text":10589},{"id":11869,"depth":3957,"text":32328},"Продуктивність рядка: memo, стабільні колбеки",{"id":12078,"depth":3957,"text":32330,"children":32331},"FlashList — коли FlatList уже «не тягне»",[32332,32333,32334,32335],{"id":12103,"depth":3963,"text":12104},{"id":12119,"depth":3963,"text":12120},{"id":12161,"depth":3963,"text":12162},{"id":12335,"depth":3963,"text":12336},{"id":12457,"depth":3957,"text":12458},{"id":12584,"depth":3957,"text":12585,"children":32338},[32339,32340,32341,32342,32343,32344,32346,32347,32348,32349,32350],{"id":12588,"depth":3963,"text":12589},{"id":12635,"depth":3963,"text":12636},{"id":12749,"depth":3963,"text":12750},{"id":12755,"depth":3963,"text":12756},{"id":12776,"depth":3963,"text":12777},{"id":12799,"depth":3963,"text":32345},"3. SectionList",{"id":12820,"depth":3963,"text":12821},{"id":12833,"depth":3963,"text":12834},{"id":12849,"depth":3963,"text":12850},{"id":12859,"depth":3963,"text":12860},{"id":15429,"depth":3963,"text":15430},{"id":17930,"depth":3957,"text":17931,"children":32352},[32353,32354,32355,32356,32357,32358],{"id":17934,"depth":3963,"text":17935},{"id":17945,"depth":3963,"text":17946},{"id":18069,"depth":3963,"text":18070},{"id":29072,"depth":3963,"text":29073},{"id":29094,"depth":3963,"text":29095},{"id":29188,"depth":3963,"text":29189},{"id":32057,"depth":3957,"text":32058,"children":32360},[32361,32362,32363],{"id":32061,"depth":3963,"text":32062},{"id":32095,"depth":3963,"text":32096},{"id":32121,"depth":3963,"text":32122},{"id":32151,"depth":3957,"text":32152},{"id":32248,"depth":3957,"text":32249},"FlatList, SectionList, FlashList, pull-to-refresh, порожній і помилковий стан, пагінація UI — каталог книг і стрічки поїздок\u002Fмісць у Nomad",null,{},{"title":3400,"description":32366},"TepEOcX8WeCLxRqP83C6skqaXi9dUFtntxwnaoSJ1Os",[32372,32374],{"title":3396,"path":3397,"stem":3398,"description":32373,"children":-1},"StyleSheet.create, масиви стилів, семантичні токени кольорів, useColorScheme і перемикач світлої\u002Fтемної теми в Nomad",{"title":3404,"path":3405,"stem":3406,"description":32375,"children":-1},"Усі основні контроли форми в React Native — TextInput, Pressable, Button, Switch, Checkbox, Slider, Picker, date picker; клавіатура; React Hook Form і Zod; реєстрація на подію та створення поїздки в Nomad",1785915328124]